Найти в Дзене

TIA Portal особенности работы/неработы таймеров.

Статья предназначена для инженеров программирующих контроллеры Simatic S7.

Речь пойдет о так называемых IEC таймерах, конкретно рассмотрю TON (Generate on-delay). Среда TIA Portal V15.1 upd4(текущая на момент написания статьи) CPU 1510SP.

При определённых действиях таймер выключает свой выход Q, хотя вход таймера IN включен.

Пример не работающего таймера.
Пример не работающего таймера.

На скриншоте видно, что на входе таймера истина, уставка времени 5 секунд , отсчитываемое время не растет и выход ложь.

Таймер TON обычно располагается в логической цепочке и просто задерживает прохождение сигнала на заданное время, но в данном случае он его разорвет и как следствие дальнейший алгоритм корректно не выполнится.

Такое поведение таймера происходит при следующих условиях:

1. Start value входа IN экземплярной DB равно TRUE(как на скриншоте, по умолчанию оно FALSE)

2. На входе таймера IN - TRUE и :
a) Контроллер переходит в STOP а затем в RUN.
b) Происходит переиницилизация (Re-initialize) экземплярной DB с таймером(изменили имя или количество переменных в этой DB).

Пункт 2b может произойти во время наладки и есть вероятность, что программист его заметит и сделает корректирующие действия.

Пункт 2а может произойти во время эксплуатации, выключили - включили контроллер. Почему он не проявил себя раньше, потому-что сигнал из поля на таймер до этого был ложь, а в данный момент он оказался истина.
В результате, может нарушиться работа блокировок, и лучше если они сработают ложно, чем вообще не сработают.

Пункт 1 самый ключевой, зачем в Start value таймера прописывать TRUE?
А в этом нам поможет Снапшот (Snapshot). Хорошо когда в исходном проекте все настроечные параметры соответствуют текущим на объекте. Какой самый простой способ это сделать? Снсапшот всех блоков и скопировать их в стартовые значения. Далее прогрузить DB с новыми (актуальными) стартовыми значениями в контроллер.

-2

Если снапшот сделать когда на входе таймера истина, то пункт первый выполнен.

Как избежать такого поведения таймера - правильно расставлять флаги Setpoint и прописывать в стартовые значения Only setpoints или не "применять" снапшоты к экземплярным блокам данных.

Видео демонстрирующее данную особенность.