PROGRAM _CYCLIC
(*Temperaturregler Heizungen*)
DO_HZG1 := (AI_TEMP1 < SET_HZG1) AND bHZG1 AND EV_HZG1 AND HM_RUN;
(*Einheitstemperatur für Regler*)
IF bSET_Temp THEN
SET_HZG1 := SET_Temp;
ELSIF
NOT bSET_Temp THEN
SET_HZG1 := SET_HZG1;
END_IF
(*Einschaltverzögerung Heizungen*)
(*Einschaltverzögerung Heizung 1*)
TON_HZG1.IN := HM_RUN AND bHZG1;
TON_HZG1.PT := T#5s;
TON_HZG1();
EV_HZG1 := TON_HZG1.Q;
(*Einschaltverzögerung Heizung 2*)
TON_HZG2.IN := HM_RUN AND bHZG2 AND EV_HZG1;
TON_HZG2.PT := T#5s;
TON_HZG2();
EV_HZG2 := TON_HZG2.Q;
(*Einschaltverzögerung Heizung 3*)
TON_HZG3.IN := HM_RUN AND bHZG3 AND EV_HZG2;
TON_HZG3.PT := T#5s;
TON_HZG3();
EV_HZG3 := TON_HZG2.Q;
(*Einschaltverzögerung Heizung 4*)
TON_HZG4.IN := HM_RUN AND bHZG4 AND EV_HZG3;
TON_HZG.PT := T#5s;
TON_HZG4();
EV_HZG4 := TON_HZG2.Q;
(*Einschaltverzögerung Heizung 5*)
TON_HZG5.IN := HM_RUN AND bHZG5 AND EV_HZG4;
TON_HZG5.PT := T#5s;
TON_HZG5();
EV_HZG5 := TON_HZG2.Q;
(*Einschaltverzögerung Heizung 6*)
TON_HZG6.IN := HM_RUN AND bHZG6 AND EV_HZG5;
TON_HZG6.PT := T#5s;
TON_HZG6();
EV_HZG6 := TON_HZG2.Q;
(*Einschaltverzögerung Heizung 7*)
TON_HZG7.IN := HM_RUN AND bHZG7 AND EV_HZG6;
TON_HZG7.PT := T#5s;
TON_HZG7();
EV_HZG7 := TON_HZG2.Q;
(*Einschaltverzögerung Heizung 8*)
TON_HZG8.IN := HM_RUN AND bHZG8 AND EV_HZG7;
TON_HZG8.PT := T#5s;
TON_HZG8();
EV_HZG8 := TON_HZG2.Q;
(*Einschaltverzögerung Heizung 9*)
TON_HZG9.IN := HM_RUN AND bHZG9 AND EV_HZG8;
TON_HZG9.PT := T#5s;
TON_HZG9();
EV_HZG9 := TON_HZG2.Q;
(*Einschaltverzögerung Heizung 10*)
TON_HZG10.IN := HM_RUN AND bHZG10 AND EV_HZG9;
TON_HZG10.PT := T#5s;
TON_HZG10();
EV_HZG10 := TON_HZG2.Q;
(*Einschaltverzögerung Heizung 11*)
TON_HZG11.IN := HM_RUN AND bHZG11 AND EV_HZG10;
TON_HZG11.PT := T#5s;
TON_HZG11();
EV_HZG11 := TON_HZG2.Q;
(*Einschaltverzögerung Heizung 12*)
TON_HZG12.IN := HM_RUN AND bHZG12 AND EV_HZG11;
TON_HZG12.PT := T#5s;
TON_HZG12();
EV_HZG12 := TON_HZG2.Q;
(*Einschaltverzögerung Heizung 13*)
TON_HZG13.IN := HM_RUN AND bHZG13 AND EV_HZG12;
TON_HZG13.PT := T#5s;
TON_HZG13();
EV_HZG13 := TON_HZG2.Q;
(*Einschaltverzögerung Heizung 14*)
TON_HZG14.IN := HM_RUN AND bHZG14 AND EV_HZG13;
TON_HZG14.PT := T#5s;
TON_HZG14();
EV_HZG14 := TON_HZG2.Q;
(*Einschaltverzögerung Heizung 15*)
TON_HZG15.IN := HM_RUN AND bHZG15 AND EV_HZG14;
TON_HZG15.PT := T#5s;
TON_HZG15();
EV_HZG15 := TON_HZG2.Q;
(*Einschaltverzögerung Heizung 16*)
TON_HZG16.IN := HM_RUN AND bHZG16 AND EV_HZG15;
TON_HZG16.PT := T#5s;
TON_HZG16();
EV_HZG16 := TON_HZG2.Q;
(*Einschaltverzögerung Heizung 17*)
TON_HZG17.IN := HM_RUN AND bHZG17 AND EV_HZG16;
TON_HZG17.PT := T#5s;
TON_HZG17();
EV_HZG17 := TON_HZG2.Q;
(*Einschaltverzögerung Heizung 18*)
TON_HZG18.IN := HM_RUN AND bHZG18 AND EV_HZG17;
TON_HZG18.PT := T#5s;
TON_HZG18();
EV_HZG18 := TON_HZG2.Q;
(*Einschaltverzögerung Heizung 19*)
TON_HZG19.IN := HM_RUN AND bHZG19 AND EV_HZG18;
TON_HZG19.PT := T#5s;
TON_HZG19();
EV_HZG19 := TON_HZG2.Q;
(*Einschaltverzögerung Heizung 20*)
TON_HZG20.IN := HM_RUN AND bHZG20 AND EV_HZG19;
TON_HZG20.PT := T#5s;
TON_HZG20();
EV_HZG20 := TON_HZG2.Q;
(*Einschaltverzögerung Heizung 21*)
TON_HZG21.IN := HM_RUN AND bHZG21 AND EV_HZG20;
TON_HZG21.PT := T#5s;
TON_HZG21();
EV_HZG21 := TON_HZG2.Q;
(*Einschaltverzögerung Heizung 22*)
TON_HZG22.IN := HM_RUN AND bHZG22 AND EV_HZG21;
TON_HZG22.PT := T#5s;
TON_HZG22();
EV_HZG22 := TON_HZG2.Q;
(*Einschaltverzögerung Heizung 23*)
TON_HZG23.IN := HM_RUN AND bHZG23 AND EV_HZG22;
TON_HZG23.PT := T#5s;
TON_HZG23();
EV_HZG23 := TON_HZG2.Q;
(*Einschaltverzögerung Heizung 24*)
TON_HZG24.IN := HM_RUN AND bHZG24 AND EV_HZG23;
TON_HZG24.PT := T#5s;
TON_HZG24();
EV_HZG24 := TON_HZG2.Q;
(*Anwahl Regleranzahl*)
IF bHZG_Aktiv=0 THEN (*Wenn keine Regler aktiviert werden Freigabe Bit´s 0*)
bHZG1 := FALSE;
bHZG2 := FALSE;
bHZG3 := FALSE;
bHZG4 := FALSE;
bHZG5 := FALSE;
bHZG6 := FALSE;
bHZG7 := FALSE;
bHZG8 := FALSE;
bHZG9 := FALSE;
bHZG10 := FALSE;
bHZG11 := FALSE;
bHZG12 := FALSE;
ELSIF bHZG_Aktiv=1 THEN (*Regler 1 Aktiv*)
bHZG1 := TRUE;
bHZG2 := FALSE;
bHZG3 := FALSE;
bHZG4 := FALSE;
bHZG5 := FALSE;
bHZG6 := FALSE;
bHZG7 := FALSE;
bHZG8 := FALSE;
bHZG9 := FALSE;
bHZG10 := FALSE;
bHZG11 := FALSE;
bHZG12 := FALSE;
ELSIF bHZG_Aktiv=2 THEN (*Regler 1,2 Aktiv*)
bHZG1 := TRUE;
bHZG2 := TRUE;
bHZG3 := FALSE;
bHZG4 := FALSE;
bHZG5 := FALSE;
bHZG6 := FALSE;
bHZG7 := FALSE;
bHZG8 := FALSE;
bHZG9 := FALSE;
bHZG10 := FALSE;
bHZG11 := FALSE;
bHZG12 := FALSE;
ELSIF bHZG_Aktiv= 3 THEN (*Regler 1,2,3 Aktiv*)
bHZG1 := TRUE;
bHZG2 := TRUE;
bHZG3 := TRUE;
bHZG4 := FALSE;
bHZG5 := FALSE;
bHZG6 := FALSE;
bHZG7 := FALSE;
bHZG8 := FALSE;
bHZG9 := FALSE;
bHZG10 := FALSE;
bHZG11 := FALSE;
bHZG12 := FALSE;
ELSIF bHZG_Aktiv= 4 THEN (*Regler 1,2,3,4 Aktiv*)
bHZG1 := TRUE;
bHZG2 := TRUE;
bHZG3 := TRUE;
bHZG4 := TRUE;
bHZG5 := FALSE;
bHZG6 := FALSE;
bHZG7 := FALSE;
bHZG8 := FALSE;
bHZG9 := FALSE;
bHZG10 := FALSE;
bHZG11 := FALSE;
bHZG12 := FALSE;
ELSIF bHZG_Aktiv= 5 THEN (*Regler 1,2,3,4,5 Aktiv*)
bHZG1 := TRUE;
bHZG2 := TRUE;
bHZG3 := TRUE;
bHZG4 := TRUE;
bHZG5 := TRUE;
bHZG6 := FALSE;
bHZG7 := FALSE;
bHZG8 := FALSE;
bHZG9 := FALSE;
bHZG10 := FALSE;
bHZG11 := FALSE;
bHZG12 := FALSE;
ELSIF bHZG_Aktiv= 6 THEN (*Regler 1,2,3,4,5,6 Aktiv*)
bHZG1 := TRUE;
bHZG2 := TRUE;
bHZG3 := TRUE;
bHZG4 := TRUE;
bHZG5 := TRUE;
bHZG6 := TRUE;
bHZG7 := FALSE;
bHZG8 := FALSE;
bHZG9 := FALSE;
bHZG10 := FALSE;
bHZG11 := FALSE;
bHZG12 := FALSE;
ELSIF bHZG_Aktiv= 7 THEN (*Regler 1,2,3,4,5,6,7 Aktiv*)
bHZG1 := TRUE;
bHZG2 := TRUE;
bHZG3 := TRUE;
bHZG4 := TRUE;
bHZG5 := TRUE;
bHZG6 := TRUE;
bHZG7 := TRUE;
bHZG8 := FALSE;
bHZG9 := FALSE;
bHZG10 := FALSE;
bHZG11 := FALSE;
bHZG12 := FALSE;
ELSIF bHZG_Aktiv= 8 THEN (*Regler 1,2,3,4,5,6,7,8 Aktiv*)
bHZG1 := TRUE;
bHZG2 := TRUE;
bHZG3 := TRUE;
bHZG4 := TRUE;
bHZG5 := TRUE;
bHZG6 := TRUE;
bHZG7 := TRUE;
bHZG8 := TRUE;
bHZG9 := FALSE;
bHZG10 := FALSE;
bHZG11 := FALSE;
bHZG12 := FALSE;
ELSIF bHZG_Aktiv= 9 THEN (*Regler 1,2,3,4,5,6,7,8,9 Aktiv*)
bHZG1 := TRUE;
bHZG2 := TRUE;
bHZG3 := TRUE;
bHZG4 := TRUE;
bHZG5 := TRUE;
bHZG6 := TRUE;
bHZG7 := TRUE;
bHZG8 := TRUE;
bHZG9 := TRUE;
bHZG10 := FALSE;
bHZG11 := FALSE;
bHZG12 := FALSE;
ELSIF bHZG_Aktiv= 10 THEN (*Regler 1,2,3,4,5,6,7,8,9,10 Aktiv*)
bHZG1 := TRUE;
bHZG2 := TRUE;
bHZG3 := TRUE;
bHZG4 := TRUE;
bHZG5 := TRUE;
bHZG6 := TRUE;
bHZG7 := TRUE;
bHZG8 := TRUE;
bHZG9 := TRUE;
bHZG10 := TRUE;
bHZG11 := FALSE;
bHZG12 := FALSE;
ELSIF bHZG_Aktiv= 11 THEN (*Regler 1,2,3,4,5,6,7,8,9,10,11 Aktiv*)
bHZG1 := TRUE;
bHZG2 := TRUE;
bHZG3 := TRUE;
bHZG4 := TRUE;
bHZG5 := TRUE;
bHZG6 := TRUE;
bHZG7 := TRUE;
bHZG8 := TRUE;
bHZG9 := TRUE;
bHZG10 := TRUE;
bHZG11 := TRUE;
bHZG12 := FALSE;
ELSIF bHZG_Aktiv= 12 THEN (*Regler 1,2,3,4,5,6,7,8,9,10,11,12 Aktiv*)
bHZG1 := TRUE;
bHZG2 := TRUE;
bHZG3 := TRUE;
bHZG4 := TRUE;
bHZG5 := TRUE;
bHZG6 := TRUE;
bHZG7 := TRUE;
bHZG8 := TRUE;
bHZG9 := TRUE;
bHZG10 := TRUE;
bHZG11 := TRUE;
bHZG12 := TRUE;
END_IF
(*Freigabe Ventile und Umschaltboxen nach Erreichen mindest Temperatur*)
FG_HZG1 := bHZG1 AND (AI_TEMP1 > SET_TEMP_MIN); (*Freigabe aus Heizung 1*)
FG_HZG2 := bHZG2 AND (AI_TEMP2 > SET_TEMP_MIN); (*Freigabe aus Heizung 2*)
FG_HZG3 := bHZG3 AND (AI_TEMP3 > SET_TEMP_MIN); (*Freigabe aus Heizung 3*)
FG_HZG4 := bHZG4 AND (AI_TEMP4 > SET_TEMP_MIN); (*Freigabe aus Heizung 4*)
FG_HZG5 := bHZG5 AND (AI_TEMP5 > SET_TEMP_MIN); (*Freigabe aus Heizung 5*)
FG_HZG6 := bHZG6 AND (AI_TEMP6 > SET_TEMP_MIN); (*Freigabe aus Heizung 6*)
FG_HZG7 := bHZG7 AND (AI_TEMP7 > SET_TEMP_MIN); (*Freigabe aus Heizung 7*)
FG_HZG8 := bHZG8 AND (AI_TEMP8 > SET_TEMP_MIN); (*Freigabe aus Heizung 8*)
FG_Umschaltbox := FG_HZG1 AND NOT bHZG2 OR FG_HZG2 AND NOT bHZG3 OR FG_HZG3 AND NOT bHZG4 OR FG_HZG4 AND NOT bHZG5 OR FG_HZG5 AND NOT bHZG6 OR FG_HZG6 AND NOT bHZG7 OR FG_HZG7 AND NOT bHZG8 OR FG_HZG8; (*Freigabe aus aktiven Heizungen 1,2,3,4,5,6,7,8*)
END_PROGRAM