Столкнулся со странностью работы таймера TON, объявленного как Retain: при отключении питания контроллера и последующем включении обратно выход таймера ET становится равным PT, соответственно Q=True, независимо от того, какое значение ET было в момент отключения питания. Проявилось на контроллере ПЛК110-24.60-Р.М, прошивка 1.0.11, таргет 3.18.
Для иллюстрации сделал маленькую программку для проверки:
Снимок0.PNG
Переменной Start передергиваю таймер, чтобы пошел отсчет времени, и отключаю питание ПЛК примерно на 10..15 секунде. Делаю паузу секунд 30 и вновь включаю ПЛК. Подключаюсь к нему CoDeSys и вижу вот такое:
Снимок1.PNG
Выход таймера установлен в True, ET=10min. Но 10 минут гарантированно не прошло, даже минуты еще не прошло!
Если объявление таймера перенести из VAR RETAIN в просто VAR, то таймер после подачи питания начинает считать сначала.
Что это может быть такое с таймером?