Моя первая работа по написанию блока зашла в тупик.
Блок "Ускорение"
Блок изменяет переменную на выходе var в заданных пределах MIN и MAX за время tAccel (ms)
При подаче 1 на вход On переменная var возрастает или убывает (в зависимости от пределов MIN и MAX) с заданной скоростью.
При наличии 0 на вход On переменная var совершает обратное действие.
Поддерживаются как положительные так и отрицательные значения пределов MIN и MAX.
Если MIN > MAX то возрастание является убыванием.
Все вроде бы работает, за исключением маленькой детали.
Если значения пределов MIN и MAX разнополярны, т.е. к примеру MIN= -10 а MAX= 15 то не получается создать условие которое при запуске или перезагрузке установит на выходе var значение MIN
ПАМАГИТЕ !!! Плиз.
Блок "Ускорение"
- Dryundel
- Полковник
- Сообщения: 2392
- Зарегистрирован: 22 май 2017, 23:15
- Откуда: Ярославль
- Имя: Андрей
- Контактная информация:
Блок "Ускорение"
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Последний раз редактировалось Dryundel 06 июн 2017, 02:55, всего редактировалось 1 раз.
Блок "Ускорение"
А блок нелинейное масштабирование не пробовали? То же как то пытался вычислять значение температуры по графику через ускорение, подсказали нелинейное масштабирование. На вход задаем время, на выход значение переменной var и в зависимости от входного значения времени получите на выходе уже вычисленную переменную. Все исходные данные можно менять налету если в точках перегиба задавать значения через вход.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Win10-64 FLProg v7.5.2 Portable ![Стыдно :fie:](./images/smilies/ucoz_fie.gif)
![Стыдно :fie:](./images/smilies/ucoz_fie.gif)
Блок "Ускорение"
поглядите этот замечательный блок https://yadi.sk/d/PF1D00rorWinT . не моё. автор Boroda.
Последний раз редактировалось pan 06 июн 2017, 08:53, всего редактировалось 1 раз.
- Dryundel
- Полковник
- Сообщения: 2392
- Зарегистрирован: 22 май 2017, 23:15
- Откуда: Ярославль
- Имя: Андрей
- Контактная информация:
Блок "Ускорение"
Пробовал и оценил по достоинству. Действительно отличный блок.pan писал(а):поглядите этот замечательный блок https://yadi.sk/d/PF1D00rorWinT . не моё. автор Boroda.
Только совсем не то, что требуется. Во первых блок рассчитан управление двумя кнопками и конкретно кнопками, во вторых привязка к времени достижения переменной заданного значения не так уж проста, через время одного тика, что не позволяет изменять скорость (ускорение) "на лету". Ну и вообще идея заложенная в блок весьма отличается.
Прикладная суть использования моего блока такая:
Включил выключатель, освещение плавно нарастает, выключил - плавно убывает. Включение выключение в любой момент. Если видишь что скорость нарастания мала или велика, можно регулировать ее в процессе выполнения или четко задать время за которое яркость перейдет от минимального значения к максимальному.
Или к примеру плавный пуск/останов/смена оборотов двигателя с заданным ускорением. И все это управляется одним сигналом плюс регулировка параметров "на лету" или задание времени разгона, а так же смена минимального и максимального значения так же "на лету" в прцессе отработки.
Можно к примеру организовать плавное управление скоростью радиоуправляемой моделью с джойстика (педали) - "нажал педаль сильней" и ускорение увеличилось.
Примерно для целей описанных последними и задумывался данный девайс, а конкретно автоматизация откачки меда.
Но в процессе написания усмотрелась универсальность использования, вот и заморочился с отрицательными значениями и вариантами когда MAX<MIN.
Добавлено (06.06.2017, 10:23)
---------------------------------------------
Честно говоря не пришло в голову. Но задумки, описанной мной в предыдущем ответе, думаю добиться будет не очень просто.Dev1 писал(а):А блок нелинейное масштабирование не пробовали?
В первую очередь блок задумывался для управления ускорением "на лету".
/
Добавлено (07.06.2017, 17:25)
---------------------------------------------
Блок Acceleration (Ускорение) доведен до логического завершения и протестирован.
Функционал:
Блок изменяет переменную Var в заданных пределах MIN и MAX с заданной скоростью Accel, и в сторону зависящую от сигнала на входе ON.
Когда (On = 1) то переменная Var стремится к MAX (возрастает), с заданной скоростью Accel (step/s) .
Когда (On = 0) то переменная Var стремится к MIN (убывает), с заданной скоростью Accel (step/s).
Поддерживаются как положительные так и отрицательные значения пределов MIN и MAX.
Если MIN > MAX то возрастание является убыванием.
Отрицательные значения Accel не поддерживаются !!!
Поддерживается изменение любых параметров "на лету".
Буду признателен за тестирование и комментарии.
Acceleration_v.4
Пример использования (FlProg) Тест_v.4
Схема для тестирования (Proteus) УскорениеТест
Последний раз редактировалось Dryundel 07 июн 2017, 22:17, всего редактировалось 1 раз.
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 2 гостя