Да, код намного компактнее) Заменил.
Привязку выхода таймера к переменной пока убрал, чтобы над ухом зуммер не шумел. А так переменная привязана к выходу модуля (выделил зеленым).
выход.png
Да, код намного компактнее) Заменил.
Привязку выхода таймера к переменной пока убрал, чтобы над ухом зуммер не шумел. А так переменная привязана к выходу модуля (выделил зеленым).
выход.png
Тоже хотел про код где кнопка и лампа написать... Но уже направили...
Кстати, условие ниже тоже можно сократить:
Альфа:= Бета ЭНД Гамма...
так если у вас 2 сек работа, 2 сек пауза, опять 2 сек работа и т.д. Зачем там ТР ? ну BLINK поставьте и все. Если это для работы зуммера.
ну тогда ищите, почему у вас таймер постоянно перезапускается. ТР работает просто, по стартовому импульсу на входе отрабатывает свою задержку и все.
Даже если на входе выставить 0 до истечения задержки. Если он у вас перезапускается, значит вы дергаете его вход IN где-то в коде.
Наверное самая примитивная ошибка Авария И НОТ ТР.Кью - запустить таймер. Вот он и будет стартовать каждый раз, когда будет сам выключаться
Последний раз редактировалось melky; 08.01.2025 в 15:29.
Заметил не понятное для меня поведение Slave HMI:
На вкладке Каналов указаны 10 каналов с определенными регистрами и длинами (все по 10 раз перепроверил, привязка правильная).
Каналы HMI.png
На вкладке Соотнесения входов/выходов ситуация непонятная. Присутствуют нужные мне каналы, а также сторонние каналы (то ли дублирующие, то ли еще какие). Удалить их не получается.
Соотнесение каналов HMI.png
В процессе отладки менял параметры каналов по нескольку раз. Могло это произойти из-за этого?
Вижу только один выход - удалить канал и заново создать. НО! К некоторым каналам привязаны по 200-300 переменных, не хотелось бы заново этим заниматься.
С каналами разобрался, все переделал - работает
Наблюдал за поведением переменных при наступлении события (при нажатии кнопки, должна загореться лампа и пропищать 2 секунды зуммер; при отключении кнопки, лампа гаснет):Сообщение от melky
При нажатии кнопки на модуле входов загорается соответствующий вход и переменная, привязанная к этому входу, меняет свое значение с Ложь на Истина.
Переменная1.png
Но почему-то это значение не передается в локальные переменные двух ФБ.
Переменная5.png
Из Списка перекрестных ссылок видно, что переменная объявляется один раз в Главной программе, и два раза читается ее значение при вызове двух ФБ. Что означают остальные записи IoConfig_ErrorPou? В одной из них также идет запись. Может в этом дело?
Переменная3.png
В обеих ФБ, код завязанный на этой переменной работает некорректно, так как внутри ФБ значения привязанных переменных не меняются.
ФБ1.png ФБ2.png