Цитата Сообщение от Kirill Посмотреть сообщение
Ошибка в том, что вы изменяете только состояние входа, а к самому экземпляру ФБ более не обращаетесь, потому он и не сбрасывается. Правильнее было бы так:

myTON(IN:= TRUE ,PT:=t#5s);

IF myTON.Q=TRUE THEN

(* Vikl *)
DO2e:= 0; DO2f:= 0; ; (* Wo2*)
DO3e:=0; DO3f:= 0; ; DO3i:= 0; (* Wo3*)
DO4a:= 0; DO4b:= 0; DO4c:= 0; DO4d:= 0; DO4e:= 0; DO4k:= 0; (* Wo4*)
myTON(IN:= false ,PT:=T#5s);
END_IF;

А щас в чем ошибка ?

CASE RO OF
0: (* Vkl*)
CH1:=CH1+1; // CH переменная нужна для не повторения запуска таймера
DO8a:= 1; DO8b:= 1;


IF CH1=1 THEN // Запуск таймера если CH1=1
myTON(IN:= TRUE ,PT:=t#5s);
END_IF;
IF myTON.Q THEN

(* Vikl *)
DO2e:= 0; DO2f:= 0; ; (* Wo2*)
myTON(IN:= FALSE) ; // сбрасываем счетчик

END_IF
IF CH1>20 THEN CH1:=2 END_IF;
1: (*Vkl*)
CH1:=0;
DO8a:= 1;
END_CASE;