Код:
// 1-й АКБ
IF bStatusIzmBat = FALSE AND bStatusBat1 = FALSE THEN
fbTimer5s1(IN := TRUE, PT := T#10S);
iPermission := 1;
iBatNumber := 1;
IF fbTimer5s1.Q = FALSE AND fbTimer5s1.ET=fbTimer5s1.PT THEN
rBat1 := INT_TO_REAL(iUBat) / 100;
bStatusBat1 := TRUE;
fbTimer5s1(IN := FALSE, PT := T#0S);
ELSE
iUBat := 0;
END_IF
END_IF
// 2-й АКБ
IF bStatusBat1 = TRUE AND bStatusBat2 = FALSE THEN
fbTimer5s2(IN := TRUE, PT := T#10S);
iBatNumber := 2;
IF fbTimer5s2.Q = FALSE AND fbTimer5s2.ET=fbTimer5s2.PT THEN
rBat2 := INT_TO_REAL(iUBat) / 100;
bStatusBat2 := TRUE;
fbTimer5s2(IN := FALSE, PT := T#0S);
ELSE
iUBat := 0;
END_IF
END_IF
// 3-й АКБ
IF bStatusBat2 = TRUE AND bStatusBat3 = FALSE THEN
fbTimer5s3(IN := TRUE, PT := T#10S);
iBatNumber := 3;
IF fbTimer5s3.Q = FALSE AND fbTimer5s3.ET=fbTimer5s3.PT THEN
rBat3 := INT_TO_REAL(iUBat) / 100;
bStatusBat3 := TRUE;
fbTimer5s3(IN := FALSE, PT := T#0S);
ELSE
iUBat := 0;
END_IF
END_IF
// 4-й АКБ
IF bStatusBat3 = TRUE AND bStatusBat4 = FALSE THEN
fbTimer5s4(IN := TRUE, PT := T#10S);
iBatNumber := 4;
IF fbTimer5s4.Q = FALSE AND fbTimer5s4.ET=fbTimer5s4.PT THEN
rBat4 := INT_TO_REAL(iUBat) / 100;
bStatusBat4 := TRUE;
fbTimer5s4(IN := FALSE, PT := T#0S);
ELSE
iUBat := 0;
END_IF
END_IF
// 5-й АКБ
IF bStatusBat4 =TRUE AND bStatusBat5 = FALSE THEN
fbTimer5s5(IN := TRUE, PT := T#10S);
iBatNumber := 5;
IF fbTimer5s5.Q = FALSE AND fbTimer5s5.ET=fbTimer5s5.PT THEN
rBat5 := INT_TO_REAL(iUBat) / 100;
bStatusBat5 := TRUE;
fbTimer5s5(IN := FALSE, PT := T#0S);
ELSE
iUBat := 0;
END_IF
END_IF
// 6-й АКБ
IF bStatusBat5 = TRUE AND bStatusBat6 = FALSE THEN
fbTimer5s6(IN := TRUE, PT := T#10S);
iBatNumber := 6;
IF fbTimer5s6.Q = FALSE AND fbTimer5s6.ET=fbTimer5s6.PT THEN
rBat6 := INT_TO_REAL(iUBat) / 100;
bStatusBat6 := TRUE;
fbTimer5s6(IN := FALSE, PT := T#0S);
ELSE
iUBat := 0;
END_IF
END_IF
// 7-й АКБ
IF bStatusBat6 = TRUE AND bStatusBat7 = FALSE THEN
fbTimer5s7(IN := TRUE, PT := T#10S);
iBatNumber := 7;
IF fbTimer5s7.Q = FALSE AND fbTimer5s7.ET=fbTimer5s7.PT THEN
rBat7 := INT_TO_REAL(iUBat) / 100;
bStatusBat7 := TRUE;
fbTimer5s7(IN := FALSE, PT := T#0S);
ELSE
iUBat := 0;
END_IF
END_IF
// 8-й АКБ
IF bStatusBat7 = TRUE AND bStatusBat8 = FALSE THEN
fbTimer5s8(IN := TRUE, PT := T#10S);
iBatNumber := 8;
IF fbTimer5s8.Q = FALSE AND fbTimer5s8.ET=fbTimer5s8.PT THEN
rBat8 := INT_TO_REAL(iUBat) / 100;
bStatusBat8 := TRUE;
fbTimer5s8(IN := FALSE, PT := T#0S);
ELSE
iUBat := 0;
END_IF
END_IF
// 9-й АКБ
IF bStatusBat8 = TRUE AND bStatusBat9 = FALSE THEN
fbTimer5s9(IN := TRUE, PT := T#10S);
iBatNumber := 9;
IF fbTimer5s9.Q = FALSE AND fbTimer5s9.ET=fbTimer5s9.PT THEN
rBat9 := INT_TO_REAL(iUBat) / 100;
bStatusBat9 := TRUE;
fbTimer5s9(IN := FALSE, PT := T#0S);
ELSE
iUBat := 0;
END_IF
END_IF
// 10-й АКБ
IF bStatusBat9 = TRUE AND bStatusBat10 = FALSE THEN
fbTimer5s10(IN := TRUE, PT := T#10S);
iBatNumber1 := 10;
IF fbTimer5s10.Q = FALSE AND fbTimer5s10.ET=fbTimer5s10.PT THEN
rBat10 := INT_TO_REAL(iUBat) / 100;
bStatusBat10 := TRUE;
fbTimer5s10(IN := FALSE, PT := T#0S);
ELSE
iUBat := 0;
END_IF
END_IF
// 11-й АКБ
IF bStatusBat10 = TRUE AND bStatusBat11 = FALSE THEN
fbTimer5s11(IN := TRUE, PT := T#10S);
iBatNumber1 := 11;
IF fbTimer5s11.Q = FALSE AND fbTimer5s11.ET=fbTimer5s11.PT THEN
rBat11 := INT_TO_REAL(iUBat) / 100;
bStatusBat11 := TRUE;
fbTimer5s11(IN := FALSE, PT := T#0S);
ELSE
iUBat := 0;
END_IF
END_IF
// 12-й АКБ
IF bStatusBat11 = TRUE AND bStatusBat12 = FALSE THEN
fbTimer5s12(IN := TRUE, PT := T#10S);
iBatNumber := 12;
IF fbTimer5s12.Q = FALSE AND fbTimer5s12.ET=fbTimer5s12.PT THEN
rBat12 := INT_TO_REAL(iUBat) / 100;
bStatusBat12 := TRUE;
fbTimer5s12(IN := FALSE, PT := T#0S);
ELSE
iUBat := 0;
END_IF
END_IF
// 13-й АКБ
IF bStatusBat12 = TRUE AND bStatusBat13 = FALSE THEN
fbTimer5s13(IN := TRUE, PT := T#10S);
iBatNumber1 := 13;
IF fbTimer5s13.Q = FALSE AND fbTimer5s13.ET=fbTimer5s13.PT THEN
rBat13 := INT_TO_REAL(iUBat) / 100;
bStatusBat13 := TRUE;
fbTimer5s13(IN := FALSE, PT := T#0S);
ELSE
iUBat := 0;
END_IF
END_IF
// 14-й АКБ
IF bStatusBat13 = TRUE AND bStatusBat14 = FALSE THEN
fbTimer5s14(IN := TRUE, PT := T#10S);
iBatNumber1 := 14;
IF fbTimer5s14.Q = FALSE AND fbTimer5s14.ET=fbTimer5s14.PT THEN
rBat14 := INT_TO_REAL(iUBat) / 100;
bStatusBat14 := TRUE;
fbTimer5s14(IN := FALSE, PT := T#0S);
ELSE
iUBat := 0;
END_IF
END_IF
// 15-й АКБ
IF bStatusBat14 = TRUE AND bStatusBat15 = FALSE THEN
fbTimer5s15(IN := TRUE, PT := T#10S);
iBatNumber1 := 15;
IF fbTimer5s15.Q = FALSE AND fbTimer5s15.ET=fbTimer5s15.PT THEN
rBat15 := INT_TO_REAL(iUBat) / 100;
bStatusBat15 := TRUE;
fbTimer5s15(IN := FALSE, PT := T#0S);
ELSE
iUBat := 0;
END_IF
END_IF
// 16-й АКБ
IF bStatusBat15 = TRUE AND bStatusBat16 = FALSE THEN
fbTimer5s16(IN := TRUE, PT := T#10S);
iBatNumber1 := 16;
IF fbTimer5s16.Q = FALSE AND fbTimer5s16.ET=fbTimer5s16.PT THEN
rBat16 := INT_TO_REAL(iUBat) / 100;
bStatusBat16 := TRUE;
fbTimer5s16(IN := FALSE, PT := T#0S);
ELSE
iUBat := 0;
END_IF
END_IF
// 17-й АКБ
IF bStatusBat16 = TRUE AND bStatusBat17 = FALSE THEN
fbTimer5s17(IN := TRUE, PT := T#10S);
iBatNumber1 := 17;
IF fbTimer5s17.Q = FALSE AND fbTimer5s17.ET=fbTimer5s17.PT THEN
rBat17 := INT_TO_REAL(iUBat) / 100;
bStatusBat17 := TRUE;
fbTimer5s17(IN := FALSE, PT := T#0S);
ELSE
iUBat := 0;
END_IF
END_IF
// 18-й АКБ
IF bStatusBat17 = TRUE AND bStatusBat18 = FALSE THEN
fbTimer5s18(IN := TRUE, PT := T#10S);
iBatNumber1 := 18;
IF fbTimer5s18.Q = FALSE AND fbTimer5s18.ET=fbTimer5s18.PT THEN
rBat18 := INT_TO_REAL(iUBat) / 100;
bStatusBat18 := TRUE;
fbTimer5s18(IN := FALSE, PT := T#0S);
ELSE
iUBat := 0;
END_IF
END_IF
IF bStatusBat1 AND bStatusBat2 AND bStatusBat3 AND bStatusBat4 AND bStatusBat5 AND bStatusBat6 AND bStatusBat7 AND
bStatusBat8 AND bStatusBat9 AND bStatusBat10 AND bStatusBat11 AND bStatusBat12 AND bStatusBat13 AND
bStatusBat14 AND bStatusBat15 AND bStatusBat6 AND bStatusBat17 AND bStatusBat18
THEN
bStatusIzmBat := TRUE;
//iPermission := 0;
fbTimer10m(IN := TRUE, PT := T#10M);
iBatNumber := 0;
iBatNumber1 := 0;
IF fbTimer10m.Q THEN
bStatusIzmBat := FALSE;
bStatusBat1 := FALSE;
bStatusBat2 := FALSE;
bStatusBat3 := FALSE;
bStatusBat4 := FALSE;
bStatusBat5 := FALSE;
bStatusBat6 := FALSE;
bStatusBat7 := FALSE;
bStatusBat8 := FALSE;
bStatusBat9 := FALSE;
bStatusBat10 := FALSE;
bStatusBat11 := FALSE;
bStatusBat12 := FALSE;
bStatusBat13 := FALSE;
bStatusBat14 := FALSE;
bStatusBat15 := FALSE;
bStatusBat16 := FALSE;
bStatusBat17 := FALSE;
bStatusBat18 := FALSE;
fbTimer10m(IN := FALSE, PT := T#0S);
END_IF
END_IF
Вообще, для подобного рода задач, лучше использовать CASE.