В IF всё вроде логично:
WORK_CYCLE =TRUE включение рабочего цикла.
MBNUM_OPERATION = 0 (CUT) Тип операции (на оборудовании два типа операции вырубка0 гибка1).


Этот кусок кода точно проходит.


IF (WORK_CYCLE AND(MBSTEP=3) AND (MBNUM_OPERATION = CUT) AND (Pbuf>P1))=TRUE THEN
T_OPERATION(IN:=TRUE,PT:= TIME_DWORD);
RELY_SLOW := 0;
MBSTEP := 4;
END_IF

MBSTEP точно присваивается 4 это видно по отладчику и панель Опер. считывает четвёрку.

В отладчике для таймера
IN =TRUE;
PT = то число какое нужно;
Q = TRUE;
а вот ET =0 и не изменяется

Почему то таймер не запускается.
соответственно ET не догоняет PT и T_OPERATION.Q никогда не становится FALSE Следующее условие не выполняется
IF (WORK_CYCLE AND(MBSTEP=4) AND(MBNUM_OPERATION = CUT) AND NOT T_OPERATION.Q)=TRUE THEN