я бы переписал на такоеTimeOut2(IN :=TRUE,PT:=T#100ms);
TimeOut2;
IF TimeOut2.Q THEN
g:=g+1;
master1 := 0;
(*IF g/2 = TRUNC(g/2) THEN
master1 := 2;
END_IF *)
TimeOut2.IN := FALSE;
TimeOut;
END_IFа то лишний код добавляет и лишние ошибки, типа отсутствие двойки на конце переменнойКод:TimeOut2(IN :=TRUE,PT:=T#100ms); IF TimeOut2.Q THEN g:=g+1; master1 := 0; TimeOut2(IN := FALSE); END_IF
Если с точками останова всё работает, значит мал таймаут в опросе