Дорый день. Начал програмировать ПЛК и столкнулся с такой проблемой, создаю переменную в энергонезависимой памяти, работаю с ней, и по сигналу с одного входа она обнуляется. При отключении и включении контроллера происходит инициализация входов и выходов, и эта переменная обнуляется. Как можно отключить инициализацию портов после отключения питания, или сделать программно задержку(что бы не проходил сигнал на функцию обнуления) после включения питания?(желательно фрагмент кода)
Я написал функцию, она считает импульсы по первому входу и сохраняет в энергонезависимой памяти(в моем случае это переменная Outva1(она доступна по Mod-BUS, что мне требуется для отображения на ИП320). По второму входу она сбрасывается в 0. Дак вот, при отключении и включении питания загораются все индикаторы на ПЛК(скорей всего для тестирования входов и выходов) а программа уже получается что запущена, и моя переменная становится равной 0. Если убрать часть программы для обнуления переменной, то она увеличивается на еденицу(т.е. как я записал в функции). Но это же не логично, в микроконтроллерах SIEMENS подобной проблемы небыло. Но получается что и на выходах при включении ПЛК срабатывают реле, и нельзя включать управляемое оборудование пока не включен контроллер, а если просто пропадет питание, это уже становится просто опасно. Или я не прав?
Заведите переменную Init:=FALSE, и первый цикл PLC - отрабатывайте особое состояние - старт). И присваивайте её TRUE.
А то, что лампочки загораются, совсем не значит что 1 на входах. Это только проверка индикации.
Вроде немного разобрался.
Действительно, при инициализации лампочки входов и выходов загораются для проверки индикации. Проблема была в том что я использовал функциональные блоки, когда всю программу написал в главной программе, все заработало как положено. Спасибо за консультацию.