Files
HundM_awl/SCL-Export/=A01+UH07-KF00/LPtoHW_OmniFahren.scl
T

333 lines
22 KiB
Plaintext

FUNCTION_BLOCK "LPtoHW_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
g_1s_Impuls : Word; // war "1s-Impuls"
g_7_HMI_Err_UH07_OB : Word; // war "7_HMI_Err_UH07_OB"
Clock_5Hz : Word; // war "Clock_5Hz"
DLeerPufferStrecken : Word; // war "DLeerPufferStrecken"
END_VAR
VAR_OUTPUT
PF0033 : Word; // war "PF0033"
PF0044 : Word; // war "PF0044"
PF0046 : Word; // war "PF0046"
END_VAR
VAR_IN_OUT
BG3322 : Word; // war "BG3322"
BG3323 : Word; // war "BG3323"
BG3325 : Word; // war "BG3325"
BG3326 : Word; // war "BG3326"
BG3342 : Word; // war "BG3342"
BG3343 : Word; // war "BG3343"
BG3344 : Word; // war "BG3344"
BG3345 : Word; // war "BG3345"
BG3720 : Word; // war "BG3720"
BG3721 : Word; // war "BG3721"
BG3722 : Word; // war "BG3722"
BG3723 : Word; // war "BG3723"
BG3732 : Word; // war "BG3732"
BG4211 : Word; // war "BG4211"
BG4220 : Word; // war "BG4220"
BG4221 : Word; // war "BG4221"
BG4224 : Word; // war "BG4224"
BG4225 : Word; // war "BG4225"
BG4226 : Word; // war "BG4226"
BG4227 : Word; // war "BG4227"
BG4231 : Word; // war "BG4231"
BG4232 : Word; // war "BG4232"
BG4233 : Word; // war "BG4233"
BG4235 : Word; // war "BG4235"
BG4236 : Word; // war "BG4236"
DHWtoVP_Antriebe : Word; // war "DHWtoVP_Antriebe"
DLPtoHW_Antriebe : Word; // war "DLPtoHW_Antriebe"
DLPtoHW_Sensoren : Word; // war "DLPtoHW_Sensoren"
DLPtoHW_Zylinder : Word; // war "DLPtoHW_Zylinder"
DOutbound_Bereich : Word; // war "DOutbound_Bereich"
DSchnittstelle_zu_AMR : Word; // war "DSchnittstelle_zu_AMR"
MA0065 : Bool; // war "MA0065"
MA0066 : Bool; // war "MA0066"
MA0202 : Bool; // war "MA0202"
MA0203 : Bool; // war "MA0203"
MA0263 : Bool; // war "MA0263"
MA0264 : Bool; // war "MA0264"
MA0265 : Bool; // war "MA0265"
MA0266 : Bool; // war "MA0266"
MA0267 : Bool; // war "MA0267"
MA0270 : Bool; // war "MA0270"
MB3323 : Byte; // war "MB3323"
MB3325 : Byte; // war "MB3325"
MB3342 : Byte; // war "MB3342"
MB3345 : Byte; // war "MB3345"
MB3722 : Byte; // war "MB3722"
MB4221 : Byte; // war "MB4221"
MB4223 : Byte; // war "MB4223"
MB4227 : Byte; // war "MB4227"
MB4235 : Byte; // war "MB4235"
END_VAR
VAR
Schleuse_3342 { S7_SetPoint := 'False'} : "MHMOmniSchleuse";
Schleuse_3323 { S7_SetPoint := 'False'} : "MHMOmniSchleuse";
Schleuse_3325 { S7_SetPoint := 'False'} : "MHMOmniSchleuse_Plus";
Bereich_4236 : "MHMOmniBereich_Plus";
Schleuse_4221 { S7_SetPoint := 'False'} : "MHMOmniSchleuse_Plus";
Weiche_4223 : "MHMOmniWeiche_Plus";
Schleuse_4227 { S7_SetPoint := 'False'} : "MHMOmniSchleuse";
Bereich_4232 : "MHMOmniBereich_Plus";
Schleuse_4235 { S7_SetPoint := 'False'} : "MHMOmniSchleuse";
Bereich_3732 : "MHMOmniBereich_Plus";
Schleuse_3722 { S7_SetPoint := 'False'} : "MHMOmniSchleuse_Plus";
Schleuse_3345 { S7_SetPoint := 'False'} : "MHMOmniSchleuse";
Übergang_4225 { S7_SetPoint := 'False'} : "MHMÜbergang_ohne_Schleuse";
Trolleys_starten : Struct
Flanke : Bool;
Wartezeit_aktiv : Bool;
Timer_Wartenzeit { S7_SetPoint := 'True'} : Int;
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;
tGen1_Flanke : Bool;
END_VAR
BEGIN
REGION Systemzeug
#Schleuse_3342.Dyn.Sk.Auto_akt := #DOutbound_Bereich.A01_UH07.AnlageEin;
#Schleuse_3323.Dyn.Sk.Auto_akt := #DOutbound_Bereich.A01_UH07.AnlageEin;
#Schleuse_3345.Dyn.Sk.Auto_akt := #DOutbound_Bereich.A01_UH07.AnlageEin;
#Schleuse_3325.Dyn.Sk.Auto_akt := #DOutbound_Bereich.A01_UH07.AnlageEin;
#Bereich_4236.Dyn.Sk.Auto_akt := #DOutbound_Bereich.A01_UH07.AnlageEin;
#Schleuse_4221.Dyn.Sk.Auto_akt := #DOutbound_Bereich.A01_UH07.AnlageEin;
#Weiche_4223.Dyn.Status.Auto_akt := #DOutbound_Bereich.A01_UH07.AnlageEin;
#Schleuse_4227.Dyn.Sk.Auto_akt := #DOutbound_Bereich.A01_UH07.AnlageEin;
#Bereich_4232.Dyn.Sk.Auto_akt := #DOutbound_Bereich.A01_UH07.AnlageEin;
#Schleuse_4235.Dyn.Sk.Auto_akt := #DOutbound_Bereich.A01_UH07.AnlageEin;
#Bereich_3732.Dyn.Sk.Auto_akt := #DOutbound_Bereich.A01_UH07.AnlageEin;
#Schleuse_3722.Dyn.Sk.Auto_akt := #DOutbound_Bereich.A01_UH07.AnlageEin;
#Schleuse_3342.Dyn.Sk.Bereich_ok := NOT (#DOutbound_Bereich.A01_UH07.BereichErr);
#Schleuse_3323.Dyn.Sk.Bereich_ok := NOT (#DOutbound_Bereich.A01_UH07.BereichErr);
#Schleuse_3345.Dyn.Sk.Bereich_ok := NOT (#DOutbound_Bereich.A01_UH07.BereichErr);
#Schleuse_3325.Dyn.Sk.Bereich_ok := NOT (#DOutbound_Bereich.A01_UH07.BereichErr);
#Bereich_4236.Dyn.Sk.Bereich_ok := NOT (#DOutbound_Bereich.A01_UH07.BereichErr);
#Schleuse_4221.Dyn.Sk.Bereich_ok := NOT (#DOutbound_Bereich.A01_UC073.BereichErr);
#Weiche_4223.Dyn.Status.Bereich_ok := NOT (#DOutbound_Bereich.A01_UC073.BereichErr);
#Schleuse_4227.Dyn.Sk.Bereich_ok := NOT (#DOutbound_Bereich.A01_UC073.BereichErr);
#Bereich_4232.Dyn.Sk.Bereich_ok := NOT (#DOutbound_Bereich.A01_UC073.BereichErr);
#Schleuse_4235.Dyn.Sk.Bereich_ok := NOT (#DOutbound_Bereich.A01_UC073.BereichErr);
#Bereich_3732.Dyn.Sk.Bereich_ok := NOT (#DOutbound_Bereich.A01_UC072.BereichErr);
#Schleuse_3722.Dyn.Sk.Bereich_ok := NOT (#DOutbound_Bereich.A01_UC072.BereichErr);
END_REGION
REGION Störungen quittieren UZ0703
#ErrQuit := #DOutbound_Bereich.A01_UZ0703.StOk_aktiv OR #DOutbound_Bereich.A01_UH07.StOk_aktiv;
END_REGION
REGION Schleuse 3342 (Vor BeladePlatz)
#Stau_raus := #DLPtoHW_Sensoren.An_BG3323.Stat.B_Akt;
#B_nach_Schleuse := #DLPtoHW_Sensoren.An_BG3323.Stat.B_Akt;
#Schleuse_3342(Schleusen_Nr := 3342, ErrQuit := #ErrQuit, B_VorSchleuse := #BG3322, B_InSchleuse := #BG3342, B_AusSchleuse := #B_nach_Schleuse, B_Stau_raus := #Stau_raus, Start_Ok := 1, Antrieb_Schleuse_aktiv := #MA0065, Antrieb_plus_aktiv := #MA0065, Schleuse_geöffnet := #MB3342, Y_Schleuse_Auf := #DLPtoHW_Zylinder.Schleuse_3342.Stat.Ast, Error := %DB708.DBW572, Antrieb_Schleuse_vor := #DLPtoHW_Antriebe.MA0065.Stat.A_vor, Antrieb_Schleuse_start := #DLPtoHW_Antriebe.MA0065.Stat.A_start, Antrieb_Schleuse_stop := #DLPtoHW_Antriebe.MA0065.Stat.Stop_vor, Antrieb_Schleuse_PS := #DLPtoHW_Antriebe.MA0065.Stat.A_PS, Antrieb_plus_vor := , hStOk := #ErrAnz); // Identisch
END_REGION
REGION Schleuse 3323 (BeladePlatz)
#PF0046 := #DOutbound_Bereich.A01_UH07.AnlageEin AND ((#DLeerPufferStrecken.DurchfahrModus.Aktiv AND #Clock_5Hz) OR NOT (#DLeerPufferStrecken.DurchfahrModus.Aktiv)); // Beladung bereit bei Dauerlicht
IF #Schleuse_3323.Dyn.Sk.Akt_Schritt <> 12 THEN
#PF0033 := FALSE;
#PF0044 := FALSE;
END_IF;
#Schleuse_3323(Schleusen_Nr := 3323, ErrQuit := #ErrQuit, B_VorSchleuse := #MB3342, B_InSchleuse := #BG3323, B_AusSchleuse := #BG3343, B_Stau_raus := #DLPtoHW_Sensoren.Stau_BG3343.Stat.B_Akt, Start_Ok := 1, Antrieb_Schleuse_aktiv := #MA0065, Schleuse_geöffnet := #MB3323, Y_Schleuse_Auf := #DLPtoHW_Zylinder.Schleuse_3323.Stat.Ast, Error := %DB708.DBW526, Antrieb_Schleuse_vor := #DLPtoHW_Antriebe.MA0065.Stat.A_vor, Antrieb_Schleuse_start := #DLPtoHW_Antriebe.MA0065.Stat.A_start, Antrieb_Schleuse_stop := #DLPtoHW_Antriebe.MA0065.Stat.Stop_vor, Antrieb_Schleuse_PS := #DLPtoHW_Antriebe.MA0065.Stat.A_PS, hStOk := #ErrAnz);
END_REGION
REGION Schleuse 3345 (Hinter BeladePlatz)
#Schleuse_3345(Schleusen_Nr := 3345, ErrQuit := #ErrQuit, B_VorSchleuse := #BG3343, B_InSchleuse := #BG3345, B_AusSchleuse := #BG3344, B_Stau_raus := #DLPtoHW_Sensoren.Stau_BG3344.Stat.B_Akt, Start_Ok := 1, Antrieb_Schleuse_aktiv := #MA0065, Schleuse_geöffnet := #MB3345, Y_Schleuse_Auf := #DLPtoHW_Zylinder.Schleuse_3345.Stat.Ast, Error := %DB708.DBW586, Antrieb_Schleuse_vor := #DLPtoHW_Antriebe.MA0065.Stat.A_vor, Antrieb_Schleuse_start := #DLPtoHW_Antriebe.MA0065.Stat.A_start, Antrieb_Schleuse_stop := #DLPtoHW_Antriebe.MA0065.Stat.Stop_vor, Antrieb_Schleuse_PS := #DLPtoHW_Antriebe.MA0065.Stat.A_PS, hStOk := #ErrAnz);
END_REGION
REGION Wartezeit bis erneuter Trolleystart sinnvoll (wegen Staubildung)
#tGen1_Flanke := #MB3325 AND NOT #Trolleys_starten.Flanke;
#Trolleys_starten.Flanke := #MB3325;
IF #tGen1_Flanke THEN #Trolleys_starten.Wartezeit_aktiv := TRUE; END_IF;
IF #tGen1_Flanke THEN #Trolleys_starten.Timer_Wartenzeit := 15; END_IF;
IF NOT (#Trolleys_starten.Wartezeit_aktiv) OR ((#MB3325 AND NOT (#MA0065)) OR NOT (#g_1s_Impuls)) THEN GOTO Wait; END_IF;
#Trolleys_starten.Timer_Wartenzeit := #Trolleys_starten.Timer_Wartenzeit + -1;
IF (#Trolleys_starten.Timer_Wartenzeit + -1) > 0 THEN GOTO Wait; END_IF;
#Trolleys_starten.Wartezeit_aktiv := FALSE;
Wait: ;
END_REGION
REGION Schleuse 3325
#Fahren_Ok := NOT (#Trolleys_starten.Wartezeit_aktiv);
#B_vor_Schleuse := #BG3343 OR #BG3344;
#Schleuse_3325(Schleusen_Nr := 3325, ErrQuit := #ErrQuit, B_VorSchleuse := #B_vor_Schleuse, B_InSchleuse := #BG3325, B_Zähl := #BG3326, B_Stau_raus := #DLPtoHW_Sensoren.Stau_BG3326.Stat.B_Akt, Start_Ok := 1, Antrieb_Schleuse_aktiv := #MA0065, Antrieb_plus_aktiv := #MA0066, Schleuse_geöffnet := #MB3325, RestZeit_Bereich_plus := #Bereich_4236.Dyn.Restzeit, Y_Schleuse_Auf := #DLPtoHW_Zylinder.Schleuse_3325.Stat.Ast, Error := %DB708.DBW574, Antrieb_Schleuse_vor := #DLPtoHW_Antriebe.MA0065.Stat.A_vor, Antrieb_Schleuse_start := #DLPtoHW_Antriebe.MA0065.Stat.A_start, Antrieb_Schleuse_stop := #DLPtoHW_Antriebe.MA0065.Stat.Stop_vor, Antrieb_Schleuse_PS := #DLPtoHW_Antriebe.MA0065.Stat.A_PS, Antrieb_plus_vor := #Bereich_4236.Dyn.Status.Trolley_kommt_in_Bereich, hStOk := #ErrAnz);
END_REGION
REGION Störungen anzeigen UZ0703
IF #ErrAnz THEN
#ErrAnz := FALSE;
#DOutbound_Bereich.A01_UZ0703.StOk_blinken := TRUE;
#DOutbound_Bereich.A01_UH07.StOk_blinken := TRUE;
END_IF;
END_REGION
REGION Störungen quittieren UZ0703/7303
#ErrQuit := (#DOutbound_Bereich.A01_UZ0703.StOk_aktiv OR #DOutbound_Bereich.A01_UZ7303.StOk_aktiv) OR #DOutbound_Bereich.A01_UH07.StOk_aktiv;
END_REGION
REGION Bereich 4236
#B_vor_Schleuse := #BG3326 AND #MB3325;
#Fahren_Ok := #Schleuse_4221.Dyn.Sk.Bereich_ok AND NOT (#BG4221);
#Bereich_4236(Bereichs_Nr := 4236, ErrQuit := #ErrQuit, B_BereichsAnfang := #B_vor_Schleuse, B_BereichsEnde := #BG4236, B_Zähl := #BG4220, B_Stau_raus := #DLPtoHW_Sensoren.Stau_BG4220.Stat.B_Akt, Start_Ok := #Schleuse_4221.Dyn.Sk.Bereich_ok, Antrieb_Bereich_aktiv := #MA0066, Antrieb_plus_aktiv := #MA0264, Antrieb_Bereich_vor := #DLPtoHW_Antriebe.MA0066.Stat.A_vor, Antrieb_Bereich_stop := #DLPtoHW_Antriebe.MA0066.Stat.Stop_vor, Error := %DB708.DBW472, Antrieb_Bereich_start := #DLPtoHW_Antriebe.MA0066.Stat.A_start, Antrieb_plus_vor := #DLPtoHW_Antriebe.MA0264.Stat.A_vor, Antrieb_plus_start := #DLPtoHW_Antriebe.MA0264.Stat.A_start, Antrieb_minus_vor := #DLPtoHW_Antriebe.MA0065.Stat.A_vor, hStOk := #ErrAnz);
END_REGION
REGION Störungen anzeigen UZ0703/7303
IF #ErrAnz THEN
#ErrAnz := FALSE;
#DOutbound_Bereich.A01_UZ0703.StOk_blinken := TRUE;
#DOutbound_Bereich.A01_UZ7303.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 4221 (vor ByPass)
#Schleuse_4221(Schleusen_Nr := 4221, ErrQuit := #ErrQuit, B_VorSchleuse := #BG4220, B_InSchleuse := #BG4221, B_Zähl := , B_Stau_raus := , Start_Ok := 1, Antrieb_Schleuse_aktiv := #MA0264, Antrieb_plus_aktiv := 1, Schleuse_geöffnet := #MB4221, Y_Schleuse_Auf := #DLPtoHW_Zylinder.Schleuse_4221.Stat.Ast, Error := %DB708.DBW550, Antrieb_Schleuse_vor := #DLPtoHW_Antriebe.MA0264.Stat.A_vor, Antrieb_Schleuse_start := #DLPtoHW_Antriebe.MA0264.Stat.A_start, Antrieb_Schleuse_stop := #DLPtoHW_Antriebe.MA0264.Stat.Stop_vor, Antrieb_Schleuse_PS := #DLPtoHW_Antriebe.MA0264.Stat.A_PS, Antrieb_plus_vor := , Antrieb_plus_start := , hStOk := #ErrAnz); // über Weiche | über Weiche | über Weiche | über Weiche
END_REGION
REGION Weiche 4223 (ByPass zu VP)
#Antrieb_vor := FALSE;
#Antrieb_stop := FALSE;
#Antrieb_aktiv := #MA0264 AND #MA0265;
#Weiche_4223(Weichen_Nr := 4223, ErrQuit := #ErrQuit, Fahren_Ok := 1, B_Ziel_gerade := #BG4224, B_Ziel_abzweig := #BG4211, Antrieb_Weiche_aktiv := #Antrieb_aktiv, Antrieb_Gerade_aktiv := #MA0265, Antrieb_Abzweig_aktiv := #MA0263, Weiche_ist_AST := #MB4223, Y_Weiche_abzweig := #DLPtoHW_Zylinder.Weiche_4223.Stat.Ast, Error := %DB708.DBW546, Antrieb_Weiche_vor := #Antrieb_vor, Antrieb_Weiche_stop := #Antrieb_stop, Antrieb_Weiche_gerade_vor := , Antrieb_Weiche_gerade_stop := , Antrieb_Weiche_abzweig_vor := #DHWtoVP_Antriebe.MA0263.Stat.A_vor, Antrieb_Weiche_abzweig_stop := #DHWtoVP_Antriebe.MA0263.Stat.Stop_vor, hStOk := #ErrAnz); // schon gesetzt | schon gesetzt
IF #Antrieb_vor THEN
#DLPtoHW_Antriebe.MA0264.Stat.A_vor := TRUE;
#DLPtoHW_Antriebe.MA0265.Stat.A_vor := TRUE;
END_IF;
IF #Antrieb_stop THEN
#DLPtoHW_Antriebe.MA0264.Stat.Stop_vor := TRUE;
#DLPtoHW_Antriebe.MA0265.Stat.Stop_vor := TRUE;
END_IF;
IF #Weiche_4223.Dyn.Status.Weiche_frei THEN #DLPtoHW_Zylinder.Weiche_4223.Stat.Ast := FALSE; END_IF;
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/7302
#ErrQuit := ((#DOutbound_Bereich.A01_UZ7303.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 MA0265 / Übergang 4225
#Übergang_4225(ErrQuit := #ErrQuit, B_Anfang := #BG4224, B_Am_Übergang := #BG4225, B_Stau_Antrieb_plus := #BG4226, Antrieb_aktiv := #MA0265, Antrieb_plus_aktiv := #MA0266, Antrieb_vor := #DLPtoHW_Antriebe.MA0265.Stat.A_vor, Antrieb_start := #DLPtoHW_Antriebe.MA0265.Stat.A_start, Antrieb_stop := #DLPtoHW_Antriebe.MA0265.Stat.A_PS, Antrieb_plus_vor := #DLPtoHW_Antriebe.MA0266.Stat.A_vor, Antrieb_plus_start := #DLPtoHW_Antriebe.MA0266.Stat.A_start);
END_REGION
REGION Schleuse 4227
#Schleuse_4227(Schleusen_Nr := 4227, ErrQuit := #ErrQuit, B_VorSchleuse := #BG4225, B_InSchleuse := #BG4227, B_AusSchleuse := #BG4231, B_Stau_raus := #DLPtoHW_Sensoren.Stau_BG4231.Stat.B_Akt, Start_Ok := 1, Antrieb_Schleuse_aktiv := #MA0266, Antrieb_plus_aktiv := #MA0267, Schleuse_geöffnet := #MB4227, RestZeit_Bereich_plus := #Bereich_4232.Dyn.Restzeit, Y_Schleuse_Auf := #DLPtoHW_Zylinder.Schleuse_4227.Stat.Ast, Error := %DB708.DBW548, Antrieb_Schleuse_vor := #DLPtoHW_Antriebe.MA0266.Stat.A_vor, Antrieb_Schleuse_start := #DLPtoHW_Antriebe.MA0266.Stat.A_start, Antrieb_Schleuse_stop := #DLPtoHW_Antriebe.MA0266.Stat.Stop_vor, Antrieb_Schleuse_PS := #DLPtoHW_Antriebe.MA0266.Stat.A_PS, Antrieb_plus_vor := #Bereich_4232.Dyn.Status.Trolley_kommt_in_Bereich, hStOk := #ErrAnz);
END_REGION
REGION Störungen anzeigen UZ7303/7302
IF #ErrAnz THEN
#ErrAnz := FALSE;
#DOutbound_Bereich.A01_UZ7303.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
#ErrQuit := (#DOutbound_Bereich.A01_UZ7302.StOk_aktiv OR #DOutbound_Bereich.A01_UC073.StOk_aktiv) OR #DOutbound_Bereich.A01_UH07.StOk_aktiv;
END_REGION
REGION Bereich 4232
#B_vor_Schleuse := #BG4231 AND #MB4227;
#Stau_raus := #DLPtoHW_Sensoren.Stau_BG4233.Stat.B_Akt OR #DLPtoHW_Sensoren.Stau_BG4234.Stat.B_Akt;
#Bereich_4232(Bereichs_Nr := 4232, ErrQuit := #ErrQuit, B_BereichsAnfang := #B_vor_Schleuse, B_BereichsEnde := #BG4232, B_Zähl := #BG4233, B_Stau_raus := #Stau_raus, Start_Ok := 1, Antrieb_Bereich_aktiv := #MA0267, Antrieb_plus_aktiv := #MA0270, Antrieb_Bereich_vor := #DLPtoHW_Antriebe.MA0267.Stat.A_vor, Antrieb_Bereich_stop := #DLPtoHW_Antriebe.MA0267.Stat.Stop_vor, Error := %DB708.DBW470, Antrieb_Bereich_start := #DLPtoHW_Antriebe.MA0267.Stat.A_start, Antrieb_plus_vor := #DLPtoHW_Antriebe.MA0270.Stat.A_vor, Antrieb_plus_start := #DLPtoHW_Antriebe.MA0270.Stat.A_start, Antrieb_minus_vor := #DLPtoHW_Antriebe.MA0266.Stat.A_vor, hStOk := #ErrAnz);
END_REGION
REGION Schleuse 4235 (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 #Bereich_3732.Dyn.Sk.Bereich_ok;
#Schleuse_4235(Schleusen_Nr := 4235, ErrQuit := #ErrQuit, B_VorSchleuse := #BG4233, B_InSchleuse := #BG4235, B_AusSchleuse := #BG3720, B_Stau_raus := #DLPtoHW_Sensoren.Stau_BG3720.Stat.B_Akt, Start_Ok := #Fahren_Ok, Antrieb_Schleuse_aktiv := #MA0270, Antrieb_plus_aktiv := #MA0202, Schleuse_geöffnet := #MB4235, RestZeit_Bereich_plus := #Bereich_3732.Dyn.Restzeit, Y_Schleuse_Auf := #DLPtoHW_Zylinder.Schleuse_4235.Stat.Ast, Error := %DB708.DBW552, Antrieb_Schleuse_vor := #DLPtoHW_Antriebe.MA0270.Stat.A_vor, Antrieb_Schleuse_start := #DLPtoHW_Antriebe.MA0270.Stat.A_start, Antrieb_Schleuse_stop := #DLPtoHW_Antriebe.MA0270.Stat.Stop_vor, Antrieb_Schleuse_PS := #DLPtoHW_Antriebe.MA0270.Stat.A_PS, Antrieb_plus_vor := #Bereich_3732.Dyn.Status.Trolley_kommt_in_Bereich, hStOk := #ErrAnz);
END_REGION
REGION Störungen anzeigen UZ7302
IF #ErrAnz THEN
#ErrAnz := FALSE;
#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 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 Bereich 3732 (hinter BST 2)
#B_vor_Schleuse := #BG3720 AND #MB4235;
#Bereich_3732(Bereichs_Nr := 3732, ErrQuit := #ErrQuit, B_BereichsAnfang := #B_vor_Schleuse, B_BereichsEnde := #BG3732, B_Zähl := #BG3721, B_Stau_raus := #DLPtoHW_Sensoren.Stau_BG3721.Stat.B_Akt, Start_Ok := 1, Antrieb_Bereich_aktiv := #MA0202, Antrieb_plus_aktiv := #MA0203, Antrieb_Bereich_vor := #DLPtoHW_Antriebe.MA0202.Stat.A_vor, Antrieb_Bereich_stop := #DLPtoHW_Antriebe.MA0202.Stat.Stop_vor, Error := %DB708.DBW460, Antrieb_Bereich_start := #DLPtoHW_Antriebe.MA0202.Stat.A_start, Antrieb_plus_vor := #DLPtoHW_Antriebe.MA0203.Stat.A_vor, Antrieb_plus_start := #DLPtoHW_Antriebe.MA0203.Stat.A_start, 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/7201
#ErrQuit := ((#DOutbound_Bereich.A01_UZ7202.StOk_aktiv OR #DOutbound_Bereich.A01_UZ7201.StOk_aktiv) OR #DOutbound_Bereich.A01_UC072.StOk_aktiv) OR #DOutbound_Bereich.A01_UH07.StOk_aktiv;
END_REGION
REGION Schleuse 3722 (Übergabe an AMR / UH06)
#DSchnittstelle_zu_AMR.To_UH06.MA0203_A_vor := FALSE;
#DSchnittstelle_zu_AMR.To_UH06.MA0203_A_start := FALSE;
#Schleuse_3722(Schleusen_Nr := 3722, ErrQuit := #ErrQuit, B_VorSchleuse := #BG3721, B_InSchleuse := #BG3722, B_Zähl := #BG3723, B_Stau_raus := #DLPtoHW_Sensoren.Stau_BG3723.Stat.B_Akt, Start_Ok := #DSchnittstelle_zu_AMR.From_UH06.MA0203_kein_Stau, Antrieb_Schleuse_aktiv := #MA0203, Antrieb_plus_aktiv := #DSchnittstelle_zu_AMR.From_UH06.MA0203_aktiv, Schleuse_geöffnet := #MB3722, Y_Schleuse_Auf := #DLPtoHW_Zylinder.Schleuse_3722.Stat.Ast, Error := %DB708.DBW534, Antrieb_Schleuse_vor := #DLPtoHW_Antriebe.MA0203.Stat.A_vor, Antrieb_Schleuse_start := #DLPtoHW_Antriebe.MA0203.Stat.A_start, Antrieb_Schleuse_stop := #DLPtoHW_Antriebe.MA0203.Stat.Stop_vor, Antrieb_Schleuse_PS := #DLPtoHW_Antriebe.MA0203.Stat.A_PS, Antrieb_plus_vor := #DSchnittstelle_zu_AMR.To_UH06.MA0203_A_vor, Antrieb_plus_start := #DSchnittstelle_zu_AMR.To_UH06.MA0203_A_start, hStOk := #ErrAnz);
IF #DLPtoHW_Sensoren.Fährt_zu_UH06.Stat.B_Akt THEN
#DSchnittstelle_zu_AMR.To_UH06.MA0203_A_vor := TRUE;
#DSchnittstelle_zu_AMR.To_UH06.MA0203_A_start := TRUE;
#DLPtoHW_Antriebe.MA0203.Stat.A_vor := TRUE;
END_IF;
END_REGION
REGION Störungen anzeigen UZ7202/7201
IF #ErrAnz THEN
#ErrAnz := FALSE;
#DOutbound_Bereich.A01_UZ7202.StOk_blinken := TRUE;
#DOutbound_Bereich.A01_UZ7201.StOk_blinken := TRUE;
#DOutbound_Bereich.A01_UC072.StOk_blinken := TRUE;
#DOutbound_Bereich.A01_UH07.StOk_blinken := TRUE;
END_IF;
END_REGION
REGION Ende
RETURN;
END_REGION
END_FUNCTION_BLOCK