Как сделать кнопку обсуждали ранее.
Как сделать внешне любую кнопку обсудили тут.
Настало время обсудить более специфичные ситуации.
Ситуация1. Надо подать одну команду, потом другую (или отменить первую)
- Решение простое - две кнопки. Одна подает команду на включение, вторая на выключение. Так же можно использовать группу кнопок и реализовать подачу большего числа команд в одно устройство.
- Интересное решение - кнопку настроить на работу по принципу XOR (нажал один раз - подача одного значения, нажал второй раз - второго). Совместно с индикацией сигнала обратной связи или поданного значения (цветом, текстом, внешним видом) решение я считаю крайне интересным.
Ситуация2. Подача команды заданной длительности.
Элегантное решение - использование импульса для подачи команды. Команда с кнопки подается в канал CALL.PulseOut (в канале настраивается какая команда и длительность импульса), затем в канал связи устройством. Эта схема позволяет удерживать команду заданную длительность. Без написания шаблона программ.
Ситуация3. Команда с контролем выполнения.
Гарантированное решение - естественное развитие импульсного случая. Необходим сигнал обратной связи, т.е необходимо читать с устройства параметр, которым управляем кнопкой. И пишем небольшую программу (или используем call сравнения). При нажатии кнопки программа будет проверять какое значение на устройстве. Если оно отличается, от команды, то подается команда до тех пор, пока она не будет принята и реализована устройством. При наличии опыта, Разработчик может добавить контроль ошибок, например по длительности выполнения.
Стоит отметить, что если каналу связи с устройством (например, analog с направлением output) выставить период пересчета calc exe, то при получении значения, которое уже есть атрибуте Входное значение, произойдет повторная отработка (отправка команды).
Для обеспечения безударного запуска проекта (т.е., что бы при запуске обнуленные каналы связи не отправили нули на устройства вместо введенных реальных значений) для ряда популярных протоколов, например Modbus, внедрена возможность на запуске однократно канал записи output переключать в режим чтения input, что бы подчитать значение в устройстве, а затем стать обратно каналом записи и управлять. Просто взведите атрибут 51 у канала записи (подробности в Справке о 51 атрибуте).
Успехов в освоении Программы и применении полученного опыта! 👽
Список авторских статей о Trace Mode 7