Вообще, для подобного рода задач, лучше использовать CASE.Код:// 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




Ответить с цитированием