Пробовал и оценил по достоинству. Действительно отличный блок.
Только совсем не то, что требуется. Во первых блок рассчитан управление двумя кнопками и конкретно кнопками, во вторых привязка к времени достижения переменной заданного значения не так уж проста, через время одного тика, что не позволяет изменять скорость (ускорение) "на лету". Ну и вообще идея заложенная в блок весьма отличается.
Прикладная суть использования моего блока такая:
Включил выключатель, освещение плавно нарастает, выключил - плавно убывает. Включение выключение в любой момент. Если видишь что скорость нарастания мала или велика, можно регулировать ее в процессе выполнения или четко задать время за которое яркость перейдет от минимального значения к максимальному.
Или к примеру плавный пуск/останов/смена оборотов двигателя с заданным ускорением. И все это управляется одним сигналом плюс регулировка параметров "на лету" или задание времени разгона, а так же смена минимального и максимального значения так же "на лету" в прцессе отработки.
Можно к примеру организовать плавное управление скоростью радиоуправляемой моделью с джойстика (педали) - "нажал педаль сильней" и ускорение увеличилось.
Примерно для целей описанных последними и задумывался данный девайс, а конкретно автоматизация откачки меда.
Но в процессе написания усмотрелась универсальность использования, вот и заморочился с отрицательными значениями и вариантами когда 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)
УскорениеТест