242 lines
17 KiB
Plaintext
242 lines
17 KiB
Plaintext
FUNCTION_BLOCK "PS1_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
|
|
BG3323 : Word; // war "BG3323"
|
|
BG3361 : Word; // war "BG3361"
|
|
MA0062 : Bool; // war "MA0062"
|
|
MA0094 : Bool; // war "MA0094"
|
|
MB3351 : Byte; // war "MB3351"
|
|
MB3361 : Byte; // war "MB3361"
|
|
MB3481 : Byte; // war "MB3481"
|
|
MB3482 : Byte; // war "MB3482"
|
|
END_VAR
|
|
|
|
VAR_OUTPUT
|
|
DPS2_OmniFahren : Word; // war "DPS2_OmniFahren"
|
|
PF0050 : Word; // war "PF0050"
|
|
PF3360 : Word; // war "PF3360"
|
|
END_VAR
|
|
|
|
VAR_IN_OUT
|
|
BG3330 : Word; // war "BG3330"
|
|
BG3353 : Word; // war "BG3353"
|
|
BG3362 : Word; // war "BG3362"
|
|
BG3363 : Word; // war "BG3363"
|
|
BG3365 : Word; // war "BG3365"
|
|
BG3371 : Word; // war "BG3371"
|
|
BG3375 : Word; // war "BG3375"
|
|
BG3380 : Word; // war "BG3380"
|
|
BG3381 : Word; // war "BG3381"
|
|
BG3383 : Word; // war "BG3383"
|
|
BG3384 : Word; // war "BG3384"
|
|
DAMR_Bereich : Word; // war "DAMR_Bereich"
|
|
DArbeitspl_tze_Antriebe : Word; // war "DArbeitsplätze_Antriebe"
|
|
DArbeitspl_tze_Sensoren : Word; // war "DArbeitsplätze_Sensoren"
|
|
DArbeitspl_tze_Zylinder : Word; // war "DArbeitsplätze_Zylinder"
|
|
DPS5_OmniFahren : Word; // war "DPS5_OmniFahren"
|
|
MA0087 : Bool; // war "MA0087"
|
|
MA0090 : Bool; // war "MA0090"
|
|
MA0091 : Bool; // war "MA0091"
|
|
MA0092 : Bool; // war "MA0092"
|
|
MA0093 : Bool; // war "MA0093"
|
|
MA0105 : Bool; // war "MA0105"
|
|
MB3353 : Byte; // war "MB3353"
|
|
MB3362 : Byte; // war "MB3362"
|
|
MB3363 : Byte; // war "MB3363"
|
|
MB3365 : Byte; // war "MB3365"
|
|
MB3371 : Byte; // war "MB3371"
|
|
MB3375 : Byte; // war "MB3375"
|
|
MB3381 : Byte; // war "MB3381"
|
|
MB3383 : Byte; // war "MB3383"
|
|
END_VAR
|
|
|
|
VAR
|
|
Schleuse_vor_Einfahrt { S7_SetPoint := 'False'} : "MHMOmniSchleuse";
|
|
Weiche_Einfahrt { S7_SetPoint := 'False'} : "MHMOmniWeiche";
|
|
Schleuse_Vorstau { S7_SetPoint := 'False'} : "MHMOmniSchleuse";
|
|
Sks_Arbeitsplatz { S7_SetPoint := 'False'} : "MHM_Arbeitsplatz";
|
|
Schleuse_Platz_1 { S7_SetPoint := 'False'} : "MHMOmniSchleuse";
|
|
Schleuse_Platz_2 { S7_SetPoint := 'False'} : "MHMOmniSchleuse";
|
|
Schleuse_Platz_3 { S7_SetPoint := 'False'} : "MHMOmniSchleuse";
|
|
Schleuse_Ausfahrt : "MHMOmniSchleuse";
|
|
Schleuse_vor_Ausfahrt { S7_SetPoint := 'False'} : "MHMOmniSchleuse";
|
|
Prio_Ausfahrt { S7_SetPoint := 'False'} : "MAusfahrPrio_ABP";
|
|
Vorfahrt_Ausfahrweiche : Struct
|
|
"Weiche_von_Haupt-Sep_belegt" : Bool;
|
|
"Weiche_von_Ausfahr-Sep_belegt" : Bool;
|
|
Haupstrecke_gefahren : Int;
|
|
AMR_gefahren : Int;
|
|
END_STRUCT;
|
|
END_VAR
|
|
|
|
VAR_TEMP
|
|
ErrQuit : Bool;
|
|
ErrAnz : Bool;
|
|
Stau_raus : Bool;
|
|
Start_ok : Bool;
|
|
B_aktiv : Bool;
|
|
B_AusSchleuse : Bool;
|
|
Antrieb_aktiv : Bool;
|
|
Antrieb_start : Bool;
|
|
Antrieb_vor : Bool;
|
|
Antrieb_stop : Bool;
|
|
Fahren_Ok : Bool;
|
|
END_VAR
|
|
|
|
BEGIN
|
|
REGION Systemzeug
|
|
#Schleuse_vor_Einfahrt.Dyn.Sk.Auto_akt := #DAMR_Bereich.A01_UH06.AnlageEin;
|
|
#Weiche_Einfahrt.Dyn.Status.Auto_akt := #DAMR_Bereich.A01_UH06.AnlageEin;
|
|
#Sks_Arbeitsplatz.Dyn.Sk_zum_Beladeplatz.Auto_akt := #DAMR_Bereich.A01_UH06.AnlageEin;
|
|
#Schleuse_Vorstau.Dyn.Sk.Auto_akt := #DAMR_Bereich.A01_UH06.AnlageEin;
|
|
#Schleuse_Platz_1.Dyn.Sk.Auto_akt := #DAMR_Bereich.A01_UH06.AnlageEin;
|
|
#Schleuse_Platz_2.Dyn.Sk.Auto_akt := #DAMR_Bereich.A01_UH06.AnlageEin;
|
|
#Schleuse_Platz_3.Dyn.Sk.Auto_akt := #DAMR_Bereich.A01_UH06.AnlageEin;
|
|
#Sks_Arbeitsplatz.Dyn.Sk_aus_Beladeplatz.Auto_akt := #DAMR_Bereich.A01_UH06.AnlageEin;
|
|
#Schleuse_Ausfahrt.Dyn.Sk.Auto_akt := #DAMR_Bereich.A01_UH06.AnlageEin;
|
|
#Schleuse_vor_Ausfahrt.Dyn.Sk.Auto_akt := #DAMR_Bereich.A01_UH06.AnlageEin;
|
|
#Schleuse_vor_Einfahrt.Dyn.Sk.Bereich_ok := NOT (#DAMR_Bereich.A01_UH06.BereichErr);
|
|
#Weiche_Einfahrt.Dyn.Status.Bereich_ok := NOT (#DAMR_Bereich.A01_UH06.BereichErr);
|
|
#Sks_Arbeitsplatz.Dyn.Sk_zum_Beladeplatz.Bereich_ok := NOT (#DAMR_Bereich.A01_UH06.BereichErr);
|
|
#Schleuse_Vorstau.Dyn.Sk.Bereich_ok := NOT (#DAMR_Bereich.A01_UH06.BereichErr);
|
|
#Schleuse_Platz_1.Dyn.Sk.Bereich_ok := NOT (#DAMR_Bereich.A01_UH06.BereichErr);
|
|
#Schleuse_Platz_2.Dyn.Sk.Bereich_ok := NOT (#DAMR_Bereich.A01_UH06.BereichErr);
|
|
#Schleuse_Platz_3.Dyn.Sk.Bereich_ok := NOT (#DAMR_Bereich.A01_UH06.BereichErr);
|
|
#Sks_Arbeitsplatz.Dyn.Sk_aus_Beladeplatz.Bereich_ok := NOT (#DAMR_Bereich.A01_UH06.BereichErr);
|
|
#Schleuse_Ausfahrt.Dyn.Sk.Bereich_ok := NOT (#DAMR_Bereich.A01_UH06.BereichErr);
|
|
#Schleuse_vor_Ausfahrt.Dyn.Sk.Bereich_ok := NOT (#DAMR_Bereich.A01_UH06.BereichErr);
|
|
END_REGION
|
|
|
|
REGION Störungen quittieren
|
|
#ErrQuit := #DAMR_Bereich.A01_UZ0611.StOk_aktiv;
|
|
IF #DAMR_Bereich.A01_UZ0611.StOk_aktiv THEN
|
|
#DArbeitspl_tze_Antriebe."MA _Einfahrt_PS1".Stat.A_start := TRUE;
|
|
#DArbeitspl_tze_Antriebe."MA _Nachstau1_PS1".Stat.A_start := TRUE;
|
|
#DArbeitspl_tze_Antriebe."MA _Nachstau2_PS1".Stat.A_start := TRUE;
|
|
#DArbeitspl_tze_Antriebe."MA _Ausfahrt_PS1".Stat.A_start := TRUE;
|
|
#DArbeitspl_tze_Antriebe.MA0087.Stat.A_start := TRUE;
|
|
#DArbeitspl_tze_Antriebe.MA0094.Stat.A_start := TRUE;
|
|
#DArbeitspl_tze_Antriebe.MA0062.Stat.A_start := TRUE;
|
|
#DArbeitspl_tze_Antriebe.MA0105.Stat.A_start := TRUE;
|
|
END_IF;
|
|
END_REGION
|
|
|
|
REGION Schleuse vor Einfahrt
|
|
#Schleuse_vor_Einfahrt(Schleusen_Nr := 3353, ErrQuit := #ErrQuit, B_VorSchleuse := #BG3330, B_InSchleuse := #BG3353, B_AusSchleuse := , B_Stau_raus := , Start_Ok := 1, Antrieb_Schleuse_aktiv := #MA0087, Antrieb_plus_aktiv := 1, Schleuse_geöffnet := #MB3353, Y_Schleuse_Auf := #DArbeitspl_tze_Zylinder.Schleuse_Vor_Einfahrt_PS1.Stat.Ast, Error := %DB608.DBW276, Antrieb_Schleuse_vor := #DArbeitspl_tze_Antriebe.MA0087.Stat.A_vor, Antrieb_Schleuse_start := #DArbeitspl_tze_Antriebe.MA0087.Stat.A_start, Antrieb_Schleuse_stop := #DArbeitspl_tze_Antriebe.MA0087.Stat.Stop_vor, Antrieb_Schleuse_PS := #DArbeitspl_tze_Antriebe.MA0087.Stat.A_PS, hStOk := #ErrAnz); // Über Weiche_Einfahrt | Über Weiche_Einfahrt | Über Weiche_Einfahrt
|
|
IF #MB3353 THEN #DArbeitspl_tze_Zylinder.Weiche_Ausfahrt_PS2.Stat.Ast := FALSE; END_IF;
|
|
IF #Schleuse_vor_Einfahrt.Dyn.Status.Trolley_draussen THEN
|
|
#DPS2_OmniFahren.Vorfahrt_Ausfahrweiche."Weiche_von_Haupt-Sep_belegt" := FALSE;
|
|
#DPS2_OmniFahren.Vorfahrt_Ausfahrweiche."WeicheByPass_von_Haupt-Sep_belegt" := FALSE;
|
|
END_IF;
|
|
END_REGION
|
|
|
|
REGION Weiche Einfahrt
|
|
#Antrieb_vor := FALSE;
|
|
#Antrieb_start := FALSE;
|
|
#Antrieb_stop := FALSE;
|
|
#Antrieb_aktiv := (#MA0094 AND #MA0087) AND #MA0062;
|
|
#Weiche_Einfahrt(Weichen_Nr := 3362, ErrQuit := #ErrQuit, Fahren_Ok := 1, B_Ziel_gerade := #DArbeitspl_tze_Sensoren.Stau_nach_Ausfahrt_PS2.Stat.B_Akt, B_Ziel_abzweig := #DArbeitspl_tze_Sensoren.Stau_Einfahrt_PS1.Stat.B_Akt, Antrieb_Weiche_aktiv := #Antrieb_aktiv, Antrieb_Gerade_aktiv := #MA0087, Antrieb_Abzweig_aktiv := #MA0090, Weiche_ist_AST := #MB3362, Y_Weiche_abzweig := #DArbeitspl_tze_Zylinder.Weiche_Einfahrt_PS1.Stat.Ast, Error := %DB608.DBW280, Antrieb_Weiche_vor := #Antrieb_vor, Antrieb_Weiche_stop := #Antrieb_stop, Antrieb_Weiche_gerade_vor := , Antrieb_Weiche_gerade_stop := , Antrieb_Weiche_abzweig_vor := #DArbeitspl_tze_Antriebe."MA _Einfahrt_PS1".Stat.A_vor, Antrieb_Weiche_abzweig_stop := #DArbeitspl_tze_Antriebe."MA _Einfahrt_PS1".Stat.Stop_vor, hStOk := #ErrAnz); // s.o. | s.o.
|
|
IF #Antrieb_vor THEN
|
|
#DArbeitspl_tze_Antriebe.MA0094.Stat.A_vor := TRUE;
|
|
#DArbeitspl_tze_Antriebe.MA0087.Stat.A_vor := TRUE;
|
|
#DArbeitspl_tze_Antriebe.MA0062.Stat.A_vor := TRUE;
|
|
#DArbeitspl_tze_Antriebe.MA0094.Stat.A_start := TRUE;
|
|
#DArbeitspl_tze_Antriebe.MA0087.Stat.A_start := TRUE;
|
|
#DArbeitspl_tze_Antriebe.MA0062.Stat.A_start := TRUE;
|
|
END_IF;
|
|
IF #Antrieb_start THEN
|
|
#DArbeitspl_tze_Antriebe.MA0094.Stat.Stop_vor := TRUE;
|
|
#DArbeitspl_tze_Antriebe.MA0087.Stat.Stop_vor := TRUE;
|
|
#DArbeitspl_tze_Antriebe.MA0062.Stat.Stop_vor := TRUE;
|
|
END_IF;
|
|
END_REGION
|
|
|
|
REGION Schrittketten Arbeitsplätze ver-/entsorgen
|
|
#Sks_Arbeitsplatz(Arbeitsplatz_Nr := 16#A100, ErrQuit := #ErrQuit, B_In_Schleuse_Vorstau := #BG3363, B_an_Platz_1 := #BG3365, B_an_Platz_2 := #BG3371, B_an_Platz_3 := #BG3375, B_Nachstau_Einfahrt := #DArbeitspl_tze_Sensoren.Stau_Ausfahrt_PS1.Stat.B_Akt, B_Nachstau_Ausfahrt := #BG3381, Y_Vorstau := #MB3363, Y_Platz_1 := #MB3365, Y_Platz_2 := #MB3371, Y_Platz_3 := #MB3375, Antrieb_Vorstau_aktiv := #MA0090, Antrieb_Nachstau_1_aktiv := #MA0091, Antrieb_Nachstau_2_aktiv := #MA0092, Antrieb_Nachstau_3_aktiv := #MA0093, Y_Weiche_zu_Platz_1 := #DArbeitspl_tze_Zylinder.Weiche_zu_Platz1_PS1.Stat.Ast, Y_Weiche_zu_Platz_2 := #DArbeitspl_tze_Zylinder.Weiche_zu_Platz2_PS1.Stat.Ast, Y_Weiche_von_Platz_1 := #DArbeitspl_tze_Zylinder.Weiche_von_Platz1_PS1.Stat.Ast, Y_Weiche_von_Platz_2 := #DArbeitspl_tze_Zylinder.Weiche_von_Platz2_PS1.Stat.Ast, Antrieb_Nachstau_1_vor := #DArbeitspl_tze_Antriebe."MA _Nachstau1_PS1".Stat.A_vor, Antrieb_Nachstau_2_vor := #DArbeitspl_tze_Antriebe."MA _Nachstau2_PS1".Stat.A_vor, Trolley_hat_ABS_erreicht := #Schleuse_Vorstau.B_AusSchleuse, Reset_Vorstau_Schleuse := #Schleuse_Vorstau.Dyn.Sk.Reset, Reset_Platz_1_Stopper := #Schleuse_Platz_1.Dyn.Sk.Reset, Reset_Platz_2_Stopper := #Schleuse_Platz_2.Dyn.Sk.Reset, Reset_Platz_3_Stopper := #Schleuse_Platz_3.Dyn.Sk.Reset, Error := %DB608.DBW100, Antrieb_Vorstau_vor := #DArbeitspl_tze_Antriebe."MA _Einfahrt_PS1".Stat.A_vor, Antrieb_Nachstau_3_vor := #DArbeitspl_tze_Antriebe."MA _Ausfahrt_PS1".Stat.A_vor, hStOk := #ErrAnz); // XY00: X=A(PS), X=B(MPS), Y= Nummer des Platzes
|
|
#PF0050 := #DAMR_Bereich.A01_UH06.AnlageEin AND #Sks_Arbeitsplatz.Dyn.Status.Arbeitsplatz_aktiviert;
|
|
#PF3360 := #Sks_Arbeitsplatz.Dyn.SS.Externe_Anzeige;
|
|
END_REGION
|
|
|
|
REGION Schleuse Vorstau
|
|
#Schleuse_Vorstau(Schleusen_Nr := 3363, ErrQuit := #ErrQuit, B_VorSchleuse := #BG3362, B_InSchleuse := #BG3363, Start_Ok := 1, Antrieb_Schleuse_aktiv := #MA0090, Antrieb_plus_aktiv := 1, Schleuse_geöffnet := #MB3363, Y_Schleuse_Auf := #DArbeitspl_tze_Zylinder.Schleuse_Vorstau_PS1.Stat.Ast, Error := %DB608.DBW282, Antrieb_Schleuse_vor := #DArbeitspl_tze_Antriebe."MA _Einfahrt_PS1".Stat.A_vor, Antrieb_Schleuse_start := #DArbeitspl_tze_Antriebe."MA _Einfahrt_PS1".Stat.A_start, Antrieb_Schleuse_stop := #DArbeitspl_tze_Antriebe."MA _Einfahrt_PS1".Stat.Stop_vor, Antrieb_Schleuse_PS := #DArbeitspl_tze_Antriebe."MA _Einfahrt_PS1".Stat.A_PS, hStOk := #ErrAnz);
|
|
END_REGION
|
|
|
|
REGION Schleuse Platz 1
|
|
#Schleuse_Platz_1(Schleusen_Nr := 3365, ErrQuit := #ErrQuit, B_InSchleuse := #BG3365, Start_Ok := 1, Antrieb_Schleuse_aktiv := 1, Antrieb_plus_aktiv := #MA0091, Schleuse_geöffnet := #MB3365, Y_Schleuse_Auf := #DArbeitspl_tze_Zylinder.Schleuse_Platz1_PS1.Stat.Ast, Error := %DB608.DBW284, Antrieb_plus_vor := #DArbeitspl_tze_Antriebe."MA _Nachstau1_PS1".Stat.A_vor, hStOk := #ErrAnz);
|
|
IF #Schleuse_Platz_1.Dyn.Status.Trolley_draussen THEN #Sks_Arbeitsplatz.Dyn.Platz_1.Trolley_hat_Arbeitsplatz_verlassen := TRUE; END_IF;
|
|
IF #Schleuse_Platz_1.Dyn.Status.Trolley_draussen THEN #Sks_Arbeitsplatz.Dyn.Platz_1.TrolleyID_ausgefahren := #Schleuse_Platz_1.Dyn.TrolleyID_ausgefahren; END_IF;
|
|
END_REGION
|
|
|
|
REGION Schleuse Platz 2
|
|
#Schleuse_Platz_2(Schleusen_Nr := 3371, ErrQuit := #ErrQuit, B_InSchleuse := #BG3371, Start_Ok := 1, Antrieb_Schleuse_aktiv := 1, Antrieb_plus_aktiv := #MA0092, Schleuse_geöffnet := #MB3371, Y_Schleuse_Auf := #DArbeitspl_tze_Zylinder.Schleuse_Platz2_PS1.Stat.Ast, Error := %DB608.DBW286, Antrieb_plus_vor := #DArbeitspl_tze_Antriebe."MA _Nachstau2_PS1".Stat.A_vor, hStOk := #ErrAnz);
|
|
IF #Schleuse_Platz_2.Dyn.Status.Trolley_draussen THEN #Sks_Arbeitsplatz.Dyn.Platz_2.Trolley_hat_Arbeitsplatz_verlassen := TRUE; END_IF;
|
|
IF #Schleuse_Platz_2.Dyn.Status.Trolley_draussen THEN #Sks_Arbeitsplatz.Dyn.Platz_2.TrolleyID_ausgefahren := #Schleuse_Platz_2.Dyn.TrolleyID_ausgefahren; END_IF;
|
|
END_REGION
|
|
|
|
REGION Schleuse Platz 3
|
|
#Schleuse_Platz_3(Schleusen_Nr := 3375, ErrQuit := #ErrQuit, B_InSchleuse := #BG3375, Start_Ok := 1, Antrieb_Schleuse_aktiv := 1, Antrieb_plus_aktiv := #MA0093, Schleuse_geöffnet := #MB3375, Y_Schleuse_Auf := #DArbeitspl_tze_Zylinder.Schleuse_Platz3_PS1.Stat.Ast, Error := %DB608.DBW288, Antrieb_plus_vor := #DArbeitspl_tze_Antriebe."MA _Ausfahrt_PS1".Stat.A_vor, hStOk := #ErrAnz);
|
|
IF #Schleuse_Platz_3.Dyn.Status.Trolley_draussen THEN #Sks_Arbeitsplatz.Dyn.Platz_3.Trolley_hat_Arbeitsplatz_verlassen := TRUE; END_IF;
|
|
IF #Schleuse_Platz_3.Dyn.Status.Trolley_draussen THEN #Sks_Arbeitsplatz.Dyn.Platz_3.TrolleyID_ausgefahren := #Schleuse_Platz_3.Dyn.TrolleyID_ausgefahren; END_IF;
|
|
END_REGION
|
|
|
|
REGION Schleuse Ausfahrt
|
|
#Schleuse_Ausfahrt(Schleusen_Nr := 3381, ErrQuit := #ErrQuit, B_VorSchleuse := #BG3380, B_InSchleuse := #BG3381, B_AusSchleuse := #BG3384, B_Stau_raus := #DArbeitspl_tze_Sensoren.Stau_nach_Ausfahrt_PS1.Stat.B_Akt, Start_Ok := 1, Antrieb_Schleuse_aktiv := #MA0093, Antrieb_plus_aktiv := #MA0105, Schleuse_geöffnet := #MB3381, Y_Schleuse_Auf := #DArbeitspl_tze_Zylinder.Schleuse_Ausfahrt_PS1.Stat.Ast, Error := %DB608.DBW290, Antrieb_Schleuse_vor := #DArbeitspl_tze_Antriebe."MA _Ausfahrt_PS1".Stat.A_vor, Antrieb_Schleuse_start := #DArbeitspl_tze_Antriebe."MA _Ausfahrt_PS1".Stat.A_start, Antrieb_Schleuse_stop := #DArbeitspl_tze_Antriebe."MA _Ausfahrt_PS1".Stat.Stop_vor, Antrieb_Schleuse_PS := #DArbeitspl_tze_Antriebe."MA _Ausfahrt_PS1".Stat.A_PS, Antrieb_plus_vor := #DArbeitspl_tze_Antriebe.MA0105.Stat.A_vor, Antrieb_plus_start := #DArbeitspl_tze_Antriebe.MA0105.Stat.A_start, hStOk := #ErrAnz);
|
|
IF #MB3381 THEN #DArbeitspl_tze_Zylinder.Weiche_Ausfahrt_PS1.Stat.Ast := TRUE; END_IF;
|
|
IF #Schleuse_Ausfahrt.Dyn.Status.Trolley_draussen THEN #Vorfahrt_Ausfahrweiche."Weiche_von_Ausfahr-Sep_belegt" := FALSE; END_IF;
|
|
END_REGION
|
|
|
|
REGION Schleuse Hauptstrecke vor Ausfahrt
|
|
IF #MB3351 OR #MB3353 THEN #DArbeitspl_tze_Zylinder.Weiche_3361.Stat.Ast := FALSE; END_IF;
|
|
IF #MB3481 AND #MB3482 THEN #DArbeitspl_tze_Zylinder.Weiche_3361.Stat.Ast := TRUE; END_IF;
|
|
IF (#Schleuse_vor_Ausfahrt.Dyn.Status.Trolley_fährt_in_Schleuse AND NOT (#BG3323)) AND NOT (#MB3361) THEN #DArbeitspl_tze_Antriebe.MA0087.Stat.A_vor := TRUE; END_IF;
|
|
IF #Schleuse_vor_Ausfahrt.Dyn.Status.Trolley_fährt_in_Schleuse AND NOT (#BG3323) THEN
|
|
#DArbeitspl_tze_Antriebe.MA0062.Stat.A_vor := TRUE;
|
|
#DArbeitspl_tze_Antriebe.MA0105.Stat.A_vor := TRUE;
|
|
END_IF;
|
|
IF #DArbeitspl_tze_Sensoren.An_BG3383.Stat.B_Akt AND NOT (#BG3383) THEN #DArbeitspl_tze_Antriebe.MA0094.Stat.A_vor := TRUE; END_IF;
|
|
#B_aktiv := (((#MB3481 AND #MB3482) OR #MB3351) OR #MB3353) OR #BG3361;
|
|
#Antrieb_vor := FALSE;
|
|
#Antrieb_start := FALSE;
|
|
#Antrieb_stop := FALSE;
|
|
#Antrieb_aktiv := (#MA0094 AND #MA0087) AND #MA0062;
|
|
#Schleuse_vor_Ausfahrt(Schleusen_Nr := 3383, ErrQuit := #ErrQuit, B_VorSchleuse := #B_aktiv, B_InSchleuse := #BG3383, B_AusSchleuse := #BG3384, B_Stau_raus := #DArbeitspl_tze_Sensoren.Stau_nach_Ausfahrt_PS1.Stat.B_Akt, Start_Ok := 1, Antrieb_Schleuse_aktiv := #Antrieb_aktiv, Antrieb_plus_aktiv := #MA0105, Schleuse_geöffnet := #MB3383, Y_Schleuse_Auf := #DArbeitspl_tze_Zylinder.Schleuse_Vor_Ausfahrt_PS1.Stat.Ast, Error := %DB608.DBW292, Antrieb_Schleuse_vor := #Antrieb_vor, Antrieb_Schleuse_start := #Antrieb_start, Antrieb_Schleuse_stop := #Antrieb_stop, Antrieb_Schleuse_PS := #DArbeitspl_tze_Antriebe.MA0094.Stat.A_PS, Antrieb_plus_vor := #DArbeitspl_tze_Antriebe.MA0105.Stat.A_vor, Antrieb_plus_start := #DArbeitspl_tze_Antriebe.MA0105.Stat.A_start, hStOk := #ErrAnz);
|
|
IF #Antrieb_vor THEN
|
|
#DArbeitspl_tze_Antriebe.MA0094.Stat.A_vor := TRUE;
|
|
#DArbeitspl_tze_Antriebe.MA0087.Stat.A_vor := TRUE;
|
|
#DArbeitspl_tze_Antriebe.MA0062.Stat.A_vor := TRUE;
|
|
END_IF;
|
|
IF #Antrieb_start THEN
|
|
#DArbeitspl_tze_Antriebe.MA0094.Stat.A_start := TRUE;
|
|
#DArbeitspl_tze_Antriebe.MA0087.Stat.A_start := TRUE;
|
|
#DArbeitspl_tze_Antriebe.MA0062.Stat.A_start := TRUE;
|
|
END_IF;
|
|
IF #Antrieb_stop THEN
|
|
#DArbeitspl_tze_Antriebe.MA0094.Stat.Stop_vor := TRUE;
|
|
#DArbeitspl_tze_Antriebe.MA0087.Stat.Stop_vor := TRUE;
|
|
#DArbeitspl_tze_Antriebe.MA0062.Stat.Stop_vor := TRUE;
|
|
END_IF;
|
|
IF #MB3383 THEN #DArbeitspl_tze_Zylinder.Weiche_Ausfahrt_PS1.Stat.Ast := FALSE; END_IF;
|
|
IF #Schleuse_vor_Ausfahrt.Dyn.Status.Trolley_draussen THEN #Vorfahrt_Ausfahrweiche."Weiche_von_Haupt-Sep_belegt" := FALSE; END_IF;
|
|
END_REGION
|
|
|
|
REGION Ausfahr-Priorität
|
|
#Prio_Ausfahrt(BG_Haupt_Schleuse := #BG3383, Haupt_Schleuse_geöffnet := #MB3383, BG_ABP_Schleuse := #BG3381, ABP_Schleuse_geöffnet := #MB3381, Aktive_ABP := #DPS5_OmniFahren.Aktivierte_ABPs);
|
|
END_REGION
|
|
|
|
REGION Störungen anzeigen
|
|
IF #ErrAnz THEN
|
|
#ErrAnz := FALSE;
|
|
#DAMR_Bereich.A01_UZ0611.StOk_blinken := TRUE;
|
|
END_IF;
|
|
END_REGION
|
|
|
|
REGION Ende
|
|
RETURN;
|
|
END_REGION
|
|
|
|
END_FUNCTION_BLOCK
|