Files

353 lines
26 KiB
Plaintext

FUNCTION_BLOCK "HWtoVP_OmniFahren"
{ S7_Optimized_Access := 'FALSE' }
// Mechanische AWL->SCL-Konvertierung (awl2scl.py). Kontrollfluss per GOTO,
// wo im Original mit Sprungmarken gearbeitet wurde. Vor Uebernahme in TIA
// Portal pruefen/kompilieren (siehe SCL-Export/README.md).
VAR_INPUT
BG3133 : Word; // war "BG3133"
DI0246 : Word; // war "DI0246"
DI0247 : Word; // war "DI0247"
MB4210 : Byte; // war "MB4210"
MB4223 : Byte; // war "MB4223"
END_VAR
VAR_OUTPUT
DQ0246 : Word; // war "DQ0246"
DQ0247 : Word; // war "DQ0247"
PF0136 : Word; // war "PF0136"
END_VAR
VAR_IN_OUT
g_7_HMI_Err_UH07_OB : Word; // war "7_HMI_Err_UH07_OB"
BG3127 : Word; // war "BG3127"
BG3130 : Word; // war "BG3130"
BG3131 : Word; // war "BG3131"
BG3132 : Word; // war "BG3132"
BG3134 : Word; // war "BG3134"
BG3135 : Word; // war "BG3135"
BG3136 : Word; // war "BG3136"
BG3141 : Word; // war "BG3141"
BG3142 : Word; // war "BG3142"
BG3143 : Word; // war "BG3143"
BG3144 : Word; // war "BG3144"
BG3145 : Word; // war "BG3145"
BG3724 : Word; // war "BG3724"
BG3725 : Word; // war "BG3725"
BG3730 : Word; // war "BG3730"
BG3731 : Word; // war "BG3731"
BG4200 : Word; // war "BG4200"
BG4201 : Word; // war "BG4201"
BG4202 : Word; // war "BG4202"
BG4203 : Word; // war "BG4203"
BG4204 : Word; // war "BG4204"
BG4205 : Word; // war "BG4205"
BG4206 : Word; // war "BG4206"
BG4207 : Word; // war "BG4207"
BG4211 : Word; // war "BG4211"
BG4212 : Word; // war "BG4212"
BG4213 : Word; // war "BG4213"
BG4214 : Word; // war "BG4214"
BG4215 : Word; // war "BG4215"
BG4216 : Word; // war "BG4216"
BG4217 : Word; // war "BG4217"
DHWtoVP_Antriebe : Word; // war "DHWtoVP_Antriebe"
DHWtoVP_Sensoren : Word; // war "DHWtoVP_Sensoren"
DHWtoVP_Zylinder : Word; // war "DHWtoVP_Zylinder"
DLPtoHW_Antriebe : Word; // war "DLPtoHW_Antriebe"
DOutbound_Bereich : Word; // war "DOutbound_Bereich"
DSchnittstelle_zu_AMR : Word; // war "DSchnittstelle_zu_AMR"
MA0140 : Bool; // war "MA0140"
MA0141 : Bool; // war "MA0141"
MA0142 : Bool; // war "MA0142"
MA0143 : Bool; // war "MA0143"
MA0144 : Bool; // war "MA0144"
MA0200 : Bool; // war "MA0200"
MA0201 : Bool; // war "MA0201"
MA0260 : Bool; // war "MA0260"
MA0261 : Bool; // war "MA0261"
MA0262 : Bool; // war "MA0262"
MA0263 : Bool; // war "MA0263"
MA0264 : Bool; // war "MA0264"
MB3131 : Byte; // war "MB3131"
MB3134 : Byte; // war "MB3134"
MB3136 : Byte; // war "MB3136"
MB3140 : Byte; // war "MB3140"
MB3141 : Byte; // war "MB3141"
MB3143 : Byte; // war "MB3143"
MB3725 : Byte; // war "MB3725"
MB4200 : Byte; // war "MB4200"
MB4207 : Byte; // war "MB4207"
MB4212 : Byte; // war "MB4212"
MB4214 : Byte; // war "MB4214"
MB4217 : Byte; // war "MB4217"
END_VAR
VAR
Schleuse_3725 { S7_SetPoint := 'False'} : "MHMOmniSchleuse";
Bereich_3731 : "MHMOmniBereich_Plus";
Schleuse_4200 { S7_SetPoint := 'False'} : "MHMOmniSchleuse";
Bereich_4203 : "MHMOmniBereich_Plus";
Schleuse_4207 { S7_SetPoint := 'False'} : "MHMOmniSchleuse_Plus";
Schleuse_4212 { S7_SetPoint := 'False'} : "MHMOmniSchleuse";
Schleuse_4214 { S7_SetPoint := 'False'} : "MHMOmniSchleuse";
Bereich_3145 : "MHMOmniBereich_Plus";
Schleuse_3143 { S7_SetPoint := 'False'} : "MHMOmniSchleuse_Plus";
Schleuse_3141 { S7_SetPoint := 'False'} : "MHMOmniSchleuse_Plus";
Weiche_3140 : "MHMOmniWeiche_Plus";
Schleuse_3131 { S7_SetPoint := 'False'} : "MHMOmniSchleuse";
Schleuse_3134 { S7_SetPoint := 'False'} : "MHMOmniSchleuse";
Schleuse_3136 { S7_SetPoint := 'False'} : "MHMOmniSchleuse_Plus";
Schleuse_4217 { S7_SetPoint := 'False'} : "MHMOmniSchleuse_Plus";
Übergang_4205 { S7_SetPoint := 'False'} : "MHMÜbergang_ohne_Schleuse";
Test_RFID : Struct
Flanke : Bool;
Stop_Wegen_Test : Bool;
END_STRUCT;
END_VAR
VAR_TEMP
ErrQuit : Bool;
ErrAnz : Bool;
Stau_raus : Bool;
Start_ok : Bool;
B_aktiv : Bool;
B_vor_Schleuse : Bool;
B_nach_Schleuse : Bool;
Antrieb_aktiv : Bool;
Antrieb_vor : Bool;
Antrieb_stop : Bool;
Fahren_Ok : Bool;
Antrieb_nicht_stoppen : Bool;
END_VAR
BEGIN
REGION Systemzeug
#Schleuse_3725.Dyn.Sk.Auto_akt := #DOutbound_Bereich.A01_UH07.AnlageEin;
#Bereich_3731.Dyn.Sk.Auto_akt := #DOutbound_Bereich.A01_UH07.AnlageEin;
#Schleuse_4200.Dyn.Sk.Auto_akt := #DOutbound_Bereich.A01_UH07.AnlageEin;
#Bereich_4203.Dyn.Sk.Auto_akt := #DOutbound_Bereich.A01_UH07.AnlageEin;
#Schleuse_4217.Dyn.Sk.Auto_akt := #DOutbound_Bereich.A01_UH07.AnlageEin;
#Schleuse_4207.Dyn.Sk.Auto_akt := #DOutbound_Bereich.A01_UH07.AnlageEin;
#Schleuse_4212.Dyn.Sk.Auto_akt := #DOutbound_Bereich.A01_UH07.AnlageEin;
#Schleuse_4214.Dyn.Sk.Auto_akt := #DOutbound_Bereich.A01_UH07.AnlageEin;
#Bereich_3145.Dyn.Sk.Auto_akt := #DOutbound_Bereich.A01_UH07.AnlageEin;
#Schleuse_3143.Dyn.Sk.Auto_akt := #DOutbound_Bereich.A01_UH07.AnlageEin;
#Schleuse_3141.Dyn.Sk.Auto_akt := #DOutbound_Bereich.A01_UH07.AnlageEin;
#Weiche_3140.Dyn.Status.Auto_akt := #DOutbound_Bereich.A01_UH07.AnlageEin;
#Schleuse_3131.Dyn.Sk.Auto_akt := #DOutbound_Bereich.A01_UH07.AnlageEin;
#Schleuse_3134.Dyn.Sk.Auto_akt := #DOutbound_Bereich.A01_UH07.AnlageEin;
#Schleuse_3136.Dyn.Sk.Auto_akt := #DOutbound_Bereich.A01_UH07.AnlageEin;
#Schleuse_3725.Dyn.Sk.Bereich_ok := NOT (#DOutbound_Bereich.A01_UC072.BereichErr);
#Bereich_3731.Dyn.Sk.Bereich_ok := NOT (#DOutbound_Bereich.A01_UC072.BereichErr);
#Schleuse_4200.Dyn.Sk.Bereich_ok := NOT (#DOutbound_Bereich.A01_UC073.BereichErr);
#Bereich_4203.Dyn.Sk.Bereich_ok := NOT (#DOutbound_Bereich.A01_UC073.BereichErr);
#Schleuse_4217.Dyn.Sk.Bereich_ok := NOT (#DOutbound_Bereich.A01_UC073.BereichErr);
#Schleuse_4207.Dyn.Sk.Bereich_ok := NOT (#DOutbound_Bereich.A01_UC073.BereichErr);
#Schleuse_4212.Dyn.Sk.Bereich_ok := NOT (#DOutbound_Bereich.A01_UC073.BereichErr);
#Schleuse_4214.Dyn.Sk.Bereich_ok := NOT (#DOutbound_Bereich.A01_UC073.BereichErr);
#Bereich_3145.Dyn.Sk.Bereich_ok := NOT (#DOutbound_Bereich.A01_UC071.BereichErr);
#Schleuse_3143.Dyn.Sk.Bereich_ok := NOT (#DOutbound_Bereich.A01_UC071.BereichErr);
#Schleuse_3141.Dyn.Sk.Bereich_ok := NOT (#DOutbound_Bereich.A01_UC071.BereichErr);
#Weiche_3140.Dyn.Status.Bereich_ok := NOT (#DOutbound_Bereich.A01_UC071.BereichErr);
#Schleuse_3131.Dyn.Sk.Bereich_ok := NOT (#DOutbound_Bereich.A01_UC071.BereichErr);
#Schleuse_3134.Dyn.Sk.Bereich_ok := NOT (#DOutbound_Bereich.A01_UC071.BereichErr);
#Schleuse_3136.Dyn.Sk.Bereich_ok := NOT (#DOutbound_Bereich.A01_UC071.BereichErr);
END_REGION
REGION Störungen quittieren UZ7202
#ErrQuit := (#DOutbound_Bereich.A01_UZ7202.StOk_aktiv OR #DOutbound_Bereich.A01_UC072.StOk_aktiv) OR #DOutbound_Bereich.A01_UH07.StOk_aktiv;
END_REGION
REGION Schleuse 3725 (vor AFS)
IF #DSchnittstelle_zu_AMR.From_UH06.MA0200_A_vor THEN #DHWtoVP_Antriebe.MA0200.Stat.A_vor := TRUE; END_IF;
IF #DSchnittstelle_zu_AMR.From_UH06.MA0200_A_start THEN #DHWtoVP_Antriebe.MA0200.Stat.A_start := TRUE; END_IF;
#DSchnittstelle_zu_AMR.To_UH06.MA0200_kein_Stau := (#Schleuse_3725.Dyn.Sk.Bereich_ok AND #Schleuse_3725.Dyn.Sk.Auto_akt) AND NOT (#DHWtoVP_Sensoren.Stau_BG3724.Stat.B_Akt);
#DSchnittstelle_zu_AMR.To_UH06.MA0200_aktiv := #MA0200;
#DSchnittstelle_zu_AMR.To_UH06.BG3724_aktiv := #BG3724;
#Schleuse_3725(Schleusen_Nr := 3725, ErrQuit := #ErrQuit, B_VorSchleuse := #BG3724, B_InSchleuse := #BG3725, B_AusSchleuse := #BG3730, B_Stau_raus := #DHWtoVP_Sensoren.Stau_BG3730.Stat.B_Akt, Start_Ok := 1, Antrieb_Schleuse_aktiv := #MA0200, Antrieb_plus_aktiv := #MA0201, Schleuse_geöffnet := #MB3725, RestZeit_Bereich_plus := #Bereich_3731.Dyn.Restzeit, Y_Schleuse_Auf := #DHWtoVP_Zylinder.Schleuse_3725.Stat.Ast, Error := %DB708.DBW536, Antrieb_Schleuse_vor := #DHWtoVP_Antriebe.MA0200.Stat.A_vor, Antrieb_Schleuse_start := #DHWtoVP_Antriebe.MA0200.Stat.A_start, Antrieb_Schleuse_stop := #DHWtoVP_Antriebe.MA0200.Stat.Stop_vor, Antrieb_Schleuse_PS := #DHWtoVP_Antriebe.MA0200.Stat.A_PS, Antrieb_plus_vor := #Bereich_3731.Dyn.Status.Trolley_kommt_in_Bereich, hStOk := #ErrAnz);
END_REGION
REGION Bereich 3731 (vor BST 2)
#Fahren_Ok := ((((NOT (#g_7_HMI_Err_UH07_OB.System.Gesamt_Feueralarm_Halle3) AND NOT (#g_7_HMI_Err_UH07_OB.System.Gesamt_Feueralarm_Halle4)) AND NOT (#g_7_HMI_Err_UH07_OB.System.BST2_Feueralarm)) AND NOT (#g_7_HMI_Err_UH07_OB.System.BST2_Geschlossen)) AND NOT (#g_7_HMI_Err_UH07_OB.System.BST2_Störung)) AND #Schleuse_4200.Dyn.Sk.Bereich_ok;
#B_vor_Schleuse := #BG3730 AND #MB3725;
#Stau_raus := #DHWtoVP_Sensoren.Stau_BG4201.Stat.B_Akt;
#Bereich_3731(Bereichs_Nr := 3731, ErrQuit := #ErrQuit, B_BereichsAnfang := #B_vor_Schleuse, B_BereichsEnde := #BG3731, B_Zähl := #BG4201, B_Stau_raus := #Stau_raus, Start_Ok := #Fahren_Ok, Antrieb_Bereich_aktiv := #MA0201, Antrieb_plus_aktiv := #MA0260, Antrieb_Bereich_vor := #DHWtoVP_Antriebe.MA0201.Stat.A_vor, Antrieb_Bereich_stop := #DHWtoVP_Antriebe.MA0201.Stat.Stop_vor, Error := %DB708.DBW458, Antrieb_Bereich_start := #DHWtoVP_Antriebe.MA0201.Stat.A_start, Antrieb_plus_vor := #DHWtoVP_Antriebe.MA0260.Stat.A_vor, Antrieb_plus_start := #DHWtoVP_Antriebe.MA0260.Stat.A_start, Antrieb_minus_vor := #DHWtoVP_Antriebe.MA0200.Stat.A_vor, hStOk := #ErrAnz);
END_REGION
REGION Störungen anzeigen UZ7202
IF #ErrAnz THEN
#ErrAnz := FALSE;
#DOutbound_Bereich.A01_UZ7202.StOk_blinken := TRUE;
#DOutbound_Bereich.A01_UC072.StOk_blinken := TRUE;
#DOutbound_Bereich.A01_UH07.StOk_blinken := TRUE;
END_IF;
END_REGION
REGION Störungen quittieren UZ7202/7302
#ErrQuit := ((#DOutbound_Bereich.A01_UZ7202.StOk_aktiv OR #DOutbound_Bereich.A01_UZ7302.StOk_aktiv) OR #DOutbound_Bereich.A01_UC073.StOk_aktiv) OR #DOutbound_Bereich.A01_UH07.StOk_aktiv;
END_REGION
REGION Schleuse 4200 (hinter BST 2)
#Schleuse_4200(Schleusen_Nr := 4200, ErrQuit := #ErrQuit, B_InSchleuse := #BG4200, B_AusSchleuse := #BG4202, B_Stau_raus := #DHWtoVP_Sensoren.Stau_BG4202.Stat.B_Akt, Start_Ok := 1, Antrieb_Schleuse_aktiv := #MA0260, Antrieb_plus_aktiv := #MA0261, Schleuse_geöffnet := #MB4200, RestZeit_Bereich_plus := #Bereich_4203.Dyn.Restzeit, Y_Schleuse_Auf := #DHWtoVP_Zylinder.Schleuse_4200.Stat.Ast, Error := %DB708.DBW538, Antrieb_Schleuse_vor := #DHWtoVP_Antriebe.MA0260.Stat.A_vor, Antrieb_Schleuse_start := #DHWtoVP_Antriebe.MA0260.Stat.A_start, Antrieb_Schleuse_stop := #DHWtoVP_Antriebe.MA0260.Stat.Stop_vor, Antrieb_Schleuse_PS := #DHWtoVP_Antriebe.MA0260.Stat.A_PS, Antrieb_plus_vor := #Bereich_4203.Dyn.Status.Trolley_kommt_in_Bereich, hStOk := #ErrAnz);
END_REGION
REGION Bereich 4203
#B_vor_Schleuse := #BG4202 AND #MB4200;
#Stau_raus := #DHWtoVP_Sensoren.Stau_BG4204.Stat.B_Akt OR #DHWtoVP_Sensoren.Stau_BG4206.Stat.B_Akt;
#Bereich_4203(Bereichs_Nr := 4203, ErrQuit := #ErrQuit, B_BereichsAnfang := #B_vor_Schleuse, B_BereichsEnde := #BG4203, B_Zähl := #BG4204, B_Stau_raus := #Stau_raus, Start_Ok := 1, Antrieb_Bereich_aktiv := #MA0261, Antrieb_plus_aktiv := #MA0262, Antrieb_Bereich_vor := #DHWtoVP_Antriebe.MA0261.Stat.A_vor, Antrieb_Bereich_stop := #DHWtoVP_Antriebe.MA0261.Stat.Stop_vor, Error := %DB708.DBW464, Antrieb_Bereich_start := #DHWtoVP_Antriebe.MA0261.Stat.A_start, Antrieb_plus_vor := #DHWtoVP_Antriebe.MA0262.Stat.A_vor, Antrieb_plus_start := #DHWtoVP_Antriebe.MA0262.Stat.A_start, Antrieb_minus_vor := #DHWtoVP_Antriebe.MA0260.Stat.A_vor, hStOk := #ErrAnz);
END_REGION
REGION Störungen anzeigen UZ7202/7302
IF #ErrAnz THEN
#ErrAnz := FALSE;
#DOutbound_Bereich.A01_UZ7202.StOk_blinken := TRUE;
#DOutbound_Bereich.A01_UZ7302.StOk_blinken := TRUE;
#DOutbound_Bereich.A01_UC073.StOk_blinken := TRUE;
#DOutbound_Bereich.A01_UH07.StOk_blinken := TRUE;
END_IF;
END_REGION
REGION Störungen quittieren UZ7302/7303
#ErrQuit := ((#DOutbound_Bereich.A01_UZ7302.StOk_aktiv OR #DOutbound_Bereich.A01_UZ7303.StOk_aktiv) OR #DOutbound_Bereich.A01_UC073.StOk_aktiv) OR #DOutbound_Bereich.A01_UH07.StOk_aktiv;
END_REGION
REGION MA0262 / Übergang 4205
#Übergang_4205(ErrQuit := #ErrQuit, B_Anfang := #BG4204, B_Am_Übergang := #BG4205, B_Stau_Antrieb_plus := #BG4206, Antrieb_aktiv := #MA0262, Antrieb_plus_aktiv := #MA0263, Antrieb_vor := #DHWtoVP_Antriebe.MA0262.Stat.A_vor, Antrieb_start := #DHWtoVP_Antriebe.MA0262.Stat.A_start, Antrieb_stop := #DHWtoVP_Antriebe.MA0262.Stat.A_PS, Antrieb_plus_vor := #DHWtoVP_Antriebe.MA0263.Stat.A_vor, Antrieb_plus_start := #DHWtoVP_Antriebe.MA0263.Stat.A_start);
END_REGION
REGION Schleuse 4217 (Vor RFID-Gate)
#Start_ok := #DI0246 OR #DI0247; // / UN #Test_RFID.Stop_Wegen_Test
#g_7_HMI_Err_UH07_OB.RFID_Gate.Gate_nicht_bereit := (#BG4217 AND NOT (#MB4217)) AND NOT (#Start_ok);
#g_7_HMI_Err_UH07_OB.RFID_Gate.Gate_ByPAss := #DI0247;
#Schleuse_4217(Schleusen_Nr := 4217, ErrQuit := #ErrQuit, B_VorSchleuse := #BG4206, B_InSchleuse := #BG4217, B_Zähl := #BG4216, B_Stau_raus := #DHWtoVP_Sensoren.Stau_BG4216.Stat.B_Akt, Start_Ok := #Start_ok, Antrieb_Schleuse_aktiv := #MA0263, Antrieb_plus_aktiv := #MA0263, Schleuse_geöffnet := #MB4217, Y_Schleuse_Auf := #DHWtoVP_Zylinder.Schleuse_4217.Stat.Ast, Error := %DB708.DBW580, Antrieb_Schleuse_vor := #DHWtoVP_Antriebe.MA0263.Stat.A_vor, Antrieb_Schleuse_start := #DHWtoVP_Antriebe.MA0263.Stat.A_start, Antrieb_Schleuse_stop := #DHWtoVP_Antriebe.MA0263.Stat.Stop_vor, Antrieb_Schleuse_PS := #DHWtoVP_Antriebe.MA0263.Stat.A_PS, Antrieb_plus_vor := , Antrieb_plus_start := , hStOk := #ErrAnz); // da schon oben verwendet | da schon oben verwendet
#DQ0246 := #Schleuse_4217.Dyn.Sk.Bereich_ok;
#DQ0247 := #MB4217;
END_REGION
REGION Schleuse 4207 (Plus)
#Stau_raus := #DHWtoVP_Sensoren.Stau_BG4210.Stat.B_Akt OR #DHWtoVP_Sensoren.Stau_BG4211.Stat.B_Akt;
#Start_ok := NOT (#MB4223) AND NOT (#MB4210);
#Schleuse_4207(Schleusen_Nr := 4207, ErrQuit := #ErrQuit, B_VorSchleuse := #BG4216, B_InSchleuse := #BG4207, B_Zähl := #BG4211, B_Stau_raus := #Stau_raus, Start_Ok := #Start_ok, Antrieb_Schleuse_aktiv := #MA0263, Antrieb_plus_aktiv := #MA0264, Schleuse_geöffnet := #MB4207, Y_Schleuse_Auf := #DHWtoVP_Zylinder.Schleuse_4207.Stat.Ast, Error := %DB708.DBW540, Antrieb_Schleuse_vor := #DHWtoVP_Antriebe.MA0263.Stat.A_vor, Antrieb_Schleuse_start := #DHWtoVP_Antriebe.MA0263.Stat.A_start, Antrieb_Schleuse_stop := #DHWtoVP_Antriebe.MA0263.Stat.Stop_vor, Antrieb_Schleuse_PS := #DHWtoVP_Antriebe.MA0263.Stat.A_PS, Antrieb_plus_vor := #DLPtoHW_Antriebe.MA0264.Stat.A_vor, Antrieb_plus_start := #DLPtoHW_Antriebe.MA0264.Stat.A_start, hStOk := #ErrAnz);
IF #MA0263 AND ((#Schleuse_4207.Dyn.Raus_Trolleys > 0) OR #BG4211) THEN #DLPtoHW_Antriebe.MA0264.Stat.A_vor := TRUE; END_IF;
END_REGION
REGION Störungen anzeigen UZ7302/7303
IF #ErrAnz THEN
#ErrAnz := FALSE;
#DOutbound_Bereich.A01_UZ7302.StOk_blinken := TRUE;
#DOutbound_Bereich.A01_UZ7303.StOk_blinken := TRUE;
#DOutbound_Bereich.A01_UC073.StOk_blinken := TRUE;
#DOutbound_Bereich.A01_UH07.StOk_blinken := TRUE;
END_IF;
END_REGION
REGION Störungen quittieren UZ7303
#ErrQuit := (#DOutbound_Bereich.A01_UZ7303.StOk_aktiv OR #DOutbound_Bereich.A01_UC073.StOk_aktiv) OR #DOutbound_Bereich.A01_UH07.StOk_aktiv;
END_REGION
REGION Schleuse 4212
#Schleuse_4212(Schleusen_Nr := 4212, ErrQuit := #ErrQuit, B_VorSchleuse := #BG4211, B_InSchleuse := #BG4212, B_AusSchleuse := #BG4213, B_Stau_raus := #DHWtoVP_Sensoren.Stau_BG4213.Stat.B_Akt, Start_Ok := 1, Antrieb_Schleuse_aktiv := #MA0263, Antrieb_plus_aktiv := #MA0263, Schleuse_geöffnet := #MB4212, Y_Schleuse_Auf := #DHWtoVP_Zylinder.Schleuse_4212.Stat.Ast, Error := %DB708.DBW542, Antrieb_Schleuse_vor := #DHWtoVP_Antriebe.MA0263.Stat.A_vor, Antrieb_Schleuse_start := #DHWtoVP_Antriebe.MA0263.Stat.A_start, Antrieb_Schleuse_stop := #DHWtoVP_Antriebe.MA0263.Stat.Stop_vor, Antrieb_Schleuse_PS := #DHWtoVP_Antriebe.MA0263.Stat.A_PS, Antrieb_plus_vor := , Antrieb_plus_start := , hStOk := #ErrAnz); // da schon oben verwendet | da schon oben verwendet
END_REGION
REGION Schleuse 4214
#Schleuse_4214(Schleusen_Nr := 4214, ErrQuit := #ErrQuit, B_VorSchleuse := #BG4213, B_InSchleuse := #BG4214, B_AusSchleuse := #BG4215, B_Stau_raus := #DHWtoVP_Sensoren.Stau_BG4215.Stat.B_Akt, Start_Ok := #Bereich_3145.Dyn.Sk.Bereich_ok, Antrieb_Schleuse_aktiv := #MA0263, Antrieb_plus_aktiv := #MA0140, Schleuse_geöffnet := #MB4214, RestZeit_Bereich_plus := #Bereich_3145.Dyn.Restzeit, Y_Schleuse_Auf := #DHWtoVP_Zylinder.Schleuse_4214.Stat.Ast, Error := %DB708.DBW544, Antrieb_Schleuse_vor := #DHWtoVP_Antriebe.MA0263.Stat.A_vor, Antrieb_Schleuse_start := #DHWtoVP_Antriebe.MA0263.Stat.A_start, Antrieb_Schleuse_stop := #DHWtoVP_Antriebe.MA0263.Stat.Stop_vor, Antrieb_Schleuse_PS := #DHWtoVP_Antriebe.MA0263.Stat.A_PS, Antrieb_plus_vor := #Bereich_3145.Dyn.Status.Trolley_kommt_in_Bereich, hStOk := #ErrAnz);
END_REGION
REGION Störungen anzeigen UZ7303
IF #ErrAnz THEN
#ErrAnz := FALSE;
#DOutbound_Bereich.A01_UZ7303.StOk_blinken := TRUE;
#DOutbound_Bereich.A01_UC073.StOk_blinken := TRUE;
#DOutbound_Bereich.A01_UH07.StOk_blinken := TRUE;
END_IF;
END_REGION
REGION Störungen quittieren UZ7303/7101
#ErrQuit := (((#DOutbound_Bereich.A01_UZ7303.StOk_aktiv OR #DOutbound_Bereich.A01_UZ7101.StOk_aktiv) OR #DOutbound_Bereich.A01_UC073.StOk_aktiv) OR #DOutbound_Bereich.A01_UC071.StOk_aktiv) OR #DOutbound_Bereich.A01_UH07.StOk_aktiv;
END_REGION
REGION Bereich 3145
#B_vor_Schleuse := #BG4215 AND #MB4214;
#Bereich_3145(Bereichs_Nr := 3145, ErrQuit := #ErrQuit, B_BereichsAnfang := #B_vor_Schleuse, B_BereichsEnde := #BG3145, B_Zähl := #BG3144, B_Stau_raus := #DHWtoVP_Sensoren.Stau_BG3144.Stat.B_Akt, Start_Ok := 1, Antrieb_Bereich_aktiv := #MA0140, Antrieb_plus_aktiv := #MA0141, Antrieb_Bereich_vor := #DHWtoVP_Antriebe.MA0140.Stat.A_vor, Antrieb_Bereich_stop := #DHWtoVP_Antriebe.MA0140.Stat.Stop_vor, Error := %DB708.DBW450, Antrieb_Bereich_start := #DHWtoVP_Antriebe.MA0140.Stat.A_start, Antrieb_plus_vor := #DHWtoVP_Antriebe.MA0141.Stat.A_vor, Antrieb_plus_start := #DHWtoVP_Antriebe.MA0141.Stat.A_start, Antrieb_minus_vor := #DHWtoVP_Antriebe.MA0263.Stat.A_vor, hStOk := #ErrAnz);
END_REGION
REGION Störungen anzeigen UZ7303/7101
IF #ErrAnz THEN
#ErrAnz := FALSE;
#DOutbound_Bereich.A01_UZ7303.StOk_blinken := TRUE;
#DOutbound_Bereich.A01_UZ7101.StOk_blinken := TRUE;
#DOutbound_Bereich.A01_UC073.StOk_blinken := TRUE;
#DOutbound_Bereich.A01_UC071.StOk_blinken := TRUE;
#DOutbound_Bereich.A01_UH07.StOk_blinken := TRUE;
END_IF;
END_REGION
REGION Störungen quittieren UZ7101/7102
#ErrQuit := ((#DOutbound_Bereich.A01_UZ7101.StOk_aktiv OR #DOutbound_Bereich.A01_UZ7102.StOk_aktiv) OR #DOutbound_Bereich.A01_UC071.StOk_aktiv) OR #DOutbound_Bereich.A01_UH07.StOk_aktiv;
END_REGION
REGION Schleuse 3143
#Schleuse_3143(Schleusen_Nr := 3143, ErrQuit := #ErrQuit, B_VorSchleuse := #BG3144, B_InSchleuse := #BG3143, B_Zähl := #BG3142, B_Stau_raus := #DHWtoVP_Sensoren.Stau_BG3142.Stat.B_Akt, Start_Ok := 1, Antrieb_Schleuse_aktiv := #MA0141, Antrieb_plus_aktiv := #MA0141, Schleuse_geöffnet := #MB3143, Y_Schleuse_Auf := #DHWtoVP_Zylinder.Schleuse_3143.Stat.Ast, Error := %DB708.DBW514, Antrieb_Schleuse_vor := #DHWtoVP_Antriebe.MA0141.Stat.A_vor, Antrieb_Schleuse_start := #DHWtoVP_Antriebe.MA0141.Stat.A_start, Antrieb_Schleuse_stop := #DHWtoVP_Antriebe.MA0141.Stat.Stop_vor, Antrieb_Schleuse_PS := #DHWtoVP_Antriebe.MA0141.Stat.A_PS, hStOk := #ErrAnz);
END_REGION
REGION Schleuse 3141 (vor Weiche zum KontrollPlatz)
#Start_ok := NOT (#MB3136);
#Schleuse_3141(Schleusen_Nr := 3141, ErrQuit := #ErrQuit, B_VorSchleuse := #BG3142, B_InSchleuse := #BG3141, B_Zähl := , B_Stau_raus := , Start_Ok := #Start_ok, Antrieb_Schleuse_aktiv := #MA0141, Antrieb_plus_aktiv := #MA0141, Schleuse_geöffnet := #MB3141, Y_Schleuse_Auf := #DHWtoVP_Zylinder.Schleuse_3141.Stat.Ast, Error := %DB708.DBW512, Antrieb_Schleuse_vor := #DHWtoVP_Antriebe.MA0141.Stat.A_vor, Antrieb_Schleuse_start := #DHWtoVP_Antriebe.MA0141.Stat.A_start, Antrieb_Schleuse_stop := #DHWtoVP_Antriebe.MA0141.Stat.Stop_vor, Antrieb_Schleuse_PS := #DHWtoVP_Antriebe.MA0141.Stat.A_PS, Antrieb_plus_vor := , Antrieb_plus_start := , hStOk := #ErrAnz); // über Weiche | über Ziel-FC | über Weiche | über Weiche
IF #MB3141 THEN #DHWtoVP_Zylinder.Weiche_3137.Stat.Ast := FALSE; END_IF;
END_REGION
REGION Weiche 3140 (zum Kontrollplatz)
#Antrieb_vor := FALSE;
#Antrieb_stop := FALSE;
#Antrieb_aktiv := #MA0141 AND #MA0143;
#Weiche_3140(Weichen_Nr := 3140, ErrQuit := #ErrQuit, Fahren_Ok := 1, B_Ziel_gerade := #BG3127, B_Ziel_abzweig := #BG3130, Antrieb_Weiche_aktiv := #Antrieb_aktiv, Antrieb_Gerade_aktiv := #MA0144, Antrieb_Abzweig_aktiv := #MA0142, Weiche_ist_AST := #MB3140, Y_Weiche_abzweig := #DHWtoVP_Zylinder.Weiche_3140.Stat.Ast, Error := %DB708.DBW510, Antrieb_Weiche_vor := #Antrieb_vor, Antrieb_Weiche_stop := #Antrieb_stop, Antrieb_Weiche_gerade_vor := #DHWtoVP_Antriebe.MA0144.Stat.A_vor, Antrieb_Weiche_gerade_stop := #DHWtoVP_Antriebe.MA0144.Stat.Stop_vor, Antrieb_Weiche_abzweig_vor := #DHWtoVP_Antriebe.MA0142.Stat.A_vor, Antrieb_Weiche_abzweig_stop := #DHWtoVP_Antriebe.MA0142.Stat.Stop_vor, hStOk := #ErrAnz);
IF #Antrieb_vor THEN
#DHWtoVP_Antriebe.MA0141.Stat.A_vor := TRUE;
#DHWtoVP_Antriebe.MA0143.Stat.A_vor := TRUE;
END_IF;
IF #Antrieb_stop THEN
#DHWtoVP_Antriebe.MA0141.Stat.Stop_vor := TRUE;
#DHWtoVP_Antriebe.MA0142.Stat.Stop_vor := TRUE;
END_IF;
IF FALSE THEN
#DHWtoVP_Antriebe.MA0141.Stat.Stop_vor := TRUE;
#DHWtoVP_Antriebe.MA0142.Stat.Stop_vor := TRUE;
#DHWtoVP_Antriebe.MA0144.Stat.Stop_vor := TRUE;
END_IF;
END_REGION
REGION Schleuse 3131(vor Kontrollplatz)
#Stau_raus := #DHWtoVP_Sensoren.Stau_BG3132.Stat.B_Akt OR #DHWtoVP_Sensoren.Stau_BG3133.Stat.B_Akt;
#Schleuse_3131(Schleusen_Nr := 3131, ErrQuit := #ErrQuit, B_VorSchleuse := #BG3130, B_InSchleuse := #BG3131, B_AusSchleuse := #BG3132, B_Stau_raus := #Stau_raus, Start_Ok := 1, Antrieb_Schleuse_aktiv := #MA0142, Antrieb_plus_aktiv := #MA0142, Schleuse_geöffnet := #MB3131, Y_Schleuse_Auf := #DHWtoVP_Zylinder.Schleuse_3131.Stat.Ast, Error := %DB708.DBW504, Antrieb_Schleuse_vor := #DHWtoVP_Antriebe.MA0142.Stat.A_vor, Antrieb_Schleuse_start := #DHWtoVP_Antriebe.MA0142.Stat.A_start, Antrieb_Schleuse_stop := #DHWtoVP_Antriebe.MA0142.Stat.Stop_vor, Antrieb_Schleuse_PS := #DHWtoVP_Antriebe.MA0142.Stat.A_PS, hStOk := #ErrAnz);
END_REGION
REGION Schleuse 3134 (Kontrollplatz)
#B_vor_Schleuse := (#BG3133 AND NOT (#BG3134)) OR #BG3132;
IF #Schleuse_3134.Dyn.Sk.Akt_Schritt <> 12 THEN #PF0136 := FALSE; END_IF;
#Schleuse_3134(Schleusen_Nr := 3134, ErrQuit := #ErrQuit, B_VorSchleuse := #B_vor_Schleuse, B_InSchleuse := #BG3134, B_AusSchleuse := #BG3135, B_Stau_raus := #DHWtoVP_Sensoren.Stau_BG3135.Stat.B_Akt, Start_Ok := 1, Antrieb_Schleuse_aktiv := #MA0142, Antrieb_plus_aktiv := #MA0143, Schleuse_geöffnet := #MB3134, Y_Schleuse_Auf := #DHWtoVP_Zylinder.Schleuse_3134.Stat.Ast, Error := %DB708.DBW506, Antrieb_Schleuse_vor := #DHWtoVP_Antriebe.MA0142.Stat.A_vor, Antrieb_Schleuse_start := #DHWtoVP_Antriebe.MA0142.Stat.A_start, Antrieb_Schleuse_stop := #DHWtoVP_Antriebe.MA0142.Stat.Stop_vor, Antrieb_Schleuse_PS := #DHWtoVP_Antriebe.MA0142.Stat.A_PS, Antrieb_plus_vor := #DHWtoVP_Antriebe.MA0143.Stat.A_vor, Antrieb_plus_start := #DHWtoVP_Antriebe.MA0143.Stat.A_start, hStOk := #ErrAnz);
END_REGION
REGION Schleuse 3136 (vor Weiche aus KontrollPlatz)
IF #BG3135 AND (NOT (#Schleuse_3136.Dyn.Error.Err_Stau_Einfahrt) OR NOT (#BG3136)) THEN #DHWtoVP_Antriebe.MA0143.Stat.A_vor := TRUE; END_IF;
#Start_ok := NOT (#MB3141);
#Schleuse_3136(Schleusen_Nr := 3136, ErrQuit := #ErrQuit, B_VorSchleuse := #BG3135, B_InSchleuse := #BG3136, B_Zähl := , B_Stau_raus := , Start_Ok := #Start_ok, Antrieb_Schleuse_aktiv := #MA0143, Antrieb_plus_aktiv := #MA0141, Schleuse_geöffnet := #MB3136, Y_Schleuse_Auf := #DHWtoVP_Zylinder.Schleuse_3136.Stat.Ast, Error := %DB708.DBW508, Antrieb_Schleuse_vor := #DHWtoVP_Antriebe.MA0143.Stat.A_vor, Antrieb_Schleuse_start := #DHWtoVP_Antriebe.MA0143.Stat.A_start, Antrieb_Schleuse_stop := #DHWtoVP_Antriebe.MA0143.Stat.Stop_vor, Antrieb_Schleuse_PS := #DHWtoVP_Antriebe.MA0143.Stat.A_PS, Antrieb_plus_vor := , Antrieb_plus_start := , hStOk := #ErrAnz); // über Weiche | über Ziel-FC | über Weiche | über Weiche
IF #MB3136 THEN #DHWtoVP_Zylinder.Weiche_3137.Stat.Ast := TRUE; END_IF;
END_REGION
REGION Störungen anzeigen UZ7101/7102
IF #ErrAnz THEN
#ErrAnz := FALSE;
#DOutbound_Bereich.A01_UZ7101.StOk_blinken := TRUE;
#DOutbound_Bereich.A01_UZ7102.StOk_blinken := TRUE;
#DOutbound_Bereich.A01_UC071.StOk_blinken := TRUE;
#DOutbound_Bereich.A01_UH07.StOk_blinken := TRUE;
END_IF;
END_REGION
REGION Ende
RETURN;
END_REGION
END_FUNCTION_BLOCK