This is topic Кнопка без фиксации. in forum TRACE MODE 7 профессиональная версия / TRACE MODE 7 professional version at Форум TRACE MODE: техническая поддержка.
Добрый день. Внезапно столкнулся с проблемой. Нужно по ГЭ "Кнопка" отправить 1 в канал типа out, по ее отжатию 0. Кнопка привязана к аргументу типа out, который в свою очередь привязан к каналу типа out. В свойствах кнопки настроена прямая передача значения 1 по ЛК. Проблема в том, что после посылки, так все и залипает с единицей в канале. Как вернуть в ноль после отжатия?
Posted by Kalinin4 (Участник № / Member № 9552) on :
Релиз 7.1.0.1 для Windows
Posted by Nico (Участник № / Member № 5342) on :
- в ТМ7 действия только по клику - используйте 2кнопки( посылка 0 и 1) - используйте XOR send = source ^ send_value; - используйте посылку в CALL.PulseOut(19) через заданное Вами время 1 сброситься в 0
Posted by Kalinin4 (Участник № / Member № 9552) on :
Спасибо, попробую.
Posted by Kharin (Участник № / Member № 9628) on :
Добрый день, в целом через программу я реализовал кнопку без фиксации через TOFF. Не самое изящное решение, но у нас вся программа контроллера реализована через импульс от HMI и такая простая ешь как кнопка без фиксации конечно просто обязана быть. Тем кому жизненно важно обойтись одной кнопкой ниже подробности. _______________________________________________ Если кому-то интересно, распишу подробнее, но предварительно это выглядит так: Аргумент экрана для импульсной команды in/out Привязываем и к результату и к источнику в кнопке. Значение = 1. Прямая команда. Пишем программу кому как нравится, я в FBD. В программе единственный аргумент in/out. Вход на Set RS-триггера, а его выход по переднему фронту запускает таймер на задержку отключения. Время 1 такт. Выход таймера подается и на сброс RS-триггера, а также обратно на аргумент программы. Уже в Узле все это дело связываем. Костыль, но с ходу лучше придумать не смог.
Posted by Nico (Участник № / Member № 5342) on :
CALL.PulseOut делает то же самое
Posted by юный_инженер (Участник № / Member № 8204) on :
мой костыль: туже программу с триггером как и у Kharin с 1м in и 1м out в привязках привязать на уровне шаблона к прототипам discretR и diskretA и бросить эту программу прям на канал DO который кнопку обслуживает, прямо на исполнение в слое трансляции. вообще не замусоривает дерево проекта. Как-то так по памяти..
Posted by Nico (Участник № / Member № 5342) on :
из HELPа: в канале DISCRETE формата F0 (HEX) типа OUTPUT – спустя заданное время (202 – минуты, 203 – секунды) значение канала сбрасывается в 0;
Posted by Kharin (Участник № / Member № 9628) on :
Nico, спасибо огромное за такой совет. Действительно. если в параметре 203 поставить 1, и в 53 поставить галочку, то после нажатия кнопки, сигнал через 1 сек снимется. Это ровно то, что нам нужно. Снимает кучу вопросов, и убирает ненужные алгоритмы и привязки.
Posted by Nico (Участник № / Member № 5342) on :
53 галка не нужна !!!!!!!!!!!!!!!!
Posted by Kharin (Участник № / Member № 9628) on :
Да, убрал. Почему-то вначале показалось, что без нее не работает. Это для 9 (Q) параметра. Потом уже в справке посмотрел. Еще раз спасибо.
Posted by юный_инженер (Участник № / Member № 8204) on :
и действительно! работает! спасибо Nico! жалко тут лайки не поставить под постом!
Posted by Kalinin4 (Участник № / Member № 9552) on :
В общем-то из предложенных вариантов подошел последний предложенный с 203 атрибутом. Спасибо.
Posted by юный_инженер (Участник № / Member № 8204) on :
а аналоговый канал AO как можно заставить после нажатия на кнопку, через секунду другую на 0 вернуть значение?
Posted by Nico (Участник № / Member № 5342) on :
аналог ни как. только програмно. да и зачем?
Posted by юный_инженер (Участник № / Member № 8204) on :
у отечественных PLC КР500 алгоблоки защиты УПЗ отдают и принимают только целые INT(16). Соответственно и INPUTиOUTPUT в виде analog32/int16 (прототип/аргумент). вот для снятия блокировки и надо отправить 1, а через секунду 0, и перестать что либо отправлять.
Posted by юный_инженер (Участник № / Member № 8204) on :
если в кнопке делаю сперва отправку 1 а ниже отправку 0 - то контроллер не успевает воспринять команды. слишком быстро.
Posted by юный_инженер (Участник № / Member № 8204) on :
туда бы в кнопке между отправками 1 и 0 паузу куда-нибудь ввернуть..
Posted by юный_инженер (Участник № / Member № 8204) on :
из шаблона экран на кнопке 1 (int16) - в дискретный OUT (F0) с атрибутом общие 203 параметром в 3 сек - оттуда уже в АлгоблокВход(int16) - и заработала связка! еще раз всем спасибо!