да, таймеры внутри условий
Код:
function_block PhaseLoadControl
    
    var_input
        Current : REAL;
        Hight_level : REAL;
        Low_level : REAL;
    end_var
    
    var_output 
       Auto1Cmd, Auto2Cmd : BOOL := TRUE; (* Команды управления автоматами *)
    end_var
    
    var 
     TimerOn1, TimerOn2, TimerOff1, TimerOff2 : sys.TON;
    T_On, T_Off : TIME := T#5S;
    end_var

(* Отключение автоматов, если ток выше Hight_level *)
IF Current > Hight_level THEN
    TimerOff1(I := Auto1Cmd, T := T_Off);
    IF TimerOff1.Q THEN Auto1Cmd := FALSE; END_IF;

    TimerOff2(I := (NOT Auto1Cmd) AND Auto2Cmd AND (Current > Hight_level), T := T_Off);
    IF TimerOff2.Q THEN Auto2Cmd := FALSE; END_IF;
END_IF;

(* Включение автоматов, если ток ниже Low_level *)
IF Current < Low_level THEN
    TimerOn1(I := NOT Auto1Cmd, T := T_On);
    IF TimerOn1.Q THEN Auto1Cmd := TRUE; END_IF;

    TimerOn2(I := Auto1Cmd AND NOT Auto2Cmd, T := T_On);
    IF TimerOn2.Q THEN Auto2Cmd := TRUE; END_IF;
END_IF;

(* Удержание состояния в диапазоне Low_level-Hight_level *)
IF (Current >= Low_level) AND (Current <= Hight_level) THEN
    (* Ничего не делаем, автоматы остаются в текущем состоянии *)
END_IF;


end_function_block