Для двух насосов. При EN идет сравнение по времени наработки.

FUNCTION_BLOCK kaskad_nasos
VAR_INPUT
EN: BOOL; //Разрешение работы
_dt: BOOL; //Датчик перепада насосной группы
n1_auto: BOOL; //Насос 1 в автомате
n2_auto: BOOL; //Насос 2 в автомате
END_VAR
VAR_OUTPUT
n1: BOOL; //Насос 1
n2: BOOL; //Насос 2
alarm_n1: BOOL; //Авария насоса 1
alarm_n2: BOOL; //Авария насоса 2
END_VAR
VAR
p: BYTE;
n: BYTE;
ton1: TON;
ton2: TON;
blink1: BLINK;
t11: TON;
t12: TON;
rt: R_TRIG;
END_VAR
VAR_IN_OUT
t1: DWORD; //Время наработки насоса 1 в часах
t2: DWORD; //Время наработки насоса 2 в часах
END_VAR

***********************Программа****************** ***********
rt(clk := en);
IF rt.Q THEN
IF t1 <= t2 THEN n := 1; ELSE n := 2; END_IF;
END_IF;

IF en THEN
p := 0;
p.0 := n1_auto;
p.1 := n2_auto;


CASE p OF
1: ton1(in := TRUE, PT := T#10S);
n1 := (_dt OR NOT ton1.Q) AND NOT alarm_n1;
alarm_n1 := NOT _dt AND ton1.Q;
2: ton2(in := TRUE, PT := T#10S);
n2 := (_dt OR NOT ton2.Q) AND NOT alarm_n2;
alarm_n2 := NOT _dt AND ton2.Q;
3: blink1(ENABLE := TRUE, TIMELOW := T#24H, TIMEHIGH := T#24H);
IF n = 1 THEN
IF blink1.OUT THEN
ton1(in := TRUE, PT := T#10S);
n1 := (_dt OR NOT ton1.Q) AND NOT alarm_n1;
alarm_n1 := NOT _dt AND ton1.Q;
n2 := FALSE;
ton2(IN := FALSE, PT := T#10S);
ELSE
ton2(in := TRUE, PT := T#10S);
n2 := (_dt OR NOT ton2.Q) AND NOT alarm_n2;
alarm_n2 := NOT _dt AND ton2.Q;
n1 := FALSE;
ton1(IN := FALSE, PT := T#10S);
END_IF;
ELSE
IF blink1.OUT THEN
ton2(in := TRUE, PT := T#10S);
n2 := (_dt OR NOT ton2.Q) AND NOT alarm_n2;
alarm_n2 := NOT _dt AND ton2.Q;
n1 := FALSE;
ton1(IN := FALSE, PT := T#10S);
ELSE
ton1(in := TRUE, PT := T#10S);
n1 := (_dt OR NOT ton1.Q) AND NOT alarm_n1;
alarm_n1 := NOT _dt AND ton1.Q;
n2 := FALSE;
ton2(IN := FALSE, PT := T#10S);
END_IF;
END_IF;
ELSE
n1 := FALSE;
n2 := FALSE;
END_CASE;

ELSE
n1 := FALSE;
n2 := FALSE;
ton1(in := FALSE, PT := T#10S);
ton2(in := FALSE, PT := T#10S);
END_IF;

IF n1 THEN
t11(IN := NOT t11.Q, PT := T#1H);
IF t11.Q THEN
t1 := t1 + 1;
END_IF;
END_IF;
IF n2 THEN
t12(IN := NOT t12.Q, PT := T#1H);
IF t12.Q THEN
t2 := t2 + 1;
END_IF;
END_IF;