Чтобы TON (как и любой FB) обработал сигнал надо явно вызвать обработку.
Т.е.:
TON.IN := TRUE; TON(); соответствует TON(IN := TRUE);
без TON() таймер не обработает сигнал
Вы не думайте, что FB самостоятельные блоки.
Аналог BLINK 1Hz:Код:T.IN := TRUE; T.PT := T#500ms; IF T.Q THEN // этот код никогда не выполнится т.к. таймер еще не работает END_IF T(); // Таймер в работе, именно здесь таймер может выставить Q IF T.Q THEN // этот код уже выполнится, но таймер не сбросится T.IN := FALSE; END_IF IF T.Q THEN // а здесь - сбросится, и на следующем цикле запуститься заново T(IN := FALSE); // После выполнения Q = FALSE и поэтому первое условие никогда не выполнится END_IF
Код:T(IN := TRUE, PT := T#500ms); IF T.Q THEN // Каждые 500ms bBlink инвертируется с перезапуском таймера bBlink := NOT bBlink; T(IN := FALSE); END_IF




Ответить с цитированием