тьфу ты, при чем тут ваш ТР, я не привязываюсь к вашей схеме сейчас, я о принципе...
Нажали отпустили кнопку - сработал задний фронт
Держите кнопку - НЕТ заднего фронта.
Держите дольше кнопку, другим таймером БЛОКИРУЕТ работу заднего фронта.
тьфу ты, при чем тут ваш ТР, я не привязываюсь к вашей схеме сейчас, я о принципе...
Нажали отпустили кнопку - сработал задний фронт
Держите кнопку - НЕТ заднего фронта.
Держите дольше кнопку, другим таймером БЛОКИРУЕТ работу заднего фронта.
Вне задачи это просто, а когда есть конкретная задача, туда добавляются ограничения и все начинает работать по другому.
Поэтому я и пишу про свой пример. Простое нажатие на клавишу вкл\вык лампу. Удержание этой кнопки более 5с вводит в режим переключения режимов. Переключение режимов происходит соседней клавишей.
В этом варианте, который мне показал Сергей0308, если установить переключение по переднему фронту, все работает, как переводишь схему на задний фронт, срабатывание происходит после выполнения ТР. (так как у меня весь проект под включение света под задний фронт, то хочется и эту лампу посадить на задний фронт. а переводить весь проект на передний фронт, очень не просто)
1.jpg
Чего-то я совсем запутался в квадратиках. То у меня все работает, но лампа выключается, то с переключениями режимов лампа мигает.
Решил вопрос добавив DTRIG (правда мне кажется немного кривой способ и не все тонкости учтены, из-за чего могут быть ложные срабатывания)
После отпускании клавиши, при окончания отсчета ТР, лампа не меняет свой статус. При нажатии на клавишу и активном ТР, лампа вкл\выкл по заднему фронту. При удержании клавиши, соседней клавишей можно переключать режимы. (третья клавиша эмулятор программного сброса, т.е. принудительное выключение).
Пока промоделировал разные варианты нажатия и отпускания клавиши, ложных срабатываний нет. Есть глюк с пропуском срабатывания клавиши при сбросе ТР (переход с 1 сек на 0, выявляется быстрыми множественными нажатиями на клавишу), но, думаю на ПР такого не будет.
(FTRIG1 и DTRIG1 убираются в макрос, который един для всего проекта, поэтому введен отдельный триггер)
1.jpg
Предполагаю, что при добавлении второй многорежимной лампы на второй выключатель, могут быть ложные срабатывания, но это уже не в этом проекте.
P.S. Спасибо всем за помощь. Отдельная благодарность Сергей0308 за разъяснения и примеры.
P.P.S. Входное задание немного изменилось. Сначала я предполагал, что для переключения режимов надо будет удерживать противоположную клавишу и переключать режимы клавишей вкл\выкл, но в последствии понял, что это не удобно, поэтому перешел к алгоритму - одной клавишей вкл\векл, ее же удерживаем для переключения режимов, переключаем режимы соседней. Задержку на удержание клавиши перед переключением режимов решил оставить, так как люблю лампы выключать одновременным мгновенным нажатием, в случае отсутствия задержки это приведет к переключению режима одной из ламп.
Последний раз редактировалось Sel; 08.11.2018 в 13:18.