diff --git a/SCL-Export/=A01+UH06-KF00/Arbeitsplätze.scl b/SCL-Export/=A01+UH06-KF00/Arbeitsplätze.scl new file mode 100644 index 0000000..0605f47 --- /dev/null +++ b/SCL-Export/=A01+UH06-KF00/Arbeitsplätze.scl @@ -0,0 +1,93 @@ +FUNCTION "Arbeitsplätze" : Void +{ 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 + SGes : Word; // war "SGes" + END_VAR + + VAR_OUTPUT + DMPS1_OmniFahren : Word; // war "DMPS1_OmniFahren" + DMPS2_OmniFahren : Word; // war "DMPS2_OmniFahren" + DMPS3_OmniFahren : Word; // war "DMPS3_OmniFahren" + DPS1_OmniFahren : Word; // war "DPS1_OmniFahren" + DPS2_OmniFahren : Word; // war "DPS2_OmniFahren" + DPS3_OmniFahren : Word; // war "DPS3_OmniFahren" + DPS4_OmniFahren : Word; // war "DPS4_OmniFahren" + DPS5_OmniFahren : Word; // war "DPS5_OmniFahren" + END_VAR + +BEGIN + REGION Ohne PC sind alle ABPs aktiviert + IF #SGes.Ohne_PC_Fahren THEN + #DPS5_OmniFahren.Sks_Arbeitsplatz.Dyn.Status.Arbeitsplatz_aktiviert := TRUE; + #DPS4_OmniFahren.Sks_Arbeitsplatz.Dyn.Status.Arbeitsplatz_aktiviert := TRUE; + #DPS3_OmniFahren.Sks_Arbeitsplatz.Dyn.Status.Arbeitsplatz_aktiviert := TRUE; + #DPS2_OmniFahren.Sks_Arbeitsplatz.Dyn.Status.Arbeitsplatz_aktiviert := TRUE; + #DPS1_OmniFahren.Sks_Arbeitsplatz.Dyn.Status.Arbeitsplatz_aktiviert := TRUE; + #DMPS3_OmniFahren.Sks_Arbeitsplatz.Dyn.Status.Arbeitsplatz_aktiviert := TRUE; + #DMPS2_OmniFahren.Sks_Arbeitsplatz.Dyn.Status.Arbeitsplatz_aktiviert := TRUE; + #DMPS1_OmniFahren.Sks_Arbeitsplatz.Dyn.Status.Arbeitsplatz_aktiviert := TRUE; + END_IF; + END_REGION + + REGION Sensoren + "DArbeitsplätze_Sensoren"(); + END_REGION + + REGION Simulation zum Ausfahren aus AMRs + "Simulation_AMR_Trolley_starten"(); + END_REGION + + REGION Zuführung + "DZuführung_OmniFahren"(); + END_REGION + + REGION Pickstation 5 + "DPS5_OmniFahren"(); + END_REGION + + REGION Pickstation 4 + "DPS4_OmniFahren"(); + END_REGION + + REGION Pickstation 3 + "DPS3_OmniFahren"(); + END_REGION + + REGION Pickstation 2 + "DPS2_OmniFahren"(); + END_REGION + + REGION Pickstation 1 + "DPS1_OmniFahren"(); + END_REGION + + REGION MultiPurposestation 3 + "DMPS3_OmniFahren"(); + END_REGION + + REGION MultiPurposestation 2 + "DMPS2_OmniFahren"(); + END_REGION + + REGION MultiPurposestation 1 + "DMPS1_OmniFahren"(); + END_REGION + + REGION Abführung + "DAbführung_OmniFahren"(); + END_REGION + + REGION Last + "DArbeitsplätze_Zylinder"(); + "DArbeitsplätze_Antriebe"(); + END_REGION + + REGION Ende + RETURN; + END_REGION + +END_FUNCTION diff --git a/SCL-Export/=A01+UH06-KF00/Arbeitsplätze_Sensoren.scl b/SCL-Export/=A01+UH06-KF00/Arbeitsplätze_Sensoren.scl new file mode 100644 index 0000000..e848286 --- /dev/null +++ b/SCL-Export/=A01+UH06-KF00/Arbeitsplätze_Sensoren.scl @@ -0,0 +1,426 @@ +FUNCTION_BLOCK "Arbeitsplätze_Sensoren" +{ 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_IN_OUT + BG3242 : Word; // war "BG3242" + BG3244 : Word; // war "BG3244" + BG3245 : Word; // war "BG3245" + BG3251 : Word; // war "BG3251" + BG3255 : Word; // war "BG3255" + BG3260 : Word; // war "BG3260" + BG3263 : Word; // war "BG3263" + BG3264 : Word; // war "BG3264" + BG3270 : Word; // war "BG3270" + BG3272 : Word; // war "BG3272" + BG3275 : Word; // war "BG3275" + BG3281 : Word; // war "BG3281" + BG3285 : Word; // war "BG3285" + BG3290 : Word; // war "BG3290" + BG3294 : Word; // war "BG3294" + BG3302 : Word; // war "BG3302" + BG3305 : Word; // war "BG3305" + BG3311 : Word; // war "BG3311" + BG3315 : Word; // war "BG3315" + BG3320 : Word; // war "BG3320" + BG3322 : Word; // war "BG3322" + BG3330 : Word; // war "BG3330" + BG3332 : Word; // war "BG3332" + BG3335 : Word; // war "BG3335" + BG3341 : Word; // war "BG3341" + BG3345 : Word; // war "BG3345" + BG3350 : Word; // war "BG3350" + BG3361 : Word; // war "BG3361" + BG3362 : Word; // war "BG3362" + BG3365 : Word; // war "BG3365" + BG3371 : Word; // war "BG3371" + BG3375 : Word; // war "BG3375" + BG3380 : Word; // war "BG3380" + BG3381 : Word; // war "BG3381" + BG3384 : Word; // war "BG3384" + BG3391 : Word; // war "BG3391" + BG3392 : Word; // war "BG3392" + BG3395 : Word; // war "BG3395" + BG3401 : Word; // war "BG3401" + BG3405 : Word; // war "BG3405" + BG3410 : Word; // war "BG3410" + BG3414 : Word; // war "BG3414" + BG3422 : Word; // war "BG3422" + BG3425 : Word; // war "BG3425" + BG3431 : Word; // war "BG3431" + BG3435 : Word; // war "BG3435" + BG3440 : Word; // war "BG3440" + BG3444 : Word; // war "BG3444" + BG3445 : Word; // war "BG3445" + BG3447 : Word; // war "BG3447" + BG3451 : Word; // war "BG3451" + BG3452 : Word; // war "BG3452" + BG3455 : Word; // war "BG3455" + BG3457 : Word; // war "BG3457" + BG3461 : Word; // war "BG3461" + BG3465 : Word; // war "BG3465" + BG3470 : Word; // war "BG3470" + BG3483 : Word; // war "BG3483" + BG3484 : Word; // war "BG3484" + BG3486 : Word; // war "BG3486" + BG3541 : Word; // war "BG3541" + BG3542 : Word; // war "BG3542" + BG3566 : Word; // war "BG3566" + BG3567 : Word; // war "BG3567" + MA0094 : Bool; // war "MA0094" + END_VAR + + VAR + Stau_BG3566 : "MSensoren"; // Stau am Sensor Einfahrt MA0204 + Stau_BG3567 : "MSensoren"; // Stau am Sensor Einfahrt MA0204 + Stau_BG3457 : "MSensoren"; // Stau am Sensor Einfahrt MA0204 + Stau_BG3447 : "MSensoren"; // Stau am Sensor Einfahrt MA0204 + Stau_BG3483 : "MSensoren"; // Stau am Sensor Einfahrt MA0204 + Stau_BG3484 : "MSensoren"; // Stau am Sensor Einfahrt MA0204 + Stau_BG3486 : "MSensoren"; // Stau am Sensor Einfahrt MA0204 + Stau_BG3244 : "MSensoren"; // Stau am Sensor Einfahrt MA0204 + Stau_BG3542 : "MSensoren"; // Stau am Sensor Einfahrt MA0204 + Stau_Einfahrt_PS5 : "MSensoren"; + Stau_nach_Einfahrt_PS5 : "MSensoren"; + Stau_Platz1_PS5 : "MSensoren"; + Stau_Platz2_PS5 : "MSensoren"; + Stau_Platz3_PS5 : "MSensoren"; + Stau_Ausfahrt_PS5 : "MSensoren"; + Stau_nach_Ausfahrt_PS5 : "MSensoren"; + Stau_Einfahrt_PS4 : "MSensoren"; + Stau_nach_Einfahrt_PS4 : "MSensoren"; + Stau_Platz1_PS4 : "MSensoren"; + Stau_Platz2_PS4 : "MSensoren"; + Stau_Platz3_PS4 : "MSensoren"; + Stau_Ausfahrt_PS4 : "MSensoren"; + Stau_nach_Ausfahrt_PS4 : "MSensoren"; + Stau_Einfahrt_PS3 : "MSensoren"; + Stau_nach_Einfahrt_PS3 : "MSensoren"; + Stau_Platz1_PS3 : "MSensoren"; + Stau_Platz2_PS3 : "MSensoren"; + Stau_Platz3_PS3 : "MSensoren"; + Stau_Ausfahrt_PS3 : "MSensoren"; + Stau_nach_Ausfahrt_PS3 : "MSensoren"; + Stau_Einfahrt_PS2 : "MSensoren"; + Stau_nach_Einfahrt_PS2 : "MSensoren"; + Stau_Platz1_PS2 : "MSensoren"; + Stau_Platz2_PS2 : "MSensoren"; + Stau_Platz3_PS2 : "MSensoren"; + Stau_Ausfahrt_PS2 : "MSensoren"; + Stau_nach_Ausfahrt_PS2 : "MSensoren"; + Stau_Einfahrt_PS1 : "MSensoren"; + Stau_nach_Einfahrt_PS1 : "MSensoren"; + An_BG3383 : "MSensoren"; // Am Sensor Ende MA0203 + Stau_Platz1_PS1 : "MSensoren"; + Stau_Platz2_PS1 : "MSensoren"; + Stau_Platz3_PS1 : "MSensoren"; + Stau_Ausfahrt_PS1 : "MSensoren"; + Stau_nach_Ausfahrt_PS1 : "MSensoren"; + Stau_Einfahrt_MPS3 : "MSensoren"; + Stau_nach_Einfahrt_MPS3 : "MSensoren"; + Stau_Platz1_MPS3 : "MSensoren"; + Stau_Platz2_MPS3 : "MSensoren"; + Stau_Platz3_MPS3 : "MSensoren"; + Stau_Ausfahrt_MPS3 : "MSensoren"; + Stau_nach_Ausfahrt_MPS3 : "MSensoren"; + Stau_Einfahrt_MPS2 : "MSensoren"; + Stau_nach_Einfahrt_MPS2 : "MSensoren"; + Stau_Platz1_MPS2 : "MSensoren"; + Stau_Platz2_MPS2 : "MSensoren"; + Stau_Platz3_MPS2 : "MSensoren"; + Stau_Ausfahrt_MPS2 : "MSensoren"; + Stau_nach_Ausfahrt_MPS2 : "MSensoren"; + Stau_Einfahrt_MPS1 : "MSensoren"; + Stau_nach_Einfahrt_MPS1 : "MSensoren"; + Stau_Platz1_MPS1 : "MSensoren"; + Stau_Platz2_MPS1 : "MSensoren"; + Stau_Platz3_MPS1 : "MSensoren"; + Stau_Ausfahrt_MPS1 : "MSensoren"; + Stau_nach_Ausfahrt_MPS1 : "MSensoren"; + END_VAR + + VAR_TEMP + T_Ein : Int; // Vorgabe Einschaltverzögerung + T_Aus : Int; // Zwischenspeicher Ausschaltverzögerung + F1 : Bool; // Geschwindigkeit 1 aktiviert + F2 : Bool; // Geschwindigkeit 2 aktiviert + F3 : Bool; // Geschwindigkeit 3 aktiviert + ESensor : Bool; // Sensoren + Antrieb : Bool; + VReal : Real; // GeschwindigkeitinReal + Zeit : Int; // Zeit für Ausschaltverzögerung LT1100 + Aktiv : Bool; // Zeit aktivieren + END_VAR + +BEGIN + REGION Stau am Sensor BG3566 + #Stau_BG3566(ESensor := #BG3566, T_Ein := 1, T_Aus := 11, tein_aktiv := TRUE, taus_aktiv := TRUE); // Sensoren entprellen + END_REGION + + REGION Stau am Sensor BG3567 + #Stau_BG3567(ESensor := #BG3567, T_Ein := 80, T_Aus := 11, tein_aktiv := TRUE, taus_aktiv := TRUE); // Sensoren entprellen + END_REGION + + REGION Stau am Sensor BG3457 + #Stau_BG3457(ESensor := #BG3457, T_Ein := 80, T_Aus := 11, tein_aktiv := TRUE, taus_aktiv := TRUE); // Sensoren entprellen + END_REGION + + REGION Stau am Sensor BG3447 + #Stau_BG3447(ESensor := #BG3447, T_Ein := 80, T_Aus := 11, tein_aktiv := TRUE, taus_aktiv := TRUE); // Sensoren entprellen + END_REGION + + REGION Stau am Sensor BG3483 + #Stau_BG3483(ESensor := #BG3483, T_Ein := 1, T_Aus := 11, tein_aktiv := TRUE, taus_aktiv := TRUE); // Sensoren entprellen + END_REGION + + REGION Stau am Sensor BG3484 + #Stau_BG3484(ESensor := #BG3484, T_Ein := 80, T_Aus := 11, tein_aktiv := TRUE, taus_aktiv := TRUE); // Sensoren entprellen + END_REGION + + REGION Stau am Sensor BG3486 + #Stau_BG3486(ESensor := #BG3486, T_Ein := 80, T_Aus := 11, tein_aktiv := TRUE, taus_aktiv := TRUE); // Sensoren entprellen + END_REGION + + REGION Stau am Sensor BG3244 + #Stau_BG3244(ESensor := #BG3244, T_Ein := 80, T_Aus := 11, tein_aktiv := TRUE, taus_aktiv := TRUE); // Sensoren entprellen + END_REGION + + REGION Stau am Sensor BG3542 + #Stau_BG3542(ESensor := #BG3542, T_Ein := 1, T_Aus := 11, tein_aktiv := TRUE, taus_aktiv := TRUE); // Sensoren entprellen + END_REGION + + REGION Stau Einfahrt PS5 + #Stau_Einfahrt_PS5(ESensor := #BG3242, T_Ein := 1, T_Aus := 11, tein_aktiv := TRUE, taus_aktiv := TRUE); // Sensoren entprellen + END_REGION + + REGION Stau nach_Einfahrt PS5 + #Stau_nach_Einfahrt_PS5(ESensor := #BG3264, T_Ein := 1, T_Aus := 11, tein_aktiv := TRUE, taus_aktiv := TRUE); // Sensoren entprellen + END_REGION + + REGION Stau Platz1 PS5 + #Stau_Platz1_PS5(ESensor := #BG3245, T_Ein := 1, T_Aus := 30, tein_aktiv := TRUE, taus_aktiv := TRUE); // Sensoren entprellen + END_REGION + + REGION Stau Platz2 PS5 + #Stau_Platz2_PS5(ESensor := #BG3251, T_Ein := 1, T_Aus := 30, tein_aktiv := TRUE, taus_aktiv := TRUE); // Sensoren entprellen + END_REGION + + REGION Stau Platz3 PS5 + #Stau_Platz3_PS5(ESensor := #BG3255, T_Ein := 1, T_Aus := 30, tein_aktiv := TRUE, taus_aktiv := TRUE); // Sensoren entprellen + END_REGION + + REGION Stau Ausfahrt PS5 + #Stau_Ausfahrt_PS5(ESensor := #BG3260, T_Ein := 1, T_Aus := 11, tein_aktiv := TRUE, taus_aktiv := TRUE); // Sensoren entprellen + END_REGION + + REGION Stau nach Ausfahrt PS5 + #Stau_nach_Ausfahrt_PS5(ESensor := #BG3263, T_Ein := 1, T_Aus := 10, tein_aktiv := TRUE, taus_aktiv := TRUE); // Sensoren entprellen + END_REGION + + REGION Stau Einfahrt PS4 + #Stau_Einfahrt_PS4(ESensor := #BG3272, T_Ein := 1, T_Aus := 11, tein_aktiv := TRUE, taus_aktiv := TRUE); // Sensoren entprellen + END_REGION + + REGION Stau nach_Einfahrt PS4 + #Stau_nach_Einfahrt_PS4(ESensor := #BG3270, T_Ein := 1, T_Aus := 11, tein_aktiv := TRUE, taus_aktiv := TRUE); // Sensoren entprellen + END_REGION + + REGION Stau Platz1 PS4 + #Stau_Platz1_PS4(ESensor := #BG3275, T_Ein := 1, T_Aus := 30, tein_aktiv := TRUE, taus_aktiv := TRUE); // Sensoren entprellen + END_REGION + + REGION Stau Platz2 PS4 + #Stau_Platz2_PS4(ESensor := #BG3281, T_Ein := 1, T_Aus := 30, tein_aktiv := TRUE, taus_aktiv := TRUE); // Sensoren entprellen + END_REGION + + REGION Stau Platz3 PS4 + #Stau_Platz3_PS4(ESensor := #BG3285, T_Ein := 1, T_Aus := 30, tein_aktiv := TRUE, taus_aktiv := TRUE); // Sensoren entprellen + END_REGION + + REGION Stau Ausfahrt PS4 + #Stau_Ausfahrt_PS4(ESensor := #BG3290, T_Ein := 1, T_Aus := 11, tein_aktiv := TRUE, taus_aktiv := TRUE); // Sensoren entprellen + END_REGION + + REGION Stau nach Ausfahrt PS4 + #Stau_nach_Ausfahrt_PS4(ESensor := #BG3294, T_Ein := 1, T_Aus := 10, tein_aktiv := TRUE, taus_aktiv := TRUE); // Sensoren entprellen + END_REGION + + REGION Stau Einfahrt PS3 + #Stau_Einfahrt_PS3(ESensor := #BG3302, T_Ein := 1, T_Aus := 11, tein_aktiv := TRUE, taus_aktiv := TRUE); // Sensoren entprellen + END_REGION + + REGION Stau nach_Einfahrt PS3 + #Stau_nach_Einfahrt_PS3(ESensor := #BG3294, T_Ein := 1, T_Aus := 11, tein_aktiv := TRUE, taus_aktiv := TRUE); // Sensoren entprellen + END_REGION + + REGION Stau Platz1 PS3 + #Stau_Platz1_PS3(ESensor := #BG3305, T_Ein := 1, T_Aus := 30, tein_aktiv := TRUE, taus_aktiv := TRUE); // Sensoren entprellen + END_REGION + + REGION Stau Platz2 PS3 + #Stau_Platz2_PS3(ESensor := #BG3311, T_Ein := 1, T_Aus := 30, tein_aktiv := TRUE, taus_aktiv := TRUE); // Sensoren entprellen + END_REGION + + REGION Stau Platz3 PS3 + #Stau_Platz3_PS3(ESensor := #BG3315, T_Ein := 1, T_Aus := 30, tein_aktiv := TRUE, taus_aktiv := TRUE); // Sensoren entprellen + END_REGION + + REGION Stau Ausfahrt PS3 + #Stau_Ausfahrt_PS3(ESensor := #BG3320, T_Ein := 1, T_Aus := 11, tein_aktiv := TRUE, taus_aktiv := TRUE); // Sensoren entprellen + END_REGION + + REGION Stau nach Ausfahrt PS3 + #Stau_nach_Ausfahrt_PS3(ESensor := #BG3322, T_Ein := 1, T_Aus := 10, tein_aktiv := TRUE, taus_aktiv := TRUE); // Sensoren entprellen + END_REGION + + REGION Stau Einfahrt PS2 + #Stau_Einfahrt_PS2(ESensor := #BG3332, T_Ein := 1, T_Aus := 11, tein_aktiv := TRUE, taus_aktiv := TRUE); // Sensoren entprellen + END_REGION + + REGION Stau nach_Einfahrt PS2 + #Stau_nach_Einfahrt_PS2(ESensor := #BG3330, T_Ein := 1, T_Aus := 11, tein_aktiv := TRUE, taus_aktiv := TRUE); // Sensoren entprellen + END_REGION + + REGION Stau Platz1 PS2 + #Stau_Platz1_PS2(ESensor := #BG3335, T_Ein := 1, T_Aus := 30, tein_aktiv := TRUE, taus_aktiv := TRUE); // Sensoren entprellen + END_REGION + + REGION Stau Platz2 PS2 + #Stau_Platz2_PS2(ESensor := #BG3341, T_Ein := 1, T_Aus := 30, tein_aktiv := TRUE, taus_aktiv := TRUE); // Sensoren entprellen + END_REGION + + REGION Stau Platz3 PS2 + #Stau_Platz3_PS2(ESensor := #BG3345, T_Ein := 1, T_Aus := 30, tein_aktiv := TRUE, taus_aktiv := TRUE); // Sensoren entprellen + END_REGION + + REGION Stau Ausfahrt PS2 + #Stau_Ausfahrt_PS2(ESensor := #BG3350, T_Ein := 1, T_Aus := 11, tein_aktiv := TRUE, taus_aktiv := TRUE); // Sensoren entprellen + END_REGION + + REGION Stau nach Ausfahrt PS2 + #Stau_nach_Ausfahrt_PS2(ESensor := #BG3361, T_Ein := 1, T_Aus := 10, tein_aktiv := TRUE, taus_aktiv := TRUE); // Sensoren entprellen + END_REGION + + REGION Stau Einfahrt PS1 + #Stau_Einfahrt_PS1(ESensor := #BG3362, T_Ein := 1, T_Aus := 11, tein_aktiv := TRUE, taus_aktiv := TRUE); // Sensoren entprellen + END_REGION + + REGION Stau nach_Einfahrt PS1 + #Stau_nach_Einfahrt_PS1(ESensor := #BG3361, T_Ein := 1, T_Aus := 11, tein_aktiv := TRUE, taus_aktiv := TRUE); // Sensoren entprellen + END_REGION + + REGION Am Sensor Separator 3383 + #An_BG3383(ESensor := #BG3381, T_Ein := 1, T_Aus := 50, tein_aktiv := TRUE, taus_aktiv := #MA0094); // Sensoren entprellen + END_REGION + + REGION Stau Platz1 PS1 + #Stau_Platz1_PS1(ESensor := #BG3365, T_Ein := 1, T_Aus := 30, tein_aktiv := TRUE, taus_aktiv := TRUE); // Sensoren entprellen + END_REGION + + REGION Stau Platz2 PS1 + #Stau_Platz2_PS1(ESensor := #BG3371, T_Ein := 1, T_Aus := 30, tein_aktiv := TRUE, taus_aktiv := TRUE); // Sensoren entprellen + END_REGION + + REGION Stau Platz3 PS1 + #Stau_Platz3_PS1(ESensor := #BG3375, T_Ein := 1, T_Aus := 30, tein_aktiv := TRUE, taus_aktiv := TRUE); // Sensoren entprellen + END_REGION + + REGION Stau Ausfahrt PS1 + #Stau_Ausfahrt_PS1(ESensor := #BG3380, T_Ein := 1, T_Aus := 11, tein_aktiv := TRUE, taus_aktiv := TRUE); // Sensoren entprellen + END_REGION + + REGION Stau nach Ausfahrt PS1 + #Stau_nach_Ausfahrt_PS1(ESensor := #BG3384, T_Ein := 1, T_Aus := 10, tein_aktiv := TRUE, taus_aktiv := TRUE); // Sensoren entprellen + END_REGION + + REGION Stau Einfahrt MPS3 + #Stau_Einfahrt_MPS3(ESensor := #BG3392, T_Ein := 1, T_Aus := 11, tein_aktiv := TRUE, taus_aktiv := TRUE); // Sensoren entprellen + END_REGION + + REGION Stau nach_Einfahrt MPS3 + #Stau_nach_Einfahrt_MPS3(ESensor := #BG3391, T_Ein := 1, T_Aus := 11, tein_aktiv := TRUE, taus_aktiv := TRUE); // Sensoren entprellen + END_REGION + + REGION Stau Platz1 MPS3 + #Stau_Platz1_MPS3(ESensor := #BG3395, T_Ein := 1, T_Aus := 30, tein_aktiv := TRUE, taus_aktiv := TRUE); // Sensoren entprellen + END_REGION + + REGION Stau Platz2 MPS3 + #Stau_Platz2_MPS3(ESensor := #BG3401, T_Ein := 1, T_Aus := 30, tein_aktiv := TRUE, taus_aktiv := TRUE); // Sensoren entprellen + END_REGION + + REGION Stau Platz3 MPS3 + #Stau_Platz3_MPS3(ESensor := #BG3405, T_Ein := 1, T_Aus := 30, tein_aktiv := TRUE, taus_aktiv := TRUE); // Sensoren entprellen + END_REGION + + REGION Stau Ausfahrt MPS3 + #Stau_Ausfahrt_MPS3(ESensor := #BG3410, T_Ein := 1, T_Aus := 11, tein_aktiv := TRUE, taus_aktiv := TRUE); // Sensoren entprellen + END_REGION + + REGION Stau nach Ausfahrt MPS3 + #Stau_nach_Ausfahrt_MPS3(ESensor := #BG3414, T_Ein := 1, T_Aus := 10, tein_aktiv := TRUE, taus_aktiv := TRUE); // Sensoren entprellen + END_REGION + + REGION Stau Einfahrt MPS2 + #Stau_Einfahrt_MPS2(ESensor := #BG3422, T_Ein := 1, T_Aus := 11, tein_aktiv := TRUE, taus_aktiv := TRUE); // Sensoren entprellen + END_REGION + + REGION Stau nach_Einfahrt MPS2 + #Stau_nach_Einfahrt_MPS2(ESensor := #BG3445, T_Ein := 1, T_Aus := 11, tein_aktiv := TRUE, taus_aktiv := TRUE); // Sensoren entprellen + END_REGION + + REGION Stau Platz1 MPS2 + #Stau_Platz1_MPS2(ESensor := #BG3425, T_Ein := 1, T_Aus := 30, tein_aktiv := TRUE, taus_aktiv := TRUE); // Sensoren entprellen + END_REGION + + REGION Stau Platz2 MPS2 + #Stau_Platz2_MPS2(ESensor := #BG3431, T_Ein := 1, T_Aus := 30, tein_aktiv := TRUE, taus_aktiv := TRUE); // Sensoren entprellen + END_REGION + + REGION Stau Platz3 MPS2 + #Stau_Platz3_MPS2(ESensor := #BG3435, T_Ein := 1, T_Aus := 30, tein_aktiv := TRUE, taus_aktiv := TRUE); // Sensoren entprellen + END_REGION + + REGION Stau Ausfahrt MPS2 + #Stau_Ausfahrt_MPS2(ESensor := #BG3440, T_Ein := 1, T_Aus := 11, tein_aktiv := TRUE, taus_aktiv := TRUE); // Sensoren entprellen + END_REGION + + REGION Stau nach Ausfahrt MPS2 + #Stau_nach_Ausfahrt_MPS2(ESensor := #BG3444, T_Ein := 1, T_Aus := 10, tein_aktiv := TRUE, taus_aktiv := TRUE); // Sensoren entprellen + END_REGION + + REGION Stau Einfahrt MPS1 + #Stau_Einfahrt_MPS1(ESensor := #BG3452, T_Ein := 1, T_Aus := 11, tein_aktiv := TRUE, taus_aktiv := TRUE); // Sensoren entprellen + END_REGION + + REGION Stau nach_Einfahrt MPS1 + #Stau_nach_Einfahrt_MPS1(ESensor := #BG3451, T_Ein := 1, T_Aus := 11, tein_aktiv := TRUE, taus_aktiv := TRUE); // Sensoren entprellen + END_REGION + + REGION Stau Platz1 MPS1 + #Stau_Platz1_MPS1(ESensor := #BG3455, T_Ein := 1, T_Aus := 30, tein_aktiv := TRUE, taus_aktiv := TRUE); // Sensoren entprellen + END_REGION + + REGION Stau Platz2 MPS1 + #Stau_Platz2_MPS1(ESensor := #BG3461, T_Ein := 1, T_Aus := 30, tein_aktiv := TRUE, taus_aktiv := TRUE); // Sensoren entprellen + END_REGION + + REGION Stau Platz3 MPS1 + #Stau_Platz3_MPS1(ESensor := #BG3465, T_Ein := 1, T_Aus := 30, tein_aktiv := TRUE, taus_aktiv := TRUE); // Sensoren entprellen + END_REGION + + REGION Stau Ausfahrt MPS1 + #Stau_Ausfahrt_MPS1(ESensor := #BG3470, T_Ein := 1, T_Aus := 11, tein_aktiv := TRUE, taus_aktiv := TRUE); // Sensoren entprellen + END_REGION + + REGION Stau nach Ausfahrt MPS1 + #Stau_nach_Ausfahrt_MPS1(ESensor := #BG3541, T_Ein := 1, T_Aus := 11, tein_aktiv := TRUE, taus_aktiv := TRUE); // Sensoren entprellen + END_REGION + + REGION Ende + RETURN; + END_REGION + +END_FUNCTION_BLOCK diff --git a/SCL-Export/=A01+UH06-KF00/Arbeitsplätze_Zylinder.scl b/SCL-Export/=A01+UH06-KF00/Arbeitsplätze_Zylinder.scl new file mode 100644 index 0000000..3c8e389 --- /dev/null +++ b/SCL-Export/=A01+UH06-KF00/Arbeitsplätze_Zylinder.scl @@ -0,0 +1,687 @@ +FUNCTION_BLOCK "Arbeitsplätze_Zylinder" +{ 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 + DAMR_Bereich : Word; // war "DAMR_Bereich" + END_VAR + + VAR_IN_OUT + MB3241 : Byte; // war "MB3241" + MB3242 : Byte; // war "MB3242" + MB3243 : Byte; // war "MB3243" + MB3244 : Byte; // war "MB3244" + MB3245 : Byte; // war "MB3245" + MB3250 : Byte; // war "MB3250" + MB3251 : Byte; // war "MB3251" + MB3255 : Byte; // war "MB3255" + MB3256 : Byte; // war "MB3256" + MB3260 : Byte; // war "MB3260" + MB3262 : Byte; // war "MB3262" + MB3263 : Byte; // war "MB3263" + MB3265 : Byte; // war "MB3265" + MB3271 : Byte; // war "MB3271" + MB3272 : Byte; // war "MB3272" + MB3273 : Byte; // war "MB3273" + MB3274 : Byte; // war "MB3274" + MB3275 : Byte; // war "MB3275" + MB3280 : Byte; // war "MB3280" + MB3281 : Byte; // war "MB3281" + MB3285 : Byte; // war "MB3285" + MB3286 : Byte; // war "MB3286" + MB3290 : Byte; // war "MB3290" + MB3291 : Byte; // war "MB3291" + MB3292 : Byte; // war "MB3292" + MB3293 : Byte; // war "MB3293" + MB3302 : Byte; // war "MB3302" + MB3303 : Byte; // war "MB3303" + MB3304 : Byte; // war "MB3304" + MB3305 : Byte; // war "MB3305" + MB3310 : Byte; // war "MB3310" + MB3311 : Byte; // war "MB3311" + MB3315 : Byte; // war "MB3315" + MB3316 : Byte; // war "MB3316" + MB3320 : Byte; // war "MB3320" + MB3321 : Byte; // war "MB3321" + MB3322 : Byte; // war "MB3322" + MB3323 : Byte; // war "MB3323" + MB3331 : Byte; // war "MB3331" + MB3332 : Byte; // war "MB3332" + MB3333 : Byte; // war "MB3333" + MB3334 : Byte; // war "MB3334" + MB3335 : Byte; // war "MB3335" + MB3340 : Byte; // war "MB3340" + MB3341 : Byte; // war "MB3341" + MB3345 : Byte; // war "MB3345" + MB3346 : Byte; // war "MB3346" + MB3350 : Byte; // war "MB3350" + MB3351 : Byte; // war "MB3351" + MB3352 : Byte; // war "MB3352" + MB3353 : Byte; // war "MB3353" + MB3361 : Byte; // war "MB3361" + MB3362 : Byte; // war "MB3362" + MB3363 : Byte; // war "MB3363" + MB3364 : Byte; // war "MB3364" + MB3365 : Byte; // war "MB3365" + MB3370 : Byte; // war "MB3370" + MB3371 : Byte; // war "MB3371" + MB3375 : Byte; // war "MB3375" + MB3376 : Byte; // war "MB3376" + MB3380 : Byte; // war "MB3380" + MB3381 : Byte; // war "MB3381" + MB3382 : Byte; // war "MB3382" + MB3383 : Byte; // war "MB3383" + MB3390 : Byte; // war "MB3390" + MB3392 : Byte; // war "MB3392" + MB3393 : Byte; // war "MB3393" + MB3394 : Byte; // war "MB3394" + MB3395 : Byte; // war "MB3395" + MB3400 : Byte; // war "MB3400" + MB3401 : Byte; // war "MB3401" + MB3405 : Byte; // war "MB3405" + MB3406 : Byte; // war "MB3406" + MB3410 : Byte; // war "MB3410" + MB3411 : Byte; // war "MB3411" + MB3412 : Byte; // war "MB3412" + MB3413 : Byte; // war "MB3413" + MB3421 : Byte; // war "MB3421" + MB3422 : Byte; // war "MB3422" + MB3423 : Byte; // war "MB3423" + MB3424 : Byte; // war "MB3424" + MB3425 : Byte; // war "MB3425" + MB3430 : Byte; // war "MB3430" + MB3431 : Byte; // war "MB3431" + MB3435 : Byte; // war "MB3435" + MB3436 : Byte; // war "MB3436" + MB3440 : Byte; // war "MB3440" + MB3441 : Byte; // war "MB3441" + MB3442 : Byte; // war "MB3442" + MB3443 : Byte; // war "MB3443" + MB3450 : Byte; // war "MB3450" + MB3452 : Byte; // war "MB3452" + MB3453 : Byte; // war "MB3453" + MB3454 : Byte; // war "MB3454" + MB3455 : Byte; // war "MB3455" + MB3456 : Byte; // war "MB3456" + MB3460 : Byte; // war "MB3460" + MB3461 : Byte; // war "MB3461" + MB3465 : Byte; // war "MB3465" + MB3466 : Byte; // war "MB3466" + MB3470 : Byte; // war "MB3470" + MB3471 : Byte; // war "MB3471" + MB3472 : Byte; // war "MB3472" + MB3473 : Byte; // war "MB3473" + MB3481 : Byte; // war "MB3481" + MB3482 : Byte; // war "MB3482" + MB3487 : Byte; // war "MB3487" + MB3540 : Byte; // war "MB3540" + MB3543 : Byte; // war "MB3543" + END_VAR + + VAR + Schleuse_3456 : "MZylinder"; // + Schleuse_3481 : "MZylinder"; // + Weiche_3482 : "MZylinder"; // + Weiche_3361 : "MZylinder"; // + Schleuse_3487 : "MZylinder"; // + Schleuse_Vor_Einfahrt_PS5 : "MZylinder"; // + Weiche_Einfahrt_PS5 : "MZylinder"; // + Schleuse_Vorstau_PS5 : "MZylinder"; + Weiche_zu_Platz1_PS5 : "MZylinder"; // + Weiche_zu_Platz2_PS5 : "MZylinder"; + Schleuse_Platz1_PS5 : "MZylinder"; + Schleuse_Platz2_PS5 : "MZylinder"; + Schleuse_Platz3_PS5 : "MZylinder"; + Weiche_von_Platz1_PS5 : "MZylinder"; // + Weiche_von_Platz2_PS5 : "MZylinder"; + Schleuse_Ausfahrt_PS5 : "MZylinder"; // + Schleuse_Vor_Ausfahrt_PS5 : "MZylinder"; // + Weiche_Ausfahrt_PS5 : "MZylinder"; // + Schleuse_Vor_Einfahrt_PS4 : "MZylinder"; // + Weiche_Einfahrt_PS4 : "MZylinder"; // + Schleuse_Vorstau_PS4 : "MZylinder"; + Weiche_zu_Platz1_PS4 : "MZylinder"; // + Weiche_zu_Platz2_PS4 : "MZylinder"; + Schleuse_Platz1_PS4 : "MZylinder"; + Schleuse_Platz2_PS4 : "MZylinder"; + Schleuse_Platz3_PS4 : "MZylinder"; + Weiche_von_Platz1_PS4 : "MZylinder"; // + Weiche_von_Platz2_PS4 : "MZylinder"; + Schleuse_Ausfahrt_PS4 : "MZylinder"; // + Weiche_Ausfahrt_PS4 : "MZylinder"; // + Schleuse_Vor_Einfahrt_PS3 : "MZylinder"; // + Weiche_Einfahrt_PS3 : "MZylinder"; // + Schleuse_Vorstau_PS3 : "MZylinder"; + Weiche_zu_Platz1_PS3 : "MZylinder"; // + Weiche_zu_Platz2_PS3 : "MZylinder"; + Schleuse_Platz1_PS3 : "MZylinder"; + Schleuse_Platz2_PS3 : "MZylinder"; + Schleuse_Platz3_PS3 : "MZylinder"; + Weiche_von_Platz1_PS3 : "MZylinder"; // + Weiche_von_Platz2_PS3 : "MZylinder"; + Schleuse_Ausfahrt_PS3 : "MZylinder"; // + Schleuse_Vor_Ausfahrt_PS3 : "MZylinder"; // + Weiche_Ausfahrt_PS3 : "MZylinder"; // + Schleuse_Vor_Einfahrt_PS2 : "MZylinder"; // + Weiche_Einfahrt_PS2 : "MZylinder"; // + Schleuse_Vorstau_PS2 : "MZylinder"; + Weiche_zu_Platz1_PS2 : "MZylinder"; // + Weiche_zu_Platz2_PS2 : "MZylinder"; + Schleuse_Platz1_PS2 : "MZylinder"; + Schleuse_Platz2_PS2 : "MZylinder"; + Schleuse_Platz3_PS2 : "MZylinder"; + Weiche_von_Platz1_PS2 : "MZylinder"; // + Weiche_von_Platz2_PS2 : "MZylinder"; + Schleuse_Ausfahrt_PS2 : "MZylinder"; // + Weiche_Ausfahrt_PS2 : "MZylinder"; // + Schleuse_Vor_Einfahrt_PS1 : "MZylinder"; // + Weiche_Einfahrt_PS1 : "MZylinder"; // + Schleuse_Vorstau_PS1 : "MZylinder"; + Weiche_zu_Platz1_PS1 : "MZylinder"; // + Weiche_zu_Platz2_PS1 : "MZylinder"; + Schleuse_Platz1_PS1 : "MZylinder"; + Schleuse_Platz2_PS1 : "MZylinder"; + Schleuse_Platz3_PS1 : "MZylinder"; + Weiche_von_Platz1_PS1 : "MZylinder"; // + Weiche_von_Platz2_PS1 : "MZylinder"; + Schleuse_Ausfahrt_PS1 : "MZylinder"; // + Schleuse_Vor_Ausfahrt_PS1 : "MZylinder"; // + Weiche_Ausfahrt_PS1 : "MZylinder"; // + Schleuse_Vor_Einfahrt_MPS3 : "MZylinder"; // + Weiche_Einfahrt_MPS3 : "MZylinder"; // + Schleuse_Vorstau_MPS3 : "MZylinder"; + Weiche_zu_Platz1_MPS3 : "MZylinder"; // + Weiche_zu_Platz2_MPS3 : "MZylinder"; + Schleuse_Platz1_MPS3 : "MZylinder"; + Schleuse_Platz2_MPS3 : "MZylinder"; + Schleuse_Platz3_MPS3 : "MZylinder"; + Weiche_von_Platz1_MPS3 : "MZylinder"; // + Weiche_von_Platz2_MPS3 : "MZylinder"; + Schleuse_Ausfahrt_MPS3 : "MZylinder"; // + Schleuse_Vor_Ausfahrt_MPS3 : "MZylinder"; // + Weiche_Ausfahrt_MPS3 : "MZylinder"; // + Schleuse_Vor_Einfahrt_MPS2 : "MZylinder"; // + Weiche_Einfahrt_MPS2 : "MZylinder"; // + Schleuse_Vorstau_MPS2 : "MZylinder"; + Weiche_zu_Platz1_MPS2 : "MZylinder"; // + Weiche_zu_Platz2_MPS2 : "MZylinder"; + Schleuse_Platz1_MPS2 : "MZylinder"; + Schleuse_Platz2_MPS2 : "MZylinder"; + Schleuse_Platz3_MPS2 : "MZylinder"; + Weiche_von_Platz1_MPS2 : "MZylinder"; // + Weiche_von_Platz2_MPS2 : "MZylinder"; + Schleuse_Ausfahrt_MPS2 : "MZylinder"; // + Schleuse_Vor_Ausfahrt_MPS2 : "MZylinder"; // + Weiche_Ausfahrt_MPS2 : "MZylinder"; // + Schleuse_Vor_Einfahrt_MPS1 : "MZylinder"; // + Weiche_Einfahrt_MPS1 : "MZylinder"; // + Schleuse_Vorstau_MPS1 : "MZylinder"; + Weiche_zu_Platz1_MPS1 : "MZylinder"; // + Weiche_zu_Platz2_MPS1 : "MZylinder"; + Schleuse_Platz1_MPS1 : "MZylinder"; + Schleuse_Platz2_MPS1 : "MZylinder"; + Schleuse_Platz3_MPS1 : "MZylinder"; + Weiche_von_Platz1_MPS1 : "MZylinder"; // + Weiche_von_Platz2_MPS1 : "MZylinder"; + Schleuse_Ausfahrt_MPS1 : "MZylinder"; // + Schleuse_Vor_Ausfahrt_MPS1 : "MZylinder"; // + Weiche_Ausfahrt_MPS1 : "MZylinder"; // + Schleuse_3540 : "MZylinder"; // + Schleuse_3543 : "MZylinder"; // + END_VAR + + VAR_TEMP + Auto : Bool; // Automatik ist aktiv + Hand : Bool; // Hand ist aktiv + ZylAst : Bool; // Zylinder ansteuern + END_VAR + +BEGIN + REGION Übergabe des Bereichstatus System UH06 / A01 + #Auto := #DAMR_Bereich.A01_UH06.Automatik; + IF #DAMR_Bereich.A01_UH06.BereichErr THEN GOTO Next; END_IF; + END_REGION + + REGION Schleuse_3456 + #Schleuse_3456(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3456); + END_REGION + + REGION Schleuse_3481 + #Schleuse_3481(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3481); + END_REGION + + REGION Weiche_3482 + #Weiche_3482(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3482); + END_REGION + + REGION Weiche_3361 + #Weiche_3361(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3361); + END_REGION + + REGION Schleuse_3487 + #Schleuse_3487(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3487); + END_REGION + + REGION Schleuse_vor_Einfahrt_PS5 + #Schleuse_Vor_Einfahrt_PS5(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3241); + END_REGION + + REGION Weiche_zu_PS5 + #Weiche_Einfahrt_PS5(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3242); + END_REGION + + REGION Schleuse_Vorstau_PS5 + #Schleuse_Vorstau_PS5(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3243); + END_REGION + + REGION Weiche_PS5_zu_Platz1 + #Weiche_zu_Platz1_PS5(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3244); + END_REGION + + REGION Weiche_PS5_zu_Platz2 + #Weiche_zu_Platz2_PS5(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3250); + END_REGION + + REGION Schleuse_PS5_Platz1 + #Schleuse_Platz1_PS5(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3245); + END_REGION + + REGION Schleuse_PS5_Platz2 + #Schleuse_Platz2_PS5(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3251); + END_REGION + + REGION Schleuse_PS5_Platz3 + #Schleuse_Platz3_PS5(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3255); + END_REGION + + REGION Weiche_PS5_von_Platz1 + #Weiche_von_Platz1_PS5(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3260); + END_REGION + + REGION Weiche_PS5_von_Platz2 + #Weiche_von_Platz2_PS5(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3256); + END_REGION + + REGION Schleuse_PS5_raus + #Schleuse_Ausfahrt_PS5(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3262); + END_REGION + + REGION Schleuse_vor_Ausfahrt_PS5 + #Schleuse_Vor_Ausfahrt_PS5(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3265); + END_REGION + + REGION Weiche_von_PS5 + #Weiche_Ausfahrt_PS5(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3263); + END_REGION + + REGION Schleuse_vor_Einfahrt_PS4 + #Schleuse_Vor_Einfahrt_PS4(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3271); + END_REGION + + REGION Weiche_zu_PS4 + #Weiche_Einfahrt_PS4(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3272); + END_REGION + + REGION Schleuse_Vorstau_PS4 + #Schleuse_Vorstau_PS4(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3273); + END_REGION + + REGION Weiche_PS4_zu_Platz1 + #Weiche_zu_Platz1_PS4(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3274); + END_REGION + + REGION Weiche_PS4_zu_Platz2 + #Weiche_zu_Platz2_PS4(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3280); + END_REGION + + REGION Schleuse_PS4_Platz1 + #Schleuse_Platz1_PS4(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3275); + END_REGION + + REGION Schleuse_PS4_Platz2 + #Schleuse_Platz2_PS4(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3281); + END_REGION + + REGION Schleuse_PS4_Platz3 + #Schleuse_Platz3_PS4(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3285); + END_REGION + + REGION Weiche_PS4_von_Platz1 + #Weiche_von_Platz1_PS4(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3290); + END_REGION + + REGION Weiche_PS4_von_Platz2 + #Weiche_von_Platz2_PS4(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3286); + END_REGION + + REGION Schleuse_PS4_raus + #Schleuse_Ausfahrt_PS4(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3291); + END_REGION + + REGION Weiche_von_PS4 + #Weiche_Ausfahrt_PS4(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3292); + END_REGION + + REGION Schleuse_vor_Einfahrt_PS3 + #Schleuse_Vor_Einfahrt_PS3(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3293); + END_REGION + + REGION Weiche_zu_PS3 + #Weiche_Einfahrt_PS3(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3302); + END_REGION + + REGION Schleuse_Vorstau_PS3 + #Schleuse_Vorstau_PS3(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3303); + END_REGION + + REGION Weiche_PS3_zu_Platz1 + #Weiche_zu_Platz1_PS3(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3304); + END_REGION + + REGION Weiche_PS3_zu_Platz2 + #Weiche_zu_Platz2_PS3(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3310); + END_REGION + + REGION Schleuse_PS3_Platz1 + #Schleuse_Platz1_PS3(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3305); + END_REGION + + REGION Schleuse_PS3_Platz2 + #Schleuse_Platz2_PS3(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3311); + END_REGION + + REGION Schleuse_PS3_Platz3 + #Schleuse_Platz3_PS3(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3315); + END_REGION + + REGION Weiche_PS3_von_Platz1 + #Weiche_von_Platz1_PS3(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3320); + END_REGION + + REGION Weiche_PS3_von_Platz2 + #Weiche_von_Platz2_PS3(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3316); + END_REGION + + REGION Schleuse_PS3_raus + #Schleuse_Ausfahrt_PS3(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3321); + END_REGION + + REGION Schleuse_vor_Ausfahrt_PS3 + #Schleuse_Vor_Ausfahrt_PS3(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3323); + END_REGION + + REGION Weiche_von_PS3 + #Weiche_Ausfahrt_PS3(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3322); + END_REGION + + REGION Schleuse_vor_Einfahrt_PS2 + #Schleuse_Vor_Einfahrt_PS2(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3331); + END_REGION + + REGION Weiche_zu_PS2 + #Weiche_Einfahrt_PS2(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3332); + END_REGION + + REGION Schleuse_Vorstau_PS2 + #Schleuse_Vorstau_PS2(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3333); + END_REGION + + REGION Weiche_PS2_zu_Platz1 + #Weiche_zu_Platz1_PS2(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3334); + END_REGION + + REGION Weiche_PS2_zu_Platz2 + #Weiche_zu_Platz2_PS2(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3340); + END_REGION + + REGION Schleuse_PS2_Platz1 + #Schleuse_Platz1_PS2(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3335); + END_REGION + + REGION Schleuse_PS2_Platz2 + #Schleuse_Platz2_PS2(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3341); + END_REGION + + REGION Schleuse_PS2_Platz3 + #Schleuse_Platz3_PS2(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3345); + END_REGION + + REGION Weiche_PS2_von_Platz1 + #Weiche_von_Platz1_PS2(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3350); + END_REGION + + REGION Weiche_PS2_von_Platz2 + #Weiche_von_Platz2_PS2(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3346); + END_REGION + + REGION Schleuse_PS2_raus + #Schleuse_Ausfahrt_PS2(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3351); + END_REGION + + REGION Weiche_von_PS2 + #Weiche_Ausfahrt_PS2(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3352); + END_REGION + + REGION Schleuse_vor_Einfahrt_PS1 + #Schleuse_Vor_Einfahrt_PS1(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3353); + END_REGION + + REGION Weiche_zu_PS1 + #Weiche_Einfahrt_PS1(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3362); + END_REGION + + REGION Schleuse_Vorstau_PS1 + #Schleuse_Vorstau_PS1(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3363); + END_REGION + + REGION Weiche_PS1_zu_Platz1 + #Weiche_zu_Platz1_PS1(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3364); + END_REGION + + REGION Weiche_PS1_zu_Platz2 + #Weiche_zu_Platz2_PS1(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3370); + END_REGION + + REGION Schleuse_PS1_Platz1 + #Schleuse_Platz1_PS1(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3365); + END_REGION + + REGION Schleuse_PS1_Platz2 + #Schleuse_Platz2_PS1(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3371); + END_REGION + + REGION Schleuse_PS1_Platz3 + #Schleuse_Platz3_PS1(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3375); + END_REGION + + REGION Weiche_PS1_von_Platz1 + #Weiche_von_Platz1_PS1(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3380); + END_REGION + + REGION Weiche_PS1_von_Platz2 + #Weiche_von_Platz2_PS1(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3376); + END_REGION + + REGION Schleuse_PS1_raus + #Schleuse_Ausfahrt_PS1(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3381); + END_REGION + + REGION Schleuse_vor_Ausfahrt_PS1 + #Schleuse_Vor_Ausfahrt_PS1(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3383); + END_REGION + + REGION Weiche_von_PS1 + #Weiche_Ausfahrt_PS1(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3382); + END_REGION + + REGION Schleuse_vor_Einfahrt_MPS3 + #Schleuse_Vor_Einfahrt_MPS3(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3390); + END_REGION + + REGION Weiche_zu_MPS3 + #Weiche_Einfahrt_MPS3(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3392); + END_REGION + + REGION Schleuse_Vorstau_MPS3 + #Schleuse_Vorstau_MPS3(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3393); + END_REGION + + REGION Weiche_MPS3_zu_Platz1 + #Weiche_zu_Platz1_MPS3(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3394); + END_REGION + + REGION Weiche_MPS3_zu_Platz2 + #Weiche_zu_Platz2_MPS3(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3400); + END_REGION + + REGION Schleuse_MPS3_Platz1 + #Schleuse_Platz1_MPS3(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3395); + END_REGION + + REGION Schleuse_MPS3_Platz2 + #Schleuse_Platz2_MPS3(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3401); + END_REGION + + REGION Schleuse_MPS3_Platz3 + #Schleuse_Platz3_MPS3(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3405); + END_REGION + + REGION Weiche_MPS3_von_Platz1 + #Weiche_von_Platz1_MPS3(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3410); + END_REGION + + REGION Weiche_MPS3_von_Platz2 + #Weiche_von_Platz2_MPS3(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3406); + END_REGION + + REGION Schleuse_MPS3_raus + #Schleuse_Ausfahrt_MPS3(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3411); + END_REGION + + REGION Schleuse_vor_Ausfahrt_MPS3 + #Schleuse_Vor_Ausfahrt_MPS3(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3413); + END_REGION + + REGION Weiche_von_MPS3 + #Weiche_Ausfahrt_MPS3(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3412); + END_REGION + + REGION Schleuse_vor_Einfahrt_MPS2 + #Schleuse_Vor_Einfahrt_MPS2(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3421); + END_REGION + + REGION Weiche_zu_MPS2 + #Weiche_Einfahrt_MPS2(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3422); + END_REGION + + REGION Schleuse_Vorstau_MPS2 + #Schleuse_Vorstau_MPS2(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3423); + END_REGION + + REGION Weiche_MPS2_zu_Platz1 + #Weiche_zu_Platz1_MPS2(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3424); + END_REGION + + REGION Weiche_MPS2_zu_Platz2 + #Weiche_zu_Platz2_MPS2(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3430); + END_REGION + + REGION Schleuse_MPS2_Platz1 + #Schleuse_Platz1_MPS2(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3425); + END_REGION + + REGION Schleuse_MPS2_Platz2 + #Schleuse_Platz2_MPS2(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3431); + END_REGION + + REGION Schleuse_MPS2_Platz3 + #Schleuse_Platz3_MPS2(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3435); + END_REGION + + REGION Weiche_MPS2_von_Platz1 + #Weiche_von_Platz1_MPS2(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3440); + END_REGION + + REGION Weiche_MPS2_von_Platz2 + #Weiche_von_Platz2_MPS2(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3436); + END_REGION + + REGION Schleuse_MPS2_raus + #Schleuse_Ausfahrt_MPS2(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3441); + END_REGION + + REGION Schleuse_vor_Ausfahrt_MPS2 + #Schleuse_Vor_Ausfahrt_MPS2(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3443); + END_REGION + + REGION Weiche_von_MPS2 + #Weiche_Ausfahrt_MPS2(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3442); + END_REGION + + REGION Schleuse_vor_Einfahrt_MPS1 + #Schleuse_Vor_Einfahrt_MPS1(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3450); + END_REGION + + REGION Weiche_zu_MPS1 + #Weiche_Einfahrt_MPS1(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3452); + END_REGION + + REGION Schleuse_Vorstau_MPS1 + #Schleuse_Vorstau_MPS1(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3453); + END_REGION + + REGION Weiche_MPS1_zu_Platz1 + #Weiche_zu_Platz1_MPS1(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3454); + END_REGION + + REGION Weiche_MPS1_zu_Platz2 + #Weiche_zu_Platz2_MPS1(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3460); + END_REGION + + REGION Schleuse_MPS1_Platz1 + #Schleuse_Platz1_MPS1(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3455); + END_REGION + + REGION Schleuse_MPS1_Platz2 + #Schleuse_Platz2_MPS1(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3461); + END_REGION + + REGION Schleuse_MPS1_Platz3 + #Schleuse_Platz3_MPS1(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3465); + END_REGION + + REGION Weiche_MPS1_von_Platz1 + #Weiche_von_Platz1_MPS1(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3470); + END_REGION + + REGION Weiche_MPS1_von_Platz2 + #Weiche_von_Platz2_MPS1(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3466); + END_REGION + + REGION Schleuse_MPS1_raus + #Schleuse_Ausfahrt_MPS1(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3471); + END_REGION + + REGION Schleuse_vor_Ausfahrt_MPS1 + #Schleuse_Vor_Ausfahrt_MPS1(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3473); + END_REGION + + REGION Weiche_von_MPS1 + #Weiche_Ausfahrt_MPS1(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3472); + END_REGION + + REGION Schleuse_3456 + #Schleuse_3540(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3540); + END_REGION + + REGION Schleuse_3543 + #Schleuse_3543(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3543); + END_REGION + + REGION Ende + RETURN; + END_REGION + +END_FUNCTION_BLOCK diff --git a/SCL-Export/=A01+UH06-KF00/BCD (4stellig)_to_INT.scl b/SCL-Export/=A01+UH06-KF00/BCD (4stellig)_to_INT.scl new file mode 100644 index 0000000..9783d65 --- /dev/null +++ b/SCL-Export/=A01+UH06-KF00/BCD (4stellig)_to_INT.scl @@ -0,0 +1,44 @@ +FUNCTION "BCD (4stellig)_to_INT" : Void +{ 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 + BCD_Wert : Word; + END_VAR + + VAR_OUTPUT + Int_Wert : Int; + END_VAR + + VAR_TEMP + BCD_Vergleich : Word; + Multiplikator : Int; + END_VAR + +BEGIN + REGION Rückmeldung + #Int_Wert := 0; + #Multiplikator := 1; + END_REGION + + REGION BCD-Wert wandeln + #BCD_Vergleich := #BCD_Wert; + #Int_Wert := ((#BCD_Wert AND 16#000F) * #Multiplikator) + #Int_Wert; + #Multiplikator := #Multiplikator * 16; + #BCD_Vergleich := SHR(IN := #BCD_Vergleich, N := 4); + #Int_Wert := ((SHR(IN := #BCD_Vergleich, N := 4) AND 16#000F) * #Multiplikator) + #Int_Wert; + #Multiplikator := #Multiplikator * 16; + #BCD_Vergleich := SHR(IN := #BCD_Vergleich, N := 4); + #Int_Wert := ((SHR(IN := #BCD_Vergleich, N := 4) AND 16#000F) * #Multiplikator) + #Int_Wert; + #Multiplikator := #Multiplikator * 16; + #BCD_Vergleich := SHR(IN := #BCD_Vergleich, N := 4); + #Int_Wert := ((SHR(IN := #BCD_Vergleich, N := 4) AND 16#000F) * #Multiplikator) + #Int_Wert; + END_REGION + + REGION Ende + RETURN; + END_REGION + +END_FUNCTION diff --git a/SCL-Export/=A01+UH06-KF00/DL_Einsprung.scl b/SCL-Export/=A01+UH06-KF00/DL_Einsprung.scl new file mode 100644 index 0000000..b9f6b01 --- /dev/null +++ b/SCL-Export/=A01+UH06-KF00/DL_Einsprung.scl @@ -0,0 +1,54 @@ +FUNCTION "DL_Einsprung" : Void +{ 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 + Bereich_DL : Int; // Nur für Stammdaten =1! + ID : Int; + MW224 : Word; // war "MW224" + MW226 : Word; // war "MW226" + END_VAR + + VAR_OUTPUT + Dyn.DB : Int; + AR_Start : DInt; + Error : Bool; + Dyn_DB : Bool; // war "Dyn.DB" + MW200 : Word; // war "MW200" + END_VAR + + VAR_IN_OUT + MB199 : Byte; // war "MB199" + MW196 : Word; // war "MW196" + END_VAR + +BEGIN + REGION Inittialisierung + #Dyn_DB := 0; + #AR_Start := 0; + #Error := TRUE; + END_REGION + + REGION ID suchen + #MW200 := #ID; + "DatenOut"(SSDB := #Bereich_DL, SSDW := 0, PARA := 16#0000, SEARCHDATEN := P#M200.0, RE_VAL := #MB199, OUTDATEN := P#M220.0, Position := #MW196); // Eintrag lesen + #Error := (#MB199 AND 2#1111111) <> 0; + IF (#MB199 AND 2#1111111) <> 0 THEN RETURN; END_IF; + END_REGION + + REGION Daten übergeben + #Dyn_DB := #MW224; + IF #MW224 <= 0 THEN + #Error := TRUE; + RETURN; + END_IF; + #AR_Start := INT_TO_DINT(#MW226); + END_REGION + + REGION Ende + RETURN; + END_REGION + +END_FUNCTION diff --git a/SCL-Export/=A01+UH06-KF00/HWtoAMRZielFC.scl b/SCL-Export/=A01+UH06-KF00/HWtoAMRZielFC.scl new file mode 100644 index 0000000..ecedea9 --- /dev/null +++ b/SCL-Export/=A01+UH06-KF00/HWtoAMRZielFC.scl @@ -0,0 +1,54 @@ +FUNCTION "HWtoAMRZielFC" : Void +{ 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 + MW190 : Word; // war "MW190" + END_VAR + + VAR_OUTPUT + M180_6 : Bool; // war "M180.6" + END_VAR + + VAR_TEMP + Ziel_hex : Word; + Ziel_int : Int; + Zielebene : Word; + Error : Byte; + Position : Int; + Lager_DB : Int; + Lager_DW : Int; + AR1Zeiger : DWord; // Statt AR1 (ging nur bis DB-Länge <= 8191 Bytes) + AR1Start : DInt; // Startwert mit Offset 0 + SSDW : Int; + EndZiel : Word; + Variante : Int; + AbrufID : DInt; + Fahrlisten_TrolleyID : DInt; + Fahrlisten_AbrufID : DInt; + Fahrlisten_Lager : Int; + Trolley_unbekannt : Bool; // Trolley ist nicht in DL + Express_Abruf : Bool; + END_VAR + +BEGIN + REGION Rückmeldung + #M180_6 := FALSE; + END_REGION + + REGION CASE #MW190 + CASE #MW190 OF + 3004: // Schleuse 3004: (BST 3) + #M180_6 := TRUE; + 3565: // Schleuse 3565: (BST 4) + #M180_6 := TRUE; + END_CASE; + END_REGION + + REGION Ende + RETURN; + END_REGION + +END_FUNCTION diff --git a/SCL-Export/=A01+UH06-KF00/HWtoAMR_Sensoren.scl b/SCL-Export/=A01+UH06-KF00/HWtoAMR_Sensoren.scl new file mode 100644 index 0000000..f3f58f7 --- /dev/null +++ b/SCL-Export/=A01+UH06-KF00/HWtoAMR_Sensoren.scl @@ -0,0 +1,102 @@ +FUNCTION_BLOCK "HWtoAMR_Sensoren" +{ 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_IN_OUT + BG3001 : Word; // war "BG3001" + BG3002 : Word; // war "BG3002" + BG3006 : Word; // war "BG3006" + BG3017 : Word; // war "BG3017" + BG3062 : Word; // war "BG3062" + BG3065 : Word; // war "BG3065" + BG3561 : Word; // war "BG3561" + BG3563 : Word; // war "BG3563" + BG3564 : Word; // war "BG3564" + BG3566 : Word; // war "BG3566" + BG3567 : Word; // war "BG3567" + END_VAR + + VAR + An_BG3065 : "MSensoren"; // Stau am Sensor Einfahrt MA0203 + Stau_BG3062 : "MSensoren"; // Stau am Sensor Einfahrt MA0204 + Stau_BG3006 : "MSensoren"; // Stau am Sensor Einfahrt MA0205 + Stau_BG3017 : "MSensoren"; // Stau am Sensor Mitte MA0205 + Stau_BG3002 : "MSensoren"; // Stau hinter BST 3 + Stau_BG3001 : "MSensoren"; // Stau hinter BST 3 + Stau_BG3561 : "MSensoren"; // Stau am Sensor Einfahrt MA0060 + Stau_BG3557 : "MSensoren"; // Stau am Sensor Einfahrt MA0060 + Stau_BG3563 : "MSensoren"; // Stau am Sensor Einfahrt MA0116 + Stau_BG3564 : "MSensoren"; // Stau am Sensor Gefälle vor BST 4 + Stau_BG3566 : "MSensoren"; // Stau am Sensor Gefälle nach BST 4 + Stau_BG3567 : "MSensoren"; // Stau am Sensor Einfahrt MA0061 + END_VAR + + VAR_TEMP + T_Ein : Int; // Vorgabe Einschaltverzögerung + T_Aus : Int; // Zwischenspeicher Ausschaltverzögerung + F1 : Bool; // Geschwindigkeit 1 aktiviert + F2 : Bool; // Geschwindigkeit 2 aktiviert + F3 : Bool; // Geschwindigkeit 3 aktiviert + ESensor : Bool; // Sensoren + Antrieb : Bool; + VReal : Real; // GeschwindigkeitinReal + Zeit : Int; // Zeit für Ausschaltverzögerung LT1100 + Aktiv : Bool; // Zeit aktivieren + END_VAR + +BEGIN + REGION An Sensor Einfahrt MA0203 + #An_BG3065(ESensor := #BG3065, T_Ein := 1, T_Aus := 11, tein_aktiv := TRUE, taus_aktiv := TRUE); // Sensoren entprellen + END_REGION + + REGION Stau am Sensor Einfahrt MA0204 + #Stau_BG3062(ESensor := #BG3062, T_Ein := 1, T_Aus := 11, tein_aktiv := TRUE, taus_aktiv := TRUE); // Sensoren entprellen + END_REGION + + REGION Stau am Sensor Einfahrt MA0205 + #Stau_BG3006(ESensor := #BG3006, T_Ein := 1, T_Aus := 11, tein_aktiv := TRUE, taus_aktiv := TRUE); // Sensoren entprellen + END_REGION + + REGION Stau am Sensor Mitte MA0205 + #Stau_BG3017(ESensor := #BG3017, T_Ein := 1, T_Aus := 11, tein_aktiv := TRUE, taus_aktiv := TRUE); // Sensoren entprellen + END_REGION + + REGION Stau hinter BST 3 + #Stau_BG3002(ESensor := #BG3002, T_Ein := 1, T_Aus := 11, tein_aktiv := TRUE, taus_aktiv := TRUE); // Sensoren entprellen + END_REGION + + REGION Stau hinter BST 3 + #Stau_BG3001(ESensor := #BG3001, T_Ein := 1, T_Aus := 11, tein_aktiv := TRUE, taus_aktiv := TRUE); // Sensoren entprellen + END_REGION + + REGION Stau am Sensor Einfahrt MA0060 + #Stau_BG3561(ESensor := #BG3561, T_Ein := 1, T_Aus := 11, tein_aktiv := TRUE, taus_aktiv := TRUE); // Sensoren entprellen + END_REGION + + REGION Stau am Sensor Mitte MA0131 + #Stau_BG3557(ESensor := #BG3561, T_Ein := 80, T_Aus := 11, tein_aktiv := TRUE, taus_aktiv := TRUE); // Sensoren entprellen + END_REGION + + REGION Stau am Sensor Einfahrt MA0116 + #Stau_BG3563(ESensor := #BG3563, T_Ein := 1, T_Aus := 11, tein_aktiv := TRUE, taus_aktiv := TRUE); // Sensoren entprellen + END_REGION + + REGION Stau am Sensor Gefälle vor BST4 + #Stau_BG3564(ESensor := #BG3564, T_Ein := 1, T_Aus := 11, tein_aktiv := TRUE, taus_aktiv := TRUE); // Sensoren entprellen + END_REGION + + REGION Stau am Sensor Gefälle nach BST4 + #Stau_BG3566(ESensor := #BG3566, T_Ein := 1, T_Aus := 11, tein_aktiv := TRUE, taus_aktiv := TRUE); // Sensoren entprellen + END_REGION + + REGION Stau am Sensor Einfahrt MA0061 + #Stau_BG3567(ESensor := #BG3567, T_Ein := 1, T_Aus := 11, tein_aktiv := TRUE, taus_aktiv := TRUE); // Sensoren entprellen + END_REGION + + REGION Ende + RETURN; + END_REGION + +END_FUNCTION_BLOCK diff --git a/SCL-Export/=A01+UH06-KF00/HWtoAMR_Zylinder.scl b/SCL-Export/=A01+UH06-KF00/HWtoAMR_Zylinder.scl new file mode 100644 index 0000000..92db644 --- /dev/null +++ b/SCL-Export/=A01+UH06-KF00/HWtoAMR_Zylinder.scl @@ -0,0 +1,74 @@ +FUNCTION_BLOCK "HWtoAMR_Zylinder" +{ 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 + DAMR_Bereich : Word; // war "DAMR_Bereich" + END_VAR + + VAR_IN_OUT + MB3000 : Byte; // war "MB3000" + MB3004 : Byte; // war "MB3004" + MB3005 : Byte; // war "MB3005" + MB3061 : Byte; // war "MB3061" + MB3562 : Byte; // war "MB3562" + MB3565 : Byte; // war "MB3565" + END_VAR + + VAR + Schleuse_3061 : "MZylinder"; // + Schleuse_3005 : "MZylinder"; + Schleuse_3004 : "MZylinder"; + Schleuse_3000 : "MZylinder"; + Schleuse_3562 : "MZylinder"; + Schleuse_3565 : "MZylinder"; // + END_VAR + + VAR_TEMP + Auto : Bool; // Automatik ist aktiv + Hand : Bool; // Hand ist aktiv + ZylAst : Bool; // Zylinder ansteuern + END_VAR + +BEGIN + REGION Übergabe des Bereichstatus System UC061/A01 + #Auto := #DAMR_Bereich.A01_UH06.Automatik AND NOT (#DAMR_Bereich.A01_UH06.Handbetrieb); + IF ((#DAMR_Bereich.A01_UC061.BereichErr OR #DAMR_Bereich.A01_UZ6102.Area_Stop) OR #DAMR_Bereich.A01_UZ6103.Area_Stop) OR #DAMR_Bereich.A01_UZ6104.Area_Stop THEN GOTO Next; END_IF; + END_REGION + + REGION Schleuse_3061 + #Schleuse_3061(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3061); + END_REGION + + REGION Schleuse_3005 + #Schleuse_3005(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3005); + END_REGION + + REGION Schleuse_3004 + #Schleuse_3004(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3004); + END_REGION + + REGION Übergabe des Bereichstatus System UH06 / A01 + #Auto := #DAMR_Bereich.A01_UH06.Automatik AND NOT (#DAMR_Bereich.A01_UH06.Handbetrieb); + IF #DAMR_Bereich.A01_UH06_Halle4.BereichErr THEN GOTO Next2; END_IF; + END_REGION + + REGION Schleuse_3000 + #Schleuse_3000(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3000); + END_REGION + + REGION Schleuse_3562 + #Schleuse_3562(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3562); + END_REGION + + REGION Schleuse_3565 + #Schleuse_3565(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3565); + END_REGION + + REGION Ende + RETURN; + END_REGION + +END_FUNCTION_BLOCK diff --git a/SCL-Export/=A01+UH06-KF00/HWtoOB_Sensoren.scl b/SCL-Export/=A01+UH06-KF00/HWtoOB_Sensoren.scl new file mode 100644 index 0000000..dd8c339 --- /dev/null +++ b/SCL-Export/=A01+UH06-KF00/HWtoOB_Sensoren.scl @@ -0,0 +1,103 @@ +FUNCTION_BLOCK "HWtoOB_Sensoren" +{ 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_IN_OUT + BG3011 : Word; // war "BG3011" + BG3013 : Word; // war "BG3013" + BG3015 : Word; // war "BG3015" + BG3066 : Word; // war "BG3066" + BG3071 : Word; // war "BG3071" + BG3544 : Word; // war "BG3544" + BG3545 : Word; // war "BG3545" + BG3551 : Word; // war "BG3551" + BG3552 : Word; // war "BG3552" + BG3554 : Word; // war "BG3554" + BG3570 : Word; // war "BG3570" + MA0114 : Bool; // war "MA0114" + MA0115 : Bool; // war "MA0115" + MA0117 : Bool; // war "MA0117" + MA0200 : Bool; // war "MA0200" + MA0201 : Bool; // war "MA0201" + MA0202 : Bool; // war "MA0202" + END_VAR + + VAR + Stau_BG3570 : "MSensoren"; // Stau vor Schleuse 3540 + Stau_BG3544 : "MSensoren"; // Stau am Sensor Gefälle nach BST 4 + Stau_BG3545 : "MSensoren"; // Stau am Sensor Einfahrt MA0114 + Stau_BG3551 : "MSensoren"; // Stau am Sensor Einfahrt MA0115 + Stau_BG3552 : "MSensoren"; // Stau am Sensor Einfahrt MA0115 + Stau_BG3554 : "MSensoren"; // Stau am Sensor Einfahrt MA0117 + Stau_BG3015 : "MSensoren"; // Stau am Sensor Gefälle vor BST 3 + Stau_BG3013 : "MSensoren"; // Stau am Sensor Gefälle nach BST 3 + Stau_BG3011 : "MSensoren"; // Stau vor Schleuse 3010 + Stau_BG3071 : "MSensoren"; // Stau vor Schleuse 3070 + Stau_BG3066 : "MSensoren"; // Stau am Sensor Einfahrt MA0202 + END_VAR + + VAR_TEMP + T_Ein : Int; // Vorgabe Einschaltverzögerung + T_Aus : Int; // Zwischenspeicher Ausschaltverzögerung + F1 : Bool; // Geschwindigkeit 1 aktiviert + F2 : Bool; // Geschwindigkeit 2 aktiviert + F3 : Bool; // Geschwindigkeit 3 aktiviert + ESensor : Bool; // Sensoren + Antrieb : Bool; + VReal : Real; // GeschwindigkeitinReal + Zeit : Int; // Zeit für Ausschaltverzögerung LT1100 + Aktiv : Bool; // Zeit aktivieren + END_VAR + +BEGIN + REGION Stau vor Schleuse 3570 + #Stau_BG3570(ESensor := #BG3570, T_Ein := 1, T_Aus := 30, tein_aktiv := TRUE, taus_aktiv := TRUE); // Sensoren entprellen + END_REGION + + REGION Stau am Sensor Gefälle nach BST 4 + #Stau_BG3544(ESensor := #BG3544, T_Ein := 80, T_Aus := 11, tein_aktiv := TRUE, taus_aktiv := 1); // Sensoren entprellen + END_REGION + + REGION Stau am Sensor Einfahrt MA0114 + #Stau_BG3545(ESensor := #BG3545, T_Ein := 1, T_Aus := 11, tein_aktiv := TRUE, taus_aktiv := #MA0114); // Sensoren entprellen + END_REGION + + REGION Stau am Sensor Einfahrt MA0115 + #Stau_BG3551(ESensor := #BG3551, T_Ein := 80, T_Aus := 11, tein_aktiv := TRUE, taus_aktiv := #MA0115); // Sensoren entprellen + END_REGION + + REGION Stau am Sensor Ende MA0115 + #Stau_BG3552(ESensor := #BG3552, T_Ein := 1, T_Aus := 11, tein_aktiv := TRUE, taus_aktiv := #MA0115); // Sensoren entprellen + END_REGION + + REGION Stau am Sensor Einfahrt MA0117 + #Stau_BG3554(ESensor := #BG3554, T_Ein := 1, T_Aus := 11, tein_aktiv := TRUE, taus_aktiv := #MA0117); // Sensoren entprellen + END_REGION + + REGION Stau am Sensor Gefälle vor BST 3 + #Stau_BG3015(ESensor := #BG3015, T_Ein := 1, T_Aus := 30, tein_aktiv := TRUE, taus_aktiv := 1); // Sensoren entprellen + END_REGION + + REGION Stau am Sensor Gefälle nach BST 3 + #Stau_BG3013(ESensor := #BG3013, T_Ein := 1, T_Aus := 11, tein_aktiv := TRUE, taus_aktiv := 1); // Sensoren entprellen + END_REGION + + REGION Stau vor Schleuse 3010 + #Stau_BG3011(ESensor := #BG3011, T_Ein := 1, T_Aus := 11, tein_aktiv := TRUE, taus_aktiv := #MA0200); // Sensoren entprellen + END_REGION + + REGION Stau vor Schleuse 3070 + #Stau_BG3071(ESensor := #BG3071, T_Ein := 1, T_Aus := 11, tein_aktiv := TRUE, taus_aktiv := #MA0201); // Sensoren entprellen + END_REGION + + REGION Stau am Sensor Einfahrt MA0202 + #Stau_BG3066(ESensor := #BG3066, T_Ein := 1, T_Aus := 11, tein_aktiv := TRUE, taus_aktiv := #MA0202); // Sensoren entprellen + END_REGION + + REGION Ende + RETURN; + END_REGION + +END_FUNCTION_BLOCK diff --git a/SCL-Export/=A01+UH06-KF00/HWtoOB_Zylinder.scl b/SCL-Export/=A01+UH06-KF00/HWtoOB_Zylinder.scl new file mode 100644 index 0000000..21e14eb --- /dev/null +++ b/SCL-Export/=A01+UH06-KF00/HWtoOB_Zylinder.scl @@ -0,0 +1,81 @@ +FUNCTION_BLOCK "HWtoOB_Zylinder" +{ 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 + DAMR_Bereich : Word; // war "DAMR_Bereich" + END_VAR + + VAR_IN_OUT + MB3010 : Byte; // war "MB3010" + MB3012 : Byte; // war "MB3012" + MB3014 : Byte; // war "MB3014" + MB3070 : Byte; // war "MB3070" + MB3073 : Byte; // war "MB3073" + MB3546 : Byte; // war "MB3546" + MB3552 : Byte; // war "MB3552" + END_VAR + + VAR + Schleuse_3546 : "MZylinder"; // + Schleuse_3552 : "MZylinder"; + Schleuse_3014 : "MZylinder"; + Schleuse_3012 : "MZylinder"; + Schleuse_3010 : "MZylinder"; + Schleuse_3070 : "MZylinder"; // + Schleuse_3073 : "MZylinder"; // + END_VAR + + VAR_TEMP + Auto : Bool; // Automatik ist aktiv + Hand : Bool; // Hand ist aktiv + ZylAst : Bool; // Zylinder ansteuern + END_VAR + +BEGIN + REGION Übergabe des Bereichstatus System UH06 / A01 + #Auto := #DAMR_Bereich.A01_UH06.Automatik AND NOT (#DAMR_Bereich.A01_UH06.Handbetrieb); + IF #DAMR_Bereich.A01_UH06_Halle4.BereichErr THEN GOTO Next; END_IF; + END_REGION + + REGION Schleuse_3546 + #Schleuse_3546(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3546); + END_REGION + + REGION Schleuse_3552 + #Schleuse_3552(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3552); + END_REGION + + REGION Schleuse_3014 + #Schleuse_3014(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3014); + END_REGION + + REGION Übergabe des Bereichstatus System UC061/A01 + #Auto := #DAMR_Bereich.A01_UH06.Automatik AND NOT (#DAMR_Bereich.A01_UH06.Handbetrieb); + #Hand := FALSE; + IF ((#DAMR_Bereich.A01_UC061.BereichErr OR #DAMR_Bereich.A01_UZ6102.Area_Stop) OR #DAMR_Bereich.A01_UZ6103.Area_Stop) OR #DAMR_Bereich.A01_UZ6104.Area_Stop THEN GOTO Next2; END_IF; + END_REGION + + REGION Schleuse_3012 + #Schleuse_3012(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3012); + END_REGION + + REGION Schleuse_3010 + #Schleuse_3010(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3010); + END_REGION + + REGION Schleuse_3070 + #Schleuse_3070(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3070); + END_REGION + + REGION Schleuse_3073 + #Schleuse_3073(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3073); + END_REGION + + REGION Ende + RETURN; + END_REGION + +END_FUNCTION_BLOCK diff --git a/SCL-Export/=A01+UH06-KF00/MAusfahrPrio_ABP.scl b/SCL-Export/=A01+UH06-KF00/MAusfahrPrio_ABP.scl new file mode 100644 index 0000000..55b0c27 --- /dev/null +++ b/SCL-Export/=A01+UH06-KF00/MAusfahrPrio_ABP.scl @@ -0,0 +1,87 @@ +FUNCTION_BLOCK "MAusfahrPrio_ABP" +{ 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 + BG_Haupt_Schleuse : Bool; // Trolley ist in Schleuse auf Hauptstrecke + Haupt_Schleuse_geöffnet : Bool; // Schleuse hat geöffnet + BG_ABP_Schleuse : Bool; // Trolley ist in Schleuse von ABP-Einfahrt + ABP_Schleuse_geöffnet : Bool; // Schleuse hat geöffnet + Aktive_ABP : Int; + g_1s_Impuls : Word; // war "1s-Impuls" + OUT_Haupt_Schleuse_starten : Bool; // war "OUT.Haupt_Schleuse_starten" + Out_ABP_Schleuse_starten : Bool; // war "Out.ABP_Schleuse_starten" + END_VAR + + VAR + "OUT.Haupt_Schleuse_starten" : Bool; + "Out.ABP_Schleuse_starten" : Bool; + Dyn : Struct + Anzahl_Haupt : Int; + Wartezeit : Int; + END_STRUCT; + END_VAR + + VAR_TEMP + Check_ok : Bool; + Partner : Int; + END_VAR + +BEGIN + REGION Haupt-Schleuse ist gestartet + IF #Haupt_Schleuse_geöffnet AND ##OUT_Haupt_Schleuse_starten THEN ##OUT_Haupt_Schleuse_starten := FALSE; END_IF; + IF NOT (#Haupt_Schleuse_geöffnet AND ##OUT_Haupt_Schleuse_starten) THEN GOTO En01; END_IF; + #Dyn.Anzahl_Haupt := #Dyn.Anzahl_Haupt + 1; + IF (#Dyn.Anzahl_Haupt + 1) <= 8 THEN GOTO En01; END_IF; + #Dyn.Anzahl_Haupt := 8; + En01: ; + END_REGION + + REGION ABP-Schleuse ist gestartet + IF #ABP_Schleuse_geöffnet AND ##Out_ABP_Schleuse_starten THEN ##Out_ABP_Schleuse_starten := FALSE; END_IF; + IF #ABP_Schleuse_geöffnet AND ##Out_ABP_Schleuse_starten THEN #Dyn.Anzahl_Haupt := 0; END_IF; + END_REGION + + REGION Wartezeit, wenn beide Schleusen geschlossen + IF NOT (#Haupt_Schleuse_geöffnet) AND NOT (#ABP_Schleuse_geöffnet) THEN + #Dyn.Wartezeit := 0; + #Check_ok := FALSE; + GOTO En03; + END_IF; + IF NOT (#g_1s_Impuls) THEN GOTO En03; END_IF; + #Dyn.Wartezeit := #Dyn.Wartezeit + 1; + IF (#Dyn.Wartezeit + 1) >= 5 THEN #Check_ok := TRUE; END_IF; + IF (#Dyn.Wartezeit + 1) < 5 THEN GOTO En03; END_IF; + #Dyn.Wartezeit := 5; + En03: ; + END_REGION + + REGION Check, wer dran ist + IF NOT (#BG_Haupt_Schleuse) THEN ##OUT_Haupt_Schleuse_starten := FALSE; END_IF; + IF NOT (#BG_ABP_Schleuse) THEN ##Out_ABP_Schleuse_starten := FALSE; END_IF; + IF (##OUT_Haupt_Schleuse_starten AND #BG_Haupt_Schleuse) OR (((##Out_ABP_Schleuse_starten AND #BG_ABP_Schleuse) OR #Haupt_Schleuse_geöffnet) OR #ABP_Schleuse_geöffnet) THEN RETURN; END_IF; + #Partner := #Aktive_ABP + -1; + IF ((#Aktive_ABP + -1) <= 0) AND #BG_ABP_Schleuse THEN + ##Out_ABP_Schleuse_starten := TRUE; + RETURN; + END_IF; + IF (#Dyn.Anzahl_Haupt < #Partner) AND #BG_Haupt_Schleuse THEN + ##OUT_Haupt_Schleuse_starten := TRUE; + RETURN; + END_IF; + IF NOT (#Check_ok) THEN RETURN; END_IF; + IF #BG_ABP_Schleuse THEN + ##Out_ABP_Schleuse_starten := TRUE; + RETURN; + END_IF; + IF #BG_Haupt_Schleuse THEN ##OUT_Haupt_Schleuse_starten := TRUE; END_IF; + RETURN; + END_REGION + + REGION Ende + RETURN; + END_REGION + +END_FUNCTION_BLOCK diff --git a/SCL-Export/=A01+UH06-KF00/MBlinken.scl b/SCL-Export/=A01+UH06-KF00/MBlinken.scl new file mode 100644 index 0000000..2690abc --- /dev/null +++ b/SCL-Export/=A01+UH06-KF00/MBlinken.scl @@ -0,0 +1,106 @@ +FUNCTION_BLOCK "MBlinken" +{ 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 + Impulsdauer : Bool; // Impulsdauer + Error_1 : Bool; + Error_2 : Bool; + Error_3 : Bool; + Error_4 : Bool; + Error_5 : Bool; + Error_6 : Bool; + Error_7 : Bool; + Error_8 : Bool; + Error_9 : Bool; + Error_10 : Bool; + END_VAR + + VAR_OUTPUT + hAnzeige : Bool; // Anzeige + END_VAR + + VAR + Flanke_Ausschalttakt : Bool; + Kein_Blinken : Bool; + Ausschalttakte : Int; // Betriebsbereit ist ausgeschaltet + END_VAR + + VAR_TEMP + tGen1_Flanke : Bool; + END_VAR + +BEGIN + REGION Anzeige bei Error 1-10 1-10 mal blinken lassen + IF ((((((((NOT (#Error_1) AND NOT (#Error_2)) AND NOT (#Error_3)) AND NOT (#Error_4)) AND NOT (#Error_5)) AND NOT (#Error_6)) AND NOT (#Error_7)) AND NOT (#Error_8)) AND NOT (#Error_9)) AND NOT (#Error_10) THEN + #hAnzeige := FALSE; + #Flanke_Ausschalttakt := FALSE; + #Kein_Blinken := FALSE; + GOTO NoAn; + END_IF; + #hAnzeige := #Impulsdauer AND NOT (#Kein_Blinken); + #tGen1_Flanke := NOT (#Impulsdauer) AND #Flanke_Ausschalttakt; + #Flanke_Ausschalttakt := #Impulsdauer; + IF #tGen1_Flanke THEN #Ausschalttakte := #Ausschalttakte + 1; END_IF; + IF (#Ausschalttakte >= 2) AND #Kein_Blinken THEN + #Kein_Blinken := FALSE; + GOTO NoAn; + END_IF; + IF #Kein_Blinken THEN GOTO En01; END_IF; + IF (#Ausschalttakte >= 1) AND #Error_1 THEN + #Kein_Blinken := TRUE; + GOTO NoAn; + END_IF; + IF (#Ausschalttakte >= 2) AND #Error_2 THEN + #Kein_Blinken := TRUE; + GOTO NoAn; + END_IF; + IF (#Ausschalttakte >= 3) AND #Error_3 THEN + #Kein_Blinken := TRUE; + GOTO NoAn; + END_IF; + IF (#Ausschalttakte >= 4) AND #Error_4 THEN + #Kein_Blinken := TRUE; + GOTO NoAn; + END_IF; + IF (#Ausschalttakte >= 5) AND #Error_5 THEN + #Kein_Blinken := TRUE; + GOTO NoAn; + END_IF; + IF (#Ausschalttakte >= 6) AND #Error_6 THEN + #Kein_Blinken := TRUE; + GOTO NoAn; + END_IF; + IF (#Ausschalttakte >= 7) AND #Error_7 THEN + #Kein_Blinken := TRUE; + GOTO NoAn; + END_IF; + IF (#Ausschalttakte >= 8) AND #Error_8 THEN + #Kein_Blinken := TRUE; + GOTO NoAn; + END_IF; + IF (#Ausschalttakte >= 9) AND #Error_9 THEN + #Kein_Blinken := TRUE; + GOTO NoAn; + END_IF; + IF (#Ausschalttakte >= 10) AND #Error_10 THEN + #Kein_Blinken := TRUE; + GOTO NoAn; + END_IF; + IF #Ausschalttakte > 10 THEN + #Kein_Blinken := TRUE; + GOTO NoAn; + END_IF; + GOTO En01; + NoAn: ; + #Ausschalttakte := 0; + En01: ; + END_REGION + + REGION Ende + RETURN; + END_REGION + +END_FUNCTION_BLOCK diff --git a/SCL-Export/=A01+UH06-KF00/MSensoren.scl b/SCL-Export/=A01+UH06-KF00/MSensoren.scl new file mode 100644 index 0000000..06d2200 --- /dev/null +++ b/SCL-Export/=A01+UH06-KF00/MSensoren.scl @@ -0,0 +1,56 @@ +FUNCTION_BLOCK "MSensoren" +{ 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 + ESensor { ExternalWritable := 'False'} : Bool; // Eingang des zu überwachenden Sensors + T_Ein { ExternalWritable := 'False'} : Int := 1; // Einschaltzeitverzögerung (*100ms) + T_Aus { ExternalWritable := 'False'} : Int := 5; // Ausschaltzeitverzögerung (*100ms) + tein_aktiv { ExternalWritable := 'False'} : Bool := TRUE; // Einschaltzeit aktivieren + taus_aktiv { ExternalWritable := 'False'} : Bool := TRUE; // Ausschaltzeit aktivieren + g_100ms_Impuls : Word; // war "100ms-Impuls" + MW2 : Word; // war "MW2" + END_VAR + + VAR + Stat { ExternalWritable := 'False'} : "USensor_Ein_Aus"; // Status des Endschalters + END_VAR + +BEGIN + REGION Zeitwert löschen + IF NOT ((#ESensor AND #Stat.B_Akt) OR (NOT (#ESensor) AND NOT (#Stat.B_Akt))) THEN GOTO Nw02; END_IF; + #Stat.T_Zelle := 0; + RETURN; + END_REGION + + REGION Einschaltzeit abgelaufen ? + IF #Stat.T_Ein_Akt = 9999 THEN #Stat.T_Ein_Akt := #T_Ein; END_IF; + IF #Stat.B_Akt THEN GOTO Nw03; END_IF; + IF #Stat.T_Zelle >= #Stat.T_Ein_Akt THEN + #Stat.B_Akt := TRUE; + GOTO tdel; + END_IF; + GOTO Nw04; + END_REGION + + REGION Ausschaltzeit abgelaufen ? + IF #Stat.T_Aus_Akt = 9999 THEN #Stat.T_Aus_Akt := #T_Aus; END_IF; + IF NOT (#Stat.B_Akt) THEN GOTO Nw04; END_IF; + IF #Stat.T_Zelle >= #Stat.T_Aus_Akt THEN + #Stat.B_Akt := FALSE; + GOTO tdel; + END_IF; + END_REGION + + REGION Zeit läuft + IF (NOT (#g_100ms_Impuls) OR (NOT (#Stat.B_Akt) AND NOT (#tein_aktiv))) OR (#Stat.B_Akt AND NOT (#taus_aktiv)) THEN RETURN; END_IF; + #Stat.T_Zelle := #Stat.T_Zelle + #MW2; + END_REGION + + REGION Ende + RETURN; + END_REGION + +END_FUNCTION_BLOCK diff --git a/SCL-Export/=A01+UH06-KF00/Startup.scl b/SCL-Export/=A01+UH06-KF00/Startup.scl new file mode 100644 index 0000000..d949c93 --- /dev/null +++ b/SCL-Export/=A01+UH06-KF00/Startup.scl @@ -0,0 +1,36 @@ +ORGANIZATION_BLOCK "Startup" +{ 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_OUTPUT + DAMR_Bereich : Word; // war "DAMR_Bereich" + SGes : Word; // war "SGes" + END_VAR + +BEGIN + REGION Neustart + #SGes.Neustart := TRUE; + #DAMR_Bereich.A01_UH06.Not_Aus.UH06 := FALSE; + #DAMR_Bereich.A01_UH06.Not_Aus.UZ0601 := FALSE; + #DAMR_Bereich.A01_UH06.Not_Aus.UZ0602 := FALSE; + #DAMR_Bereich.A01_UH06.Not_Aus.UZ0603 := FALSE; + #DAMR_Bereich.A01_UH06.Not_Aus.UZ0611 := FALSE; + #DAMR_Bereich.A01_UH06.Not_Aus.UZ0612 := FALSE; + #DAMR_Bereich.A01_UH06.Not_Aus.UZ0613 := FALSE; + #DAMR_Bereich.A01_UH06.Not_Aus.UZ0614 := FALSE; + #DAMR_Bereich.A01_UH06.Not_Aus.UZ0615 := FALSE; + #DAMR_Bereich.A01_UH06.Not_Aus.UZ0621 := FALSE; + #DAMR_Bereich.A01_UH06.Not_Aus.UZ0622 := FALSE; + #DAMR_Bereich.A01_UH06_Halle4.Not_Aus.UZ0620 := FALSE; + #DAMR_Bereich.A01_UC061.Not_Aus.UZ6102 := FALSE; + #DAMR_Bereich.A01_UC061.Not_Aus.UZ6103 := FALSE; + #DAMR_Bereich.A01_UC061.Not_Aus.UZ6104 := FALSE; + END_REGION + + REGION Ende + RETURN; + END_REGION + +END_ORGANIZATION_BLOCK diff --git a/SCL-Export/=A01+UH07-KF00/BCD (4stellig)_to_INT.scl b/SCL-Export/=A01+UH07-KF00/BCD (4stellig)_to_INT.scl new file mode 100644 index 0000000..9783d65 --- /dev/null +++ b/SCL-Export/=A01+UH07-KF00/BCD (4stellig)_to_INT.scl @@ -0,0 +1,44 @@ +FUNCTION "BCD (4stellig)_to_INT" : Void +{ 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 + BCD_Wert : Word; + END_VAR + + VAR_OUTPUT + Int_Wert : Int; + END_VAR + + VAR_TEMP + BCD_Vergleich : Word; + Multiplikator : Int; + END_VAR + +BEGIN + REGION Rückmeldung + #Int_Wert := 0; + #Multiplikator := 1; + END_REGION + + REGION BCD-Wert wandeln + #BCD_Vergleich := #BCD_Wert; + #Int_Wert := ((#BCD_Wert AND 16#000F) * #Multiplikator) + #Int_Wert; + #Multiplikator := #Multiplikator * 16; + #BCD_Vergleich := SHR(IN := #BCD_Vergleich, N := 4); + #Int_Wert := ((SHR(IN := #BCD_Vergleich, N := 4) AND 16#000F) * #Multiplikator) + #Int_Wert; + #Multiplikator := #Multiplikator * 16; + #BCD_Vergleich := SHR(IN := #BCD_Vergleich, N := 4); + #Int_Wert := ((SHR(IN := #BCD_Vergleich, N := 4) AND 16#000F) * #Multiplikator) + #Int_Wert; + #Multiplikator := #Multiplikator * 16; + #BCD_Vergleich := SHR(IN := #BCD_Vergleich, N := 4); + #Int_Wert := ((SHR(IN := #BCD_Vergleich, N := 4) AND 16#000F) * #Multiplikator) + #Int_Wert; + END_REGION + + REGION Ende + RETURN; + END_REGION + +END_FUNCTION diff --git a/SCL-Export/=A01+UH07-KF00/DL_Einsprung.scl b/SCL-Export/=A01+UH07-KF00/DL_Einsprung.scl new file mode 100644 index 0000000..f4e9393 --- /dev/null +++ b/SCL-Export/=A01+UH07-KF00/DL_Einsprung.scl @@ -0,0 +1,53 @@ +FUNCTION "DL_Einsprung" : Void +{ 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 + Bereich_DL : Int; // Nur für Stammdaten =1! + ID : Int; + MW224 : Word; // war "MW224" + MW226 : Word; // war "MW226" + END_VAR + + VAR_OUTPUT + "Dyn.DB" : Int; + AR_Start : DInt; + Error : Bool; + MW200 : Word; // war "MW200" + END_VAR + + VAR_IN_OUT + MB199 : Byte; // war "MB199" + MW196 : Word; // war "MW196" + END_VAR + +BEGIN + REGION Inittialisierung + #"Dyn.DB" := 0; + #AR_Start := 0; + #Error := TRUE; + END_REGION + + REGION ID suchen + #MW200 := #ID; + "DatenOut"(SSDB := #Bereich_DL, SSDW := 0, PARA := 16#0000, SEARCHDATEN := P#M200.0, RE_VAL := #MB199, OUTDATEN := P#M220.0, Position := #MW196); // Eintrag lesen + #Error := (#MB199 AND 2#1111111) <> 0; + IF (#MB199 AND 2#1111111) <> 0 THEN RETURN; END_IF; + END_REGION + + REGION Daten übergeben + #"Dyn.DB" := #MW224; + IF #MW224 <= 0 THEN + #Error := TRUE; + RETURN; + END_IF; + #AR_Start := INT_TO_DINT(#MW226); + END_REGION + + REGION Ende + RETURN; + END_REGION + +END_FUNCTION diff --git a/SCL-Export/=A01+UH07-KF00/EP_Sensoren.scl b/SCL-Export/=A01+UH07-KF00/EP_Sensoren.scl new file mode 100644 index 0000000..ea0bc29 --- /dev/null +++ b/SCL-Export/=A01+UH07-KF00/EP_Sensoren.scl @@ -0,0 +1,55 @@ +FUNCTION_BLOCK "EP_Sensoren" +{ 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_IN_OUT + BG4504 : Word; // war "BG4504" + BG4505 : Word; // war "BG4505" + BG4506 : Word; // war "BG4506" + BG4507 : Word; // war "BG4507" + END_VAR + + VAR + Stau_EP1 : "MSensoren"; + Stau_EP2 : "MSensoren"; + Stau_EP3 : "MSensoren"; + Stau_EP4 : "MSensoren"; + END_VAR + + VAR_TEMP + T_Ein : Int; // Vorgabe Einschaltverzögerung + T_Aus : Int; // Zwischenspeicher Ausschaltverzögerung + F1 : Bool; // Geschwindigkeit 1 aktiviert + F2 : Bool; // Geschwindigkeit 2 aktiviert + F3 : Bool; // Geschwindigkeit 3 aktiviert + ESensor : Bool; // Sensoren + Antrieb : Bool; + VReal : Real; // GeschwindigkeitinReal + Zeit : Int; // Zeit für Ausschaltverzögerung LT1100 + Aktiv : Bool; // Zeit aktivieren + END_VAR + +BEGIN + REGION Stau EntnahmePuffer + #Stau_EP1(ESensor := #BG4504, T_Ein := 100, T_Aus := 11, tein_aktiv := TRUE, taus_aktiv := TRUE); // Sensoren entprellen + END_REGION + + REGION Stau EntnahmePuffer + #Stau_EP2(ESensor := #BG4505, T_Ein := 100, T_Aus := 11, tein_aktiv := TRUE, taus_aktiv := TRUE); // Sensoren entprellen + END_REGION + + REGION Stau EntnahmePuffer + #Stau_EP3(ESensor := #BG4506, T_Ein := 100, T_Aus := 11, tein_aktiv := TRUE, taus_aktiv := TRUE); // Sensoren entprellen + END_REGION + + REGION Stau EntnahmePuffer + #Stau_EP4(ESensor := #BG4507, T_Ein := 100, T_Aus := 11, tein_aktiv := TRUE, taus_aktiv := TRUE); // Sensoren entprellen + END_REGION + + REGION Ende + RETURN; + END_REGION + +END_FUNCTION_BLOCK diff --git a/SCL-Export/=A01+UH07-KF00/EP_Zylinder.scl b/SCL-Export/=A01+UH07-KF00/EP_Zylinder.scl new file mode 100644 index 0000000..ef50ad1 --- /dev/null +++ b/SCL-Export/=A01+UH07-KF00/EP_Zylinder.scl @@ -0,0 +1,63 @@ +FUNCTION_BLOCK "EP_Zylinder" +{ 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 + DOutbound_Bereich : Word; // war "DOutbound_Bereich" + SGes : Word; // war "SGes" + END_VAR + + VAR_IN_OUT + MB4503 : Byte; // war "MB4503" + MB4504 : Byte; // war "MB4504" + MB4505 : Byte; // war "MB4505" + MB4506 : Byte; // war "MB4506" + END_VAR + + VAR + Sorter_4503 : "MZylinder"; // + Weiche_EP1 : "MZylinder"; // + Weiche_EP2 : "MZylinder"; + Weiche_EP3 : "MZylinder"; + Weiche_EP4 : "MZylinder"; + END_VAR + + VAR_TEMP + Auto : Bool; // Automatik ist aktiv + Hand : Bool; // Hand ist aktiv + ZylAst : Bool; // Zylinder ansteuern + END_VAR + +BEGIN + REGION Übergabe des Bereichstatus System UC074/A01 + #Auto := #DOutbound_Bereich.A01_UH07.Automatik AND NOT (#DOutbound_Bereich.A01_UH07.Handbetrieb); + IF #DOutbound_Bereich.A01_UC074.BereichErr AND NOT (#SGes.Simulation_ohne_HW_aktiv) THEN GOTO Next; END_IF; + END_REGION + + REGION Schleuse_4503 + #Sorter_4503(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB4503); + END_REGION + + REGION Weiche_EP1 + #Weiche_EP1(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB4504); + END_REGION + + REGION Weiche_EP2 + #Weiche_EP2(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB4505); + END_REGION + + REGION Weiche_EP3 + #Weiche_EP3(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB4506); + END_REGION + + REGION Weiche_EP4 + #Weiche_EP4(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5); + END_REGION + + REGION Ende + RETURN; + END_REGION + +END_FUNCTION_BLOCK diff --git a/SCL-Export/=A01+UH07-KF00/EPtoLP_Antriebe.scl b/SCL-Export/=A01+UH07-KF00/EPtoLP_Antriebe.scl new file mode 100644 index 0000000..95762e1 --- /dev/null +++ b/SCL-Export/=A01+UH07-KF00/EPtoLP_Antriebe.scl @@ -0,0 +1,126 @@ +FUNCTION_BLOCK "EPtoLP_Antriebe" +{ 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 + DOutbound_Bereich : Word; // war "DOutbound_Bereich" + SGes : Word; // war "SGes" + T194 : Word; // war "T194" + T197 : Word; // war "T197" + END_VAR + + VAR_IN_OUT + g_7_HMI_Err_UH07_OB : Word; // war "7_HMI_Err_UH07_OB" + FC0062 : Word; // war "FC0062" + FC0063 : Word; // war "FC0063" + FC0064 : Word; // war "FC0064" + FC0326 : Word; // war "FC0326" + FC0327 : Word; // war "FC0327" + FC0330 : Word; // war "FC0330" + FC0331 : Word; // war "FC0331" + FC0332 : Word; // war "FC0332" + FC0333 : Word; // war "FC0333" + MA0062 : Bool; // war "MA0062" + MA0063 : Bool; // war "MA0063" + MA0064 : Bool; // war "MA0064" + MA0326 : Bool; // war "MA0326" + MA0327 : Bool; // war "MA0327" + MA0330 : Bool; // war "MA0330" + MA0331 : Bool; // war "MA0331" + MA0332 : Bool; // war "MA0332" + MA0333 : Bool; // war "MA0333" + END_VAR + + VAR + MA0326 : "MAntrieb_PowerSave"; + MA0327 : "MAntrieb_PowerSave"; + MA0330 : "MAntrieb_PowerSave"; + MA0331 : "MAntrieb_PowerSave"; + MA0332 : "MAntrieb_PowerSave"; + MA0333 : "MAntrieb_PowerSave"; + MA0062 : "MAntrieb_PowerSave"; + MA0063 : "MAntrieb_PowerSave"; + MA0064 : "MAntrieb_PowerSave"; + END_VAR + + VAR_TEMP + Auto : Bool; // Automatik Linie ist aktiv + Hand : Bool; // Hand Linie ist aktiv + BereichErr : Bool; // Bereichsstörung -> Antrieb stoppen + QKontroll : Bool; // Frequenzumrichter schon 3s Netz EIN + FuKontroll : Bool; // Frequenzumrichter schon 3s Netz EIN + Quit : Bool; // Motorschutz-Störung quittieren + Qok : Bool; // Motorschutz ok + Jog1 : Bool; // Geschwindigkeit 1 + Jog2 : Bool; // Geschwindigkeit 2 + Betrieb : Bool; // Betriebsart aktiv + FC105_RET : Word; // Returnwert von FC105 + Antrieb1 : Bool; // Antrieb dazuschalten + Antrieb2 : Bool; // Antrieb dazuschalten + F1 : Bool; // Geschwindigkeit 1 aktiviert + F2 : Bool; // Geschwindigkeit 2 aktiviert + F3 : Bool; // Geschwindigkeit 3 aktiviert + END_VAR + +BEGIN + REGION Übergabe des Bereichstatus System UC074/A01 + #Auto := #DOutbound_Bereich.A01_UH07.Automatik AND NOT (#DOutbound_Bereich.A01_UH07.Handbetrieb); + #Hand := FALSE; + #BereichErr := #DOutbound_Bereich.A01_UC074.BereichErr AND NOT (#SGes.Simulation_ohne_HW_aktiv); + #QKontroll := #T194; + #FuKontroll := #T194; + #Quit := #DOutbound_Bereich.A01_UC074.StOk_aktiv; + END_REGION + + REGION MA0326 + #MA0326(Automatik := #Auto, Handbetrieb := #Hand, BereichErr := #BereichErr, Q := #FC0326, Ptc := TRUE, QKontroll := #QKontroll, ErrQuit := #Quit, Antriebvor := #MA0326, QErr := #g_7_HMI_Err_UH07_OB.QErr.MA0326); + END_REGION + + REGION MA0327 + #MA0327(Automatik := #Auto, Handbetrieb := #Hand, BereichErr := #BereichErr, Q := #FC0327, Ptc := TRUE, QKontroll := #QKontroll, ErrQuit := #Quit, Antriebvor := #MA0327, QErr := #g_7_HMI_Err_UH07_OB.QErr.MA0327); + END_REGION + + REGION MA0330 + #MA0330(Automatik := #Auto, Handbetrieb := #Hand, BereichErr := #BereichErr, Q := #FC0330, Ptc := TRUE, QKontroll := #QKontroll, ErrQuit := #Quit, Antriebvor := #MA0330, QErr := #g_7_HMI_Err_UH07_OB.QErr.MA0330); + END_REGION + + REGION MA0331 + #MA0331(Automatik := #Auto, Handbetrieb := #Hand, BereichErr := #BereichErr, Q := #FC0331, Ptc := TRUE, QKontroll := #QKontroll, ErrQuit := #Quit, Antriebvor := #MA0331, QErr := #g_7_HMI_Err_UH07_OB.QErr.MA0331); + END_REGION + + REGION MA0332 + #MA0332(Automatik := #Auto, Handbetrieb := #Hand, BereichErr := #BereichErr, Q := #FC0332, Ptc := TRUE, QKontroll := #QKontroll, ErrQuit := #Quit, Antriebvor := #MA0332, QErr := #g_7_HMI_Err_UH07_OB.QErr.MA0332); + END_REGION + + REGION MA0333 + #MA0333(Automatik := #Auto, Handbetrieb := #Hand, BereichErr := #BereichErr, Q := #FC0333, Ptc := TRUE, QKontroll := #QKontroll, ErrQuit := #Quit, Antriebvor := #MA0333, QErr := #g_7_HMI_Err_UH07_OB.QErr.MA0333); + END_REGION + + REGION Übergabe des Bereichstatus System UH07/A01 + #Auto := #DOutbound_Bereich.A01_UH07.Automatik AND NOT (#DOutbound_Bereich.A01_UH07.Handbetrieb); + #Hand := FALSE; + #BereichErr := #DOutbound_Bereich.A01_UH07.BereichErr AND NOT (#SGes.Simulation_ohne_HW_aktiv); + #QKontroll := #T197; + #FuKontroll := #T197; + #Quit := #DOutbound_Bereich.A01_UH07.StOk_aktiv; + END_REGION + + REGION MA0062 + #MA0062(Automatik := #Auto, Handbetrieb := #Hand, BereichErr := #BereichErr, Q := #FC0062, Ptc := TRUE, QKontroll := #QKontroll, ErrQuit := #Quit, Antriebvor := #MA0062, QErr := #g_7_HMI_Err_UH07_OB.QErr.MA0062); + END_REGION + + REGION MA0063 + #MA0063(Automatik := #Auto, Handbetrieb := #Hand, BereichErr := #BereichErr, Q := #FC0063, Ptc := TRUE, QKontroll := #QKontroll, ErrQuit := #Quit, Antriebvor := #MA0063, QErr := #g_7_HMI_Err_UH07_OB.QErr.MA0063); + END_REGION + + REGION MA0064 + #MA0064(Automatik := #Auto, Handbetrieb := #Hand, BereichErr := #BereichErr, Q := #FC0064, Ptc := TRUE, QKontroll := #QKontroll, ErrQuit := #Quit, Antriebvor := #MA0064, QErr := #g_7_HMI_Err_UH07_OB.QErr.MA0064); + END_REGION + + REGION Ende + RETURN; + END_REGION + +END_FUNCTION_BLOCK diff --git a/SCL-Export/=A01+UH07-KF00/EPtoLP_Sensoren.scl b/SCL-Export/=A01+UH07-KF00/EPtoLP_Sensoren.scl new file mode 100644 index 0000000..05208c1 --- /dev/null +++ b/SCL-Export/=A01+UH07-KF00/EPtoLP_Sensoren.scl @@ -0,0 +1,133 @@ +FUNCTION_BLOCK "EPtoLP_Sensoren" +{ 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_IN_OUT + BG3304 : Word; // war "BG3304" + BG3367 : Word; // war "BG3367" + BG3371 : Word; // war "BG3371" + BG3372 : Word; // war "BG3372" + BG3376 : Word; // war "BG3376" + BG3377 : Word; // war "BG3377" + BG4455 : Word; // war "BG4455" + BG4457 : Word; // war "BG4457" + BG4460 : Word; // war "BG4460" + BG4461 : Word; // war "BG4461" + BG4464 : Word; // war "BG4464" + BG4467 : Word; // war "BG4467" + BG4513 : Word; // war "BG4513" + BG4515 : Word; // war "BG4515" + BG4517 : Word; // war "BG4517" + BG4521 : Word; // war "BG4521" + BG4531 : Word; // war "BG4531" + END_VAR + + VAR + Stau_BG4531 : "MSensoren"; // Stau am Sensor Einfahrt MA0326 + Stau_BG4513 : "MSensoren"; // Stau am Sensor Mitte MA0326 + Stau_BG4515 : "MSensoren"; // Stau am Sensor Einfahrt MA0327 + Stau_BG4517 : "MSensoren"; // Stau am Sensor Mitte MA0327 + Stau_BG4521 : "MSensoren"; // Stau am Sensor Ende MA0327 + Stau_BG4455 : "MSensoren"; // Stau am Sensor Einfahrt MA0330 + Stau_BG4457 : "MSensoren"; // Stau am Sensor Einfahrt MA0331 + Stau_BG4467 : "MSensoren"; // Stau am Sensor Mitte MA0331 + Stau_BG4461 : "MSensoren"; // Stau am Sensor Einfahrt MA0332 + Stau_BG4460 : "MSensoren"; // Stau am Sensor Mitte MA0332 + Stau_BG4464 : "MSensoren"; // Stau am Sensor Einfahrt MA0330 + Stau_BG3367 : "MSensoren"; // Stau am hinter BST 1 + Stau_BG3371 : "MSensoren"; // Stau am Sensor Einfahrt MA0063 + Stau_BG3372 : "MSensoren"; // Stau am Sensor Einfahrt MA0063 + Stau_BG3376 : "MSensoren"; // Stau am Sensor Einfahrt MA0064 + Stau_BG3377 : "MSensoren"; // Stau am Sensor Mitte MA0064 + Stau_BG3304 : "MSensoren"; // Stau am Sensor vor Schleuse MB3305 + END_VAR + + VAR_TEMP + T_Ein : Int; // Vorgabe Einschaltverzögerung + T_Aus : Int; // Zwischenspeicher Ausschaltverzögerung + F1 : Bool; // Geschwindigkeit 1 aktiviert + F2 : Bool; // Geschwindigkeit 2 aktiviert + F3 : Bool; // Geschwindigkeit 3 aktiviert + ESensor : Bool; // Sensoren + Antrieb : Bool; + VReal : Real; // GeschwindigkeitinReal + Zeit : Int; // Zeit für Ausschaltverzögerung LT1100 + Aktiv : Bool; // Zeit aktivieren + END_VAR + +BEGIN + REGION Stau am Sensor nach Schleuse 4512 + #Stau_BG4531(ESensor := #BG4531, T_Ein := 80, T_Aus := 11, tein_aktiv := TRUE, taus_aktiv := TRUE); // Sensoren entprellen + END_REGION + + REGION Stau am Sensor nach Schleuse 4532 + #Stau_BG4513(ESensor := #BG4513, T_Ein := 80, T_Aus := 11, tein_aktiv := TRUE, taus_aktiv := TRUE); // Sensoren entprellen + END_REGION + + REGION Stau am Sensor Einfahrt MA0327 + #Stau_BG4515(ESensor := #BG4515, T_Ein := 80, T_Aus := 11, tein_aktiv := TRUE, taus_aktiv := TRUE); // Sensoren entprellen + END_REGION + + REGION Stau am Sensor Mitte MA0327 + #Stau_BG4517(ESensor := #BG4517, T_Ein := 80, T_Aus := 11, tein_aktiv := TRUE, taus_aktiv := TRUE); // Sensoren entprellen + END_REGION + + REGION Stau am Sensor Ende MA0327 + #Stau_BG4521(ESensor := #BG4521, T_Ein := 80, T_Aus := 11, tein_aktiv := TRUE, taus_aktiv := TRUE); // Sensoren entprellen + END_REGION + + REGION Stau am Sensor Einfahrt MA0330 + #Stau_BG4455(ESensor := #BG4455, T_Ein := 1, T_Aus := 11, tein_aktiv := TRUE, taus_aktiv := TRUE); // Sensoren entprellen + END_REGION + + REGION Stau am Sensor Einfahrt MA0331 + #Stau_BG4457(ESensor := #BG4457, T_Ein := 1, T_Aus := 11, tein_aktiv := TRUE, taus_aktiv := TRUE); // Sensoren entprellen + END_REGION + + REGION Stau am Sensor Mitte MA0331 + #Stau_BG4467(ESensor := #BG4467, T_Ein := 80, T_Aus := 11, tein_aktiv := TRUE, taus_aktiv := TRUE); // Sensoren entprellen + END_REGION + + REGION Stau am Sensor Einfahrt MA0332 + #Stau_BG4461(ESensor := #BG4461, T_Ein := 80, T_Aus := 11, tein_aktiv := TRUE, taus_aktiv := TRUE); // Sensoren entprellen + END_REGION + + REGION Stau am Sensor Ende MA0332 + #Stau_BG4460(ESensor := #BG4460, T_Ein := 1, T_Aus := 11, tein_aktiv := TRUE, taus_aktiv := TRUE); // Sensoren entprellen + END_REGION + + REGION Stau am Sensor Anfang MA0333 + #Stau_BG4464(ESensor := #BG4464, T_Ein := 1, T_Aus := 11, tein_aktiv := TRUE, taus_aktiv := TRUE); // Sensoren entprellen + END_REGION + + REGION Stau am Sensor hinter BST1 + #Stau_BG3367(ESensor := #BG3367, T_Ein := 1, T_Aus := 30, tein_aktiv := TRUE, taus_aktiv := TRUE); // Sensoren entprellen + END_REGION + + REGION Stau am Sensor vor MA0063 + #Stau_BG3371(ESensor := #BG3371, T_Ein := 1, T_Aus := 11, tein_aktiv := TRUE, taus_aktiv := TRUE); // Sensoren entprellen + END_REGION + + REGION Stau am Sensor Anfang MA0063 + #Stau_BG3372(ESensor := #BG3372, T_Ein := 1, T_Aus := 11, tein_aktiv := TRUE, taus_aktiv := TRUE); // Sensoren entprellen + END_REGION + + REGION Stau am Sensor Einfahrt MA0064 + #Stau_BG3376(ESensor := #BG3376, T_Ein := 80, T_Aus := 11, tein_aktiv := TRUE, taus_aktiv := TRUE); // Sensoren entprellen + END_REGION + + REGION Stau am Sensor Mitte MA0064 + #Stau_BG3377(ESensor := #BG3377, T_Ein := 80, T_Aus := 11, tein_aktiv := TRUE, taus_aktiv := TRUE); // Sensoren entprellen + END_REGION + + REGION Stau am Sensor Mitte MA0064 (vor Schleuse 3305) + #Stau_BG3304(ESensor := #BG3304, T_Ein := 1, T_Aus := 11, tein_aktiv := TRUE, taus_aktiv := TRUE); // Sensoren entprellen + END_REGION + + REGION Ende + RETURN; + END_REGION + +END_FUNCTION_BLOCK diff --git a/SCL-Export/=A01+UH07-KF00/EPtoLP_Zylinder.scl b/SCL-Export/=A01+UH07-KF00/EPtoLP_Zylinder.scl new file mode 100644 index 0000000..d36da9d --- /dev/null +++ b/SCL-Export/=A01+UH07-KF00/EPtoLP_Zylinder.scl @@ -0,0 +1,99 @@ +FUNCTION_BLOCK "EPtoLP_Zylinder" +{ 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 + DOutbound_Bereich : Word; // war "DOutbound_Bereich" + SGes : Word; // war "SGes" + END_VAR + + VAR_IN_OUT + MB3303 : Byte; // war "MB3303" + MB3370 : Byte; // war "MB3370" + MB4462 : Byte; // war "MB4462" + MB4463 : Byte; // war "MB4463" + MB4466 : Byte; // war "MB4466" + MB4512 : Byte; // war "MB4512" + MB4516 : Byte; // war "MB4516" + MB4520 : Byte; // war "MB4520" + MB4522 : Byte; // war "MB4522" + MB4532 : Byte; // war "MB4532" + END_VAR + + VAR + Schleuse_4512 : "MZylinder"; // + Schleuse_4532 : "MZylinder"; + Schleuse_4516 : "MZylinder"; // + Schleuse_4522 : "MZylinder"; // + Schleuse_4520 : "MZylinder"; + Schleuse_4466 : "MZylinder"; + Schleuse_4462 : "MZylinder"; + Schleuse_4463 : "MZylinder"; + Schleuse_3370 : "MZylinder"; + Schleuse_3303 : "MZylinder"; + END_VAR + + VAR_TEMP + Auto : Bool; // Automatik ist aktiv + Hand : Bool; // Hand ist aktiv + ZylAst : Bool; // Zylinder ansteuern + END_VAR + +BEGIN + REGION Übergabe des Bereichstatus System UC074/A01 + #Auto := #DOutbound_Bereich.A01_UH07.Automatik AND NOT (#DOutbound_Bereich.A01_UH07.Handbetrieb); + IF #DOutbound_Bereich.A01_UC074.BereichErr AND NOT (#SGes.Simulation_ohne_HW_aktiv) THEN GOTO Next; END_IF; + END_REGION + + REGION Schleuse_4512 + #Schleuse_4512(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB4512); + END_REGION + + REGION Schleuse_4532 + #Schleuse_4532(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB4532); + END_REGION + + REGION Schleuse_4516 + #Schleuse_4516(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB4516); + END_REGION + + REGION Schleuse_4522 + #Schleuse_4522(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB4522); + END_REGION + + REGION Schleuse_4520 + #Schleuse_4520(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB4520); + END_REGION + + REGION Schleuse_4466 + #Schleuse_4466(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB4466); + END_REGION + + REGION Schleuse_4462 + #Schleuse_4462(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB4462); + END_REGION + + REGION Übergabe des Bereichstatus System UH07/A01 + #Auto := #DOutbound_Bereich.A01_UH07.Automatik AND NOT (#DOutbound_Bereich.A01_UH07.Handbetrieb); + IF #DOutbound_Bereich.A01_UH07.BereichErr AND NOT (#SGes.Simulation_ohne_HW_aktiv) THEN GOTO Next1; END_IF; + END_REGION + + REGION Schleuse_4463 + #Schleuse_4463(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB4463); + END_REGION + + REGION Schleuse_3370 + #Schleuse_3370(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3370); + END_REGION + + REGION Schleuse_3303 + #Schleuse_3303(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3303); + END_REGION + + REGION Ende + RETURN; + END_REGION + +END_FUNCTION_BLOCK diff --git a/SCL-Export/=A01+UH07-KF00/EntnahmePufferStrecken.scl b/SCL-Export/=A01+UH07-KF00/EntnahmePufferStrecken.scl new file mode 100644 index 0000000..2e9ecbd --- /dev/null +++ b/SCL-Export/=A01+UH07-KF00/EntnahmePufferStrecken.scl @@ -0,0 +1,65 @@ +FUNCTION_BLOCK "EntnahmePufferStrecken" +{ 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_IN_OUT + BG4504 : Word; // war "BG4504" + BG4505 : Word; // war "BG4505" + BG4506 : Word; // war "BG4506" + BG4507 : Word; // war "BG4507" + DOutbound_Bereich : Word; // war "DOutbound_Bereich" + END_VAR + + VAR + EntnahmePuffer_01 : "MHMEntnahmepuffer"; // COPYRIGHT by Ingenieurbüro A.EmmertOrtsstr.33, D-869925 Fuchstal (Germany)Tel.: 0049(0)8243-960629Version: H&M Entnahmepuffer / 10.2025Version: Omniflow 2100 / 10.2024Schritt 0: Warten auf TrolleySchritt 1: Betriebsart ok/angegeben?Schritt 5: Mit Scanner fahren: Defaultziel ?Schritt 6: Scanner triggernSchritt 7: "DREQ" an PC sendenSchritt 8: Warten auf PC-Antwort Schritt 9: PC-Antwort auswerten Schritt 10: Fahrtrichtung ermittelnSchritt 11: Ausfahren ok ?Schritt 12: Warten auf Pin-Signal Schritt 13: Weichenbereich raus bereit ? Schritt 14: Daten an Rausweiche übergebenSchritt 15: Schleuse Mindestzeit öffnen Schritt 16: Trolley ausgefahren ? Schritt 17: Trolley ist draussen Schritt 18: BM wurde vereinzeltSchritt 19: Beladezustand checkenSchritt 20: Schleuse resettenSchritt 21: Reset ist zu Ende + EntnahmePuffer_02 : "MHMEntnahmepuffer"; // COPYRIGHT by Ingenieurbüro A.EmmertOrtsstr.33, D-869925 Fuchstal (Germany)Tel.: 0049(0)8243-960629Version: H&M Entnahmepuffer / 10.2025Version: Omniflow 2100 / 10.2024Schritt 0: Warten auf TrolleySchritt 1: Betriebsart ok/angegeben?Schritt 5: Mit Scanner fahren: Defaultziel ?Schritt 6: Scanner triggernSchritt 7: "DREQ" an PC sendenSchritt 8: Warten auf PC-Antwort Schritt 9: PC-Antwort auswerten Schritt 10: Fahrtrichtung ermittelnSchritt 11: Ausfahren ok ?Schritt 12: Warten auf Pin-Signal Schritt 13: Weichenbereich raus bereit ? Schritt 14: Daten an Rausweiche übergebenSchritt 15: Schleuse Mindestzeit öffnen Schritt 16: Trolley ausgefahren ? Schritt 17: Trolley ist draussen Schritt 18: BM wurde vereinzeltSchritt 19: Beladezustand checkenSchritt 20: Schleuse resettenSchritt 21: Reset ist zu Ende + EntnahmePuffer_03 : "MHMEntnahmepuffer"; // COPYRIGHT by Ingenieurbüro A.EmmertOrtsstr.33, D-869925 Fuchstal (Germany)Tel.: 0049(0)8243-960629Version: H&M Entnahmepuffer / 10.2025Version: Omniflow 2100 / 10.2024Schritt 0: Warten auf TrolleySchritt 1: Betriebsart ok/angegeben?Schritt 5: Mit Scanner fahren: Defaultziel ?Schritt 6: Scanner triggernSchritt 7: "DREQ" an PC sendenSchritt 8: Warten auf PC-Antwort Schritt 9: PC-Antwort auswerten Schritt 10: Fahrtrichtung ermittelnSchritt 11: Ausfahren ok ?Schritt 12: Warten auf Pin-Signal Schritt 13: Weichenbereich raus bereit ? Schritt 14: Daten an Rausweiche übergebenSchritt 15: Schleuse Mindestzeit öffnen Schritt 16: Trolley ausgefahren ? Schritt 17: Trolley ist draussen Schritt 18: BM wurde vereinzeltSchritt 19: Beladezustand checkenSchritt 20: Schleuse resettenSchritt 21: Reset ist zu Ende + EntnahmePuffer_04 : "MHMEntnahmepuffer"; // COPYRIGHT by Ingenieurbüro A.EmmertOrtsstr.33, D-869925 Fuchstal (Germany)Tel.: 0049(0)8243-960629Version: H&M Entnahmepuffer / 10.2025Version: Omniflow 2100 / 10.2024Schritt 0: Warten auf TrolleySchritt 1: Betriebsart ok/angegeben?Schritt 5: Mit Scanner fahren: Defaultziel ?Schritt 6: Scanner triggernSchritt 7: "DREQ" an PC sendenSchritt 8: Warten auf PC-Antwort Schritt 9: PC-Antwort auswerten Schritt 10: Fahrtrichtung ermittelnSchritt 11: Ausfahren ok ?Schritt 12: Warten auf Pin-Signal Schritt 13: Weichenbereich raus bereit ? Schritt 14: Daten an Rausweiche übergebenSchritt 15: Schleuse Mindestzeit öffnen Schritt 16: Trolley ausgefahren ? Schritt 17: Trolley ist draussen Schritt 18: BM wurde vereinzeltSchritt 19: Beladezustand checkenSchritt 20: Schleuse resettenSchritt 21: Reset ist zu Ende + END_VAR + + VAR_TEMP + ErrQuit : Bool; + ErrAnz : Bool; + Antrieb : Bool; + Stau : Bool; + Start_Ok : Bool; + SorterReset : Bool; + A_Err : Char; + B_Err : Char; + C_Err : Char; + D_Err : Char; + END_VAR + +BEGIN + REGION Störung quittieren UZ7402 + #ErrQuit := #DOutbound_Bereich.A01_UZ7402.StOk_aktiv; + END_REGION + + REGION EntnahmePuffer 01 + #ErrAnz := FALSE; + #EntnahmePuffer_01(EntnahmePuffer_Nr := 201, B_LeerpufferEinfahrt := #BG4504, Error := %DB708.DBW164, hStOk := #ErrAnz); + END_REGION + + REGION EntnahmePuffer 02 + #EntnahmePuffer_02(EntnahmePuffer_Nr := 202, B_LeerpufferEinfahrt := #BG4505, Error := %DB708.DBW166, hStOk := #ErrAnz); + END_REGION + + REGION EntnahmePuffer 03 + #EntnahmePuffer_03(EntnahmePuffer_Nr := 203, B_LeerpufferEinfahrt := #BG4506, Error := %DB708.DBW168, hStOk := #ErrAnz); + END_REGION + + REGION EntnahmePuffer 04 + #EntnahmePuffer_04(EntnahmePuffer_Nr := 204, B_LeerpufferEinfahrt := #BG4507, Error := %DB708.DBW170, hStOk := #ErrAnz); + END_REGION + + REGION Störungen anzeigen UZ7402 + IF #ErrAnz THEN #DOutbound_Bereich.A01_UZ7402.StOk_blinken := TRUE; END_IF; + END_REGION + + REGION Ende + RETURN; + END_REGION + +END_FUNCTION_BLOCK diff --git a/SCL-Export/=A01+UH07-KF00/HWtoVP_Sensoren.scl b/SCL-Export/=A01+UH07-KF00/HWtoVP_Sensoren.scl new file mode 100644 index 0000000..2a7cac4 --- /dev/null +++ b/SCL-Export/=A01+UH07-KF00/HWtoVP_Sensoren.scl @@ -0,0 +1,139 @@ +FUNCTION_BLOCK "HWtoVP_Sensoren" +{ 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_IN_OUT + BG3127 : Word; // war "BG3127" + BG3130 : Word; // war "BG3130" + BG3132 : Word; // war "BG3132" + BG3133 : Word; // war "BG3133" + BG3135 : Word; // war "BG3135" + BG3142 : Word; // war "BG3142" + BG3144 : Word; // war "BG3144" + BG3724 : Word; // war "BG3724" + BG3730 : Word; // war "BG3730" + BG4201 : Word; // war "BG4201" + BG4202 : Word; // war "BG4202" + BG4204 : Word; // war "BG4204" + BG4206 : Word; // war "BG4206" + BG4210 : Word; // war "BG4210" + BG4211 : Word; // war "BG4211" + BG4213 : Word; // war "BG4213" + BG4215 : Word; // war "BG4215" + BG4216 : Word; // war "BG4216" + END_VAR + + VAR + Stau_BG3730 : "MSensoren"; // Stau am Sensor Einfahrt MA0201 + Stau_BG4202 : "MSensoren"; // Stau am Sensor Einfahrt MA0261 + Stau_BG4204 : "MSensoren"; // Stau am Sensor Einfahrt MA0262 + Stau_BG4206 : "MSensoren"; // Stau am Sensor Einfahrt MA0263 + Stau_BG4210 : "MSensoren"; // Stau am Sensor Weiche MB4210 + Stau_BG4211 : "MSensoren"; // Stau am Sensor Weiche MB4210 + Stau_BG4213 : "MSensoren"; // Stau am Sensor + Stau_BG4215 : "MSensoren"; // Stau am Sensor Einfahrt MA140 + Stau_BG3144 : "MSensoren"; // Stau am Sensor Einfahrt Schleuse3144 + Stau_BG3142 : "MSensoren"; // Stau am Sensor Einfahrt Schleuse3142 + Stau_BG3130 : "MSensoren"; // Stau am Sensor Einfahrt Schleuse3130 + Stau_BG3127 : "MSensoren"; // Stau am Sensor Einfahrt Schleuse3127 + Stau_BG3132 : "MSensoren"; // Stau am Sensor Einfahrt Schleuse3132 + Stau_BG3133 : "MSensoren"; // Stau am Sensor Einfahrt Schleuse3132 + Stau_BG3135 : "MSensoren"; // Stau am Sensor Einfahrt Schleuse3135 + Stau_BG4216 : "MSensoren"; // Stau am Sensor Einfahrt MA140 + Stau_BG3724 : "MSensoren"; // Stau am Sensor Einfahrt MA200 + Stau_BG4201 : "MSensoren"; // Stau am Sensor hinter BST2 + END_VAR + + VAR_TEMP + T_Ein : Int; // Vorgabe Einschaltverzögerung + T_Aus : Int; // Zwischenspeicher Ausschaltverzögerung + F1 : Bool; // Geschwindigkeit 1 aktiviert + F2 : Bool; // Geschwindigkeit 2 aktiviert + F3 : Bool; // Geschwindigkeit 3 aktiviert + ESensor : Bool; // Sensoren + Antrieb : Bool; + VReal : Real; // GeschwindigkeitinReal + Zeit : Int; // Zeit für Ausschaltverzögerung LT1100 + Aktiv : Bool; // Zeit aktivieren + END_VAR + +BEGIN + REGION Stau am Sensor Einfahrt MA0201 + #Stau_BG3730(ESensor := #BG3730, T_Ein := 1, T_Aus := 11, tein_aktiv := TRUE, taus_aktiv := TRUE); // Sensoren entprellen + END_REGION + + REGION Stau am Sensor Einfahrt MA0261 + #Stau_BG4202(ESensor := #BG4202, T_Ein := 1, T_Aus := 11, tein_aktiv := TRUE, taus_aktiv := TRUE); // Sensoren entprellen + END_REGION + + REGION Stau am Sensor Einfahrt MA0262 + #Stau_BG4204(ESensor := #BG4204, T_Ein := 80, T_Aus := 11, tein_aktiv := TRUE, taus_aktiv := TRUE); // Sensoren entprellen + END_REGION + + REGION Stau am Sensor Einfahrt MA0263 + #Stau_BG4206(ESensor := #BG4206, T_Ein := 80, T_Aus := 11, tein_aktiv := TRUE, taus_aktiv := TRUE); // Sensoren entprellen + END_REGION + + REGION Stau am Sensor vor Weiche MB4210 + #Stau_BG4210(ESensor := #BG4210, T_Ein := 80, T_Aus := 101, tein_aktiv := TRUE, taus_aktiv := TRUE); // Sensoren entprellen + END_REGION + + REGION Stau am Sensor nach Weiche MB4210 + #Stau_BG4211(ESensor := #BG4211, T_Ein := 80, T_Aus := 11, tein_aktiv := TRUE, taus_aktiv := TRUE); // Sensoren entprellen + END_REGION + + REGION Stau am Sensor Weiche MB4213 + #Stau_BG4213(ESensor := #BG4213, T_Ein := 80, T_Aus := 11, tein_aktiv := TRUE, taus_aktiv := TRUE); // Sensoren entprellen + END_REGION + + REGION Stau am Sensor Einfahrt MA0140 + #Stau_BG4215(ESensor := #BG4215, T_Ein := 1, T_Aus := 11, tein_aktiv := TRUE, taus_aktiv := TRUE); // Sensoren entprellen + END_REGION + + REGION Stau am Sensor Einfahrt Schleuse3144 + #Stau_BG3144(ESensor := #BG3144, T_Ein := 80, T_Aus := 11, tein_aktiv := TRUE, taus_aktiv := TRUE); // Sensoren entprellen + END_REGION + + REGION Stau am Sensor Einfahrt Schleuse3142 + #Stau_BG3142(ESensor := #BG3142, T_Ein := 80, T_Aus := 11, tein_aktiv := TRUE, taus_aktiv := #True); // Sensoren entprellen + END_REGION + + REGION Stau am Sensor Einfahrt Schleuse3130 + #Stau_BG3130(ESensor := #BG3130, T_Ein := 80, T_Aus := 11, tein_aktiv := TRUE, taus_aktiv := #True); // Sensoren entprellen + END_REGION + + REGION Stau am Sensor Einfahrt Schleuse3127 + #Stau_BG3127(ESensor := #BG3127, T_Ein := 80, T_Aus := 11, tein_aktiv := TRUE, taus_aktiv := TRUE); // Sensoren entprellen + END_REGION + + REGION Stau am Sensor Einfahrt Schleuse3132 + #Stau_BG3132(ESensor := #BG3132, T_Ein := 1, T_Aus := 11, tein_aktiv := TRUE, taus_aktiv := TRUE); // Sensoren entprellen + END_REGION + + REGION Stau am Sensor Einfahrt Schleuse3133 + #Stau_BG3133(ESensor := #BG3133, T_Ein := 80, T_Aus := 11, tein_aktiv := TRUE, taus_aktiv := TRUE); // Sensoren entprellen + END_REGION + + REGION Stau am Sensor Einfahrt Schleuse3135 + #Stau_BG3135(ESensor := #BG3135, T_Ein := 80, T_Aus := 11, tein_aktiv := TRUE, taus_aktiv := TRUE); // Sensoren entprellen + END_REGION + + REGION Stau am Sensor Einfahrt Schleuse4207 + #Stau_BG4216(ESensor := #BG4216, T_Ein := 80, T_Aus := 11, tein_aktiv := TRUE, taus_aktiv := TRUE); // Sensoren entprellen + END_REGION + + REGION Stau am Sensor Einfahrt MA0200 + #Stau_BG3724(ESensor := #BG3724, T_Ein := 80, T_Aus := 11, tein_aktiv := TRUE, taus_aktiv := TRUE); // Sensoren entprellen + END_REGION + + REGION Stau am Sensor hinter BST2 + #Stau_BG4201(ESensor := #BG4201, T_Ein := 1, T_Aus := 30, tein_aktiv := TRUE, taus_aktiv := TRUE); // Sensoren entprellen + END_REGION + + REGION Ende + RETURN; + END_REGION + +END_FUNCTION_BLOCK diff --git a/SCL-Export/=A01+UH07-KF00/HWtoVP_Zylinder.scl b/SCL-Export/=A01+UH07-KF00/HWtoVP_Zylinder.scl new file mode 100644 index 0000000..a17028d --- /dev/null +++ b/SCL-Export/=A01+UH07-KF00/HWtoVP_Zylinder.scl @@ -0,0 +1,122 @@ +FUNCTION_BLOCK "HWtoVP_Zylinder" +{ 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 + DOutbound_Bereich : Word; // war "DOutbound_Bereich" + SGes : Word; // war "SGes" + END_VAR + + VAR_IN_OUT + MB3131 : Byte; // war "MB3131" + MB3134 : Byte; // war "MB3134" + MB3136 : Byte; // war "MB3136" + MB3137 : Byte; // war "MB3137" + 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 : "MZylinder"; // + Schleuse_4200 : "MZylinder"; + Schleuse_4207 : "MZylinder"; + Schleuse_4212 : "MZylinder"; + Schleuse_4214 : "MZylinder"; + Schleuse_3143 : "MZylinder"; // + Schleuse_3141 : "MZylinder"; // + Weiche_3137 : "MZylinder"; // + Weiche_3140 : "MZylinder"; // + Schleuse_3131 : "MZylinder"; // + Schleuse_3134 : "MZylinder"; // + Schleuse_3136 : "MZylinder"; // + Schleuse_4217 : "MZylinder"; // + END_VAR + + VAR_TEMP + Auto : Bool; // Automatik ist aktiv + Hand : Bool; // Hand ist aktiv + ZylAst : Bool; // Zylinder ansteuern + END_VAR + +BEGIN + REGION Übergabe des Bereichstatus System UC072/A01 + #Auto := #DOutbound_Bereich.A01_UH07.Automatik AND NOT (#DOutbound_Bereich.A01_UH07.Handbetrieb); + IF ((#DOutbound_Bereich.A01_UC072.BereichErr OR #DOutbound_Bereich.A01_UZ7201.Area_Stop) OR #DOutbound_Bereich.A01_UZ7202.Area_Stop) AND NOT (#SGes.Simulation_ohne_HW_aktiv) THEN GOTO Next; END_IF; + END_REGION + + REGION Schleuse_3725 + #Schleuse_3725(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3725); + END_REGION + + REGION Übergabe des Bereichstatus System UC073/A01 + #Auto := #DOutbound_Bereich.A01_UH07.Automatik AND NOT (#DOutbound_Bereich.A01_UH07.Handbetrieb); + IF #DOutbound_Bereich.A01_UC073.BereichErr AND NOT (#SGes.Simulation_ohne_HW_aktiv) THEN GOTO Next2; END_IF; + END_REGION + + REGION Schleuse_4200 + #Schleuse_4200(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB4200); + END_REGION + + REGION Schleuse_4207 + #Schleuse_4207(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB4207); + END_REGION + + REGION Schleuse_4212 + #Schleuse_4212(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB4212); + END_REGION + + REGION Schleuse_4214 + #Schleuse_4214(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB4214); + END_REGION + + REGION Übergabe des Bereichstatus System UC071/A01 + #Auto := #DOutbound_Bereich.A01_UH07.Automatik AND NOT (#DOutbound_Bereich.A01_UH07.Handbetrieb); + IF (#DOutbound_Bereich.A01_UC071.BereichErr OR #DOutbound_Bereich.A01_UZ7102.Area_Stop) AND NOT (#SGes.Simulation_ohne_HW_aktiv) THEN GOTO Next3; END_IF; + END_REGION + + REGION Schleuse_3143 + #Schleuse_3143(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3143); + END_REGION + + REGION Schleuse_3141 + #Schleuse_3141(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3141); + END_REGION + + REGION Weiche_3137 + #Weiche_3137(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3137); + END_REGION + + REGION Weiche_3140 + #Weiche_3140(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3140); + END_REGION + + REGION Schleuse_3131 + #Schleuse_3131(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3131); + END_REGION + + REGION Schleuse_3134 + #Schleuse_3134(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3134); + END_REGION + + REGION Schleuse_3136 + #Schleuse_3136(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3136); + END_REGION + + REGION Schleuse_4217 + #Schleuse_4217(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB4217); + END_REGION + + REGION Ende + RETURN; + END_REGION + +END_FUNCTION_BLOCK diff --git a/SCL-Export/=A01+UH07-KF00/INT_to_BCD (4stellig).scl b/SCL-Export/=A01+UH07-KF00/INT_to_BCD (4stellig).scl new file mode 100644 index 0000000..e76279e --- /dev/null +++ b/SCL-Export/=A01+UH07-KF00/INT_to_BCD (4stellig).scl @@ -0,0 +1,40 @@ +FUNCTION "INT_to_BCD (4stellig)" : Void +{ 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 + Int_Wert : Int; + END_VAR + + VAR_OUTPUT + BCD_Wert : Word; + END_VAR + + VAR_TEMP + Rest : Int; + Ergebnis : Int; + END_VAR + +BEGIN + REGION Rückmeldung + #BCD_Wert := 0; + END_REGION + + REGION Int-Wert ok ? + IF #Int_Wert < 0 THEN RETURN; END_IF; + IF #Int_Wert > 9999 THEN RETURN; END_IF; + END_REGION + + REGION INT-Wert wandeln + %LD0 := #Int_Wert / 10; + #BCD_Wert := SHL(IN := INT_TO_BCD16(#Ergebnis), N := 4); + #BCD_Wert := INT_TO_BCD16(#Rest) OR #BCD_Wert; + END_REGION + + REGION Ende + RETURN; + END_REGION + +END_FUNCTION diff --git a/SCL-Export/=A01+UH07-KF00/LP_Sensoren.scl b/SCL-Export/=A01+UH07-KF00/LP_Sensoren.scl new file mode 100644 index 0000000..9f1956e --- /dev/null +++ b/SCL-Export/=A01+UH07-KF00/LP_Sensoren.scl @@ -0,0 +1,103 @@ +FUNCTION_BLOCK "LP_Sensoren" +{ 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_IN_OUT + BG3307 : Word; // war "BG3307" + BG3310 : Word; // war "BG3310" + BG3311 : Word; // war "BG3311" + BG3312 : Word; // war "BG3312" + BG3313 : Word; // war "BG3313" + BG3314 : Word; // war "BG3314" + BG3315 : Word; // war "BG3315" + BG3316 : Word; // war "BG3316" + BG3317 : Word; // war "BG3317" + BG3320 : Word; // war "BG3320" + BG3322 : Word; // war "BG3322" + BG3327 : Word; // war "BG3327" + END_VAR + + VAR + Stau_LP1 : "MSensoren"; + Stau_LP2 : "MSensoren"; + Stau_LP3 : "MSensoren"; + Stau_LP4 : "MSensoren"; + Stau_LP5 : "MSensoren"; + Stau_LP6 : "MSensoren"; + Stau_LP7 : "MSensoren"; + Stau_LP8 : "MSensoren"; + Stau_LP9 : "MSensoren"; + Stau_LP10 : "MSensoren"; + Stau_BG3322 : "MSensoren"; // Stau am Sensor Einfahrt MA0065 + Stau_BG3327 : "MSensoren"; // Stau am Sensor Einfahrt MA0065 + END_VAR + + VAR_TEMP + T_Ein : Int; // Vorgabe Einschaltverzögerung + T_Aus : Int; // Zwischenspeicher Ausschaltverzögerung + F1 : Bool; // Geschwindigkeit 1 aktiviert + F2 : Bool; // Geschwindigkeit 2 aktiviert + F3 : Bool; // Geschwindigkeit 3 aktiviert + ESensor : Bool; // Sensoren + Antrieb : Bool; + VReal : Real; // GeschwindigkeitinReal + Zeit : Int; // Zeit für Ausschaltverzögerung LT1100 + Aktiv : Bool; // Zeit aktivieren + END_VAR + +BEGIN + REGION Stau LeerPuffer + #Stau_LP1(ESensor := #BG3320, T_Ein := 01, T_Aus := 11, tein_aktiv := TRUE, taus_aktiv := TRUE); // Sensoren entprellen + END_REGION + + REGION Stau LeerPuffer + #Stau_LP2(ESensor := #BG3317, T_Ein := 01, T_Aus := 11, tein_aktiv := TRUE, taus_aktiv := TRUE); // Sensoren entprellen + END_REGION + + REGION Stau LeerPuffer + #Stau_LP3(ESensor := #BG3316, T_Ein := 01, T_Aus := 11, tein_aktiv := TRUE, taus_aktiv := TRUE); // Sensoren entprellen + END_REGION + + REGION Stau LeerPuffer + #Stau_LP4(ESensor := #BG3315, T_Ein := 01, T_Aus := 11, tein_aktiv := TRUE, taus_aktiv := TRUE); // Sensoren entprellen + END_REGION + + REGION Stau LeerPuffer + #Stau_LP5(ESensor := #BG3314, T_Ein := 01, T_Aus := 11, tein_aktiv := TRUE, taus_aktiv := TRUE); // Sensoren entprellen + END_REGION + + REGION Stau LeerPuffer + #Stau_LP6(ESensor := #BG3313, T_Ein := 01, T_Aus := 11, tein_aktiv := TRUE, taus_aktiv := TRUE); // Sensoren entprellen + END_REGION + + REGION Stau LeerPuffer + #Stau_LP7(ESensor := #BG3312, T_Ein := 01, T_Aus := 11, tein_aktiv := TRUE, taus_aktiv := TRUE); // Sensoren entprellen + END_REGION + + REGION Stau LeerPuffer + #Stau_LP8(ESensor := #BG3311, T_Ein := 01, T_Aus := 11, tein_aktiv := TRUE, taus_aktiv := TRUE); // Sensoren entprellen + END_REGION + + REGION Stau LeerPuffer + #Stau_LP9(ESensor := #BG3310, T_Ein := 01, T_Aus := 11, tein_aktiv := TRUE, taus_aktiv := TRUE); // Sensoren entprellen + END_REGION + + REGION Stau LeerPuffer + #Stau_LP10(ESensor := #BG3307, T_Ein := 01, T_Aus := 11, tein_aktiv := TRUE, taus_aktiv := TRUE); // Sensoren entprellen + END_REGION + + REGION Stau am Sensor vor Beladung + #Stau_BG3322(ESensor := #BG3322, T_Ein := 80, T_Aus := 11, tein_aktiv := TRUE, taus_aktiv := TRUE); // Sensoren entprellen + END_REGION + + REGION Stau am Sensor Steigung vor Beladung + #Stau_BG3327(ESensor := #BG3327, T_Ein := 1, T_Aus := 11, tein_aktiv := TRUE, taus_aktiv := TRUE); // Sensoren entprellen + END_REGION + + REGION Ende + RETURN; + END_REGION + +END_FUNCTION_BLOCK diff --git a/SCL-Export/=A01+UH07-KF00/LP_Zylinder.scl b/SCL-Export/=A01+UH07-KF00/LP_Zylinder.scl new file mode 100644 index 0000000..a13bc78 --- /dev/null +++ b/SCL-Export/=A01+UH07-KF00/LP_Zylinder.scl @@ -0,0 +1,159 @@ +FUNCTION_BLOCK "LP_Zylinder" +{ 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 + DOutbound_Bereich : Word; // war "DOutbound_Bereich" + SGes : Word; // war "SGes" + END_VAR + + VAR_IN_OUT + MB3305 : Byte; // war "MB3305" + MB3310 : Byte; // war "MB3310" + MB3311 : Byte; // war "MB3311" + MB3312 : Byte; // war "MB3312" + MB3313 : Byte; // war "MB3313" + MB3314 : Byte; // war "MB3314" + MB3315 : Byte; // war "MB3315" + MB3316 : Byte; // war "MB3316" + MB3317 : Byte; // war "MB3317" + MB3320 : Byte; // war "MB3320" + MB3330 : Byte; // war "MB3330" + MB3331 : Byte; // war "MB3331" + MB3332 : Byte; // war "MB3332" + MB3333 : Byte; // war "MB3333" + MB3334 : Byte; // war "MB3334" + MB3335 : Byte; // war "MB3335" + MB3336 : Byte; // war "MB3336" + MB3337 : Byte; // war "MB3337" + MB3340 : Byte; // war "MB3340" + MB3341 : Byte; // war "MB3341" + END_VAR + + VAR + Sorter_3305 : "MZylinder"; // + Weiche_LP1 : "MZylinder"; // + Weiche_LP2 : "MZylinder"; + Weiche_LP3 : "MZylinder"; + Weiche_LP4 : "MZylinder"; + Weiche_LP5 : "MZylinder"; + Weiche_LP6 : "MZylinder"; + Weiche_LP7 : "MZylinder"; + Weiche_LP8 : "MZylinder"; + Weiche_LP9 : "MZylinder"; + Weiche_LP10 : "MZylinder"; + Schleuse_Ausfahrt_LP1 : "MZylinder"; // + Schleuse_Ausfahrt_LP2 : "MZylinder"; + Schleuse_Ausfahrt_LP3 : "MZylinder"; + Schleuse_Ausfahrt_LP4 : "MZylinder"; + Schleuse_Ausfahrt_LP5 : "MZylinder"; + Schleuse_Ausfahrt_LP6 : "MZylinder"; + Schleuse_Ausfahrt_LP7 : "MZylinder"; + Schleuse_Ausfahrt_LP8 : "MZylinder"; + Schleuse_Ausfahrt_LP9 : "MZylinder"; + Schleuse_Ausfahrt_LP10 : "MZylinder"; + END_VAR + + VAR_TEMP + Auto : Bool; // Automatik ist aktiv + Hand : Bool; // Hand ist aktiv + ZylAst : Bool; // Zylinder ansteuern + END_VAR + +BEGIN + REGION Übergabe des Bereichstatus System UH07/A01 + #Auto := #DOutbound_Bereich.A01_UH07.Automatik AND NOT (#DOutbound_Bereich.A01_UH07.Handbetrieb); + IF #DOutbound_Bereich.A01_UH07.BereichErr AND NOT (#SGes.Simulation_ohne_HW_aktiv) THEN GOTO Next; END_IF; + END_REGION + + REGION Schleuse_3305 + #Sorter_3305(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3305); + END_REGION + + REGION Weiche_LP1 + #Weiche_LP1(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3320); + END_REGION + + REGION Weiche_LP2 + #Weiche_LP2(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3317); + END_REGION + + REGION Weiche_LP3 + #Weiche_LP3(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3316); + END_REGION + + REGION Weiche_LP4 + #Weiche_LP4(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3315); + END_REGION + + REGION Weiche_LP5 + #Weiche_LP5(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3314); + END_REGION + + REGION Weiche_LP6 + #Weiche_LP6(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3313); + END_REGION + + REGION Weiche_LP7 + #Weiche_LP7(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3312); + END_REGION + + REGION Weiche_LP8 + #Weiche_LP8(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3311); + END_REGION + + REGION Weiche_LP9 + #Weiche_LP9(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3310); + END_REGION + + REGION Weiche_LP10 + #Weiche_LP10(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5); + END_REGION + + REGION Schleuse_Ausfahrt_LP1 + #Schleuse_Ausfahrt_LP1(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3341); + END_REGION + + REGION Schleuse_Ausfahrt_LP2 + #Schleuse_Ausfahrt_LP2(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3340); + END_REGION + + REGION Schleuse_Ausfahrt_LP3 + #Schleuse_Ausfahrt_LP3(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3337); + END_REGION + + REGION Schleuse_Ausfahrt_LP4 + #Schleuse_Ausfahrt_LP4(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3336); + END_REGION + + REGION Schleuse_Ausfahrt_LP5 + #Schleuse_Ausfahrt_LP5(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3335); + END_REGION + + REGION Schleuse_Ausfahrt_LP6 + #Schleuse_Ausfahrt_LP6(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3334); + END_REGION + + REGION Schleuse_Ausfahrt_LP7 + #Schleuse_Ausfahrt_LP7(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3333); + END_REGION + + REGION Schleuse_Ausfahrt_LP8 + #Schleuse_Ausfahrt_LP8(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3332); + END_REGION + + REGION Schleuse_Ausfahrt_LP9 + #Schleuse_Ausfahrt_LP9(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3331); + END_REGION + + REGION Schleuse_Ausfahrt_LP10 + #Schleuse_Ausfahrt_LP10(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3330); + END_REGION + + REGION Ende + RETURN; + END_REGION + +END_FUNCTION_BLOCK diff --git a/SCL-Export/=A01+UH07-KF00/LPtoHW_Antriebe.scl b/SCL-Export/=A01+UH07-KF00/LPtoHW_Antriebe.scl new file mode 100644 index 0000000..9b3dc11 --- /dev/null +++ b/SCL-Export/=A01+UH07-KF00/LPtoHW_Antriebe.scl @@ -0,0 +1,136 @@ +FUNCTION_BLOCK "LPtoHW_Antriebe" +{ 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 + DOutbound_Bereich : Word; // war "DOutbound_Bereich" + SGes : Word; // war "SGes" + T192 : Word; // war "T192" + T193 : Word; // war "T193" + T197 : Word; // war "T197" + END_VAR + + VAR_IN_OUT + g_7_HMI_Err_UH07_OB : Word; // war "7_HMI_Err_UH07_OB" + FC0065 : Word; // war "FC0065" + FC0066 : Word; // war "FC0066" + FC0202 : Word; // war "FC0202" + FC0203 : Word; // war "FC0203" + FC0264 : Word; // war "FC0264" + FC0265 : Word; // war "FC0265" + FC0266 : Word; // war "FC0266" + FC0267 : Word; // war "FC0267" + FC0270 : Word; // war "FC0270" + MA0065 : Bool; // war "MA0065" + MA0066 : Bool; // war "MA0066" + MA0202 : Bool; // war "MA0202" + MA0203 : Bool; // war "MA0203" + MA0264 : Bool; // war "MA0264" + MA0265 : Bool; // war "MA0265" + MA0266 : Bool; // war "MA0266" + MA0267 : Bool; // war "MA0267" + MA0270 : Bool; // war "MA0270" + END_VAR + + VAR + MA0065 : "MAntrieb_PowerSave"; + MA0066 : "MAntrieb_PowerSave"; + MA0264 : "MAntrieb_PowerSave"; + MA0265 : "MAntrieb_PowerSave"; + MA0266 : "MAntrieb_PowerSave"; + MA0267 : "MAntrieb_PowerSave"; + MA0270 : "MAntrieb_PowerSave"; + MA0202 : "MAntrieb_PowerSave"; + MA0203 : "MAntrieb_PowerSave"; + END_VAR + + VAR_TEMP + Auto : Bool; // Automatik Linie ist aktiv + Hand : Bool; // Hand Linie ist aktiv + BereichErr : Bool; // Bereichsstörung -> Antrieb stoppen + QKontroll : Bool; // Frequenzumrichter schon 3s Netz EIN + FuKontroll : Bool; // Frequenzumrichter schon 3s Netz EIN + Quit : Bool; // Motorschutz-Störung quittieren + Qok : Bool; // Motorschutz ok + Jog1 : Bool; // Geschwindigkeit 1 + Jog2 : Bool; // Geschwindigkeit 2 + Betrieb : Bool; // Betriebsart aktiv + FC105_RET : Word; // Returnwert von FC105 + Antrieb1 : Bool; // Antrieb dazuschalten + Antrieb2 : Bool; // Antrieb dazuschalten + F1 : Bool; // Geschwindigkeit 1 aktiviert + F2 : Bool; // Geschwindigkeit 2 aktiviert + F3 : Bool; // Geschwindigkeit 3 aktiviert + END_VAR + +BEGIN + REGION Übergabe des Bereichstatus System UH07/A01 + #Auto := #DOutbound_Bereich.A01_UH07.Automatik AND NOT (#DOutbound_Bereich.A01_UH07.Handbetrieb); + #Hand := FALSE; + #BereichErr := #DOutbound_Bereich.A01_UH07.BereichErr AND NOT (#SGes.Simulation_ohne_HW_aktiv); + #QKontroll := #T197; + #FuKontroll := #T197; + #Quit := #DOutbound_Bereich.A01_UH07.StOk_aktiv; + END_REGION + + REGION MA0065 + #MA0065(Automatik := #Auto, Handbetrieb := #Hand, BereichErr := #BereichErr, Q := #FC0065, Ptc := TRUE, QKontroll := #QKontroll, ErrQuit := #Quit, Antriebvor := #MA0065, QErr := #g_7_HMI_Err_UH07_OB.QErr.MA0065); + END_REGION + + REGION MA0066 + #MA0066(Automatik := #Auto, Handbetrieb := #Hand, BereichErr := #BereichErr, Q := #FC0066, Ptc := TRUE, QKontroll := #QKontroll, ErrQuit := #Quit, Antriebvor := #MA0066, QErr := #g_7_HMI_Err_UH07_OB.QErr.MA0066); + END_REGION + + REGION Übergabe des Bereichstatus System UC073/A01 + #Auto := #DOutbound_Bereich.A01_UH07.Automatik AND NOT (#DOutbound_Bereich.A01_UH07.Handbetrieb); + #Hand := FALSE; + #BereichErr := #DOutbound_Bereich.A01_UC073.BereichErr AND NOT (#SGes.Simulation_ohne_HW_aktiv); + #QKontroll := #T193; + #FuKontroll := #T193; + #Quit := #DOutbound_Bereich.A01_UC073.StOk_aktiv; + END_REGION + + REGION MA0264 + #MA0264(Automatik := #Auto, Handbetrieb := #Hand, BereichErr := #BereichErr, Q := #FC0264, Ptc := TRUE, QKontroll := #QKontroll, ErrQuit := #Quit, Antriebvor := #MA0264, QErr := #g_7_HMI_Err_UH07_OB.QErr.MA0264); + END_REGION + + REGION MA0265 + #MA0265(Automatik := #Auto, Handbetrieb := #Hand, BereichErr := #BereichErr, Q := #FC0265, Ptc := TRUE, QKontroll := #QKontroll, ErrQuit := #Quit, T_Nachlauf := 90, Antriebvor := #MA0265, QErr := #g_7_HMI_Err_UH07_OB.QErr.MA0265); + END_REGION + + REGION MA0266 + #MA0266(Automatik := #Auto, Handbetrieb := #Hand, BereichErr := #BereichErr, Q := #FC0266, Ptc := TRUE, QKontroll := #QKontroll, ErrQuit := #Quit, Antriebvor := #MA0266, QErr := #g_7_HMI_Err_UH07_OB.QErr.MA0266); + END_REGION + + REGION MA0267 + #MA0267(Automatik := #Auto, Handbetrieb := #Hand, BereichErr := #BereichErr, Q := #FC0267, Ptc := TRUE, QKontroll := #QKontroll, ErrQuit := #Quit, Antriebvor := #MA0267, QErr := #g_7_HMI_Err_UH07_OB.QErr.MA0267); + END_REGION + + REGION MA0270 + #MA0270(Automatik := #Auto, Handbetrieb := #Hand, BereichErr := #BereichErr, Q := #FC0270, Ptc := TRUE, QKontroll := #QKontroll, ErrQuit := #Quit, Antriebvor := #MA0270, QErr := #g_7_HMI_Err_UH07_OB.QErr.MA0270); + END_REGION + + REGION Übergabe des Bereichstatus System UC072/A01 + #Auto := #DOutbound_Bereich.A01_UH07.Automatik AND NOT (#DOutbound_Bereich.A01_UH07.Handbetrieb); + #Hand := FALSE; + #BereichErr := ((#DOutbound_Bereich.A01_UC072.BereichErr OR #DOutbound_Bereich.A01_UZ7201.Area_Stop) OR #DOutbound_Bereich.A01_UZ7202.Area_Stop) AND NOT (#SGes.Simulation_ohne_HW_aktiv); + #QKontroll := #T192; + #FuKontroll := #T192; + #Quit := #DOutbound_Bereich.A01_UC072.StOk_aktiv; + END_REGION + + REGION MA0202 + #MA0202(Automatik := #Auto, Handbetrieb := #Hand, BereichErr := #BereichErr, Q := #FC0202, Ptc := TRUE, QKontroll := #QKontroll, ErrQuit := #Quit, Antriebvor := #MA0202, QErr := #g_7_HMI_Err_UH07_OB.QErr.MA0202); + END_REGION + + REGION MA0203 + #MA0203(Automatik := #Auto, Handbetrieb := #Hand, BereichErr := #BereichErr, Q := #FC0203, Ptc := TRUE, QKontroll := #QKontroll, ErrQuit := #Quit, Antriebvor := #MA0203, QErr := #g_7_HMI_Err_UH07_OB.QErr.MA0203); + END_REGION + + REGION Ende + RETURN; + END_REGION + +END_FUNCTION_BLOCK diff --git a/SCL-Export/=A01+UH07-KF00/LPtoHW_Sensoren.scl b/SCL-Export/=A01+UH07-KF00/LPtoHW_Sensoren.scl new file mode 100644 index 0000000..aacbd6c --- /dev/null +++ b/SCL-Export/=A01+UH07-KF00/LPtoHW_Sensoren.scl @@ -0,0 +1,158 @@ +FUNCTION_BLOCK "LPtoHW_Sensoren" +{ 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" + BG4221 : Word; // war "BG4221" + DSchnittstelle_zu_AMR : Word; // war "DSchnittstelle_zu_AMR" + MA0203 : Bool; // war "MA0203" + MA0264 : Bool; // war "MA0264" + MB3323 : Byte; // war "MB3323" + MB3722 : Byte; // war "MB3722" + END_VAR + + VAR_OUTPUT + DLPtoHW_Sensoren : Word; // war "DLPtoHW_Sensoren" + END_VAR + + VAR_IN_OUT + BG3324 : Word; // war "BG3324" + BG3326 : Word; // war "BG3326" + BG3343 : Word; // war "BG3343" + BG3344 : Word; // war "BG3344" + BG3720 : Word; // war "BG3720" + BG3721 : Word; // war "BG3721" + BG3723 : Word; // war "BG3723" + BG4220 : Word; // war "BG4220" + BG4222 : Word; // war "BG4222" + BG4224 : Word; // war "BG4224" + BG4226 : Word; // war "BG4226" + BG4231 : Word; // war "BG4231" + BG4233 : Word; // war "BG4233" + BG4234 : Word; // war "BG4234" + MA0065 : Bool; // war "MA0065" + MB4221 : Byte; // war "MB4221" + END_VAR + + VAR + An_BG3323 : "MSensoren"; // Trolley am Sensor BG3323 + Sack_BG3324 : "MSensoren"; // Sack erkannt + Stau_BG3343 : "MSensoren"; // Stau am Sensor Einfahrt MA0065 + An_BG3343 : "MSensoren"; // Stau am Sensor Einfahrt MA0065 + Stau_BG3344 : "MSensoren"; // Stau am Sensor Einfahrt MA0065 + An_BG3344 : "MSensoren"; // Stau am Sensor Einfahrt MA0065 + Stau_BG3326 : "MSensoren"; // Stau am Sensor Einfahrt MA0066 + Stau_BG4220 : "MSensoren"; // Stau am Sensor Einfahrt MA0264 + Sack_BG4222 : "MSensoren"; // Sack erkannt + Stau_BG4224 : "MSensoren"; // Stau am Sensor Einfahrt MA0265 + Stau_BG4226 : "MSensoren"; // Stau am Sensor Einfahrt MA0266 + Stau_BG4231 : "MSensoren"; // Stau am Sensor Einfahrt MA0267 + Stau_BG4233 : "MSensoren"; // Stau am Sensor Einfahrt MA0270 + Stau_BG4234 : "MSensoren"; // Stau am Sensor Mitte MA0270 + Stau_BG3720 : "MSensoren"; // Stau am Sensor hinter BST2 + Stau_BG3721 : "MSensoren"; // Stau am Sensor Einfahrt MA0203 + Stau_BG3723 : "MSensoren"; // Stau am Sensor Ausfahrt MB3722 + Fährt_zu_UH06 : "MSensoren"; + END_VAR + + VAR_TEMP + T_Ein : Int; // Vorgabe Einschaltverzögerung + T_Aus : Int; // Zwischenspeicher Ausschaltverzögerung + F1 : Bool; // Geschwindigkeit 1 aktiviert + F2 : Bool; // Geschwindigkeit 2 aktiviert + F3 : Bool; // Geschwindigkeit 3 aktiviert + ESensor : Bool; // Sensoren + Antrieb : Bool; + VReal : Real; // GeschwindigkeitinReal + Zeit : Int; // Zeit für Ausschaltverzögerung LT1100 + Aktiv : Bool; // Zeit aktivieren + END_VAR + +BEGIN + REGION Trolley in Schleuse 3323 erkannt (Beladung) + #ESensor := #BG3323 AND NOT (#MB3323); + #An_BG3323(ESensor := #ESensor, T_Ein := 1, T_Aus := 300, tein_aktiv := 1, taus_aktiv := 1); // Falls Trolley entnommen wurde + IF #MB3323 AND #MA0065 THEN #DLPtoHW_Sensoren.An_BG3323.Stat.B_Akt := FALSE; END_IF; + END_REGION + + REGION Sack in Schleuse 3323 erkannt (Beladung) + #Aktiv := NOT (#MB3323) AND (#MA0065 OR #BG3323); + #Sack_BG3324(ESensor := #BG3324, T_Ein := 10, T_Aus := 0, tein_aktiv := #Aktiv, taus_aktiv := 1); + END_REGION + + REGION Stau am Sensor nach Beladung + #Stau_BG3343(ESensor := #BG3343, T_Ein := 80, T_Aus := 11, tein_aktiv := TRUE, taus_aktiv := TRUE); // Sensoren entprellen + END_REGION + + REGION Trolley am Sensor nach Beladung + #An_BG3343(ESensor := #BG3343, T_Ein := 1, T_Aus := 200, tein_aktiv := TRUE, taus_aktiv := #MA0065); // Sensoren entprellen + END_REGION + + REGION Stau am Sensor nach Beladung + #Stau_BG3344(ESensor := #BG3344, T_Ein := 80, T_Aus := 11, tein_aktiv := TRUE, taus_aktiv := TRUE); // Sensoren entprellen + END_REGION + + REGION Trolley am Sensor nach Beladung + #An_BG3344(ESensor := #BG3344, T_Ein := 1, T_Aus := 200, tein_aktiv := TRUE, taus_aktiv := #MA0065); // Sensoren entprellen + END_REGION + + REGION Stau am Sensor Einfahrt MA0066 + #Stau_BG3326(ESensor := #BG3326, T_Ein := 1, T_Aus := 11, tein_aktiv := TRUE, taus_aktiv := TRUE); // Sensoren entprellen + END_REGION + + REGION Stau am Sensor Einfahrt MA0264 + #Aktiv := NOT (#BG4221); + #Stau_BG4220(ESensor := #BG4220, T_Ein := 80, T_Aus := 11, tein_aktiv := TRUE, taus_aktiv := #Aktiv); // Trolley wieder aus Schleuse 4221 + END_REGION + + REGION Sack in Schleuse 4221 erkannt (Vor ByPass zu VP) + #Aktiv := NOT (#MB4221) AND (#MA0264 OR #BG4221); + #Sack_BG4222(ESensor := #BG4222, T_Ein := 1, T_Aus := 11, tein_aktiv := #Aktiv, taus_aktiv := #MB4221); + END_REGION + + REGION Stau am Sensor Einfahrt MA0265 + #Stau_BG4224(ESensor := #BG4224, T_Ein := 80, T_Aus := 11, tein_aktiv := TRUE, taus_aktiv := TRUE); // Sensoren entprellen + END_REGION + + REGION Stau am Sensor Einfahrt MA0266 + #Stau_BG4226(ESensor := #BG4226, T_Ein := 80, T_Aus := 11, tein_aktiv := TRUE, taus_aktiv := TRUE); // Sensoren entprellen + END_REGION + + REGION Stau am Sensor Einfahrt MA0267 + #Stau_BG4231(ESensor := #BG4231, T_Ein := 1, T_Aus := 11, tein_aktiv := TRUE, taus_aktiv := TRUE); // Sensoren entprellen + END_REGION + + REGION Stau am Sensor Einfahrt MA021 + #Stau_BG4233(ESensor := #BG4233, T_Ein := 1, T_Aus := 11, tein_aktiv := TRUE, taus_aktiv := TRUE); // Sensoren entprellen + END_REGION + + REGION Stau am Sensor Mitte MA021 + #Stau_BG4234(ESensor := #BG4234, T_Ein := 1, T_Aus := 11, tein_aktiv := TRUE, taus_aktiv := TRUE); // Sensoren entprellen + END_REGION + + REGION Stau am Sensor hinter BST2 + #Stau_BG3720(ESensor := #BG3720, T_Ein := 1, T_Aus := 30, tein_aktiv := TRUE, taus_aktiv := TRUE); // Sensoren entprellen + END_REGION + + REGION Stau am Sensor Einfahrt MA0203 + #Stau_BG3721(ESensor := #BG3721, T_Ein := 80, T_Aus := 11, tein_aktiv := TRUE, taus_aktiv := TRUE); // Sensoren entprellen + END_REGION + + REGION Stau am Sensor Ausfahrt MB3722 + #Stau_BG3723(ESensor := #BG3723, T_Ein := 80, T_Aus := 11, tein_aktiv := TRUE, taus_aktiv := TRUE); // Sensoren entprellen + END_REGION + + REGION Fährt zu UH06 + #ESensor := #MB3722 OR #BG3723; + #Aktiv := #MA0203 AND #DSchnittstelle_zu_AMR.From_UH06.MA0203_aktiv; + #Fährt_zu_UH06(ESensor := #ESensor, T_Ein := 1, T_Aus := 300, tein_aktiv := TRUE, taus_aktiv := #Aktiv); // 30s Nachlauf + END_REGION + + REGION Ende + RETURN; + END_REGION + +END_FUNCTION_BLOCK diff --git a/SCL-Export/=A01+UH07-KF00/LPtoHW_Zylinder.scl b/SCL-Export/=A01+UH07-KF00/LPtoHW_Zylinder.scl new file mode 100644 index 0000000..90859c1 --- /dev/null +++ b/SCL-Export/=A01+UH07-KF00/LPtoHW_Zylinder.scl @@ -0,0 +1,109 @@ +FUNCTION_BLOCK "LPtoHW_Zylinder" +{ 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 + DOutbound_Bereich : Word; // war "DOutbound_Bereich" + SGes : Word; // war "SGes" + END_VAR + + VAR_OUTPUT + MB4210 : Byte; // war "MB4210" + END_VAR + + VAR_IN_OUT + MB3323 : Byte; // war "MB3323" + MB3324 : Byte; // war "MB3324" + 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 : "MZylinder"; // + Schleuse_3323 : "MZylinder"; // + Schleuse_3345 : "MZylinder"; // + Schleuse_3325 : "MZylinder"; // + Schleuse_4221 : "MZylinder"; + Weiche_4223 : "MZylinder"; // + Schleuse_4227 : "MZylinder"; // + Schleuse_4235 : "MZylinder"; // + Schleuse_3722 : "MZylinder"; // + Stopper_3324 : "MZylinder"; // + END_VAR + + VAR_TEMP + Auto : Bool; // Automatik ist aktiv + Hand : Bool; // Hand ist aktiv + ZylAst : Bool; // Zylinder ansteuern + END_VAR + +BEGIN + REGION Übergabe des Bereichstatus System UH07/A01 + #Auto := #DOutbound_Bereich.A01_UH07.Automatik AND NOT (#DOutbound_Bereich.A01_UH07.Handbetrieb); + IF #DOutbound_Bereich.A01_UH07.BereichErr AND NOT (#SGes.Simulation_ohne_HW_aktiv) THEN GOTO Next; END_IF; + END_REGION + + REGION Schleuse_3342 + #Schleuse_3342(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3342); + END_REGION + + REGION Schleuse_3323 + #Schleuse_3323(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3323); + END_REGION + + REGION Schleuse_3345 + #Schleuse_3345(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3345); + END_REGION + + REGION Schleuse_3325 + #Schleuse_3325(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3325); + END_REGION + + REGION Stopper 3324 + #Stopper_3324(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3324); + END_REGION + + REGION Übergabe des Bereichstatus System UC073/A01 + #Auto := #DOutbound_Bereich.A01_UH07.Automatik AND NOT (#DOutbound_Bereich.A01_UH07.Handbetrieb); + IF #DOutbound_Bereich.A01_UC073.BereichErr AND NOT (#SGes.Simulation_ohne_HW_aktiv) THEN GOTO Next1; END_IF; + END_REGION + + REGION Schleuse_4221 + #Schleuse_4221(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB4221); + END_REGION + + REGION Weiche_4223 + #Weiche_4223(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB4223); + #MB4210 := #MB4223; + END_REGION + + REGION Schleuse_4227 + #Schleuse_4227(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB4227); + END_REGION + + REGION Schleuse_4235 + #Schleuse_4235(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB4235); + END_REGION + + REGION Übergabe des Bereichstatus System UC072/A01 + #Auto := #DOutbound_Bereich.A01_UH07.Automatik AND NOT (#DOutbound_Bereich.A01_UH07.Handbetrieb); + IF ((#DOutbound_Bereich.A01_UC072.BereichErr OR #DOutbound_Bereich.A01_UZ7201.Area_Stop) OR #DOutbound_Bereich.A01_UZ7202.Area_Stop) AND NOT (#SGes.Simulation_ohne_HW_aktiv) THEN GOTO Next2; END_IF; + END_REGION + + REGION Schleuse_3722 + #Schleuse_3722(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3722); + END_REGION + + REGION Ende + RETURN; + END_REGION + +END_FUNCTION_BLOCK diff --git a/SCL-Export/=A01+UH07-KF00/MAusfahrFreigabe_neu.scl b/SCL-Export/=A01+UH07-KF00/MAusfahrFreigabe_neu.scl new file mode 100644 index 0000000..3e0cc77 --- /dev/null +++ b/SCL-Export/=A01+UH07-KF00/MAusfahrFreigabe_neu.scl @@ -0,0 +1,65 @@ +FUNCTION_BLOCK "MAusfahrFreigabe_neu" +{ 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 + Impuls : Bool; // Zähl-Impuls + Vorbei_1 { ExternalWritable := 'False'} : Bool; // BM ist an Sensor vorbeigefahren + Vorbei_2 { ExternalWritable := 'False'} : Bool; // BM ist an Sensor vorbeigefahren + Vorbei_3 { ExternalWritable := 'False'} : Bool; // BM ist an Sensor vorbeigefahren + Vorbei_4 { ExternalWritable := 'False'} : Bool; // BM ist an Sensor vorbeigefahren + Vorbei_5 { ExternalWritable := 'False'} : Bool; // BM ist an Sensor vorbeigefahren + Inks_Vorbei_1 : Int; // Rest-Inks für diese Position + Inks_Vorbei_2 : Int; // Rest-Inks für diese Position + Inks_Vorbei_3 : Int; // Rest-Inks für diese Position + Inks_Vorbei_4 : Int; // Rest-Inks für diese Position + Inks_Vorbei_5 : Int; // Rest-Inks für diese Position + END_VAR + + VAR_IN_OUT + Antrieb_ein : Bool; // Antrieb einschalten + END_VAR + + VAR + Dyn : Struct + Rest_Inks : Int := 1; // BM noch unterwegs [Inks] + END_STRUCT; + END_VAR + + VAR_TEMP + tAktiv : Int; + END_VAR + +BEGIN + REGION Vorbei-Sensoren auswerten + IF #Vorbei_5 THEN GOTO Chek; END_IF; + IF #Vorbei_5 AND #Vorbei_4 THEN GOTO Chek; END_IF; + IF (#Vorbei_5 AND #Vorbei_4) AND #Vorbei_3 THEN GOTO Chek; END_IF; + IF ((#Vorbei_5 AND #Vorbei_4) AND #Vorbei_3) AND #Vorbei_2 THEN GOTO Chek; END_IF; + IF (((#Vorbei_5 AND #Vorbei_4) AND #Vorbei_3) AND #Vorbei_2) AND #Vorbei_1 THEN GOTO Chek; END_IF; + GOTO En02; + Chek: ; + IF #Inks_Vorbei_1 < #Dyn.Rest_Inks THEN GOTO En02; END_IF; + #Dyn.Rest_Inks := #Inks_Vorbei_1; + En02: ; + END_REGION + + REGION Rest-Inks verändern + IF NOT (#Impuls) THEN GOTO En04; END_IF; + #Dyn.Rest_Inks := #Dyn.Rest_Inks + -1; + IF (#Dyn.Rest_Inks + -1) > 0 THEN GOTO En04; END_IF; + #Dyn.Rest_Inks := 1; + En04: ; + END_REGION + + REGION Antrieb einschalten + IF #Dyn.Rest_Inks > 1 THEN #Antrieb_ein := TRUE; END_IF; + END_REGION + + REGION Ende + RETURN; + END_REGION + +END_FUNCTION_BLOCK diff --git a/SCL-Export/=A01+UH07-KF00/MBlinken.scl b/SCL-Export/=A01+UH07-KF00/MBlinken.scl new file mode 100644 index 0000000..2690abc --- /dev/null +++ b/SCL-Export/=A01+UH07-KF00/MBlinken.scl @@ -0,0 +1,106 @@ +FUNCTION_BLOCK "MBlinken" +{ 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 + Impulsdauer : Bool; // Impulsdauer + Error_1 : Bool; + Error_2 : Bool; + Error_3 : Bool; + Error_4 : Bool; + Error_5 : Bool; + Error_6 : Bool; + Error_7 : Bool; + Error_8 : Bool; + Error_9 : Bool; + Error_10 : Bool; + END_VAR + + VAR_OUTPUT + hAnzeige : Bool; // Anzeige + END_VAR + + VAR + Flanke_Ausschalttakt : Bool; + Kein_Blinken : Bool; + Ausschalttakte : Int; // Betriebsbereit ist ausgeschaltet + END_VAR + + VAR_TEMP + tGen1_Flanke : Bool; + END_VAR + +BEGIN + REGION Anzeige bei Error 1-10 1-10 mal blinken lassen + IF ((((((((NOT (#Error_1) AND NOT (#Error_2)) AND NOT (#Error_3)) AND NOT (#Error_4)) AND NOT (#Error_5)) AND NOT (#Error_6)) AND NOT (#Error_7)) AND NOT (#Error_8)) AND NOT (#Error_9)) AND NOT (#Error_10) THEN + #hAnzeige := FALSE; + #Flanke_Ausschalttakt := FALSE; + #Kein_Blinken := FALSE; + GOTO NoAn; + END_IF; + #hAnzeige := #Impulsdauer AND NOT (#Kein_Blinken); + #tGen1_Flanke := NOT (#Impulsdauer) AND #Flanke_Ausschalttakt; + #Flanke_Ausschalttakt := #Impulsdauer; + IF #tGen1_Flanke THEN #Ausschalttakte := #Ausschalttakte + 1; END_IF; + IF (#Ausschalttakte >= 2) AND #Kein_Blinken THEN + #Kein_Blinken := FALSE; + GOTO NoAn; + END_IF; + IF #Kein_Blinken THEN GOTO En01; END_IF; + IF (#Ausschalttakte >= 1) AND #Error_1 THEN + #Kein_Blinken := TRUE; + GOTO NoAn; + END_IF; + IF (#Ausschalttakte >= 2) AND #Error_2 THEN + #Kein_Blinken := TRUE; + GOTO NoAn; + END_IF; + IF (#Ausschalttakte >= 3) AND #Error_3 THEN + #Kein_Blinken := TRUE; + GOTO NoAn; + END_IF; + IF (#Ausschalttakte >= 4) AND #Error_4 THEN + #Kein_Blinken := TRUE; + GOTO NoAn; + END_IF; + IF (#Ausschalttakte >= 5) AND #Error_5 THEN + #Kein_Blinken := TRUE; + GOTO NoAn; + END_IF; + IF (#Ausschalttakte >= 6) AND #Error_6 THEN + #Kein_Blinken := TRUE; + GOTO NoAn; + END_IF; + IF (#Ausschalttakte >= 7) AND #Error_7 THEN + #Kein_Blinken := TRUE; + GOTO NoAn; + END_IF; + IF (#Ausschalttakte >= 8) AND #Error_8 THEN + #Kein_Blinken := TRUE; + GOTO NoAn; + END_IF; + IF (#Ausschalttakte >= 9) AND #Error_9 THEN + #Kein_Blinken := TRUE; + GOTO NoAn; + END_IF; + IF (#Ausschalttakte >= 10) AND #Error_10 THEN + #Kein_Blinken := TRUE; + GOTO NoAn; + END_IF; + IF #Ausschalttakte > 10 THEN + #Kein_Blinken := TRUE; + GOTO NoAn; + END_IF; + GOTO En01; + NoAn: ; + #Ausschalttakte := 0; + En01: ; + END_REGION + + REGION Ende + RETURN; + END_REGION + +END_FUNCTION_BLOCK diff --git a/SCL-Export/=A01+UH07-KF00/MSensoren.scl b/SCL-Export/=A01+UH07-KF00/MSensoren.scl new file mode 100644 index 0000000..06d2200 --- /dev/null +++ b/SCL-Export/=A01+UH07-KF00/MSensoren.scl @@ -0,0 +1,56 @@ +FUNCTION_BLOCK "MSensoren" +{ 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 + ESensor { ExternalWritable := 'False'} : Bool; // Eingang des zu überwachenden Sensors + T_Ein { ExternalWritable := 'False'} : Int := 1; // Einschaltzeitverzögerung (*100ms) + T_Aus { ExternalWritable := 'False'} : Int := 5; // Ausschaltzeitverzögerung (*100ms) + tein_aktiv { ExternalWritable := 'False'} : Bool := TRUE; // Einschaltzeit aktivieren + taus_aktiv { ExternalWritable := 'False'} : Bool := TRUE; // Ausschaltzeit aktivieren + g_100ms_Impuls : Word; // war "100ms-Impuls" + MW2 : Word; // war "MW2" + END_VAR + + VAR + Stat { ExternalWritable := 'False'} : "USensor_Ein_Aus"; // Status des Endschalters + END_VAR + +BEGIN + REGION Zeitwert löschen + IF NOT ((#ESensor AND #Stat.B_Akt) OR (NOT (#ESensor) AND NOT (#Stat.B_Akt))) THEN GOTO Nw02; END_IF; + #Stat.T_Zelle := 0; + RETURN; + END_REGION + + REGION Einschaltzeit abgelaufen ? + IF #Stat.T_Ein_Akt = 9999 THEN #Stat.T_Ein_Akt := #T_Ein; END_IF; + IF #Stat.B_Akt THEN GOTO Nw03; END_IF; + IF #Stat.T_Zelle >= #Stat.T_Ein_Akt THEN + #Stat.B_Akt := TRUE; + GOTO tdel; + END_IF; + GOTO Nw04; + END_REGION + + REGION Ausschaltzeit abgelaufen ? + IF #Stat.T_Aus_Akt = 9999 THEN #Stat.T_Aus_Akt := #T_Aus; END_IF; + IF NOT (#Stat.B_Akt) THEN GOTO Nw04; END_IF; + IF #Stat.T_Zelle >= #Stat.T_Aus_Akt THEN + #Stat.B_Akt := FALSE; + GOTO tdel; + END_IF; + END_REGION + + REGION Zeit läuft + IF (NOT (#g_100ms_Impuls) OR (NOT (#Stat.B_Akt) AND NOT (#tein_aktiv))) OR (#Stat.B_Akt AND NOT (#taus_aktiv)) THEN RETURN; END_IF; + #Stat.T_Zelle := #Stat.T_Zelle + #MW2; + END_REGION + + REGION Ende + RETURN; + END_REGION + +END_FUNCTION_BLOCK diff --git a/SCL-Export/=A01+UH07-KF00/Port1_Telegramme_auswerten.scl b/SCL-Export/=A01+UH07-KF00/Port1_Telegramme_auswerten.scl new file mode 100644 index 0000000..141fbe3 --- /dev/null +++ b/SCL-Export/=A01+UH07-KF00/Port1_Telegramme_auswerten.scl @@ -0,0 +1,59 @@ +FUNCTION "Port1_Telegramme_auswerten" : Void +{ 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 + SS_Port1_EmpfangsDaten : Word; // war "SS_Port1_EmpfangsDaten" + END_VAR + + VAR_IN_OUT + MW196 : Word; // war "MW196" + END_VAR + + VAR_TEMP + QuellDB : Any; // Zeiger, wo Empfangsdaten sind + ZielDB : Any; // Zeiger, wo Auswertesdaten sind + Teleg_Kennung_A : DWord; + Teleg_Kennung_B : DWord; + Teleg_Kennung_C : Word; + AMR_DB : Int; + AMR_DW : Int; + Error : Bool; + AR1Zeiger : DWord; // Statt AR1 (ging nur bis DB-Länge <= 8191 Bytes) + AR1Start : DInt; // Startwert mit Offset 0 + PLC_ABP : Word; + END_VAR + +BEGIN + REGION Telegrammkopf übergeben + RETURN; + %LB20 := #SS_Port1_EmpfangsDaten.Port1.TelegrammKennung[1]; + %LB21 := #SS_Port1_EmpfangsDaten.Port1.TelegrammKennung[2]; + %LB22 := #SS_Port1_EmpfangsDaten.Port1.TelegrammKennung[3]; + %LB23 := #SS_Port1_EmpfangsDaten.Port1.TelegrammKennung[4]; + %LB24 := #SS_Port1_EmpfangsDaten.Port1.TelegrammKennung[5]; + %LB25 := #SS_Port1_EmpfangsDaten.Port1.TelegrammKennung[6]; + %LB26 := #SS_Port1_EmpfangsDaten.Port1.TelegrammKennung[7]; + %LB27 := #SS_Port1_EmpfangsDaten.Port1.TelegrammKennung[8]; + %LB28 := #SS_Port1_EmpfangsDaten.Port1.TelegrammKennung[9]; + %LB29 := #SS_Port1_EmpfangsDaten.Port1.TelegrammKennung[10]; + END_REGION + + REGION BReqM-Telegramm ? (VollPuffer auslagern) + IF #Teleg_Kennung_A <> 'BReq' THEN GOTO NoBREQM; END_IF; + IF #Teleg_Kennung_B <> 'M' THEN GOTO NoBREQM; END_IF; + RETURN; + NoBREQM: ; + END_REGION + + REGION Unbekanntes Telegramm + "DBMOV"(QuellDB := 9001, QuellDW := 0, ZielDB := 9001, ZielDW := 30, Anzahl_DW := 15, RE_VAL := #MW196); // Letztes ???-Telegramm speichern + END_REGION + + REGION Baustein Ende + RETURN; + END_REGION + +END_FUNCTION diff --git a/SCL-Export/=A01+UH07-KF00/Port2_Telegramme_auswerten.scl b/SCL-Export/=A01+UH07-KF00/Port2_Telegramme_auswerten.scl new file mode 100644 index 0000000..4797d53 --- /dev/null +++ b/SCL-Export/=A01+UH07-KF00/Port2_Telegramme_auswerten.scl @@ -0,0 +1,59 @@ +FUNCTION "Port2_Telegramme_auswerten" : Void +{ 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_IN_OUT + MW196 : Word; // war "MW196" + SS_Port2_EmpfangsDaten : Word; // war "SS_Port2_EmpfangsDaten" + END_VAR + + VAR_TEMP + QuellDB : Any; // Zeiger, wo Empfangsdaten sind + ZielDB : Any; // Zeiger, wo Auswertesdaten sind + Teleg_Kennung_A : DWord; + Teleg_Kennung_B : DWord; + Teleg_Kennung_C : Word; + Schleusen_DB : Int; + Schleusen_DW : Int; + Error : Bool; + AR1Zeiger : DWord; // Statt AR1 (ging nur bis DB-Länge <= 8191 Bytes) + AR1Start : DInt; // Startwert mit Offset 0 + PLC_ABP : Word; + EndZiel : Word; + END_VAR + +BEGIN + REGION Telegrammkopf übergeben + %LB20 := #SS_Port2_EmpfangsDaten.Port2.TelegrammKennung[1]; + %LB21 := #SS_Port2_EmpfangsDaten.Port2.TelegrammKennung[2]; + %LB22 := #SS_Port2_EmpfangsDaten.Port2.TelegrammKennung[3]; + %LB23 := #SS_Port2_EmpfangsDaten.Port2.TelegrammKennung[4]; + %LB24 := #SS_Port2_EmpfangsDaten.Port2.TelegrammKennung[5]; + %LB25 := #SS_Port2_EmpfangsDaten.Port2.TelegrammKennung[6]; + %LB26 := #SS_Port2_EmpfangsDaten.Port2.TelegrammKennung[7]; + %LB27 := #SS_Port2_EmpfangsDaten.Port2.TelegrammKennung[8]; + %LB28 := #SS_Port2_EmpfangsDaten.Port2.TelegrammKennung[9]; + %LB29 := #SS_Port2_EmpfangsDaten.Port2.TelegrammKennung[10]; + END_REGION + + REGION GOHDRespM-Telegramm ? (Entscheidungsreaktion) + IF #Teleg_Kennung_A <> 'GOHD' THEN GOTO NoGOHDRespM; END_IF; + IF #Teleg_Kennung_B <> 'Resp' THEN GOTO NoGOHDRespM; END_IF; + IF #Teleg_Kennung_C <> 'M$00' THEN GOTO NoGOHDRespM; END_IF; + "INT_to_BCD (4stellig)"(Int_Wert := #SS_Port2_EmpfangsDaten.Port2.Puffer_LinienNr, BCD_Wert := #EndZiel); // Neu: Eintrag in Trolley-DB: + "Trolleydaten_ändern"(Gesamt_Trolley_DL := 1000, TrolleyID := #SS_Port2_EmpfangsDaten.Port2.TrolleyID, Endziel := #EndZiel, ShopGroup := #SS_Port2_EmpfangsDaten.Port2.StoreGroup); + RETURN; + NoGOHDRespM: ; + END_REGION + + REGION Unbekanntes Telegramm + "DBMOV"(QuellDB := 9002, QuellDW := 0, ZielDB := 9002, ZielDW := 30, Anzahl_DW := 15, RE_VAL := #MW196); // Letztes ???-Telegramm speichern + END_REGION + + REGION Baustein Ende + RETURN; + END_REGION + +END_FUNCTION diff --git a/SCL-Export/=A01+UH07-KF00/Save_CARR_Gesendet.scl b/SCL-Export/=A01+UH07-KF00/Save_CARR_Gesendet.scl new file mode 100644 index 0000000..e7c0c41 --- /dev/null +++ b/SCL-Export/=A01+UH07-KF00/Save_CARR_Gesendet.scl @@ -0,0 +1,51 @@ +FUNCTION "Save_CARR_Gesendet" : Void +{ 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 + Kennung_1 : Char; + Kennung_2 : Char; + Kennung_3 : Char; + Kennung_4 : Char; + FIFO_DB : Int; // FIFO-Ringspeicher + Teil_IDX : Int; // BT/MT-IDX (wird bei Auslagerung gemeldet) + Teil_Ziel : Int; // BT/MT bei diesem Abwurf-Ziel ausfahren/entladen + Sort_ID : Int; // Sortier-Info (Sort-ID, mit welcher Fahrt gestartet wurde) + END_VAR + + VAR_OUTPUT + MW220 : Word; // war "MW220" + MW222 : Word; // war "MW222" + MW224 : Word; // war "MW224" + END_VAR + + VAR_IN_OUT + MB199 : Byte; // war "MB199" + END_VAR + +BEGIN + REGION Kennung CARR ? + IF #Kennung_1 <> 'C' THEN RETURN; END_IF; + IF #Kennung_2 <> 'A' THEN RETURN; END_IF; + IF #Kennung_3 <> 'R' THEN RETURN; END_IF; + IF #Kennung_4 <> 'R' THEN RETURN; END_IF; + END_REGION + + REGION Daten aufbereiten + #MW220 := #Teil_IDX; + #MW222 := #Teil_Ziel; + #MW224 := #Sort_ID; + END_REGION + + REGION Daten speichern + "FifoOut"(SSDB := #FIFO_DB, SSDW := 0, PARA := 16#E100, OUTDATEN := P#M200.0, RE_VAL := #MB199); // da Ringspeicher nächster Eintrag lesen + austragen + "FifoIn"(SSDB := #FIFO_DB, SSDW := 0, PARA := 16#0000, INDATEN := P#M220.0, RE_VAL := #MB199); + END_REGION + + REGION Ende + RETURN; + END_REGION + +END_FUNCTION diff --git a/SCL-Export/=A01+UH07-KF00/Save_Ziel.scl b/SCL-Export/=A01+UH07-KF00/Save_Ziel.scl new file mode 100644 index 0000000..f70e519 --- /dev/null +++ b/SCL-Export/=A01+UH07-KF00/Save_Ziel.scl @@ -0,0 +1,37 @@ +FUNCTION "Save_Ziel" : Void +{ 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 + FIFO_DB : Int; // FIFO-Ringspeicher + Teil_IDX : Int; // BT/MT-IDX (wird bei Auslagerung gemeldet) + Teil_Ziel : Int; // BT/MT bei diesem Abwurf-Ziel ausfahren/entladen + END_VAR + + VAR_OUTPUT + MW220 : Word; // war "MW220" + MW222 : Word; // war "MW222" + END_VAR + + VAR_IN_OUT + MB199 : Byte; // war "MB199" + END_VAR + +BEGIN + REGION Daten aufbereiten + #MW220 := #Teil_IDX; + #MW222 := #Teil_Ziel; + END_REGION + + REGION Daten speichern + "FifoOut"(SSDB := #FIFO_DB, SSDW := 0, PARA := 16#E100, OUTDATEN := P#M200.0, RE_VAL := #MB199); // da Ringspeicher nächster Eintrag lesen + austragen + "FifoIn"(SSDB := #FIFO_DB, SSDW := 0, PARA := 16#0000, INDATEN := P#M220.0, RE_VAL := #MB199); + END_REGION + + REGION Ende + RETURN; + END_REGION + +END_FUNCTION diff --git a/SCL-Export/=A01+UH07-KF00/Startup.scl b/SCL-Export/=A01+UH07-KF00/Startup.scl new file mode 100644 index 0000000..bf60c6f --- /dev/null +++ b/SCL-Export/=A01+UH07-KF00/Startup.scl @@ -0,0 +1,44 @@ +ORGANIZATION_BLOCK "Startup" +{ 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_OUTPUT + DOutbound_Bereich : Word; // war "DOutbound_Bereich" + SGes : Word; // war "SGes" + END_VAR + +BEGIN + REGION Neustart + #DOutbound_Bereich.A01_UH07.AnlageEin := FALSE; + #SGes.Neustart := TRUE; + #DOutbound_Bereich.A01_UH07.Not_Aus.UH07 := FALSE; + #DOutbound_Bereich.A01_UH07.Not_Aus.UC071 := FALSE; + #DOutbound_Bereich.A01_UH07.Not_Aus.UC073 := FALSE; + #DOutbound_Bereich.A01_UH07.Not_Aus.UZ0701 := FALSE; + #DOutbound_Bereich.A01_UH07.Not_Aus.UZ0702 := FALSE; + #DOutbound_Bereich.A01_UH07.Not_Aus.UZ0703 := FALSE; + #DOutbound_Bereich.A01_UH07.Not_Aus.UZ7101 := FALSE; + #DOutbound_Bereich.A01_UH07.Not_Aus.UZ7102 := FALSE; + #DOutbound_Bereich.A01_UH07.Not_Aus.UZ7103 := FALSE; + #DOutbound_Bereich.A01_UH07.Not_Aus.UZ7104 := FALSE; + #DOutbound_Bereich.A01_UH07.Not_Aus.UZ7105 := FALSE; + #DOutbound_Bereich.A01_UH07.Not_Aus.UZ7106 := FALSE; + #DOutbound_Bereich.A01_UH07.Not_Aus.UZ7107 := FALSE; + #DOutbound_Bereich.A01_UH07.Not_Aus.UZ7301 := FALSE; + #DOutbound_Bereich.A01_UH07.Not_Aus.UZ7302 := FALSE; + #DOutbound_Bereich.A01_UH07.Not_Aus.UZ7303 := FALSE; + #DOutbound_Bereich.A01_UC072.Not_Aus.UC072 := FALSE; + #DOutbound_Bereich.A01_UC072.Not_Aus.UZ7201 := FALSE; + #DOutbound_Bereich.A01_UC072.Not_Aus.UZ7202 := FALSE; + #DOutbound_Bereich.A01_UC074.Not_Aus.UC074 := FALSE; + #DOutbound_Bereich.A01_UC074.Not_Aus.UZ7401 := FALSE; + #DOutbound_Bereich.A01_UC074.Not_Aus.UZ7402 := FALSE; + END_REGION + + REGION Ende + RETURN; + END_REGION + +END_ORGANIZATION_BLOCK diff --git a/SCL-Export/=A01+UH07-KF00/VP_Antriebe.scl b/SCL-Export/=A01+UH07-KF00/VP_Antriebe.scl new file mode 100644 index 0000000..53451a2 --- /dev/null +++ b/SCL-Export/=A01+UH07-KF00/VP_Antriebe.scl @@ -0,0 +1,94 @@ +FUNCTION_BLOCK "VP_Antriebe" +{ 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 + DOutbound_Bereich : Word; // war "DOutbound_Bereich" + SGes : Word; // war "SGes" + T191 : Word; // war "T191" + END_VAR + + VAR_IN_OUT + g_7_HMI_Err_UH07_OB : Word; // war "7_HMI_Err_UH07_OB" + FC0145 : Word; // war "FC0145" + FC0146 : Word; // war "FC0146" + FC0147 : Word; // war "FC0147" + FC0150 : Word; // war "FC0150" + FC0152 : Word; // war "FC0152" + MA0145 : Bool; // war "MA0145" + MA0146 : Bool; // war "MA0146" + MA0147 : Bool; // war "MA0147" + MA0150 : Bool; // war "MA0150" + MA0152 : Bool; // war "MA0152" + END_VAR + + VAR + MA0145 : "MAntrieb_PowerSave"; + MA0146 : "MAntrieb_PowerSave"; + MA0147 : "MAntrieb_PowerSave"; + MA0150 : "MAntrieb_PowerSave"; + MA0152 : "MAntrieb_PowerSave"; + END_VAR + + VAR_TEMP + Auto : Bool; // Automatik Linie ist aktiv + Hand : Bool; // Hand Linie ist aktiv + BereichErr : Bool; // Bereichsstörung -> Antrieb stoppen + QKontroll : Bool; // Frequenzumrichter schon 3s Netz EIN + FuKontroll : Bool; // Frequenzumrichter schon 3s Netz EIN + Quit : Bool; // Motorschutz-Störung quittieren + Qok : Bool; // Motorschutz ok + Jog1 : Bool; // Geschwindigkeit 1 + Jog2 : Bool; // Geschwindigkeit 2 + Betrieb : Bool; // Betriebsart aktiv + FC105_RET : Word; // Returnwert von FC105 + Antrieb1 : Bool; // Antrieb dazuschalten + Antrieb2 : Bool; // Antrieb dazuschalten + F1 : Bool; // Geschwindigkeit 1 aktiviert + F2 : Bool; // Geschwindigkeit 2 aktiviert + F3 : Bool; // Geschwindigkeit 3 aktiviert + BereichErr_Zusatz_7102 : Bool; // Bereichsstörung -> Antrieb stoppen + BereichErr_Zusatz_7104 : Bool; // Bereichsstörung -> Antrieb stoppen + BereichErr_Zusatz_7102_7104 : Bool; // Bereichsstörung -> Antrieb stoppen + END_VAR + +BEGIN + REGION Übergabe des Bereichstatus System UC071/A01 + #Auto := #DOutbound_Bereich.A01_UH07.Automatik AND NOT (#DOutbound_Bereich.A01_UH07.Handbetrieb); + #Hand := FALSE; + #BereichErr := #DOutbound_Bereich.A01_UC071.BereichErr; + #BereichErr_Zusatz_7102 := (#BereichErr OR #DOutbound_Bereich.A01_UZ7102.Area_Stop) AND NOT (#SGes.Simulation_ohne_HW_aktiv); + #BereichErr_Zusatz_7104 := (#BereichErr OR #DOutbound_Bereich.A01_UZ7104.Area_Stop) AND NOT (#SGes.Simulation_ohne_HW_aktiv); + #BereichErr_Zusatz_7102_7104 := ((#BereichErr OR #BereichErr_Zusatz_7102) OR #BereichErr_Zusatz_7104) AND NOT (#SGes.Simulation_ohne_HW_aktiv); + #QKontroll := #T191; + #FuKontroll := #T191; + #Quit := #DOutbound_Bereich.A01_UC071.StOk_aktiv; + END_REGION + + REGION MA0145 + #MA0145(Automatik := #Auto, Handbetrieb := #Hand, BereichErr := #BereichErr_Zusatz_7102, Q := #FC0145, Ptc := TRUE, QKontroll := #QKontroll, ErrQuit := #Quit, Antriebvor := #MA0145, QErr := #g_7_HMI_Err_UH07_OB.QErr.MA0145); + END_REGION + + REGION MA0146 + #MA0146(Automatik := #Auto, Handbetrieb := #Hand, BereichErr := #BereichErr_Zusatz_7102, Q := #FC0146, Ptc := TRUE, QKontroll := #QKontroll, ErrQuit := #Quit, Antriebvor := #MA0146, QErr := #g_7_HMI_Err_UH07_OB.QErr.MA0146); + END_REGION + + REGION MA0147 + #MA0147(Automatik := #Auto, Handbetrieb := #Hand, BereichErr := #BereichErr_Zusatz_7104, Q := #FC0147, Ptc := TRUE, QKontroll := #QKontroll, ErrQuit := #Quit, Antriebvor := #MA0147, QErr := #g_7_HMI_Err_UH07_OB.QErr.MA0147); + END_REGION + + REGION MA0150 + #MA0150(Automatik := #Auto, Handbetrieb := #Hand, BereichErr := #BereichErr_Zusatz_7104, Q := #FC0150, Ptc := TRUE, QKontroll := #QKontroll, ErrQuit := #Quit, Antriebvor := #MA0150, QErr := #g_7_HMI_Err_UH07_OB.QErr.MA0150); + END_REGION + + REGION MA0152 + #MA0152(Automatik := #Auto, Handbetrieb := #Hand, BereichErr := #BereichErr_Zusatz_7102_7104, Q := #FC0152, Ptc := TRUE, QKontroll := #QKontroll, ErrQuit := #Quit, Antriebvor := #MA0152, QErr := #g_7_HMI_Err_UH07_OB.QErr.MA0152); + END_REGION + + REGION Ende + RETURN; + END_REGION + +END_FUNCTION_BLOCK diff --git a/SCL-Export/=A01+UH07-KF00/VP_Auslagern.scl b/SCL-Export/=A01+UH07-KF00/VP_Auslagern.scl new file mode 100644 index 0000000..e3e6e27 --- /dev/null +++ b/SCL-Export/=A01+UH07-KF00/VP_Auslagern.scl @@ -0,0 +1,99 @@ +FUNCTION_BLOCK "VP_Auslagern" +{ 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 + DVP_Sensoren : Word; // war "DVP_Sensoren" + MB3207 : Byte; // war "MB3207" + MB3210 : Byte; // war "MB3210" + MB3211 : Byte; // war "MB3211" + MB3212 : Byte; // war "MB3212" + MB3213 : Byte; // war "MB3213" + MB3214 : Byte; // war "MB3214" + MB3215 : Byte; // war "MB3215" + END_VAR + + VAR_IN_OUT + g_7_HMI_Err_UH07_OB : Word; // war "7_HMI_Err_UH07_OB" + BG3181 : Word; // war "BG3181" + BG3182 : Word; // war "BG3182" + BG3183 : Word; // war "BG3183" + BG3184 : Word; // war "BG3184" + BG3185 : Word; // war "BG3185" + BG3240 : Word; // war "BG3240" + BG3241 : Word; // war "BG3241" + BG3480 : Word; // war "BG3480" + BG3481 : Word; // war "BG3481" + DOutbound_Bereich : Word; // war "DOutbound_Bereich" + DVP_Antriebe : Word; // war "DVP_Antriebe" + MA0147 : Bool; // war "MA0147" + MA0150 : Bool; // war "MA0150" + END_VAR + + VAR + Ausfahren_Ok_B : "MAusfahrFreigabe_neu"; + Impuls_MB3480 : "MImpulsGeber"; + Ausfahren_Ok_A : "MAusfahrFreigabe_neu"; + Impuls_MB3185 : "MImpulsGeber"; + Simulation_Auslagern : Struct + Auslagern_aktiv : Bool; + Wartezeit : Int; + Vollpuffer_Check : Int; + Vollpuffer_Aktiv : Int; + Last_Check : Int; + Position : Int; + END_STRUCT; + END_VAR + + VAR_TEMP + ErrQuit : Bool; + Antrieb : Bool; + Impuls : Bool; + Lager_X : Int; + Lager_DB : Int; + Lager_DW : Int; + AR1Zeiger : DWord; // Statt AR1 (ging nur bis DB-Länge <= 8191 Bytes) + AR1Start : DInt; // Startwert mit Offset 0 + END_VAR + +BEGIN + REGION Inkremente B über Zahnrad-Sensor + #ErrQuit := #DOutbound_Bereich.A01_UZ7107.StOk_aktiv OR #DOutbound_Bereich.A01_UZ7104.StOk_aktiv; + #Impuls_MB3480(B_Zaehlen := #BG3480, Antrieb_aktiv := #MA0147, Quit := #ErrQuit, Signal := #Impuls, Err_Kein_Signal := #g_7_HMI_Err_UH07_OB.Impulsgeber_3480.Kein_Signal, Err_Signal_zu_lang := #g_7_HMI_Err_UH07_OB.Impulsgeber_3480.Signal_zu_lang); + IF (#g_7_HMI_Err_UH07_OB.Impulsgeber_3480.Kein_Signal OR #g_7_HMI_Err_UH07_OB.Impulsgeber_3480.Signal_zu_lang) AND NOT (#ErrQuit) THEN #DVP_Antriebe.MA0147.Stat.Stop_vor := TRUE; END_IF; + IF #g_7_HMI_Err_UH07_OB.Impulsgeber_3480.Kein_Signal OR #g_7_HMI_Err_UH07_OB.Impulsgeber_3480.Signal_zu_lang THEN + #DOutbound_Bereich.A01_UZ7107.StOk_blinken := TRUE; + #DOutbound_Bereich.A01_UZ7104.StOk_blinken := TRUE; + END_IF; + END_REGION + + REGION Ausfahr-Steuerung B + #Ausfahren_Ok_B(Impuls := #Impuls, Vorbei_1 := #BG3183, Vorbei_2 := #BG3182, Vorbei_3 := #BG3181, Vorbei_4 := #BG3481, Inks_Vorbei_1 := 12, Inks_Vorbei_2 := 158, Inks_Vorbei_3 := 353, Inks_Vorbei_4 := 509, Antrieb_ein := #DVP_Antriebe.MA0147.Stat.A_start); + END_REGION + + REGION Lager-Raus-Antrieb B stoppen + IF #BG3183 AND ((((((((((#MB3207 OR #MB3210) OR #MB3211) OR #MB3212) OR #MB3213) OR #MB3214) OR #MB3215) OR #DVP_Sensoren.Stau_BG3184.Stat.B_Akt) OR #DVP_Sensoren.Stau_BG3240.Stat.B_Akt) OR #DVP_Sensoren.Stau_BG3241.Stat.B_Akt) OR #DVP_Sensoren.Stau_BG3242.Stat.B_Akt) THEN #DVP_Antriebe.MA0147.Stat.Stop_vor := TRUE; END_IF; + END_REGION + + REGION Inkremente A über Zahnrad-Sensor + #ErrQuit := (#DOutbound_Bereich.A01_UZ7104.StOk_aktiv OR #DOutbound_Bereich.A01_UZ7105.StOk_aktiv) OR #DOutbound_Bereich.A01_UC071.StOk_aktiv; + #Impuls_MB3185(B_Zaehlen := #BG3185, Antrieb_aktiv := #MA0150, Quit := #ErrQuit, Signal := #Impuls, Err_Kein_Signal := #g_7_HMI_Err_UH07_OB.Impulsgeber_3185.Kein_Signal, Err_Signal_zu_lang := #g_7_HMI_Err_UH07_OB.Impulsgeber_3185.Signal_zu_lang); + IF (#g_7_HMI_Err_UH07_OB.Impulsgeber_3185.Kein_Signal OR #g_7_HMI_Err_UH07_OB.Impulsgeber_3185.Signal_zu_lang) AND NOT (#ErrQuit) THEN #DVP_Antriebe.MA0150.Stat.Stop_vor := TRUE; END_IF; + IF #g_7_HMI_Err_UH07_OB.Impulsgeber_3185.Kein_Signal OR #g_7_HMI_Err_UH07_OB.Impulsgeber_3185.Signal_zu_lang THEN + #DOutbound_Bereich.A01_UZ7104.StOk_blinken := TRUE; + #DOutbound_Bereich.A01_UZ7105.StOk_blinken := TRUE; + #DOutbound_Bereich.A01_UC071.StOk_blinken := TRUE; + END_IF; + END_REGION + + REGION Ausfahr-Steuerung A + #Ausfahren_Ok_A(Impuls := #Impuls, Vorbei_1 := #BG3241, Vorbei_2 := #BG3240, Vorbei_3 := #BG3184, Vorbei_4 := #BG3183, Inks_Vorbei_1 := 146, Inks_Vorbei_2 := 331, Inks_Vorbei_3 := 489, Inks_Vorbei_4 := 482, Inks_Vorbei_5 := 630, Antrieb_ein := #DVP_Antriebe.MA0150.Stat.A_start); + END_REGION + + REGION Ende + RETURN; + END_REGION + +END_FUNCTION_BLOCK diff --git a/SCL-Export/=A01+UH07-KF00/VP_Sensoren.scl b/SCL-Export/=A01+UH07-KF00/VP_Sensoren.scl new file mode 100644 index 0000000..302cb60 --- /dev/null +++ b/SCL-Export/=A01+UH07-KF00/VP_Sensoren.scl @@ -0,0 +1,459 @@ +FUNCTION_BLOCK "VP_Sensoren" +{ 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 + MA0152 : Bool; // war "MA0152" + END_VAR + + VAR_IN_OUT + BG3001 : Word; // war "BG3001" + BG3002 : Word; // war "BG3002" + BG3003 : Word; // war "BG3003" + BG3005 : Word; // war "BG3005" + BG3006 : Word; // war "BG3006" + BG3007 : Word; // war "BG3007" + BG3010 : Word; // war "BG3010" + BG3011 : Word; // war "BG3011" + BG3012 : Word; // war "BG3012" + BG3013 : Word; // war "BG3013" + BG3014 : Word; // war "BG3014" + BG3015 : Word; // war "BG3015" + BG3016 : Word; // war "BG3016" + BG3017 : Word; // war "BG3017" + BG3020 : Word; // war "BG3020" + BG3021 : Word; // war "BG3021" + BG3022 : Word; // war "BG3022" + BG3023 : Word; // war "BG3023" + BG3024 : Word; // war "BG3024" + BG3025 : Word; // war "BG3025" + BG3026 : Word; // war "BG3026" + BG3027 : Word; // war "BG3027" + BG3060 : Word; // war "BG3060" + BG3061 : Word; // war "BG3061" + BG3062 : Word; // war "BG3062" + BG3063 : Word; // war "BG3063" + BG3064 : Word; // war "BG3064" + BG3065 : Word; // war "BG3065" + BG3066 : Word; // war "BG3066" + BG3067 : Word; // war "BG3067" + BG3070 : Word; // war "BG3070" + BG3071 : Word; // war "BG3071" + BG3072 : Word; // war "BG3072" + BG3073 : Word; // war "BG3073" + BG3074 : Word; // war "BG3074" + BG3075 : Word; // war "BG3075" + BG3076 : Word; // war "BG3076" + BG3077 : Word; // war "BG3077" + BG3080 : Word; // war "BG3080" + BG3081 : Word; // war "BG3081" + BG3082 : Word; // war "BG3082" + BG3083 : Word; // war "BG3083" + BG3084 : Word; // war "BG3084" + BG3085 : Word; // war "BG3085" + BG3086 : Word; // war "BG3086" + BG3087 : Word; // war "BG3087" + BG3120 : Word; // war "BG3120" + BG3181 : Word; // war "BG3181" + BG3182 : Word; // war "BG3182" + BG3183 : Word; // war "BG3183" + BG3184 : Word; // war "BG3184" + BG3241 : Word; // war "BG3241" + BG3242 : Word; // war "BG3242" + BG3243 : Word; // war "BG3243" + BG3246 : Word; // war "BG3246" + BG3420 : Word; // war "BG3420" + BG3423 : Word; // war "BG3423" + BG3424 : Word; // war "BG3424" + BG3425 : Word; // war "BG3425" + BG3426 : Word; // war "BG3426" + BG3427 : Word; // war "BG3427" + BG3430 : Word; // war "BG3430" + BG3431 : Word; // war "BG3431" + BG3432 : Word; // war "BG3432" + BG3433 : Word; // war "BG3433" + BG3434 : Word; // war "BG3434" + BG3435 : Word; // war "BG3435" + BG3481 : Word; // war "BG3481" + MA0145 : Bool; // war "MA0145" + MA0146 : Bool; // war "MA0146" + MA0147 : Bool; // war "MA0147" + MA0150 : Bool; // war "MA0150" + END_VAR + + VAR + Stau_VP1 : "MSensoren"; + Stau_VP2 : "MSensoren"; + Stau_VP3 : "MSensoren"; + Stau_VP4 : "MSensoren"; + Stau_VP5 : "MSensoren"; + Stau_VP6 : "MSensoren"; + Stau_VP7 : "MSensoren"; + Stau_VP8 : "MSensoren"; + Stau_VP9 : "MSensoren"; + Stau_VP10 : "MSensoren"; + Stau_VP11 : "MSensoren"; + Stau_VP12 : "MSensoren"; + Stau_VP13 : "MSensoren"; + Stau_VP14 : "MSensoren"; + Stau_VP15 : "MSensoren"; + Stau_VP16 : "MSensoren"; + Stau_VP17 : "MSensoren"; + Stau_VP18 : "MSensoren"; + Stau_VP19 : "MSensoren"; + Stau_VP20 : "MSensoren"; + Stau_VP21 : "MSensoren"; + Stau_VP22 : "MSensoren"; + Stau_VP23 : "MSensoren"; + Stau_VP24 : "MSensoren"; + Stau_VP25 : "MSensoren"; + Stau_VP26 : "MSensoren"; + Stau_VP27 : "MSensoren"; + Stau_VP28 : "MSensoren"; + Stau_VP29 : "MSensoren"; + Stau_VP30 : "MSensoren"; + Stau_VP31 : "MSensoren"; + Stau_VP32 : "MSensoren"; + Stau_VP33 : "MSensoren"; + Stau_VP34 : "MSensoren"; + Stau_VP35 : "MSensoren"; + Stau_VP36 : "MSensoren"; + Stau_VP37 : "MSensoren"; + Stau_VP38 : "MSensoren"; + Stau_VP39 : "MSensoren"; + Stau_VP40 : "MSensoren"; + Stau_VP41 : "MSensoren"; + Stau_VP42 : "MSensoren"; + Stau_VP43 : "MSensoren"; + Stau_VP44 : "MSensoren"; + Stau_VP45 : "MSensoren"; + Stau_VP46 : "MSensoren"; + Stau_VP47 : "MSensoren"; + Stau_VP48 : "MSensoren"; + Stau_VP49 : "MSensoren"; + Stau_VP50 : "MSensoren"; + Stau_VP51 : "MSensoren"; + Stau_BG3062 : "MSensoren"; + Stau_BG3061 : "MSensoren"; + Stau_BG3060 : "MSensoren"; + Stau_BG3003 : "MSensoren"; + Stau_BG3002 : "MSensoren"; + Stau_BG3001 : "MSensoren"; + Stau_BG3420 : "MSensoren"; + Stau_BG3481 : "MSensoren"; + Stau_BG3181 : "MSensoren"; + Stau_BG3182 : "MSensoren"; + Stau_BG3183 : "MSensoren"; + Stau_BG3184 : "MSensoren"; + Stau_BG3240 : "MSensoren"; + Stau_BG3241 : "MSensoren"; + Stau_BG3242 : "MSensoren"; + Stau_BG3243 : "MSensoren"; + Stau_BG3246 : "MSensoren"; + An_BG3120 : "MSensoren"; + An_BG3003 : "MSensoren"; + END_VAR + + VAR_TEMP + T_Ein : Int; // Vorgabe Einschaltverzögerung + T_Aus : Int; // Zwischenspeicher Ausschaltverzögerung + F1 : Bool; // Geschwindigkeit 1 aktiviert + F2 : Bool; // Geschwindigkeit 2 aktiviert + F3 : Bool; // Geschwindigkeit 3 aktiviert + ESensor : Bool; // Sensoren + Antrieb : Bool; + VReal : Real; // GeschwindigkeitinReal + Zeit : Int; // Zeit für Ausschaltverzögerung LT1100 + Aktiv : Bool; // Zeit aktivieren + END_VAR + +BEGIN + REGION Stau VollPuffer + #Stau_VP1(ESensor := #BG3087, T_Ein := 01, T_Aus := 11, tein_aktiv := TRUE, taus_aktiv := TRUE); // Sensoren entprellen + END_REGION + + REGION Stau VollPuffer + #Stau_VP2(ESensor := #BG3086, T_Ein := 01, T_Aus := 11, tein_aktiv := TRUE, taus_aktiv := TRUE); // Sensoren entprellen + END_REGION + + REGION Stau VollPuffer + #Stau_VP3(ESensor := #BG3085, T_Ein := 01, T_Aus := 11, tein_aktiv := TRUE, taus_aktiv := TRUE); // Sensoren entprellen + END_REGION + + REGION Stau VollPuffer + #Stau_VP4(ESensor := #BG3084, T_Ein := 01, T_Aus := 11, tein_aktiv := TRUE, taus_aktiv := TRUE); // Sensoren entprellen + END_REGION + + REGION Stau VollPuffer + #Stau_VP5(ESensor := #BG3083, T_Ein := 01, T_Aus := 11, tein_aktiv := TRUE, taus_aktiv := TRUE); // Sensoren entprellen + END_REGION + + REGION Stau VollPuffer + #Stau_VP6(ESensor := #BG3082, T_Ein := 01, T_Aus := 11, tein_aktiv := TRUE, taus_aktiv := TRUE); // Sensoren entprellen + END_REGION + + REGION Stau VollPuffer + #Stau_VP7(ESensor := #BG3081, T_Ein := 01, T_Aus := 11, tein_aktiv := TRUE, taus_aktiv := TRUE); // Sensoren entprellen + END_REGION + + REGION Stau VollPuffer + #Stau_VP8(ESensor := #BG3080, T_Ein := 01, T_Aus := 11, tein_aktiv := TRUE, taus_aktiv := TRUE); // Sensoren entprellen + END_REGION + + REGION Stau VollPuffer + #Stau_VP9(ESensor := #BG3077, T_Ein := 01, T_Aus := 11, tein_aktiv := TRUE, taus_aktiv := TRUE); // Sensoren entprellen + END_REGION + + REGION Stau VollPuffer + #Stau_VP10(ESensor := #BG3076, T_Ein := 01, T_Aus := 11, tein_aktiv := TRUE, taus_aktiv := TRUE); // Sensoren entprellen + END_REGION + + REGION Stau VollPuffer + #Stau_VP11(ESensor := #BG3075, T_Ein := 01, T_Aus := 11, tein_aktiv := TRUE, taus_aktiv := TRUE); // Sensoren entprellen + END_REGION + + REGION Stau VollPuffer + #Stau_VP12(ESensor := #BG3074, T_Ein := 01, T_Aus := 11, tein_aktiv := TRUE, taus_aktiv := TRUE); // Sensoren entprellen + END_REGION + + REGION Stau VollPuffer + #Stau_VP13(ESensor := #BG3073, T_Ein := 01, T_Aus := 11, tein_aktiv := TRUE, taus_aktiv := TRUE); // Sensoren entprellen + END_REGION + + REGION Stau VollPuffer + #Stau_VP14(ESensor := #BG3072, T_Ein := 01, T_Aus := 11, tein_aktiv := TRUE, taus_aktiv := TRUE); // Sensoren entprellen + END_REGION + + REGION Stau VollPuffer + #Stau_VP15(ESensor := #BG3071, T_Ein := 01, T_Aus := 11, tein_aktiv := TRUE, taus_aktiv := TRUE); // Sensoren entprellen + END_REGION + + REGION Stau VollPuffer + #Stau_VP16(ESensor := #BG3070, T_Ein := 01, T_Aus := 11, tein_aktiv := TRUE, taus_aktiv := TRUE); // Sensoren entprellen + END_REGION + + REGION Stau VollPuffer + #Stau_VP17(ESensor := #BG3067, T_Ein := 01, T_Aus := 11, tein_aktiv := TRUE, taus_aktiv := TRUE); // Sensoren entprellen + END_REGION + + REGION Stau VollPuffer + #Stau_VP18(ESensor := #BG3066, T_Ein := 01, T_Aus := 11, tein_aktiv := TRUE, taus_aktiv := TRUE); // Sensoren entprellen + END_REGION + + REGION Stau VollPuffer + #Stau_VP19(ESensor := #BG3065, T_Ein := 01, T_Aus := 11, tein_aktiv := TRUE, taus_aktiv := TRUE); // Sensoren entprellen + END_REGION + + REGION Stau VollPuffer + #Stau_VP20(ESensor := #BG3064, T_Ein := 01, T_Aus := 11, tein_aktiv := TRUE, taus_aktiv := TRUE); // Sensoren entprellen + END_REGION + + REGION Stau VollPuffer + #Stau_VP21(ESensor := #BG3063, T_Ein := 01, T_Aus := 11, tein_aktiv := TRUE, taus_aktiv := TRUE); // Sensoren entprellen + END_REGION + + REGION Stau VollPuffer + #Stau_VP22(ESensor := #BG3027, T_Ein := 01, T_Aus := 11, tein_aktiv := TRUE, taus_aktiv := TRUE); // Sensoren entprellen + END_REGION + + REGION Stau VollPuffer + #Stau_VP23(ESensor := #BG3026, T_Ein := 01, T_Aus := 11, tein_aktiv := TRUE, taus_aktiv := TRUE); // Sensoren entprellen + END_REGION + + REGION Stau VollPuffer + #Stau_VP24(ESensor := #BG3025, T_Ein := 01, T_Aus := 11, tein_aktiv := TRUE, taus_aktiv := TRUE); // Sensoren entprellen + END_REGION + + REGION Stau VollPuffer + #Stau_VP25(ESensor := #BG3024, T_Ein := 01, T_Aus := 11, tein_aktiv := TRUE, taus_aktiv := TRUE); // Sensoren entprellen + END_REGION + + REGION Stau VollPuffer + #Stau_VP26(ESensor := #BG3023, T_Ein := 01, T_Aus := 11, tein_aktiv := TRUE, taus_aktiv := TRUE); // Sensoren entprellen + END_REGION + + REGION Stau VollPuffer + #Stau_VP27(ESensor := #BG3022, T_Ein := 01, T_Aus := 11, tein_aktiv := TRUE, taus_aktiv := TRUE); // Sensoren entprellen + END_REGION + + REGION Stau VollPuffer + #Stau_VP28(ESensor := #BG3021, T_Ein := 01, T_Aus := 11, tein_aktiv := TRUE, taus_aktiv := TRUE); // Sensoren entprellen + END_REGION + + REGION Stau VollPuffer + #Stau_VP29(ESensor := #BG3020, T_Ein := 01, T_Aus := 11, tein_aktiv := TRUE, taus_aktiv := TRUE); // Sensoren entprellen + END_REGION + + REGION Stau VollPuffer + #Stau_VP30(ESensor := #BG3017, T_Ein := 01, T_Aus := 11, tein_aktiv := TRUE, taus_aktiv := TRUE); // Sensoren entprellen + END_REGION + + REGION Stau VollPuffer + #Stau_VP31(ESensor := #BG3016, T_Ein := 01, T_Aus := 11, tein_aktiv := TRUE, taus_aktiv := TRUE); // Sensoren entprellen + END_REGION + + REGION Stau VollPuffer + #Stau_VP32(ESensor := #BG3015, T_Ein := 01, T_Aus := 11, tein_aktiv := TRUE, taus_aktiv := TRUE); // Sensoren entprellen + END_REGION + + REGION Stau VollPuffer + #Stau_VP33(ESensor := #BG3014, T_Ein := 01, T_Aus := 11, tein_aktiv := TRUE, taus_aktiv := TRUE); // Sensoren entprellen + END_REGION + + REGION Stau VollPuffer + #Stau_VP34(ESensor := #BG3013, T_Ein := 01, T_Aus := 11, tein_aktiv := TRUE, taus_aktiv := TRUE); // Sensoren entprellen + END_REGION + + REGION Stau VollPuffer + #Stau_VP35(ESensor := #BG3012, T_Ein := 01, T_Aus := 11, tein_aktiv := TRUE, taus_aktiv := TRUE); // Sensoren entprellen + END_REGION + + REGION Stau VollPuffer + #Stau_VP36(ESensor := #BG3011, T_Ein := 01, T_Aus := 11, tein_aktiv := TRUE, taus_aktiv := TRUE); // Sensoren entprellen + END_REGION + + REGION Stau VollPuffer + #Stau_VP37(ESensor := #BG3010, T_Ein := 01, T_Aus := 11, tein_aktiv := TRUE, taus_aktiv := TRUE); // Sensoren entprellen + END_REGION + + REGION Stau VollPuffer + #Stau_VP38(ESensor := #BG3007, T_Ein := 01, T_Aus := 11, tein_aktiv := TRUE, taus_aktiv := TRUE); // Sensoren entprellen + END_REGION + + REGION Stau VollPuffer + #Stau_VP39(ESensor := #BG3006, T_Ein := 01, T_Aus := 11, tein_aktiv := TRUE, taus_aktiv := TRUE); // Sensoren entprellen + END_REGION + + REGION Stau VollPuffer + #Stau_VP40(ESensor := #BG3005, T_Ein := 01, T_Aus := 11, tein_aktiv := TRUE, taus_aktiv := TRUE); // Sensoren entprellen + END_REGION + + REGION Stau VollPuffer + #Stau_VP41(ESensor := #BG3435, T_Ein := 01, T_Aus := 11, tein_aktiv := TRUE, taus_aktiv := TRUE); // Sensoren entprellen + END_REGION + + REGION Stau VollPuffer + #Stau_VP42(ESensor := #BG3434, T_Ein := 01, T_Aus := 11, tein_aktiv := TRUE, taus_aktiv := TRUE); // Sensoren entprellen + END_REGION + + REGION Stau VollPuffer + #Stau_VP43(ESensor := #BG3433, T_Ein := 01, T_Aus := 11, tein_aktiv := TRUE, taus_aktiv := TRUE); // Sensoren entprellen + END_REGION + + REGION Stau VollPuffer + #Stau_VP44(ESensor := #BG3432, T_Ein := 01, T_Aus := 11, tein_aktiv := TRUE, taus_aktiv := TRUE); // Sensoren entprellen + END_REGION + + REGION Stau VollPuffer + #Stau_VP45(ESensor := #BG3431, T_Ein := 01, T_Aus := 11, tein_aktiv := TRUE, taus_aktiv := TRUE); // Sensoren entprellen + END_REGION + + REGION Stau VollPuffer + #Stau_VP46(ESensor := #BG3430, T_Ein := 01, T_Aus := 11, tein_aktiv := TRUE, taus_aktiv := TRUE); // Sensoren entprellen + END_REGION + + REGION Stau VollPuffer + #Stau_VP47(ESensor := #BG3427, T_Ein := 01, T_Aus := 11, tein_aktiv := TRUE, taus_aktiv := TRUE); // Sensoren entprellen + END_REGION + + REGION Stau VollPuffer + #Stau_VP48(ESensor := #BG3426, T_Ein := 01, T_Aus := 11, tein_aktiv := TRUE, taus_aktiv := TRUE); // Sensoren entprellen + END_REGION + + REGION Stau VollPuffer + #Stau_VP49(ESensor := #BG3425, T_Ein := 01, T_Aus := 11, tein_aktiv := TRUE, taus_aktiv := TRUE); // Sensoren entprellen + END_REGION + + REGION Stau VollPuffer + #Stau_VP50(ESensor := #BG3424, T_Ein := 01, T_Aus := 11, tein_aktiv := TRUE, taus_aktiv := TRUE); // Sensoren entprellen + END_REGION + + REGION Stau VollPuffer + #Stau_VP51(ESensor := #BG3423, T_Ein := 01, T_Aus := 11, tein_aktiv := TRUE, taus_aktiv := TRUE); // Sensoren entprellen + END_REGION + + REGION Stau Sorter Rein A + #Stau_BG3062(ESensor := #BG3062, T_Ein := 80, T_Aus := 11, tein_aktiv := #MA0145, taus_aktiv := TRUE); + END_REGION + + REGION Stau Sorter Rein A + #Stau_BG3061(ESensor := #BG3061, T_Ein := 80, T_Aus := 11, tein_aktiv := #MA0145, taus_aktiv := TRUE); + END_REGION + + REGION Stau Sorter Rein A + #Stau_BG3060(ESensor := #BG3060, T_Ein := 80, T_Aus := 11, tein_aktiv := #MA0145, taus_aktiv := TRUE); + END_REGION + + REGION Stau Sorter Rein B + #Stau_BG3003(ESensor := #BG3003, T_Ein := 80, T_Aus := 11, tein_aktiv := #MA0146, taus_aktiv := TRUE); + END_REGION + + REGION Stau Sorter Rein B + #Stau_BG3002(ESensor := #BG3002, T_Ein := 80, T_Aus := 11, tein_aktiv := #MA0146, taus_aktiv := TRUE); + END_REGION + + REGION Stau Sorter Rein B + #Stau_BG3001(ESensor := #BG3001, T_Ein := 80, T_Aus := 11, tein_aktiv := #MA0146, taus_aktiv := TRUE); + END_REGION + + REGION Stau Sorter Rein B + #Stau_BG3420(ESensor := #BG3420, T_Ein := 80, T_Aus := 11, tein_aktiv := #MA0146, taus_aktiv := TRUE); + END_REGION + + REGION Stau Puffer Raus B + #Stau_BG3481(ESensor := #BG3481, T_Ein := 80, T_Aus := 11, tein_aktiv := #MA0147, taus_aktiv := TRUE); + END_REGION + + REGION Stau Puffer Raus B + #Stau_BG3181(ESensor := #BG3181, T_Ein := 80, T_Aus := 11, tein_aktiv := #MA0147, taus_aktiv := TRUE); + END_REGION + + REGION Stau Puffer Raus B + #Stau_BG3182(ESensor := #BG3182, T_Ein := 80, T_Aus := 11, tein_aktiv := #MA0147, taus_aktiv := TRUE); + END_REGION + + REGION Stau Puffer Raus B + #Stau_BG3183(ESensor := #BG3183, T_Ein := 80, T_Aus := 11, tein_aktiv := #MA0147, taus_aktiv := TRUE); + END_REGION + + REGION Stau Puffer Raus A + #Stau_BG3184(ESensor := #BG3184, T_Ein := 80, T_Aus := 11, tein_aktiv := #MA0150, taus_aktiv := TRUE); + END_REGION + + REGION Stau Puffer Raus A + #Stau_BG3240(ESensor := #BG3184, T_Ein := 80, T_Aus := 11, tein_aktiv := #MA0150, taus_aktiv := TRUE); + END_REGION + + REGION Stau Fahrstrecke + #Stau_BG3241(ESensor := #BG3241, T_Ein := 80, T_Aus := 11, tein_aktiv := TRUE, taus_aktiv := TRUE); // Sensoren entprellen + END_REGION + + REGION Stau Fahrstrecke + #Stau_BG3242(ESensor := #BG3242, T_Ein := 80, T_Aus := 11, tein_aktiv := TRUE, taus_aktiv := TRUE); // Sensoren entprellen + END_REGION + + REGION Stau Fahrstrecke + #Stau_BG3243(ESensor := #BG3243, T_Ein := 80, T_Aus := 11, tein_aktiv := TRUE, taus_aktiv := TRUE); // Sensoren entprellen + END_REGION + + REGION Stau Fahrstrecke + #Stau_BG3246(ESensor := #BG3246, T_Ein := 80, T_Aus := 11, tein_aktiv := TRUE, taus_aktiv := TRUE); // Sensoren entprellen + END_REGION + + REGION Am SynchronPunkt Sorter A + #Antrieb := #MA0152 AND #MA0145; + #An_BG3120(ESensor := #BG3120, T_Ein := 01, T_Aus := 100, tein_aktiv := TRUE, taus_aktiv := #Antrieb); + END_REGION + + REGION An der Übergabe Sorter A / B + #Antrieb := #MA0145 AND #MA0146; + #An_BG3003(ESensor := #BG3003, T_Ein := 01, T_Aus := 100, tein_aktiv := TRUE, taus_aktiv := #Antrieb); + END_REGION + + REGION Ende + RETURN; + END_REGION + +END_FUNCTION_BLOCK diff --git a/SCL-Export/=A01+UH07-KF00/VP_Zylinder.scl b/SCL-Export/=A01+UH07-KF00/VP_Zylinder.scl new file mode 100644 index 0000000..586a894 --- /dev/null +++ b/SCL-Export/=A01+UH07-KF00/VP_Zylinder.scl @@ -0,0 +1,999 @@ +FUNCTION_BLOCK "VP_Zylinder" +{ 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 + DOutbound_Bereich : Word; // war "DOutbound_Bereich" + SGes : Word; // war "SGes" + END_VAR + + VAR_IN_OUT + MB3005 : Byte; // war "MB3005" + MB3006 : Byte; // war "MB3006" + MB3007 : Byte; // war "MB3007" + MB3010 : Byte; // war "MB3010" + MB3011 : Byte; // war "MB3011" + MB3012 : Byte; // war "MB3012" + MB3013 : Byte; // war "MB3013" + MB3014 : Byte; // war "MB3014" + MB3015 : Byte; // war "MB3015" + MB3016 : Byte; // war "MB3016" + MB3017 : Byte; // war "MB3017" + MB3020 : Byte; // war "MB3020" + MB3021 : Byte; // war "MB3021" + MB3022 : Byte; // war "MB3022" + MB3023 : Byte; // war "MB3023" + MB3024 : Byte; // war "MB3024" + MB3025 : Byte; // war "MB3025" + MB3026 : Byte; // war "MB3026" + MB3027 : Byte; // war "MB3027" + MB3030 : Byte; // war "MB3030" + MB3031 : Byte; // war "MB3031" + MB3032 : Byte; // war "MB3032" + MB3033 : Byte; // war "MB3033" + MB3034 : Byte; // war "MB3034" + MB3035 : Byte; // war "MB3035" + MB3036 : Byte; // war "MB3036" + MB3037 : Byte; // war "MB3037" + MB3040 : Byte; // war "MB3040" + MB3041 : Byte; // war "MB3041" + MB3042 : Byte; // war "MB3042" + MB3043 : Byte; // war "MB3043" + MB3044 : Byte; // war "MB3044" + MB3045 : Byte; // war "MB3045" + MB3046 : Byte; // war "MB3046" + MB3047 : Byte; // war "MB3047" + MB3050 : Byte; // war "MB3050" + MB3051 : Byte; // war "MB3051" + MB3052 : Byte; // war "MB3052" + MB3063 : Byte; // war "MB3063" + MB3064 : Byte; // war "MB3064" + MB3065 : Byte; // war "MB3065" + MB3066 : Byte; // war "MB3066" + MB3067 : Byte; // war "MB3067" + MB3070 : Byte; // war "MB3070" + MB3071 : Byte; // war "MB3071" + MB3072 : Byte; // war "MB3072" + MB3073 : Byte; // war "MB3073" + MB3074 : Byte; // war "MB3074" + MB3075 : Byte; // war "MB3075" + MB3076 : Byte; // war "MB3076" + MB3077 : Byte; // war "MB3077" + MB3080 : Byte; // war "MB3080" + MB3081 : Byte; // war "MB3081" + MB3082 : Byte; // war "MB3082" + MB3083 : Byte; // war "MB3083" + MB3084 : Byte; // war "MB3084" + MB3085 : Byte; // war "MB3085" + MB3086 : Byte; // war "MB3086" + MB3087 : Byte; // war "MB3087" + MB3090 : Byte; // war "MB3090" + MB3091 : Byte; // war "MB3091" + MB3092 : Byte; // war "MB3092" + MB3093 : Byte; // war "MB3093" + MB3094 : Byte; // war "MB3094" + MB3095 : Byte; // war "MB3095" + MB3096 : Byte; // war "MB3096" + MB3097 : Byte; // war "MB3097" + MB3100 : Byte; // war "MB3100" + MB3101 : Byte; // war "MB3101" + MB3102 : Byte; // war "MB3102" + MB3103 : Byte; // war "MB3103" + MB3104 : Byte; // war "MB3104" + MB3105 : Byte; // war "MB3105" + MB3106 : Byte; // war "MB3106" + MB3107 : Byte; // war "MB3107" + MB3110 : Byte; // war "MB3110" + MB3111 : Byte; // war "MB3111" + MB3112 : Byte; // war "MB3112" + MB3113 : Byte; // war "MB3113" + MB3114 : Byte; // war "MB3114" + MB3120 : Byte; // war "MB3120" + MB3121 : Byte; // war "MB3121" + MB3123 : Byte; // war "MB3123" + MB3190 : Byte; // war "MB3190" + MB3191 : Byte; // war "MB3191" + MB3192 : Byte; // war "MB3192" + MB3193 : Byte; // war "MB3193" + MB3194 : Byte; // war "MB3194" + MB3195 : Byte; // war "MB3195" + MB3196 : Byte; // war "MB3196" + MB3197 : Byte; // war "MB3197" + MB3200 : Byte; // war "MB3200" + MB3201 : Byte; // war "MB3201" + MB3202 : Byte; // war "MB3202" + MB3203 : Byte; // war "MB3203" + MB3204 : Byte; // war "MB3204" + MB3205 : Byte; // war "MB3205" + MB3206 : Byte; // war "MB3206" + MB3207 : Byte; // war "MB3207" + MB3210 : Byte; // war "MB3210" + MB3211 : Byte; // war "MB3211" + MB3212 : Byte; // war "MB3212" + MB3213 : Byte; // war "MB3213" + MB3214 : Byte; // war "MB3214" + MB3215 : Byte; // war "MB3215" + MB3244 : Byte; // war "MB3244" + MB3245 : Byte; // war "MB3245" + MB3252 : Byte; // war "MB3252" + MB3253 : Byte; // war "MB3253" + MB3254 : Byte; // war "MB3254" + MB3255 : Byte; // war "MB3255" + MB3256 : Byte; // war "MB3256" + MB3257 : Byte; // war "MB3257" + MB3260 : Byte; // war "MB3260" + MB3261 : Byte; // war "MB3261" + MB3262 : Byte; // war "MB3262" + MB3263 : Byte; // war "MB3263" + MB3264 : Byte; // war "MB3264" + MB3265 : Byte; // war "MB3265" + MB3266 : Byte; // war "MB3266" + MB3267 : Byte; // war "MB3267" + MB3270 : Byte; // war "MB3270" + MB3271 : Byte; // war "MB3271" + MB3272 : Byte; // war "MB3272" + MB3273 : Byte; // war "MB3273" + MB3424 : Byte; // war "MB3424" + MB3425 : Byte; // war "MB3425" + MB3426 : Byte; // war "MB3426" + MB3427 : Byte; // war "MB3427" + MB3430 : Byte; // war "MB3430" + MB3431 : Byte; // war "MB3431" + MB3432 : Byte; // war "MB3432" + MB3433 : Byte; // war "MB3433" + MB3434 : Byte; // war "MB3434" + MB3435 : Byte; // war "MB3435" + MB3450 : Byte; // war "MB3450" + MB3451 : Byte; // war "MB3451" + MB3452 : Byte; // war "MB3452" + MB3453 : Byte; // war "MB3453" + MB3454 : Byte; // war "MB3454" + MB3455 : Byte; // war "MB3455" + MB3456 : Byte; // war "MB3456" + MB3457 : Byte; // war "MB3457" + MB3460 : Byte; // war "MB3460" + MB3461 : Byte; // war "MB3461" + MB3462 : Byte; // war "MB3462" + MB3482 : Byte; // war "MB3482" + MB3483 : Byte; // war "MB3483" + MB3484 : Byte; // war "MB3484" + MB3485 : Byte; // war "MB3485" + MB3486 : Byte; // war "MB3486" + MB3487 : Byte; // war "MB3487" + MB3490 : Byte; // war "MB3490" + MB3491 : Byte; // war "MB3491" + MB3492 : Byte; // war "MB3492" + MB3493 : Byte; // war "MB3493" + MB3494 : Byte; // war "MB3494" + END_VAR + + VAR + Sorter_3121 : "MZylinder"; // + Sorter_3123 : "MZylinder"; // + Weiche_3120 : "MZylinder"; // + Schleuse_3244 : "MZylinder"; // + Weiche_3245 : "MZylinder"; // + Weiche_VP1 : "MZylinder"; // + Weiche_VP2 : "MZylinder"; + Weiche_VP3 : "MZylinder"; + Weiche_VP4 : "MZylinder"; + Weiche_VP5 : "MZylinder"; + Weiche_VP6 : "MZylinder"; + Weiche_VP7 : "MZylinder"; + Weiche_VP8 : "MZylinder"; + Weiche_VP9 : "MZylinder"; + Weiche_VP10 : "MZylinder"; + Weiche_VP11 : "MZylinder"; + Weiche_VP12 : "MZylinder"; + Weiche_VP13 : "MZylinder"; + Weiche_VP14 : "MZylinder"; + Weiche_VP15 : "MZylinder"; + Weiche_VP16 : "MZylinder"; + Weiche_VP17 : "MZylinder"; + Weiche_VP18 : "MZylinder"; + Weiche_VP19 : "MZylinder"; + Weiche_VP20 : "MZylinder"; + Weiche_VP21 : "MZylinder"; + Weiche_VP22 : "MZylinder"; + Weiche_VP23 : "MZylinder"; + Weiche_VP24 : "MZylinder"; + Weiche_VP25 : "MZylinder"; + Weiche_VP26 : "MZylinder"; + Weiche_VP27 : "MZylinder"; + Weiche_VP28 : "MZylinder"; + Weiche_VP29 : "MZylinder"; + Weiche_VP30 : "MZylinder"; + Weiche_VP31 : "MZylinder"; + Weiche_VP32 : "MZylinder"; + Weiche_VP33 : "MZylinder"; + Weiche_VP34 : "MZylinder"; + Weiche_VP35 : "MZylinder"; + Weiche_VP36 : "MZylinder"; + Weiche_VP37 : "MZylinder"; + Weiche_VP38 : "MZylinder"; + Weiche_VP39 : "MZylinder"; + Weiche_VP40 : "MZylinder"; + Weiche_VP41 : "MZylinder"; + Weiche_VP42 : "MZylinder"; + Weiche_VP43 : "MZylinder"; + Weiche_VP44 : "MZylinder"; + Weiche_VP45 : "MZylinder"; + Weiche_VP46 : "MZylinder"; + Weiche_VP47 : "MZylinder"; + Weiche_VP48 : "MZylinder"; + Weiche_VP49 : "MZylinder"; + Weiche_VP50 : "MZylinder"; + Weiche_VP51 : "MZylinder"; + Schleuse_Mitte_VP1 : "MZylinder"; // + Schleuse_Mitte_VP2 : "MZylinder"; + Schleuse_Mitte_VP3 : "MZylinder"; + Schleuse_Mitte_VP4 : "MZylinder"; + Schleuse_Mitte_VP5 : "MZylinder"; + Schleuse_Mitte_VP6 : "MZylinder"; + Schleuse_Mitte_VP7 : "MZylinder"; + Schleuse_Mitte_VP8 : "MZylinder"; + Schleuse_Mitte_VP9 : "MZylinder"; + Schleuse_Mitte_VP10 : "MZylinder"; + Schleuse_Mitte_VP11 : "MZylinder"; + Schleuse_Mitte_VP12 : "MZylinder"; + Schleuse_Mitte_VP13 : "MZylinder"; + Schleuse_Mitte_VP14 : "MZylinder"; + Schleuse_Mitte_VP15 : "MZylinder"; + Schleuse_Mitte_VP16 : "MZylinder"; + Schleuse_Mitte_VP17 : "MZylinder"; + Schleuse_Mitte_VP18 : "MZylinder"; + Schleuse_Mitte_VP19 : "MZylinder"; + Schleuse_Mitte_VP20 : "MZylinder"; + Schleuse_Mitte_VP21 : "MZylinder"; + Schleuse_Mitte_VP22 : "MZylinder"; + Schleuse_Mitte_VP23 : "MZylinder"; + Schleuse_Mitte_VP24 : "MZylinder"; + Schleuse_Mitte_VP25 : "MZylinder"; + Schleuse_Mitte_VP26 : "MZylinder"; + Schleuse_Mitte_VP27 : "MZylinder"; + Schleuse_Mitte_VP28 : "MZylinder"; + Schleuse_Mitte_VP29 : "MZylinder"; + Schleuse_Mitte_VP30 : "MZylinder"; + Schleuse_Mitte_VP31 : "MZylinder"; + Schleuse_Mitte_VP32 : "MZylinder"; + Schleuse_Mitte_VP33 : "MZylinder"; + Schleuse_Mitte_VP34 : "MZylinder"; + Schleuse_Mitte_VP35 : "MZylinder"; + Schleuse_Mitte_VP36 : "MZylinder"; + Schleuse_Mitte_VP37 : "MZylinder"; + Schleuse_Mitte_VP38 : "MZylinder"; + Schleuse_Mitte_VP39 : "MZylinder"; + Schleuse_Mitte_VP40 : "MZylinder"; + Schleuse_Mitte_VP41 : "MZylinder"; + Schleuse_Mitte_VP42 : "MZylinder"; + Schleuse_Mitte_VP43 : "MZylinder"; + Schleuse_Mitte_VP44 : "MZylinder"; + Schleuse_Mitte_VP45 : "MZylinder"; + Schleuse_Mitte_VP46 : "MZylinder"; + Schleuse_Mitte_VP47 : "MZylinder"; + Schleuse_Mitte_VP48 : "MZylinder"; + Schleuse_Mitte_VP49 : "MZylinder"; + Schleuse_Mitte_VP50 : "MZylinder"; + Schleuse_Mitte_VP51 : "MZylinder"; + Schleuse_Ausfahrt_VP1 : "MZylinder"; // + Schleuse_Ausfahrt_VP2 : "MZylinder"; + Schleuse_Ausfahrt_VP3 : "MZylinder"; + Schleuse_Ausfahrt_VP4 : "MZylinder"; + Schleuse_Ausfahrt_VP5 : "MZylinder"; + Schleuse_Ausfahrt_VP6 : "MZylinder"; + Schleuse_Ausfahrt_VP7 : "MZylinder"; + Schleuse_Ausfahrt_VP8 : "MZylinder"; + Schleuse_Ausfahrt_VP9 : "MZylinder"; + Schleuse_Ausfahrt_VP10 : "MZylinder"; + Schleuse_Ausfahrt_VP11 : "MZylinder"; + Schleuse_Ausfahrt_VP12 : "MZylinder"; + Schleuse_Ausfahrt_VP13 : "MZylinder"; + Schleuse_Ausfahrt_VP14 : "MZylinder"; + Schleuse_Ausfahrt_VP15 : "MZylinder"; + Schleuse_Ausfahrt_VP16 : "MZylinder"; + Schleuse_Ausfahrt_VP17 : "MZylinder"; + Schleuse_Ausfahrt_VP18 : "MZylinder"; + Schleuse_Ausfahrt_VP19 : "MZylinder"; + Schleuse_Ausfahrt_VP20 : "MZylinder"; + Schleuse_Ausfahrt_VP21 : "MZylinder"; + Schleuse_Ausfahrt_VP22 : "MZylinder"; + Schleuse_Ausfahrt_VP23 : "MZylinder"; + Schleuse_Ausfahrt_VP24 : "MZylinder"; + Schleuse_Ausfahrt_VP25 : "MZylinder"; + Schleuse_Ausfahrt_VP26 : "MZylinder"; + Schleuse_Ausfahrt_VP27 : "MZylinder"; + Schleuse_Ausfahrt_VP28 : "MZylinder"; + Schleuse_Ausfahrt_VP29 : "MZylinder"; + Schleuse_Ausfahrt_VP30 : "MZylinder"; + Schleuse_Ausfahrt_VP31 : "MZylinder"; + Schleuse_Ausfahrt_VP32 : "MZylinder"; + Schleuse_Ausfahrt_VP33 : "MZylinder"; + Schleuse_Ausfahrt_VP34 : "MZylinder"; + Schleuse_Ausfahrt_VP35 : "MZylinder"; + Schleuse_Ausfahrt_VP36 : "MZylinder"; + Schleuse_Ausfahrt_VP37 : "MZylinder"; + Schleuse_Ausfahrt_VP38 : "MZylinder"; + Schleuse_Ausfahrt_VP39 : "MZylinder"; + Schleuse_Ausfahrt_VP40 : "MZylinder"; + Schleuse_Ausfahrt_VP41 : "MZylinder"; + Schleuse_Ausfahrt_VP42 : "MZylinder"; + Schleuse_Ausfahrt_VP43 : "MZylinder"; + Schleuse_Ausfahrt_VP44 : "MZylinder"; + Schleuse_Ausfahrt_VP45 : "MZylinder"; + Schleuse_Ausfahrt_VP46 : "MZylinder"; + Schleuse_Ausfahrt_VP47 : "MZylinder"; + Schleuse_Ausfahrt_VP48 : "MZylinder"; + Schleuse_Ausfahrt_VP49 : "MZylinder"; + Schleuse_Ausfahrt_VP50 : "MZylinder"; + Schleuse_Ausfahrt_VP51 : "MZylinder"; + END_VAR + + VAR_TEMP + Auto : Bool; // Automatik ist aktiv + Hand : Bool; // Hand ist aktiv + ZylAst : Bool; // Zylinder ansteuern + BereichErr_Zusatz_7102 : Bool; // Bereichsstörung -> Antrieb stoppen + BereichErr_Zusatz_7104 : Bool; // Bereichsstörung -> Antrieb stoppen + BereichErr_Zusatz_7102_7104 : Bool; // Bereichsstörung -> Antrieb stoppen + END_VAR + +BEGIN + REGION Übergabe des Bereichstatus System UC071/A01 + #Auto := #DOutbound_Bereich.A01_UH07.Automatik AND NOT (#DOutbound_Bereich.A01_UH07.Handbetrieb); + #BereichErr_Zusatz_7102 := (#DOutbound_Bereich.A01_UC071.BereichErr OR #DOutbound_Bereich.A01_UZ7102.Area_Stop) AND NOT (#SGes.Simulation_ohne_HW_aktiv); + #BereichErr_Zusatz_7104 := (#DOutbound_Bereich.A01_UC071.BereichErr OR #DOutbound_Bereich.A01_UZ7104.Area_Stop) AND NOT (#SGes.Simulation_ohne_HW_aktiv); + #BereichErr_Zusatz_7102_7104 := ((#DOutbound_Bereich.A01_UC071.BereichErr OR #BereichErr_Zusatz_7102) OR #BereichErr_Zusatz_7104) AND NOT (#SGes.Simulation_ohne_HW_aktiv); + IF #DOutbound_Bereich.A01_UC071.BereichErr THEN GOTO Next; END_IF; + END_REGION + + REGION Übergabe Area-Stop 7102 + IF #BereichErr_Zusatz_7102 THEN GOTO Next1; END_IF; + END_REGION + + REGION Schleuse_3121 + #Sorter_3121(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3121); + END_REGION + + REGION Schleuse_3123 + #Sorter_3123(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3123); + END_REGION + + REGION Weiche_3120 + #Weiche_3120(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3120); + END_REGION + + REGION Weiche_VP1 + #Weiche_VP1(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3087); + END_REGION + + REGION Weiche_VP2 + #Weiche_VP2(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3086); + END_REGION + + REGION Weiche_VP3 + #Weiche_VP3(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3085); + END_REGION + + REGION Weiche_VP4 + #Weiche_VP4(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3084); + END_REGION + + REGION Weiche_VP5 + #Weiche_VP5(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3083); + END_REGION + + REGION Weiche_VP6 + #Weiche_VP6(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3082); + END_REGION + + REGION Weiche_VP7 + #Weiche_VP7(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3081); + END_REGION + + REGION Weiche_VP8 + #Weiche_VP8(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3080); + END_REGION + + REGION Weiche_VP9 + #Weiche_VP9(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3077); + END_REGION + + REGION Weiche_VP10 + #Weiche_VP10(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3076); + END_REGION + + REGION Weiche_VP11 + #Weiche_VP11(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3075); + END_REGION + + REGION Weiche_VP12 + #Weiche_VP12(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3074); + END_REGION + + REGION Weiche_VP13 + #Weiche_VP13(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3073); + END_REGION + + REGION Weiche_VP14 + #Weiche_VP14(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3072); + END_REGION + + REGION Weiche_VP15 + #Weiche_VP15(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3071); + END_REGION + + REGION Weiche_VP16 + #Weiche_VP16(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3070); + END_REGION + + REGION Weiche_VP17 + #Weiche_VP17(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3067); + END_REGION + + REGION Weiche_VP18 + #Weiche_VP18(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3066); + END_REGION + + REGION Weiche_VP19 + #Weiche_VP19(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3065); + END_REGION + + REGION Weiche_VP20 + #Weiche_VP20(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3064); + END_REGION + + REGION Weiche_VP21 + #Weiche_VP21(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3063); + END_REGION + + REGION Weiche_VP22 + #Weiche_VP22(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3027); + END_REGION + + REGION Weiche_VP23 + #Weiche_VP23(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3026); + END_REGION + + REGION Weiche_VP24 + #Weiche_VP24(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3025); + END_REGION + + REGION Weiche_VP25 + #Weiche_VP25(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3024); + END_REGION + + REGION Weiche_VP26 + #Weiche_VP26(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3023); + END_REGION + + REGION Weiche_VP27 + #Weiche_VP27(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3022); + END_REGION + + REGION Weiche_VP28 + #Weiche_VP28(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3021); + END_REGION + + REGION Weiche_VP29 + #Weiche_VP29(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3020); + END_REGION + + REGION Weiche_VP30 + #Weiche_VP30(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3017); + END_REGION + + REGION Weiche_VP31 + #Weiche_VP31(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3016); + END_REGION + + REGION Weiche_VP32 + #Weiche_VP32(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3015); + END_REGION + + REGION Weiche_VP33 + #Weiche_VP33(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3014); + END_REGION + + REGION Weiche_VP34 + #Weiche_VP34(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3013); + END_REGION + + REGION Weiche_VP35 + #Weiche_VP35(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3012); + END_REGION + + REGION Weiche_VP36 + #Weiche_VP36(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3011); + END_REGION + + REGION Weiche_VP37 + #Weiche_VP37(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3010); + END_REGION + + REGION Weiche_VP38 + #Weiche_VP38(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3007); + END_REGION + + REGION Weiche_VP39 + #Weiche_VP39(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3006); + END_REGION + + REGION Weiche_VP40 + #Weiche_VP40(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3005); + END_REGION + + REGION Weiche_VP41 + #Weiche_VP41(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3435); + END_REGION + + REGION Weiche_VP42 + #Weiche_VP42(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3434); + END_REGION + + REGION Weiche_VP43 + #Weiche_VP43(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3433); + END_REGION + + REGION Weiche_VP44 + #Weiche_VP44(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3432); + END_REGION + + REGION Weiche_VP45 + #Weiche_VP45(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3431); + END_REGION + + REGION Weiche_VP46 + #Weiche_VP46(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3430); + END_REGION + + REGION Weiche_VP47 + #Weiche_VP47(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3427); + END_REGION + + REGION Weiche_VP48 + #Weiche_VP48(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3426); + END_REGION + + REGION Weiche_VP49 + #Weiche_VP49(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3425); + END_REGION + + REGION Weiche_VP50 + #Weiche_VP50(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3424); + END_REGION + + REGION Weiche_VP51 + #Weiche_VP51(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := ); // "MB3423" + END_REGION + + REGION Übergabe Area-Stop 7102_7104 + IF #BereichErr_Zusatz_7102_7104 THEN GOTO Next2; END_IF; + END_REGION + + REGION Schleuse_Mitte_VP1 + #Schleuse_Mitte_VP1(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3114); + END_REGION + + REGION Schleuse_Mitte_VP2 + #Schleuse_Mitte_VP2(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3113); + END_REGION + + REGION Schleuse_Mitte_VP3 + #Schleuse_Mitte_VP3(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3112); + END_REGION + + REGION Schleuse_Mitte_VP4 + #Schleuse_Mitte_VP4(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3111); + END_REGION + + REGION Schleuse_Mitte_VP5 + #Schleuse_Mitte_VP5(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3110); + END_REGION + + REGION Schleuse_Mitte_VP6 + #Schleuse_Mitte_VP6(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3107); + END_REGION + + REGION Schleuse_Mitte_VP7 + #Schleuse_Mitte_VP7(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3106); + END_REGION + + REGION Schleuse_Mitte_VP8 + #Schleuse_Mitte_VP8(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3105); + END_REGION + + REGION Schleuse_Mitte_VP9 + #Schleuse_Mitte_VP9(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3104); + END_REGION + + REGION Schleuse_Mitte_VP10 + #Schleuse_Mitte_VP10(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3103); + END_REGION + + REGION Schleuse_Mitte_VP11 + #Schleuse_Mitte_VP11(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3102); + END_REGION + + REGION Schleuse_Mitte_VP12 + #Schleuse_Mitte_VP12(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3101); + END_REGION + + REGION Schleuse_Mitte_VP13 + #Schleuse_Mitte_VP13(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3100); + END_REGION + + REGION Schleuse_Mitte_VP14 + #Schleuse_Mitte_VP14(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3097); + END_REGION + + REGION Schleuse_Mitte_VP15 + #Schleuse_Mitte_VP15(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3096); + END_REGION + + REGION Schleuse_Mitte_VP16 + #Schleuse_Mitte_VP16(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3095); + END_REGION + + REGION Schleuse_Mitte_VP17 + #Schleuse_Mitte_VP17(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3094); + END_REGION + + REGION Schleuse_Mitte_VP18 + #Schleuse_Mitte_VP18(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3093); + END_REGION + + REGION Schleuse_Mitte_VP19 + #Schleuse_Mitte_VP19(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3092); + END_REGION + + REGION Schleuse_Mitte_VP20 + #Schleuse_Mitte_VP20(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3091); + END_REGION + + REGION Schleuse_Mitte_VP21 + #Schleuse_Mitte_VP21(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3090); + END_REGION + + REGION Schleuse_Mitte_VP22 + #Schleuse_Mitte_VP22(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3052); + END_REGION + + REGION Schleuse_Mitte_VP23 + #Schleuse_Mitte_VP23(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3051); + END_REGION + + REGION Schleuse_Mitte_VP24 + #Schleuse_Mitte_VP24(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3050); + END_REGION + + REGION Schleuse_Mitte_VP25 + #Schleuse_Mitte_VP25(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3047); + END_REGION + + REGION Schleuse_Mitte_VP26 + #Schleuse_Mitte_VP26(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3046); + END_REGION + + REGION Schleuse_Mitte_VP27 + #Schleuse_Mitte_VP27(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3045); + END_REGION + + REGION Schleuse_Mitte_VP28 + #Schleuse_Mitte_VP28(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3044); + END_REGION + + REGION Schleuse_Mitte_VP29 + #Schleuse_Mitte_VP29(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3043); + END_REGION + + REGION Schleuse_Mitte_VP30 + #Schleuse_Mitte_VP30(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3042); + END_REGION + + REGION Schleuse_Mitte_VP31 + #Schleuse_Mitte_VP31(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3041); + END_REGION + + REGION Schleuse_Mitte_VP32 + #Schleuse_Mitte_VP32(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3040); + END_REGION + + REGION Schleuse_Mitte_VP33 + #Schleuse_Mitte_VP33(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3037); + END_REGION + + REGION Schleuse_Mitte_VP34 + #Schleuse_Mitte_VP34(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3036); + END_REGION + + REGION Schleuse_Mitte_VP35 + #Schleuse_Mitte_VP35(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3035); + END_REGION + + REGION Schleuse_Mitte_VP36 + #Schleuse_Mitte_VP36(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3034); + END_REGION + + REGION Schleuse_Mitte_VP37 + #Schleuse_Mitte_VP37(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3033); + END_REGION + + REGION Schleuse_Mitte_VP38 + #Schleuse_Mitte_VP38(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3032); + END_REGION + + REGION Schleuse_Mitte_VP39 + #Schleuse_Mitte_VP39(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3031); + END_REGION + + REGION Schleuse_Mitte_VP40 + #Schleuse_Mitte_VP40(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3030); + END_REGION + + REGION Schleuse_Mitte_VP41 + #Schleuse_Mitte_VP41(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3462); + END_REGION + + REGION Schleuse_Mitte_VP42 + #Schleuse_Mitte_VP42(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3461); + END_REGION + + REGION Schleuse_Mitte_VP43 + #Schleuse_Mitte_VP43(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3460); + END_REGION + + REGION Schleuse_Mitte_VP44 + #Schleuse_Mitte_VP44(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3457); + END_REGION + + REGION Schleuse_Mitte_VP45 + #Schleuse_Mitte_VP45(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3456); + END_REGION + + REGION Schleuse_Mitte_VP46 + #Schleuse_Mitte_VP46(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3455); + END_REGION + + REGION Schleuse_Mitte_VP47 + #Schleuse_Mitte_VP47(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3454); + END_REGION + + REGION Schleuse_Mitte_VP48 + #Schleuse_Mitte_VP48(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3453); + END_REGION + + REGION Schleuse_Mitte_VP49 + #Schleuse_Mitte_VP49(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3452); + END_REGION + + REGION Schleuse_Mitte_VP50 + #Schleuse_Mitte_VP50(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3451); + END_REGION + + REGION Schleuse_Mitte_VP51 + #Schleuse_Mitte_VP51(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3450); + END_REGION + + REGION Übergabe Area-Stop 7104 + IF #BereichErr_Zusatz_7104 THEN GOTO Next; END_IF; + END_REGION + + REGION Schleuse_Ausfahrt_VP1 + #Schleuse_Ausfahrt_VP1(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3273); + END_REGION + + REGION Schleuse_Ausfahrt_VP2 + #Schleuse_Ausfahrt_VP2(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3272); + END_REGION + + REGION Schleuse_Ausfahrt_VP3 + #Schleuse_Ausfahrt_VP3(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3271); + END_REGION + + REGION Schleuse_Ausfahrt_VP4 + #Schleuse_Ausfahrt_VP4(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3270); + END_REGION + + REGION Schleuse_Ausfahrt_VP5 + #Schleuse_Ausfahrt_VP5(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3267); + END_REGION + + REGION Schleuse_Ausfahrt_VP6 + #Schleuse_Ausfahrt_VP6(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3266); + END_REGION + + REGION Schleuse_Ausfahrt_VP7 + #Schleuse_Ausfahrt_VP7(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3265); + END_REGION + + REGION Schleuse_Ausfahrt_VP8 + #Schleuse_Ausfahrt_VP8(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3264); + END_REGION + + REGION Schleuse_Ausfahrt_VP9 + #Schleuse_Ausfahrt_VP9(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3263); + END_REGION + + REGION Schleuse_Ausfahrt_VP10 + #Schleuse_Ausfahrt_VP10(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3262); + END_REGION + + REGION Schleuse_Ausfahrt_VP11 + #Schleuse_Ausfahrt_VP11(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3261); + END_REGION + + REGION Schleuse_Ausfahrt_VP12 + #Schleuse_Ausfahrt_VP12(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3260); + END_REGION + + REGION Schleuse_Ausfahrt_VP13 + #Schleuse_Ausfahrt_VP13(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3257); + END_REGION + + REGION Schleuse_Ausfahrt_VP14 + #Schleuse_Ausfahrt_VP14(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3256); + END_REGION + + REGION Schleuse_Ausfahrt_VP15 + #Schleuse_Ausfahrt_VP15(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3255); + END_REGION + + REGION Schleuse_Ausfahrt_VP16 + #Schleuse_Ausfahrt_VP16(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3254); + END_REGION + + REGION Schleuse_Ausfahrt_VP17 + #Schleuse_Ausfahrt_VP17(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3253); + END_REGION + + REGION Schleuse_Ausfahrt_VP18 + #Schleuse_Ausfahrt_VP18(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3252); + END_REGION + + REGION Schleuse_Ausfahrt_VP19 + #Schleuse_Ausfahrt_VP19(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3215); + END_REGION + + REGION Schleuse_Ausfahrt_VP20 + #Schleuse_Ausfahrt_VP20(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3214); + END_REGION + + REGION Schleuse_Ausfahrt_VP21 + #Schleuse_Ausfahrt_VP21(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3213); + END_REGION + + REGION Schleuse_Ausfahrt_VP22 + #Schleuse_Ausfahrt_VP22(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3212); + END_REGION + + REGION Schleuse_Ausfahrt_VP23 + #Schleuse_Ausfahrt_VP23(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3211); + END_REGION + + REGION Schleuse_Ausfahrt_VP24 + #Schleuse_Ausfahrt_VP24(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3210); + END_REGION + + REGION Schleuse_Ausfahrt_VP25 + #Schleuse_Ausfahrt_VP25(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3207); + END_REGION + + REGION Schleuse_Ausfahrt_VP26 + #Schleuse_Ausfahrt_VP26(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3206); + END_REGION + + REGION Schleuse_Ausfahrt_VP27 + #Schleuse_Ausfahrt_VP27(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3205); + END_REGION + + REGION Schleuse_Ausfahrt_VP28 + #Schleuse_Ausfahrt_VP28(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3204); + END_REGION + + REGION Schleuse_Ausfahrt_VP29 + #Schleuse_Ausfahrt_VP29(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3203); + END_REGION + + REGION Schleuse_Ausfahrt_VP30 + #Schleuse_Ausfahrt_VP30(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3202); + END_REGION + + REGION Schleuse_Ausfahrt_VP31 + #Schleuse_Ausfahrt_VP31(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3201); + END_REGION + + REGION Schleuse_Ausfahrt_VP32 + #Schleuse_Ausfahrt_VP32(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3200); + END_REGION + + REGION Schleuse_Ausfahrt_VP33 + #Schleuse_Ausfahrt_VP33(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3197); + END_REGION + + REGION Schleuse_Ausfahrt_VP34 + #Schleuse_Ausfahrt_VP34(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3196); + END_REGION + + REGION Schleuse_Ausfahrt_VP35 + #Schleuse_Ausfahrt_VP35(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3195); + END_REGION + + REGION Schleuse_Ausfahrt_VP36 + #Schleuse_Ausfahrt_VP36(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3194); + END_REGION + + REGION Schleuse_Ausfahrt_VP37 + #Schleuse_Ausfahrt_VP37(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3193); + END_REGION + + REGION Schleuse_Ausfahrt_VP38 + #Schleuse_Ausfahrt_VP38(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3192); + END_REGION + + REGION Schleuse_Ausfahrt_VP39 + #Schleuse_Ausfahrt_VP39(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3191); + END_REGION + + REGION Schleuse_Ausfahrt_VP40 + #Schleuse_Ausfahrt_VP40(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3190); + END_REGION + + REGION Schleuse_Ausfahrt_VP41 + #Schleuse_Ausfahrt_VP41(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3494); + END_REGION + + REGION Schleuse_Ausfahrt_VP42 + #Schleuse_Ausfahrt_VP42(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3493); + END_REGION + + REGION Schleuse_Ausfahrt_VP43 + #Schleuse_Ausfahrt_VP43(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3492); + END_REGION + + REGION Schleuse_Ausfahrt_VP44 + #Schleuse_Ausfahrt_VP44(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3491); + END_REGION + + REGION Schleuse_Ausfahrt_VP45 + #Schleuse_Ausfahrt_VP45(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3490); + END_REGION + + REGION Schleuse_Ausfahrt_VP46 + #Schleuse_Ausfahrt_VP46(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3487); + END_REGION + + REGION Schleuse_Ausfahrt_VP47 + #Schleuse_Ausfahrt_VP47(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3486); + END_REGION + + REGION Schleuse_Ausfahrt_VP48 + #Schleuse_Ausfahrt_VP48(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3485); + END_REGION + + REGION Schleuse_Ausfahrt_VP49 + #Schleuse_Ausfahrt_VP49(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3484); + END_REGION + + REGION Schleuse_Ausfahrt_VP50 + #Schleuse_Ausfahrt_VP50(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3483); + END_REGION + + REGION Schleuse_Ausfahrt_VP51 + #Schleuse_Ausfahrt_VP51(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3482); + END_REGION + + REGION Schleuse_3244 + #Schleuse_3244(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3244); + END_REGION + + REGION Weiche_3245 + #Weiche_3245(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3245); + END_REGION + + REGION Ende + RETURN; + END_REGION + +END_FUNCTION_BLOCK diff --git a/SCL-Export/=A01+UH07-KF00/VPtoEP_Sensoren.scl b/SCL-Export/=A01+UH07-KF00/VPtoEP_Sensoren.scl new file mode 100644 index 0000000..c7aadd2 --- /dev/null +++ b/SCL-Export/=A01+UH07-KF00/VPtoEP_Sensoren.scl @@ -0,0 +1,128 @@ +FUNCTION_BLOCK "VPtoEP_Sensoren" +{ 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 + BG4443 : Word; // war "BG4443" + MA0321 : Bool; // war "MA0321" + END_VAR + + VAR_IN_OUT + BG3246 : Word; // war "BG3246" + BG3251 : Word; // war "BG3251" + BG3274 : Word; // war "BG3274" + BG3362 : Word; // war "BG3362" + BG3364 : Word; // war "BG3364" + BG4440 : Word; // war "BG4440" + BG4442 : Word; // war "BG4442" + BG4444 : Word; // war "BG4444" + BG4445 : Word; // war "BG4445" + BG4447 : Word; // war "BG4447" + BG4451 : Word; // war "BG4451" + BG4453 : Word; // war "BG4453" + BG4500 : Word; // war "BG4500" + BG4502 : Word; // war "BG4502" + BG4530 : Word; // war "BG4530" + MB4443 : Byte; // war "MB4443" + END_VAR + + VAR + Stau_BG3246 : "MSensoren"; // Stau am Sensor Einfahrt MA0151 + Stau_BG3251 : "MSensoren"; // Stau am Sensor Mitte MA0151 + Stau_BG3274 : "MSensoren"; // Stau am Sensor Einfahrt MA0060 + Stau_BG3362 : "MSensoren"; // Stau am Sensor Einfahrt MA0061 + Stau_BG3364 : "MSensoren"; // Stau am Sensor Mitte MA0061 + Stau_BG4440 : "MSensoren"; // Stau am Sensor nach BST1 + Stau_BG4442 : "MSensoren"; // Stau am Sensor Einfahrt MA321 + Sack_BG4444 : "MSensoren"; // Sack erkannt + Stau_BG4445 : "MSensoren"; // Stau am Sensor Mitte MA321 + Stau_BG4447 : "MSensoren"; // Stau am Sensor hinter Weiche4445 + Stau_BG4451 : "MSensoren"; // Stau am Sensor Ausfahrt Schleuse4450 + Stau_BG4453 : "MSensoren"; // Stau am Sensor Einfahrt MA0323 + Stau_BG4500 : "MSensoren"; // Stau am Sensor Einfahrt MA0324 + Stau_BG4530 : "MSensoren"; // Stau am Sensor Mitte MA0324 + Stau_BG4502 : "MSensoren"; // Stau am Sensor Einfahrt MA0325 + END_VAR + + VAR_TEMP + T_Ein : Int; // Vorgabe Einschaltverzögerung + T_Aus : Int; // Zwischenspeicher Ausschaltverzögerung + F1 : Bool; // Geschwindigkeit 1 aktiviert + F2 : Bool; // Geschwindigkeit 2 aktiviert + F3 : Bool; // Geschwindigkeit 3 aktiviert + ESensor : Bool; // Sensoren + Antrieb : Bool; + VReal : Real; // GeschwindigkeitinReal + Zeit : Int; // Zeit für Ausschaltverzögerung LT1100 + Aktiv : Bool; // Zeit aktivieren + END_VAR + +BEGIN + REGION Stau am Sensor Einfahrt MA0151 + #Stau_BG3246(ESensor := #BG3246, T_Ein := 80, T_Aus := 11, tein_aktiv := TRUE, taus_aktiv := TRUE); // Sensoren entprellen + END_REGION + + REGION Stau am Sensor Mitte MA0151 + #Stau_BG3251(ESensor := #BG3251, T_Ein := 80, T_Aus := 11, tein_aktiv := TRUE, taus_aktiv := TRUE); // Sensoren entprellen + END_REGION + + REGION Stau am Sensor Einfahrt MA0060 + #Stau_BG3274(ESensor := #BG3274, T_Ein := 1, T_Aus := 11, tein_aktiv := TRUE, taus_aktiv := TRUE); // Sensoren entprellen + END_REGION + + REGION Stau am Sensor Einfahrt MA0061 + #Stau_BG3362(ESensor := #BG3362, T_Ein := 1, T_Aus := 11, tein_aktiv := TRUE, taus_aktiv := TRUE); // Sensoren entprellen + END_REGION + + REGION Stau am Sensor Mitte MA0061 + #Stau_BG3364(ESensor := #BG3364, T_Ein := 80, T_Aus := 21, tein_aktiv := TRUE, taus_aktiv := TRUE); // Sensoren entprellen + END_REGION + + REGION Stau am Sensor hinter BST1 + #Stau_BG4440(ESensor := #BG4440, T_Ein := 1, T_Aus := 30, tein_aktiv := TRUE, taus_aktiv := TRUE); // Sensoren entprellen + END_REGION + + REGION Stau am Sensor Einfahrt MA0321 + #Stau_BG4442(ESensor := #BG4442, T_Ein := 80, T_Aus := 11, tein_aktiv := TRUE, taus_aktiv := TRUE); // Sensoren entprellen + END_REGION + + REGION Sack in Schleuse 4221 erkannt (Vor ByPass zu VP) + #Aktiv := NOT (#MB4443) AND (#MA0321 OR #BG4443); + #Sack_BG4444(ESensor := #BG4444, T_Ein := 1, T_Aus := 11, tein_aktiv := #Aktiv, taus_aktiv := #MB4443); + END_REGION + + REGION Stau am Sensor Mitte MA0321 + #Stau_BG4445(ESensor := #BG4445, T_Ein := 1, T_Aus := 11, tein_aktiv := TRUE, taus_aktiv := TRUE); // Sensoren entprellen + END_REGION + + REGION Stau am Sensor hinter Weiche4445 + #Stau_BG4447(ESensor := #BG4447, T_Ein := 80, T_Aus := 11, tein_aktiv := TRUE, taus_aktiv := TRUE); // Sensoren entprellen + END_REGION + + REGION Stau am Sensor Ausfahrt Schleuse4450 + #Stau_BG4451(ESensor := #BG4451, T_Ein := 1, T_Aus := 11, tein_aktiv := TRUE, taus_aktiv := TRUE); // Sensoren entprellen + END_REGION + + REGION Stau am Sensor Einfahrt MA0323 + #Stau_BG4453(ESensor := #BG4453, T_Ein := 1, T_Aus := 11, tein_aktiv := TRUE, taus_aktiv := TRUE); // Sensoren entprellen + END_REGION + + REGION Stau am Sensor Einfahrt MA0324 + #Stau_BG4500(ESensor := #BG4500, T_Ein := 1, T_Aus := 11, tein_aktiv := TRUE, taus_aktiv := TRUE); // Sensoren entprellen + END_REGION + + REGION Stau am Sensor Mitte MA0324 + #Stau_BG4530(ESensor := #BG4530, T_Ein := 80, T_Aus := 11, tein_aktiv := TRUE, taus_aktiv := TRUE); // Sensoren entprellen + END_REGION + + REGION Stau am Sensor Einfahrt MA0325 + #Stau_BG4502(ESensor := #BG4502, T_Ein := 80, T_Aus := 11, tein_aktiv := TRUE, taus_aktiv := TRUE); // Sensoren entprellen + END_REGION + + REGION Ende + RETURN; + END_REGION + +END_FUNCTION_BLOCK diff --git a/SCL-Export/=A01+UH07-KF00/VPtoEP_Zylinder.scl b/SCL-Export/=A01+UH07-KF00/VPtoEP_Zylinder.scl new file mode 100644 index 0000000..073e3fc --- /dev/null +++ b/SCL-Export/=A01+UH07-KF00/VPtoEP_Zylinder.scl @@ -0,0 +1,91 @@ +FUNCTION_BLOCK "VPtoEP_Zylinder" +{ 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 + DOutbound_Bereich : Word; // war "DOutbound_Bereich" + SGes : Word; // war "SGes" + END_VAR + + VAR_OUTPUT + MB4457 : Byte; // war "MB4457" + END_VAR + + VAR_IN_OUT + MB3247 : Byte; // war "MB3247" + MB3275 : Byte; // war "MB3275" + MB3363 : Byte; // war "MB3363" + MB3366 : Byte; // war "MB3366" + MB4443 : Byte; // war "MB4443" + MB4445 : Byte; // war "MB4445" + MB4450 : Byte; // war "MB4450" + END_VAR + + VAR + Schleuse_3247 : "MZylinder"; // + Schleuse_3275 : "MZylinder"; // + Schleuse_3363 : "MZylinder"; + Schleuse_3366 : "MZylinder"; + Schleuse_4443 : "MZylinder"; + Weiche_4445 : "MZylinder"; // + Schleuse_4450 : "MZylinder"; // + END_VAR + + VAR_TEMP + Auto : Bool; // Automatik ist aktiv + Hand : Bool; // Hand ist aktiv + ZylAst : Bool; // Zylinder ansteuern + END_VAR + +BEGIN + REGION Übergabe des Bereichstatus System UC071/A01 + #Auto := #DOutbound_Bereich.A01_UH07.Automatik AND NOT (#DOutbound_Bereich.A01_UH07.Handbetrieb); + IF (#DOutbound_Bereich.A01_UC071.BereichErr OR #DOutbound_Bereich.A01_UZ7104.Area_Stop) AND NOT (#SGes.Simulation_ohne_HW_aktiv) THEN GOTO Next; END_IF; + END_REGION + + REGION Schleuse_3247 + #Schleuse_3247(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3247); + END_REGION + + REGION Schleuse_3275 + #Schleuse_3275(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3275); + END_REGION + + REGION Übergabe des Bereichstatus System UH07/A01 + #Auto := #DOutbound_Bereich.A01_UH07.Automatik AND NOT (#DOutbound_Bereich.A01_UH07.Handbetrieb); + IF #DOutbound_Bereich.A01_UH07.BereichErr AND NOT (#SGes.Simulation_ohne_HW_aktiv) THEN GOTO Next1; END_IF; + END_REGION + + REGION Schleuse_3363 + #Schleuse_3363(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3363); + END_REGION + + REGION Schleuse_3366 + #Schleuse_3366(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB3366); + END_REGION + + REGION Übergabe des Bereichstatus System UC074/A01 + #Auto := #DOutbound_Bereich.A01_UH07.Automatik AND NOT (#DOutbound_Bereich.A01_UH07.Handbetrieb); + IF #DOutbound_Bereich.A01_UC074.BereichErr AND NOT (#SGes.Simulation_ohne_HW_aktiv) THEN GOTO Next2; END_IF; + END_REGION + + REGION Schleuse_4443 + #Schleuse_4443(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB4443); + END_REGION + + REGION Weiche_4445 + #Weiche_4445(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB4445); + #MB4457 := #MB4445; + END_REGION + + REGION Schleuse_4450 + #Schleuse_4450(Automatik := #Auto, Handbetrieb := FALSE, T_Ast := 0, T_Gst := 5, ZylAst := #MB4450); + END_REGION + + REGION Ende + RETURN; + END_REGION + +END_FUNCTION_BLOCK diff --git a/SCL-Export/=A01+UH07-KF00/VollPufferStrecken_A.scl b/SCL-Export/=A01+UH07-KF00/VollPufferStrecken_A.scl new file mode 100644 index 0000000..51e3a2c --- /dev/null +++ b/SCL-Export/=A01+UH07-KF00/VollPufferStrecken_A.scl @@ -0,0 +1,615 @@ +FUNCTION_BLOCK "VollPufferStrecken_A" +{ 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 + AB326 : Byte; // war "AB326" + MB3244 : Byte; // war "MB3244" + END_VAR + + VAR_OUTPUT + DVollPufferStrecken_A : Word; // war "DVollPufferStrecken_A" + END_VAR + + VAR_IN_OUT + BG3024 : Word; // war "BG3024" + BG3025 : Word; // war "BG3025" + BG3026 : Word; // war "BG3026" + BG3027 : Word; // war "BG3027" + BG3047 : Word; // war "BG3047" + BG3050 : Word; // war "BG3050" + BG3051 : Word; // war "BG3051" + BG3052 : Word; // war "BG3052" + BG3063 : Word; // war "BG3063" + BG3064 : Word; // war "BG3064" + BG3065 : Word; // war "BG3065" + BG3066 : Word; // war "BG3066" + BG3067 : Word; // war "BG3067" + BG3070 : Word; // war "BG3070" + BG3071 : Word; // war "BG3071" + BG3072 : Word; // war "BG3072" + BG3073 : Word; // war "BG3073" + BG3074 : Word; // war "BG3074" + BG3075 : Word; // war "BG3075" + BG3076 : Word; // war "BG3076" + BG3077 : Word; // war "BG3077" + BG3080 : Word; // war "BG3080" + BG3081 : Word; // war "BG3081" + BG3082 : Word; // war "BG3082" + BG3083 : Word; // war "BG3083" + BG3084 : Word; // war "BG3084" + BG3085 : Word; // war "BG3085" + BG3086 : Word; // war "BG3086" + BG3087 : Word; // war "BG3087" + BG3090 : Word; // war "BG3090" + BG3091 : Word; // war "BG3091" + BG3092 : Word; // war "BG3092" + BG3093 : Word; // war "BG3093" + BG3094 : Word; // war "BG3094" + BG3095 : Word; // war "BG3095" + BG3096 : Word; // war "BG3096" + BG3097 : Word; // war "BG3097" + BG3100 : Word; // war "BG3100" + BG3101 : Word; // war "BG3101" + BG3102 : Word; // war "BG3102" + BG3103 : Word; // war "BG3103" + BG3104 : Word; // war "BG3104" + BG3105 : Word; // war "BG3105" + BG3106 : Word; // war "BG3106" + BG3107 : Word; // war "BG3107" + BG3110 : Word; // war "BG3110" + BG3111 : Word; // war "BG3111" + BG3112 : Word; // war "BG3112" + BG3113 : Word; // war "BG3113" + BG3114 : Word; // war "BG3114" + BG3183 : Word; // war "BG3183" + BG3184 : Word; // war "BG3184" + BG3207 : Word; // war "BG3207" + BG3210 : Word; // war "BG3210" + BG3211 : Word; // war "BG3211" + BG3212 : Word; // war "BG3212" + BG3213 : Word; // war "BG3213" + BG3214 : Word; // war "BG3214" + BG3215 : Word; // war "BG3215" + BG3240 : Word; // war "BG3240" + BG3241 : Word; // war "BG3241" + BG3242 : Word; // war "BG3242" + BG3252 : Word; // war "BG3252" + BG3253 : Word; // war "BG3253" + BG3254 : Word; // war "BG3254" + BG3255 : Word; // war "BG3255" + BG3256 : Word; // war "BG3256" + BG3257 : Word; // war "BG3257" + BG3260 : Word; // war "BG3260" + BG3261 : Word; // war "BG3261" + BG3262 : Word; // war "BG3262" + BG3263 : Word; // war "BG3263" + BG3264 : Word; // war "BG3264" + BG3265 : Word; // war "BG3265" + BG3266 : Word; // war "BG3266" + BG3267 : Word; // war "BG3267" + BG3270 : Word; // war "BG3270" + BG3271 : Word; // war "BG3271" + BG3272 : Word; // war "BG3272" + BG3273 : Word; // war "BG3273" + DLVollPuffer_ShopGroup_abrufen : Word; // war "DLVollPuffer_ShopGroup_abrufen" + DLVollPuffer_ShopGroup_einfahren : Word; // war "DLVollPuffer_ShopGroup_einfahren" + DLVollPuffer_leer : Word; // war "DLVollPuffer_leer" + DOutbound_Bereich : Word; // war "DOutbound_Bereich" + DVP_Antriebe : Word; // war "DVP_Antriebe" + DVP_Auslagern : Word; // war "DVP_Auslagern" + DVP_Sensoren : Word; // war "DVP_Sensoren" + DVP_Zylinder : Word; // war "DVP_Zylinder" + DVollPufferStrecken_B : Word; // war "DVollPufferStrecken_B" + MA0150 : Bool; // war "MA0150" + MB199 : Byte; // war "MB199" + MB3047 : Byte; // war "MB3047" + MB3050 : Byte; // war "MB3050" + MB3051 : Byte; // war "MB3051" + MB3052 : Byte; // war "MB3052" + MB3090 : Byte; // war "MB3090" + MB3091 : Byte; // war "MB3091" + MB3092 : Byte; // war "MB3092" + MB3093 : Byte; // war "MB3093" + MB3094 : Byte; // war "MB3094" + MB3095 : Byte; // war "MB3095" + MB3096 : Byte; // war "MB3096" + MB3097 : Byte; // war "MB3097" + MB3100 : Byte; // war "MB3100" + MB3101 : Byte; // war "MB3101" + MB3102 : Byte; // war "MB3102" + MB3103 : Byte; // war "MB3103" + MB3104 : Byte; // war "MB3104" + MB3105 : Byte; // war "MB3105" + MB3106 : Byte; // war "MB3106" + MB3107 : Byte; // war "MB3107" + MB3110 : Byte; // war "MB3110" + MB3111 : Byte; // war "MB3111" + MB3112 : Byte; // war "MB3112" + MB3113 : Byte; // war "MB3113" + MB3114 : Byte; // war "MB3114" + MB3207 : Byte; // war "MB3207" + MB3210 : Byte; // war "MB3210" + MB3211 : Byte; // war "MB3211" + MB3212 : Byte; // war "MB3212" + MB3213 : Byte; // war "MB3213" + MB3214 : Byte; // war "MB3214" + MB3215 : Byte; // war "MB3215" + MB3252 : Byte; // war "MB3252" + MB3253 : Byte; // war "MB3253" + MB3254 : Byte; // war "MB3254" + MB3255 : Byte; // war "MB3255" + MB3256 : Byte; // war "MB3256" + MB3257 : Byte; // war "MB3257" + MB3260 : Byte; // war "MB3260" + MB3261 : Byte; // war "MB3261" + MB3262 : Byte; // war "MB3262" + MB3263 : Byte; // war "MB3263" + MB3264 : Byte; // war "MB3264" + MB3265 : Byte; // war "MB3265" + MB3266 : Byte; // war "MB3266" + MB3267 : Byte; // war "MB3267" + MB3270 : Byte; // war "MB3270" + MB3271 : Byte; // war "MB3271" + MB3272 : Byte; // war "MB3272" + MB3273 : Byte; // war "MB3273" + END_VAR + + VAR + VollPuffer_01 : "MHMVollpuffer"; + VollPuffer_02 : "MHMVollpuffer"; + VollPuffer_03 : "MHMVollpuffer"; + VollPuffer_04 : "MHMVollpuffer"; + VollPuffer_05 : "MHMVollpuffer"; + VollPuffer_06 : "MHMVollpuffer"; + VollPuffer_07 : "MHMVollpuffer"; + VollPuffer_08 : "MHMVollpuffer"; + VollPuffer_09 : "MHMVollpuffer"; + VollPuffer_10 : "MHMVollpuffer"; + VollPuffer_11 : "MHMVollpuffer"; + VollPuffer_12 : "MHMVollpuffer"; + VollPuffer_13 : "MHMVollpuffer"; + VollPuffer_14 : "MHMVollpuffer"; + VollPuffer_15 : "MHMVollpuffer"; + VollPuffer_16 : "MHMVollpuffer"; + VollPuffer_17 : "MHMVollpuffer"; + VollPuffer_18 : "MHMVollpuffer"; + VollPuffer_19 : "MHMVollpuffer"; + VollPuffer_20 : "MHMVollpuffer"; + VollPuffer_21 : "MHMVollpuffer"; + VollPuffer_22 : "MHMVollpuffer"; + VollPuffer_23 : "MHMVollpuffer"; + VollPuffer_24 : "MHMVollpuffer"; + VollPuffer_25 : "MHMVollpuffer"; + Simulation : Struct + Gefahren_1 : Bool; + Gefahren_2 : Bool; + Gefahren_3 : Bool; + Gefahren_4 : Bool; + Gefahren_5 : Bool; + Gefahren_6 : Bool; + Gefahren_7 : Bool; + Gefahren_8 : Bool; + Gefahren_9 : Bool; + Gefahren_10 : Bool; + Gefahren_11 : Bool; + Gefahren_12 : Bool; + Gefahren_13 : Bool; + Gefahren_14 : Bool; + Gefahren_15 : Bool; + Gefahren_16 : Bool; + Gefahren_17 : Bool; + Gefahren_18 : Bool; + Gefahren_19 : Bool; + Gefahren_20 : Bool; + Gefahren_21 : Bool; + Gefahren_22 : Bool; + Gefahren_23 : Bool; + Gefahren_24 : Bool; + Gefahren_25 : Bool; + Gefahren_26 : Bool; + Gefahren_27 : Bool; + Gefahren_28 : Bool; + Gefahren_29 : Bool; + Gefahren_30 : Bool; + Gefahren_31 : Bool; + Gefahren_32 : Bool; + Gefahren_33 : Bool; + Gefahren_34 : Bool; + Gefahren_35 : Bool; + Gefahren_36 : Bool; + Gefahren_37 : Bool; + Gefahren_38 : Bool; + Gefahren_39 : Bool; + Gefahren_40 : Bool; + Gefahren_41 : Bool; + Gefahren_42 : Bool; + Gefahren_43 : Bool; + Gefahren_44 : Bool; + Gefahren_45 : Bool; + Gefahren_46 : Bool; + Gefahren_47 : Bool; + Gefahren_48 : Bool; + Gefahren_49 : Bool; + Gefahren_50 : Bool; + Gefahren_51 : Bool; + END_STRUCT; + Ohne_PC_fahren : Bool; + Ein_Inilauf_aktiv : Bool; + END_VAR + + VAR_TEMP + ErrQuit : Bool; + ErrAnz : Bool; + Antrieb : Bool; + Stau : Bool; + Start_Ok : Bool; + SorterReset : Bool; + Puffer : Int; + Position : Int; + Lager_DB : Int; + Lager_DW : Int; + AR1Zeiger : DWord; // Statt AR1 (ging nur bis DB-Länge <= 8191 Bytes) + AR1Start : DInt; // Startwert mit Offset 0 + END_VAR + +BEGIN + REGION Systemzeug + #VollPuffer_01.Dyn.Sk_OUT.Auto_akt := #DOutbound_Bereich.A01_UH07.AnlageEin; + #VollPuffer_02.Dyn.Sk_OUT.Auto_akt := #DOutbound_Bereich.A01_UH07.AnlageEin; + #VollPuffer_03.Dyn.Sk_OUT.Auto_akt := #DOutbound_Bereich.A01_UH07.AnlageEin; + #VollPuffer_04.Dyn.Sk_OUT.Auto_akt := #DOutbound_Bereich.A01_UH07.AnlageEin; + #VollPuffer_05.Dyn.Sk_OUT.Auto_akt := #DOutbound_Bereich.A01_UH07.AnlageEin; + #VollPuffer_06.Dyn.Sk_OUT.Auto_akt := #DOutbound_Bereich.A01_UH07.AnlageEin; + #VollPuffer_07.Dyn.Sk_OUT.Auto_akt := #DOutbound_Bereich.A01_UH07.AnlageEin; + #VollPuffer_08.Dyn.Sk_OUT.Auto_akt := #DOutbound_Bereich.A01_UH07.AnlageEin; + #VollPuffer_09.Dyn.Sk_OUT.Auto_akt := #DOutbound_Bereich.A01_UH07.AnlageEin; + #VollPuffer_10.Dyn.Sk_OUT.Auto_akt := #DOutbound_Bereich.A01_UH07.AnlageEin; + #VollPuffer_11.Dyn.Sk_OUT.Auto_akt := #DOutbound_Bereich.A01_UH07.AnlageEin; + #VollPuffer_12.Dyn.Sk_OUT.Auto_akt := #DOutbound_Bereich.A01_UH07.AnlageEin; + #VollPuffer_13.Dyn.Sk_OUT.Auto_akt := #DOutbound_Bereich.A01_UH07.AnlageEin; + #VollPuffer_14.Dyn.Sk_OUT.Auto_akt := #DOutbound_Bereich.A01_UH07.AnlageEin; + #VollPuffer_15.Dyn.Sk_OUT.Auto_akt := #DOutbound_Bereich.A01_UH07.AnlageEin; + #VollPuffer_16.Dyn.Sk_OUT.Auto_akt := #DOutbound_Bereich.A01_UH07.AnlageEin; + #VollPuffer_17.Dyn.Sk_OUT.Auto_akt := #DOutbound_Bereich.A01_UH07.AnlageEin; + #VollPuffer_18.Dyn.Sk_OUT.Auto_akt := #DOutbound_Bereich.A01_UH07.AnlageEin; + #VollPuffer_19.Dyn.Sk_OUT.Auto_akt := #DOutbound_Bereich.A01_UH07.AnlageEin; + #VollPuffer_20.Dyn.Sk_OUT.Auto_akt := #DOutbound_Bereich.A01_UH07.AnlageEin; + #VollPuffer_21.Dyn.Sk_OUT.Auto_akt := #DOutbound_Bereich.A01_UH07.AnlageEin; + #VollPuffer_22.Dyn.Sk_OUT.Auto_akt := #DOutbound_Bereich.A01_UH07.AnlageEin; + #VollPuffer_23.Dyn.Sk_OUT.Auto_akt := #DOutbound_Bereich.A01_UH07.AnlageEin; + #VollPuffer_24.Dyn.Sk_OUT.Auto_akt := #DOutbound_Bereich.A01_UH07.AnlageEin; + #VollPuffer_25.Dyn.Sk_OUT.Auto_akt := #DOutbound_Bereich.A01_UH07.AnlageEin; + #VollPuffer_01.Dyn.Sk_OUT.Bereich_ok := NOT (#DOutbound_Bereich.A01_UC071.BereichErr); + #VollPuffer_02.Dyn.Sk_OUT.Bereich_ok := NOT (#DOutbound_Bereich.A01_UC071.BereichErr); + #VollPuffer_03.Dyn.Sk_OUT.Bereich_ok := NOT (#DOutbound_Bereich.A01_UC071.BereichErr); + #VollPuffer_04.Dyn.Sk_OUT.Bereich_ok := NOT (#DOutbound_Bereich.A01_UC071.BereichErr); + #VollPuffer_05.Dyn.Sk_OUT.Bereich_ok := NOT (#DOutbound_Bereich.A01_UC071.BereichErr); + #VollPuffer_06.Dyn.Sk_OUT.Bereich_ok := NOT (#DOutbound_Bereich.A01_UC071.BereichErr); + #VollPuffer_07.Dyn.Sk_OUT.Bereich_ok := NOT (#DOutbound_Bereich.A01_UC071.BereichErr); + #VollPuffer_08.Dyn.Sk_OUT.Bereich_ok := NOT (#DOutbound_Bereich.A01_UC071.BereichErr); + #VollPuffer_09.Dyn.Sk_OUT.Bereich_ok := NOT (#DOutbound_Bereich.A01_UC071.BereichErr); + #VollPuffer_10.Dyn.Sk_OUT.Bereich_ok := NOT (#DOutbound_Bereich.A01_UC071.BereichErr); + #VollPuffer_11.Dyn.Sk_OUT.Bereich_ok := NOT (#DOutbound_Bereich.A01_UC071.BereichErr); + #VollPuffer_12.Dyn.Sk_OUT.Bereich_ok := NOT (#DOutbound_Bereich.A01_UC071.BereichErr); + #VollPuffer_13.Dyn.Sk_OUT.Bereich_ok := NOT (#DOutbound_Bereich.A01_UC071.BereichErr); + #VollPuffer_14.Dyn.Sk_OUT.Bereich_ok := NOT (#DOutbound_Bereich.A01_UC071.BereichErr); + #VollPuffer_15.Dyn.Sk_OUT.Bereich_ok := NOT (#DOutbound_Bereich.A01_UC071.BereichErr); + #VollPuffer_16.Dyn.Sk_OUT.Bereich_ok := NOT (#DOutbound_Bereich.A01_UC071.BereichErr); + #VollPuffer_17.Dyn.Sk_OUT.Bereich_ok := NOT (#DOutbound_Bereich.A01_UC071.BereichErr); + #VollPuffer_18.Dyn.Sk_OUT.Bereich_ok := NOT (#DOutbound_Bereich.A01_UC071.BereichErr); + #VollPuffer_19.Dyn.Sk_OUT.Bereich_ok := NOT (#DOutbound_Bereich.A01_UC071.BereichErr); + #VollPuffer_20.Dyn.Sk_OUT.Bereich_ok := NOT (#DOutbound_Bereich.A01_UC071.BereichErr); + #VollPuffer_21.Dyn.Sk_OUT.Bereich_ok := NOT (#DOutbound_Bereich.A01_UC071.BereichErr); + #VollPuffer_22.Dyn.Sk_OUT.Bereich_ok := NOT (#DOutbound_Bereich.A01_UC071.BereichErr); + #VollPuffer_23.Dyn.Sk_OUT.Bereich_ok := NOT (#DOutbound_Bereich.A01_UC071.BereichErr); + #VollPuffer_24.Dyn.Sk_OUT.Bereich_ok := NOT (#DOutbound_Bereich.A01_UC071.BereichErr); + #VollPuffer_25.Dyn.Sk_OUT.Bereich_ok := NOT (#DOutbound_Bereich.A01_UC071.BereichErr); + IF FALSE THEN #VollPuffer_01.Dyn.Sk_OUT.Bereich_ok := FALSE; END_IF; + END_REGION + + REGION Leer-Puffer-Liste neu erstellen + IF #DLVollPuffer_leer.Reorganisieren THEN #DLVollPuffer_leer.Reorganisieren := FALSE; END_IF; + IF #DLVollPuffer_leer.Reorganisieren THEN + "DatenReset"(SSDB := 100, SSDW := 0, RE_VAL := #MB199); + #DVollPufferStrecken_A.VollPuffer_01.Status2.Eintrag_DL_Leerliste_erfolgt := FALSE; + #DVollPufferStrecken_A.VollPuffer_02.Status2.Eintrag_DL_Leerliste_erfolgt := FALSE; + #DVollPufferStrecken_A.VollPuffer_03.Status2.Eintrag_DL_Leerliste_erfolgt := FALSE; + #DVollPufferStrecken_A.VollPuffer_04.Status2.Eintrag_DL_Leerliste_erfolgt := FALSE; + #DVollPufferStrecken_A.VollPuffer_05.Status2.Eintrag_DL_Leerliste_erfolgt := FALSE; + #DVollPufferStrecken_A.VollPuffer_06.Status2.Eintrag_DL_Leerliste_erfolgt := FALSE; + #DVollPufferStrecken_A.VollPuffer_07.Status2.Eintrag_DL_Leerliste_erfolgt := FALSE; + #DVollPufferStrecken_A.VollPuffer_08.Status2.Eintrag_DL_Leerliste_erfolgt := FALSE; + #DVollPufferStrecken_A.VollPuffer_09.Status2.Eintrag_DL_Leerliste_erfolgt := FALSE; + #DVollPufferStrecken_A.VollPuffer_10.Status2.Eintrag_DL_Leerliste_erfolgt := FALSE; + #DVollPufferStrecken_A.VollPuffer_11.Status2.Eintrag_DL_Leerliste_erfolgt := FALSE; + #DVollPufferStrecken_A.VollPuffer_12.Status2.Eintrag_DL_Leerliste_erfolgt := FALSE; + #DVollPufferStrecken_A.VollPuffer_13.Status2.Eintrag_DL_Leerliste_erfolgt := FALSE; + #DVollPufferStrecken_A.VollPuffer_14.Status2.Eintrag_DL_Leerliste_erfolgt := FALSE; + #DVollPufferStrecken_A.VollPuffer_15.Status2.Eintrag_DL_Leerliste_erfolgt := FALSE; + #DVollPufferStrecken_A.VollPuffer_16.Status2.Eintrag_DL_Leerliste_erfolgt := FALSE; + #DVollPufferStrecken_A.VollPuffer_17.Status2.Eintrag_DL_Leerliste_erfolgt := FALSE; + #DVollPufferStrecken_A.VollPuffer_18.Status2.Eintrag_DL_Leerliste_erfolgt := FALSE; + #DVollPufferStrecken_A.VollPuffer_19.Status2.Eintrag_DL_Leerliste_erfolgt := FALSE; + #DVollPufferStrecken_A.VollPuffer_20.Status2.Eintrag_DL_Leerliste_erfolgt := FALSE; + #DVollPufferStrecken_A.VollPuffer_21.Status2.Eintrag_DL_Leerliste_erfolgt := FALSE; + #DVollPufferStrecken_A.VollPuffer_22.Status2.Eintrag_DL_Leerliste_erfolgt := FALSE; + #DVollPufferStrecken_A.VollPuffer_23.Status2.Eintrag_DL_Leerliste_erfolgt := FALSE; + #DVollPufferStrecken_A.VollPuffer_24.Status2.Eintrag_DL_Leerliste_erfolgt := FALSE; + #DVollPufferStrecken_A.VollPuffer_25.Status2.Eintrag_DL_Leerliste_erfolgt := FALSE; + #DVollPufferStrecken_B.VollPuffer_26.Status2.Eintrag_DL_Leerliste_erfolgt := FALSE; + #DVollPufferStrecken_B.VollPuffer_27.Status2.Eintrag_DL_Leerliste_erfolgt := FALSE; + #DVollPufferStrecken_B.VollPuffer_28.Status2.Eintrag_DL_Leerliste_erfolgt := FALSE; + #DVollPufferStrecken_B.VollPuffer_29.Status2.Eintrag_DL_Leerliste_erfolgt := FALSE; + #DVollPufferStrecken_B.VollPuffer_30.Status2.Eintrag_DL_Leerliste_erfolgt := FALSE; + #DVollPufferStrecken_B.VollPuffer_31.Status2.Eintrag_DL_Leerliste_erfolgt := FALSE; + #DVollPufferStrecken_B.VollPuffer_32.Status2.Eintrag_DL_Leerliste_erfolgt := FALSE; + #DVollPufferStrecken_B.VollPuffer_33.Status2.Eintrag_DL_Leerliste_erfolgt := FALSE; + #DVollPufferStrecken_B.VollPuffer_34.Status2.Eintrag_DL_Leerliste_erfolgt := FALSE; + #DVollPufferStrecken_B.VollPuffer_35.Status2.Eintrag_DL_Leerliste_erfolgt := FALSE; + #DVollPufferStrecken_B.VollPuffer_36.Status2.Eintrag_DL_Leerliste_erfolgt := FALSE; + #DVollPufferStrecken_B.VollPuffer_37.Status2.Eintrag_DL_Leerliste_erfolgt := FALSE; + #DVollPufferStrecken_B.VollPuffer_38.Status2.Eintrag_DL_Leerliste_erfolgt := FALSE; + #DVollPufferStrecken_B.VollPuffer_39.Status2.Eintrag_DL_Leerliste_erfolgt := FALSE; + #DVollPufferStrecken_B.VollPuffer_40.Status2.Eintrag_DL_Leerliste_erfolgt := FALSE; + #DVollPufferStrecken_B.VollPuffer_41.Status2.Eintrag_DL_Leerliste_erfolgt := FALSE; + #DVollPufferStrecken_B.VollPuffer_42.Status2.Eintrag_DL_Leerliste_erfolgt := FALSE; + #DVollPufferStrecken_B.VollPuffer_43.Status2.Eintrag_DL_Leerliste_erfolgt := FALSE; + #DVollPufferStrecken_B.VollPuffer_44.Status2.Eintrag_DL_Leerliste_erfolgt := FALSE; + #DVollPufferStrecken_B.VollPuffer_45.Status2.Eintrag_DL_Leerliste_erfolgt := FALSE; + #DVollPufferStrecken_B.VollPuffer_46.Status2.Eintrag_DL_Leerliste_erfolgt := FALSE; + #DVollPufferStrecken_B.VollPuffer_47.Status2.Eintrag_DL_Leerliste_erfolgt := FALSE; + #DVollPufferStrecken_B.VollPuffer_48.Status2.Eintrag_DL_Leerliste_erfolgt := FALSE; + #DVollPufferStrecken_B.VollPuffer_49.Status2.Eintrag_DL_Leerliste_erfolgt := FALSE; + #DVollPufferStrecken_B.VollPuffer_50.Status2.Eintrag_DL_Leerliste_erfolgt := FALSE; + END_IF; + END_REGION + + REGION Einfahr-Puffer-Liste neu erstellen + IF #DLVollPuffer_ShopGroup_einfahren.Reorganisieren THEN #DLVollPuffer_ShopGroup_einfahren.Reorganisieren := FALSE; END_IF; + IF #DLVollPuffer_ShopGroup_einfahren.Reorganisieren THEN + "DatenReset"(SSDB := 101, SSDW := 0, RE_VAL := #MB199); + #DVollPufferStrecken_A.VollPuffer_01.Status2.Eintrag_DL_Reinliste_erfolgt := FALSE; + #DVollPufferStrecken_A.VollPuffer_02.Status2.Eintrag_DL_Reinliste_erfolgt := FALSE; + #DVollPufferStrecken_A.VollPuffer_03.Status2.Eintrag_DL_Reinliste_erfolgt := FALSE; + #DVollPufferStrecken_A.VollPuffer_04.Status2.Eintrag_DL_Reinliste_erfolgt := FALSE; + #DVollPufferStrecken_A.VollPuffer_05.Status2.Eintrag_DL_Reinliste_erfolgt := FALSE; + #DVollPufferStrecken_A.VollPuffer_06.Status2.Eintrag_DL_Reinliste_erfolgt := FALSE; + #DVollPufferStrecken_A.VollPuffer_07.Status2.Eintrag_DL_Reinliste_erfolgt := FALSE; + #DVollPufferStrecken_A.VollPuffer_08.Status2.Eintrag_DL_Reinliste_erfolgt := FALSE; + #DVollPufferStrecken_A.VollPuffer_09.Status2.Eintrag_DL_Reinliste_erfolgt := FALSE; + #DVollPufferStrecken_A.VollPuffer_10.Status2.Eintrag_DL_Reinliste_erfolgt := FALSE; + #DVollPufferStrecken_A.VollPuffer_11.Status2.Eintrag_DL_Reinliste_erfolgt := FALSE; + #DVollPufferStrecken_A.VollPuffer_12.Status2.Eintrag_DL_Reinliste_erfolgt := FALSE; + #DVollPufferStrecken_A.VollPuffer_13.Status2.Eintrag_DL_Reinliste_erfolgt := FALSE; + #DVollPufferStrecken_A.VollPuffer_14.Status2.Eintrag_DL_Reinliste_erfolgt := FALSE; + #DVollPufferStrecken_A.VollPuffer_15.Status2.Eintrag_DL_Reinliste_erfolgt := FALSE; + #DVollPufferStrecken_A.VollPuffer_16.Status2.Eintrag_DL_Reinliste_erfolgt := FALSE; + #DVollPufferStrecken_A.VollPuffer_17.Status2.Eintrag_DL_Reinliste_erfolgt := FALSE; + #DVollPufferStrecken_A.VollPuffer_18.Status2.Eintrag_DL_Reinliste_erfolgt := FALSE; + #DVollPufferStrecken_A.VollPuffer_19.Status2.Eintrag_DL_Reinliste_erfolgt := FALSE; + #DVollPufferStrecken_A.VollPuffer_20.Status2.Eintrag_DL_Reinliste_erfolgt := FALSE; + #DVollPufferStrecken_A.VollPuffer_21.Status2.Eintrag_DL_Reinliste_erfolgt := FALSE; + #DVollPufferStrecken_A.VollPuffer_22.Status2.Eintrag_DL_Reinliste_erfolgt := FALSE; + #DVollPufferStrecken_A.VollPuffer_23.Status2.Eintrag_DL_Reinliste_erfolgt := FALSE; + #DVollPufferStrecken_A.VollPuffer_24.Status2.Eintrag_DL_Reinliste_erfolgt := FALSE; + #DVollPufferStrecken_A.VollPuffer_25.Status2.Eintrag_DL_Reinliste_erfolgt := FALSE; + #DVollPufferStrecken_B.VollPuffer_26.Status2.Eintrag_DL_Reinliste_erfolgt := FALSE; + #DVollPufferStrecken_B.VollPuffer_27.Status2.Eintrag_DL_Reinliste_erfolgt := FALSE; + #DVollPufferStrecken_B.VollPuffer_28.Status2.Eintrag_DL_Reinliste_erfolgt := FALSE; + #DVollPufferStrecken_B.VollPuffer_29.Status2.Eintrag_DL_Reinliste_erfolgt := FALSE; + #DVollPufferStrecken_B.VollPuffer_30.Status2.Eintrag_DL_Reinliste_erfolgt := FALSE; + #DVollPufferStrecken_B.VollPuffer_31.Status2.Eintrag_DL_Reinliste_erfolgt := FALSE; + #DVollPufferStrecken_B.VollPuffer_32.Status2.Eintrag_DL_Reinliste_erfolgt := FALSE; + #DVollPufferStrecken_B.VollPuffer_33.Status2.Eintrag_DL_Reinliste_erfolgt := FALSE; + #DVollPufferStrecken_B.VollPuffer_34.Status2.Eintrag_DL_Reinliste_erfolgt := FALSE; + #DVollPufferStrecken_B.VollPuffer_35.Status2.Eintrag_DL_Reinliste_erfolgt := FALSE; + #DVollPufferStrecken_B.VollPuffer_36.Status2.Eintrag_DL_Reinliste_erfolgt := FALSE; + #DVollPufferStrecken_B.VollPuffer_37.Status2.Eintrag_DL_Reinliste_erfolgt := FALSE; + #DVollPufferStrecken_B.VollPuffer_38.Status2.Eintrag_DL_Reinliste_erfolgt := FALSE; + #DVollPufferStrecken_B.VollPuffer_39.Status2.Eintrag_DL_Reinliste_erfolgt := FALSE; + #DVollPufferStrecken_B.VollPuffer_40.Status2.Eintrag_DL_Reinliste_erfolgt := FALSE; + #DVollPufferStrecken_B.VollPuffer_41.Status2.Eintrag_DL_Reinliste_erfolgt := FALSE; + #DVollPufferStrecken_B.VollPuffer_42.Status2.Eintrag_DL_Reinliste_erfolgt := FALSE; + #DVollPufferStrecken_B.VollPuffer_43.Status2.Eintrag_DL_Reinliste_erfolgt := FALSE; + #DVollPufferStrecken_B.VollPuffer_44.Status2.Eintrag_DL_Reinliste_erfolgt := FALSE; + #DVollPufferStrecken_B.VollPuffer_45.Status2.Eintrag_DL_Reinliste_erfolgt := FALSE; + #DVollPufferStrecken_B.VollPuffer_46.Status2.Eintrag_DL_Reinliste_erfolgt := FALSE; + #DVollPufferStrecken_B.VollPuffer_47.Status2.Eintrag_DL_Reinliste_erfolgt := FALSE; + #DVollPufferStrecken_B.VollPuffer_48.Status2.Eintrag_DL_Reinliste_erfolgt := FALSE; + #DVollPufferStrecken_B.VollPuffer_49.Status2.Eintrag_DL_Reinliste_erfolgt := FALSE; + #DVollPufferStrecken_B.VollPuffer_50.Status2.Eintrag_DL_Reinliste_erfolgt := FALSE; + END_IF; + END_REGION + + REGION Ausfahr-Puffer-Liste neu erstellen + IF #DLVollPuffer_ShopGroup_abrufen.Reorganisieren THEN #DLVollPuffer_ShopGroup_abrufen.Reorganisieren := FALSE; END_IF; + IF #DLVollPuffer_ShopGroup_abrufen.Reorganisieren THEN + "DatenReset"(SSDB := 102, SSDW := 0, RE_VAL := #MB199); + #DVollPufferStrecken_A.VollPuffer_01.Status2.Eintrag_DL_Abrufliste_erfolgt := FALSE; + #DVollPufferStrecken_A.VollPuffer_02.Status2.Eintrag_DL_Abrufliste_erfolgt := FALSE; + #DVollPufferStrecken_A.VollPuffer_03.Status2.Eintrag_DL_Abrufliste_erfolgt := FALSE; + #DVollPufferStrecken_A.VollPuffer_04.Status2.Eintrag_DL_Abrufliste_erfolgt := FALSE; + #DVollPufferStrecken_A.VollPuffer_05.Status2.Eintrag_DL_Abrufliste_erfolgt := FALSE; + #DVollPufferStrecken_A.VollPuffer_06.Status2.Eintrag_DL_Abrufliste_erfolgt := FALSE; + #DVollPufferStrecken_A.VollPuffer_07.Status2.Eintrag_DL_Abrufliste_erfolgt := FALSE; + #DVollPufferStrecken_A.VollPuffer_08.Status2.Eintrag_DL_Abrufliste_erfolgt := FALSE; + #DVollPufferStrecken_A.VollPuffer_09.Status2.Eintrag_DL_Abrufliste_erfolgt := FALSE; + #DVollPufferStrecken_A.VollPuffer_10.Status2.Eintrag_DL_Abrufliste_erfolgt := FALSE; + #DVollPufferStrecken_A.VollPuffer_11.Status2.Eintrag_DL_Abrufliste_erfolgt := FALSE; + #DVollPufferStrecken_A.VollPuffer_12.Status2.Eintrag_DL_Abrufliste_erfolgt := FALSE; + #DVollPufferStrecken_A.VollPuffer_13.Status2.Eintrag_DL_Abrufliste_erfolgt := FALSE; + #DVollPufferStrecken_A.VollPuffer_14.Status2.Eintrag_DL_Abrufliste_erfolgt := FALSE; + #DVollPufferStrecken_A.VollPuffer_15.Status2.Eintrag_DL_Abrufliste_erfolgt := FALSE; + #DVollPufferStrecken_A.VollPuffer_16.Status2.Eintrag_DL_Abrufliste_erfolgt := FALSE; + #DVollPufferStrecken_A.VollPuffer_17.Status2.Eintrag_DL_Abrufliste_erfolgt := FALSE; + #DVollPufferStrecken_A.VollPuffer_18.Status2.Eintrag_DL_Abrufliste_erfolgt := FALSE; + #DVollPufferStrecken_A.VollPuffer_19.Status2.Eintrag_DL_Abrufliste_erfolgt := FALSE; + #DVollPufferStrecken_A.VollPuffer_20.Status2.Eintrag_DL_Abrufliste_erfolgt := FALSE; + #DVollPufferStrecken_A.VollPuffer_21.Status2.Eintrag_DL_Abrufliste_erfolgt := FALSE; + #DVollPufferStrecken_A.VollPuffer_22.Status2.Eintrag_DL_Abrufliste_erfolgt := FALSE; + #DVollPufferStrecken_A.VollPuffer_23.Status2.Eintrag_DL_Abrufliste_erfolgt := FALSE; + #DVollPufferStrecken_A.VollPuffer_24.Status2.Eintrag_DL_Abrufliste_erfolgt := FALSE; + #DVollPufferStrecken_A.VollPuffer_25.Status2.Eintrag_DL_Abrufliste_erfolgt := FALSE; + #DVollPufferStrecken_B.VollPuffer_26.Status2.Eintrag_DL_Abrufliste_erfolgt := FALSE; + #DVollPufferStrecken_B.VollPuffer_27.Status2.Eintrag_DL_Abrufliste_erfolgt := FALSE; + #DVollPufferStrecken_B.VollPuffer_28.Status2.Eintrag_DL_Abrufliste_erfolgt := FALSE; + #DVollPufferStrecken_B.VollPuffer_29.Status2.Eintrag_DL_Abrufliste_erfolgt := FALSE; + #DVollPufferStrecken_B.VollPuffer_30.Status2.Eintrag_DL_Abrufliste_erfolgt := FALSE; + #DVollPufferStrecken_B.VollPuffer_31.Status2.Eintrag_DL_Abrufliste_erfolgt := FALSE; + #DVollPufferStrecken_B.VollPuffer_32.Status2.Eintrag_DL_Abrufliste_erfolgt := FALSE; + #DVollPufferStrecken_B.VollPuffer_33.Status2.Eintrag_DL_Abrufliste_erfolgt := FALSE; + #DVollPufferStrecken_B.VollPuffer_34.Status2.Eintrag_DL_Abrufliste_erfolgt := FALSE; + #DVollPufferStrecken_B.VollPuffer_35.Status2.Eintrag_DL_Abrufliste_erfolgt := FALSE; + #DVollPufferStrecken_B.VollPuffer_36.Status2.Eintrag_DL_Abrufliste_erfolgt := FALSE; + #DVollPufferStrecken_B.VollPuffer_37.Status2.Eintrag_DL_Abrufliste_erfolgt := FALSE; + #DVollPufferStrecken_B.VollPuffer_38.Status2.Eintrag_DL_Abrufliste_erfolgt := FALSE; + #DVollPufferStrecken_B.VollPuffer_39.Status2.Eintrag_DL_Abrufliste_erfolgt := FALSE; + #DVollPufferStrecken_B.VollPuffer_40.Status2.Eintrag_DL_Abrufliste_erfolgt := FALSE; + #DVollPufferStrecken_B.VollPuffer_41.Status2.Eintrag_DL_Abrufliste_erfolgt := FALSE; + #DVollPufferStrecken_B.VollPuffer_42.Status2.Eintrag_DL_Abrufliste_erfolgt := FALSE; + #DVollPufferStrecken_B.VollPuffer_43.Status2.Eintrag_DL_Abrufliste_erfolgt := FALSE; + #DVollPufferStrecken_B.VollPuffer_44.Status2.Eintrag_DL_Abrufliste_erfolgt := FALSE; + #DVollPufferStrecken_B.VollPuffer_45.Status2.Eintrag_DL_Abrufliste_erfolgt := FALSE; + #DVollPufferStrecken_B.VollPuffer_46.Status2.Eintrag_DL_Abrufliste_erfolgt := FALSE; + #DVollPufferStrecken_B.VollPuffer_47.Status2.Eintrag_DL_Abrufliste_erfolgt := FALSE; + #DVollPufferStrecken_B.VollPuffer_48.Status2.Eintrag_DL_Abrufliste_erfolgt := FALSE; + #DVollPufferStrecken_B.VollPuffer_49.Status2.Eintrag_DL_Abrufliste_erfolgt := FALSE; + #DVollPufferStrecken_B.VollPuffer_50.Status2.Eintrag_DL_Abrufliste_erfolgt := FALSE; + END_IF; + END_REGION + + REGION Nur 1 aktiver Inilauf möglich, falls kein Abruf aktiv! + #Ein_Inilauf_aktiv := (((((((((((((((((((((((((((((((((((((((((((((((((#VollPuffer_01.Dyn.Status.Puffer_initialisieren_OUT OR #VollPuffer_02.Dyn.Status.Puffer_initialisieren_OUT) OR #VollPuffer_03.Dyn.Status.Puffer_initialisieren_OUT) OR #VollPuffer_04.Dyn.Status.Puffer_initialisieren_OUT) OR #VollPuffer_05.Dyn.Status.Puffer_initialisieren_OUT) OR #VollPuffer_06.Dyn.Status.Puffer_initialisieren_OUT) OR #VollPuffer_07.Dyn.Status.Puffer_initialisieren_OUT) OR #VollPuffer_08.Dyn.Status.Puffer_initialisieren_OUT) OR #VollPuffer_09.Dyn.Status.Puffer_initialisieren_OUT) OR #VollPuffer_10.Dyn.Status.Puffer_initialisieren_OUT) OR #VollPuffer_11.Dyn.Status.Puffer_initialisieren_OUT) OR #VollPuffer_12.Dyn.Status.Puffer_initialisieren_OUT) OR #VollPuffer_13.Dyn.Status.Puffer_initialisieren_OUT) OR #VollPuffer_14.Dyn.Status.Puffer_initialisieren_OUT) OR #VollPuffer_15.Dyn.Status.Puffer_initialisieren_OUT) OR #VollPuffer_16.Dyn.Status.Puffer_initialisieren_OUT) OR #VollPuffer_17.Dyn.Status.Puffer_initialisieren_OUT) OR #VollPuffer_18.Dyn.Status.Puffer_initialisieren_OUT) OR #VollPuffer_19.Dyn.Status.Puffer_initialisieren_OUT) OR #VollPuffer_20.Dyn.Status.Puffer_initialisieren_OUT) OR #VollPuffer_21.Dyn.Status.Puffer_initialisieren_OUT) OR #VollPuffer_22.Dyn.Status.Puffer_initialisieren_OUT) OR #VollPuffer_23.Dyn.Status.Puffer_initialisieren_OUT) OR #VollPuffer_24.Dyn.Status.Puffer_initialisieren_OUT) OR #VollPuffer_25.Dyn.Status.Puffer_initialisieren_OUT) OR #DVollPufferStrecken_B.VollPuffer_26.Dyn.Status.Puffer_initialisieren_OUT) OR #DVollPufferStrecken_B.VollPuffer_27.Dyn.Status.Puffer_initialisieren_OUT) OR #DVollPufferStrecken_B.VollPuffer_28.Dyn.Status.Puffer_initialisieren_OUT) OR #DVollPufferStrecken_B.VollPuffer_29.Dyn.Status.Puffer_initialisieren_OUT) OR #DVollPufferStrecken_B.VollPuffer_30.Dyn.Status.Puffer_initialisieren_OUT) OR #DVollPufferStrecken_B.VollPuffer_31.Dyn.Status.Puffer_initialisieren_OUT) OR #DVollPufferStrecken_B.VollPuffer_32.Dyn.Status.Puffer_initialisieren_OUT) OR #DVollPufferStrecken_B.VollPuffer_33.Dyn.Status.Puffer_initialisieren_OUT) OR #DVollPufferStrecken_B.VollPuffer_34.Dyn.Status.Puffer_initialisieren_OUT) OR #DVollPufferStrecken_B.VollPuffer_35.Dyn.Status.Puffer_initialisieren_OUT) OR #DVollPufferStrecken_B.VollPuffer_36.Dyn.Status.Puffer_initialisieren_OUT) OR #DVollPufferStrecken_B.VollPuffer_37.Dyn.Status.Puffer_initialisieren_OUT) OR #DVollPufferStrecken_B.VollPuffer_38.Dyn.Status.Puffer_initialisieren_OUT) OR #DVollPufferStrecken_B.VollPuffer_39.Dyn.Status.Puffer_initialisieren_OUT) OR #DVollPufferStrecken_B.VollPuffer_40.Dyn.Status.Puffer_initialisieren_OUT) OR #DVollPufferStrecken_B.VollPuffer_41.Dyn.Status.Puffer_initialisieren_OUT) OR #DVollPufferStrecken_B.VollPuffer_42.Dyn.Status.Puffer_initialisieren_OUT) OR #DVollPufferStrecken_B.VollPuffer_43.Dyn.Status.Puffer_initialisieren_OUT) OR #DVollPufferStrecken_B.VollPuffer_44.Dyn.Status.Puffer_initialisieren_OUT) OR #DVollPufferStrecken_B.VollPuffer_45.Dyn.Status.Puffer_initialisieren_OUT) OR #DVollPufferStrecken_B.VollPuffer_46.Dyn.Status.Puffer_initialisieren_OUT) OR #DVollPufferStrecken_B.VollPuffer_47.Dyn.Status.Puffer_initialisieren_OUT) OR #DVollPufferStrecken_B.VollPuffer_48.Dyn.Status.Puffer_initialisieren_OUT) OR #DVollPufferStrecken_B.VollPuffer_49.Dyn.Status.Puffer_initialisieren_OUT) OR #DVollPufferStrecken_B.VollPuffer_50.Dyn.Status.Puffer_initialisieren_OUT) OR #DVollPufferStrecken_B.VollPuffer_51.Dyn.Status.Puffer_initialisieren_OUT; + END_REGION + + REGION AusVollPuffer-Strecke hat Stau + #Stau := ((((#DVP_Sensoren.Stau_BG3242.Stat.B_Akt AND NOT (#MB3244)) AND #BG3241) OR #DVP_Sensoren.Stau_BG3241.Stat.B_Akt) OR #DVP_Sensoren.Stau_BG3240.Stat.B_Akt) OR #DVP_Sensoren.Stau_BG3184.Stat.B_Akt; + END_REGION + + REGION Starten ist erlaubt + #Start_Ok := ((((((((((((((((((#AB326 = 0) AND NOT (#MB3207)) AND NOT (#MB3210)) AND NOT (#MB3211)) AND NOT (#MB3212)) AND NOT (#MB3213)) AND NOT (#MB3214)) AND NOT (#MB3215)) AND NOT (#MB3252)) AND NOT (#MB3253)) AND NOT (#MB3254)) AND NOT (#MB3255)) AND NOT (#MB3256)) AND NOT (#MB3257)) AND NOT (#MB3270)) AND NOT (#MB3271)) AND NOT (#MB3272)) AND NOT (#MB3273)) AND NOT (#Stau); + END_REGION + + REGION Störung quittieren UZ7104/7105 + #ErrQuit := #DOutbound_Bereich.A01_UZ7104.StOk_aktiv OR #DOutbound_Bereich.A01_UZ7105.StOk_aktiv; + END_REGION + + REGION VollPuffer 01 + #ErrAnz := FALSE; + #VollPuffer_01(VollPuffer_Nr := 101, ErrQuit := #ErrQuit, B_VollPufferEinfahrt := #BG3087, B_InSchleuse_IN := #BG3114, B_InSchleuse_OUT := #BG3273, B_Stau_raus_Out := #DVP_Sensoren.Stau_BG3242.Stat.B_Akt, B_QuerTrolley_Out := #BG3241, Antrieb_plus_aktiv := #MA0150, Schleuse_geöffnet_IN := #MB3114, Schleuse_geöffnet_OUT := #MB3273, Y_Schleuse_Auf_IN := #DVP_Zylinder.Schleuse_Mitte_VP1.Stat.Ast, Y_Schleuse_Auf_OUT := #DVP_Zylinder.Schleuse_Ausfahrt_VP1.Stat.Ast, Error := %DB708.DBW320, Start_Ok := #Start_Ok, Antrieb_plus_start := #DVP_Antriebe.MA0150.Stat.A_vor, Antrieb_plus_stoppen := #DVP_Antriebe.MA0150.Stat.Stop_vor, hStOk := #ErrAnz, Ausfahr_Inks := #DVP_Auslagern.Ausfahren_Ok_A.Dyn.Rest_Inks); + END_REGION + + REGION VollPuffer 02 + #VollPuffer_02(VollPuffer_Nr := 102, ErrQuit := #ErrQuit, B_VollPufferEinfahrt := #BG3086, B_InSchleuse_IN := #BG3113, B_InSchleuse_OUT := #BG3272, B_AusSchleuse_OUT := #BG3242, B_Stau_raus_Out := #DVP_Sensoren.Stau_BG3242.Stat.B_Akt, B_QuerTrolley_Out := #BG3241, Antrieb_plus_aktiv := #MA0150, Schleuse_geöffnet_IN := #MB3113, Schleuse_geöffnet_OUT := #MB3272, Y_Schleuse_Auf_IN := #DVP_Zylinder.Schleuse_Mitte_VP2.Stat.Ast, Y_Schleuse_Auf_OUT := #DVP_Zylinder.Schleuse_Ausfahrt_VP2.Stat.Ast, Error := %DB708.DBW322, Start_Ok := #Start_Ok, Antrieb_plus_start := #DVP_Antriebe.MA0150.Stat.A_vor, Antrieb_plus_stoppen := #DVP_Antriebe.MA0150.Stat.Stop_vor, hStOk := #ErrAnz, Ausfahr_Inks := #DVP_Auslagern.Ausfahren_Ok_A.Dyn.Rest_Inks); + END_REGION + + REGION VollPuffer 03 + #VollPuffer_03(VollPuffer_Nr := 103, ErrQuit := #ErrQuit, B_VollPufferEinfahrt := #BG3085, B_InSchleuse_IN := #BG3112, B_InSchleuse_OUT := #BG3271, B_AusSchleuse_OUT := #BG3242, B_Stau_raus_Out := #DVP_Sensoren.Stau_BG3242.Stat.B_Akt, B_QuerTrolley_Out := #BG3241, Antrieb_plus_aktiv := #MA0150, Schleuse_geöffnet_IN := #MB3112, Schleuse_geöffnet_OUT := #MB3271, Y_Schleuse_Auf_IN := #DVP_Zylinder.Schleuse_Mitte_VP3.Stat.Ast, Y_Schleuse_Auf_OUT := #DVP_Zylinder.Schleuse_Ausfahrt_VP3.Stat.Ast, Error := %DB708.DBW324, Start_Ok := #Start_Ok, Antrieb_plus_start := #DVP_Antriebe.MA0150.Stat.A_vor, Antrieb_plus_stoppen := #DVP_Antriebe.MA0150.Stat.Stop_vor, hStOk := #ErrAnz, Ausfahr_Inks := #DVP_Auslagern.Ausfahren_Ok_A.Dyn.Rest_Inks); + END_REGION + + REGION VollPuffer 04 + #VollPuffer_04(VollPuffer_Nr := 104, ErrQuit := #ErrQuit, B_VollPufferEinfahrt := #BG3084, B_InSchleuse_IN := #BG3111, B_InSchleuse_OUT := #BG3270, B_Stau_raus_Out := #DVP_Sensoren.Stau_BG3242.Stat.B_Akt, B_QuerTrolley_Out := #BG3241, Antrieb_plus_aktiv := #MA0150, Schleuse_geöffnet_IN := #MB3111, Schleuse_geöffnet_OUT := #MB3270, Y_Schleuse_Auf_IN := #DVP_Zylinder.Schleuse_Mitte_VP4.Stat.Ast, Y_Schleuse_Auf_OUT := #DVP_Zylinder.Schleuse_Ausfahrt_VP4.Stat.Ast, Error := %DB708.DBW326, Start_Ok := #Start_Ok, Antrieb_plus_start := #DVP_Antriebe.MA0150.Stat.A_vor, Antrieb_plus_stoppen := #DVP_Antriebe.MA0150.Stat.Stop_vor, hStOk := #ErrAnz, Ausfahr_Inks := #DVP_Auslagern.Ausfahren_Ok_A.Dyn.Rest_Inks); + END_REGION + + REGION VollPuffer 05 + #VollPuffer_05(VollPuffer_Nr := 105, ErrQuit := #ErrQuit, B_VollPufferEinfahrt := #BG3083, B_InSchleuse_IN := #BG3110, B_InSchleuse_OUT := #BG3267, B_Stau_raus_Out := #DVP_Sensoren.Stau_BG3242.Stat.B_Akt, B_QuerTrolley_Out := #BG3241, Antrieb_plus_aktiv := #MA0150, Schleuse_geöffnet_IN := #MB3110, Schleuse_geöffnet_OUT := #MB3267, Y_Schleuse_Auf_IN := #DVP_Zylinder.Schleuse_Mitte_VP5.Stat.Ast, Y_Schleuse_Auf_OUT := #DVP_Zylinder.Schleuse_Ausfahrt_VP5.Stat.Ast, Error := %DB708.DBW328, Start_Ok := #Start_Ok, Antrieb_plus_start := #DVP_Antriebe.MA0150.Stat.A_vor, Antrieb_plus_stoppen := #DVP_Antriebe.MA0150.Stat.Stop_vor, hStOk := #ErrAnz, Ausfahr_Inks := #DVP_Auslagern.Ausfahren_Ok_A.Dyn.Rest_Inks); + END_REGION + + REGION VollPuffer 06 + #VollPuffer_06(VollPuffer_Nr := 106, ErrQuit := #ErrQuit, B_VollPufferEinfahrt := #BG3082, B_InSchleuse_IN := #BG3107, B_InSchleuse_OUT := #BG3266, B_Stau_raus_Out := #DVP_Sensoren.Stau_BG3241.Stat.B_Akt, B_QuerTrolley_Out := #BG3240, Antrieb_plus_aktiv := #MA0150, Schleuse_geöffnet_IN := #MB3107, Schleuse_geöffnet_OUT := #MB3266, Y_Schleuse_Auf_IN := #DVP_Zylinder.Schleuse_Mitte_VP6.Stat.Ast, Y_Schleuse_Auf_OUT := #DVP_Zylinder.Schleuse_Ausfahrt_VP6.Stat.Ast, Error := %DB708.DBW330, Start_Ok := #Start_Ok, Antrieb_plus_start := #DVP_Antriebe.MA0150.Stat.A_vor, Antrieb_plus_stoppen := #DVP_Antriebe.MA0150.Stat.Stop_vor, hStOk := #ErrAnz, Ausfahr_Inks := #DVP_Auslagern.Ausfahren_Ok_A.Dyn.Rest_Inks); + END_REGION + + REGION VollPuffer 07 + #VollPuffer_07(VollPuffer_Nr := 107, ErrQuit := #ErrQuit, B_VollPufferEinfahrt := #BG3081, B_InSchleuse_IN := #BG3106, B_InSchleuse_OUT := #BG3265, B_AusSchleuse_OUT := #BG3241, B_Stau_raus_Out := #DVP_Sensoren.Stau_BG3241.Stat.B_Akt, B_QuerTrolley_Out := #BG3240, Antrieb_plus_aktiv := #MA0150, Schleuse_geöffnet_IN := #MB3106, Schleuse_geöffnet_OUT := #MB3265, Y_Schleuse_Auf_IN := #DVP_Zylinder.Schleuse_Mitte_VP7.Stat.Ast, Y_Schleuse_Auf_OUT := #DVP_Zylinder.Schleuse_Ausfahrt_VP7.Stat.Ast, Error := %DB708.DBW332, Start_Ok := #Start_Ok, Antrieb_plus_start := #DVP_Antriebe.MA0150.Stat.A_vor, Antrieb_plus_stoppen := #DVP_Antriebe.MA0150.Stat.Stop_vor, hStOk := #ErrAnz, Ausfahr_Inks := #DVP_Auslagern.Ausfahren_Ok_A.Dyn.Rest_Inks); + END_REGION + + REGION VollPuffer 08 + #VollPuffer_08(VollPuffer_Nr := 108, ErrQuit := #ErrQuit, B_VollPufferEinfahrt := #BG3080, B_InSchleuse_IN := #BG3105, B_InSchleuse_OUT := #BG3264, B_AusSchleuse_OUT := #BG3241, B_Stau_raus_Out := #DVP_Sensoren.Stau_BG3241.Stat.B_Akt, B_QuerTrolley_Out := #BG3240, Antrieb_plus_aktiv := #MA0150, Schleuse_geöffnet_IN := #MB3105, Schleuse_geöffnet_OUT := #MB3264, Y_Schleuse_Auf_IN := #DVP_Zylinder.Schleuse_Mitte_VP8.Stat.Ast, Y_Schleuse_Auf_OUT := #DVP_Zylinder.Schleuse_Ausfahrt_VP8.Stat.Ast, Error := %DB708.DBW334, Start_Ok := #Start_Ok, Antrieb_plus_start := #DVP_Antriebe.MA0150.Stat.A_vor, Antrieb_plus_stoppen := #DVP_Antriebe.MA0150.Stat.Stop_vor, hStOk := #ErrAnz, Ausfahr_Inks := #DVP_Auslagern.Ausfahren_Ok_A.Dyn.Rest_Inks); + END_REGION + + REGION VollPuffer 09 + #VollPuffer_09(VollPuffer_Nr := 109, ErrQuit := #ErrQuit, B_VollPufferEinfahrt := #BG3077, B_InSchleuse_IN := #BG3104, B_InSchleuse_OUT := #BG3263, B_Stau_raus_Out := #DVP_Sensoren.Stau_BG3241.Stat.B_Akt, B_QuerTrolley_Out := #BG3240, Antrieb_plus_aktiv := #MA0150, Schleuse_geöffnet_IN := #MB3104, Schleuse_geöffnet_OUT := #MB3263, Y_Schleuse_Auf_IN := #DVP_Zylinder.Schleuse_Mitte_VP9.Stat.Ast, Y_Schleuse_Auf_OUT := #DVP_Zylinder.Schleuse_Ausfahrt_VP9.Stat.Ast, Error := %DB708.DBW336, Start_Ok := #Start_Ok, Antrieb_plus_start := #DVP_Antriebe.MA0150.Stat.A_vor, Antrieb_plus_stoppen := #DVP_Antriebe.MA0150.Stat.Stop_vor, hStOk := #ErrAnz, Ausfahr_Inks := #DVP_Auslagern.Ausfahren_Ok_A.Dyn.Rest_Inks); + END_REGION + + REGION VollPuffer 10 + #VollPuffer_10(VollPuffer_Nr := 110, ErrQuit := #ErrQuit, B_VollPufferEinfahrt := #BG3076, B_InSchleuse_IN := #BG3103, B_InSchleuse_OUT := #BG3262, B_Stau_raus_Out := #DVP_Sensoren.Stau_BG3241.Stat.B_Akt, B_QuerTrolley_Out := #BG3240, Antrieb_plus_aktiv := #MA0150, Schleuse_geöffnet_IN := #MB3103, Schleuse_geöffnet_OUT := #MB3262, Y_Schleuse_Auf_IN := #DVP_Zylinder.Schleuse_Mitte_VP10.Stat.Ast, Y_Schleuse_Auf_OUT := #DVP_Zylinder.Schleuse_Ausfahrt_VP10.Stat.Ast, Error := %DB708.DBW338, Start_Ok := #Start_Ok, Antrieb_plus_start := #DVP_Antriebe.MA0150.Stat.A_vor, Antrieb_plus_stoppen := #DVP_Antriebe.MA0150.Stat.Stop_vor, hStOk := #ErrAnz, Ausfahr_Inks := #DVP_Auslagern.Ausfahren_Ok_A.Dyn.Rest_Inks); + END_REGION + + REGION VollPuffer 11 + #VollPuffer_11(VollPuffer_Nr := 111, ErrQuit := #ErrQuit, B_VollPufferEinfahrt := #BG3075, B_InSchleuse_IN := #BG3102, B_InSchleuse_OUT := #BG3261, B_Stau_raus_Out := #DVP_Sensoren.Stau_BG3241.Stat.B_Akt, B_QuerTrolley_Out := #BG3240, Antrieb_plus_aktiv := #MA0150, Schleuse_geöffnet_IN := #MB3102, Schleuse_geöffnet_OUT := #MB3261, Y_Schleuse_Auf_IN := #DVP_Zylinder.Schleuse_Mitte_VP11.Stat.Ast, Y_Schleuse_Auf_OUT := #DVP_Zylinder.Schleuse_Ausfahrt_VP11.Stat.Ast, Error := %DB708.DBW340, Start_Ok := #Start_Ok, Antrieb_plus_start := #DVP_Antriebe.MA0150.Stat.A_vor, Antrieb_plus_stoppen := #DVP_Antriebe.MA0150.Stat.Stop_vor, hStOk := #ErrAnz, Ausfahr_Inks := #DVP_Auslagern.Ausfahren_Ok_A.Dyn.Rest_Inks); + END_REGION + + REGION VollPuffer 12 + #VollPuffer_12(VollPuffer_Nr := 112, ErrQuit := #ErrQuit, B_VollPufferEinfahrt := #BG3074, B_InSchleuse_IN := #BG3101, B_InSchleuse_OUT := #BG3260, B_Stau_raus_Out := #DVP_Sensoren.Stau_BG3241.Stat.B_Akt, B_QuerTrolley_Out := #BG3240, Antrieb_plus_aktiv := #MA0150, Schleuse_geöffnet_IN := #MB3101, Schleuse_geöffnet_OUT := #MB3260, Y_Schleuse_Auf_IN := #DVP_Zylinder.Schleuse_Mitte_VP12.Stat.Ast, Y_Schleuse_Auf_OUT := #DVP_Zylinder.Schleuse_Ausfahrt_VP12.Stat.Ast, Error := %DB708.DBW342, Start_Ok := #Start_Ok, Antrieb_plus_start := #DVP_Antriebe.MA0150.Stat.A_vor, Antrieb_plus_stoppen := #DVP_Antriebe.MA0150.Stat.Stop_vor, hStOk := #ErrAnz, Ausfahr_Inks := #DVP_Auslagern.Ausfahren_Ok_A.Dyn.Rest_Inks); + END_REGION + + REGION VollPuffer 13 + #VollPuffer_13(VollPuffer_Nr := 113, ErrQuit := #ErrQuit, B_VollPufferEinfahrt := #BG3073, B_InSchleuse_IN := #BG3100, B_InSchleuse_OUT := #BG3257, B_AusSchleuse_OUT := #BG3240, B_Stau_raus_Out := #DVP_Sensoren.Stau_BG3240.Stat.B_Akt, B_QuerTrolley_Out := #BG3184, Antrieb_plus_aktiv := #MA0150, Schleuse_geöffnet_IN := #MB3100, Schleuse_geöffnet_OUT := #MB3257, Y_Schleuse_Auf_IN := #DVP_Zylinder.Schleuse_Mitte_VP13.Stat.Ast, Y_Schleuse_Auf_OUT := #DVP_Zylinder.Schleuse_Ausfahrt_VP13.Stat.Ast, Error := %DB708.DBW344, Start_Ok := #Start_Ok, Antrieb_plus_start := #DVP_Antriebe.MA0150.Stat.A_vor, Antrieb_plus_stoppen := #DVP_Antriebe.MA0150.Stat.Stop_vor, hStOk := #ErrAnz, Ausfahr_Inks := #DVP_Auslagern.Ausfahren_Ok_A.Dyn.Rest_Inks); + END_REGION + + REGION VollPuffer 14 + #VollPuffer_14(VollPuffer_Nr := 114, ErrQuit := #ErrQuit, B_VollPufferEinfahrt := #BG3072, B_InSchleuse_IN := #BG3097, B_InSchleuse_OUT := #BG3256, B_AusSchleuse_OUT := #BG3240, B_Stau_raus_Out := #DVP_Sensoren.Stau_BG3240.Stat.B_Akt, B_QuerTrolley_Out := #BG3184, Antrieb_plus_aktiv := #MA0150, Schleuse_geöffnet_IN := #MB3097, Schleuse_geöffnet_OUT := #MB3256, Y_Schleuse_Auf_IN := #DVP_Zylinder.Schleuse_Mitte_VP14.Stat.Ast, Y_Schleuse_Auf_OUT := #DVP_Zylinder.Schleuse_Ausfahrt_VP14.Stat.Ast, Error := %DB708.DBW346, Start_Ok := #Start_Ok, Antrieb_plus_start := #DVP_Antriebe.MA0150.Stat.A_vor, Antrieb_plus_stoppen := #DVP_Antriebe.MA0150.Stat.Stop_vor, hStOk := #ErrAnz, Ausfahr_Inks := #DVP_Auslagern.Ausfahren_Ok_A.Dyn.Rest_Inks); + END_REGION + + REGION VollPuffer 15 + #VollPuffer_15(VollPuffer_Nr := 115, ErrQuit := #ErrQuit, B_VollPufferEinfahrt := #BG3071, B_InSchleuse_IN := #BG3096, B_InSchleuse_OUT := #BG3255, B_AusSchleuse_OUT := #BG3240, B_Stau_raus_Out := #DVP_Sensoren.Stau_BG3240.Stat.B_Akt, B_QuerTrolley_Out := #BG3184, Antrieb_plus_aktiv := #MA0150, Schleuse_geöffnet_IN := #MB3096, Schleuse_geöffnet_OUT := #MB3255, Y_Schleuse_Auf_IN := #DVP_Zylinder.Schleuse_Mitte_VP15.Stat.Ast, Y_Schleuse_Auf_OUT := #DVP_Zylinder.Schleuse_Ausfahrt_VP15.Stat.Ast, Error := %DB708.DBW348, Start_Ok := #Start_Ok, Antrieb_plus_start := #DVP_Antriebe.MA0150.Stat.A_vor, Antrieb_plus_stoppen := #DVP_Antriebe.MA0150.Stat.Stop_vor, hStOk := #ErrAnz, Ausfahr_Inks := #DVP_Auslagern.Ausfahren_Ok_A.Dyn.Rest_Inks); + END_REGION + + REGION VollPuffer 16 + #VollPuffer_16(VollPuffer_Nr := 116, ErrQuit := #ErrQuit, B_VollPufferEinfahrt := #BG3070, B_InSchleuse_IN := #BG3095, B_InSchleuse_OUT := #BG3254, B_Stau_raus_Out := #DVP_Sensoren.Stau_BG3240.Stat.B_Akt, B_QuerTrolley_Out := #BG3184, Antrieb_plus_aktiv := #MA0150, Schleuse_geöffnet_IN := #MB3095, Schleuse_geöffnet_OUT := #MB3254, Y_Schleuse_Auf_IN := #DVP_Zylinder.Schleuse_Mitte_VP16.Stat.Ast, Y_Schleuse_Auf_OUT := #DVP_Zylinder.Schleuse_Ausfahrt_VP16.Stat.Ast, Error := %DB708.DBW350, Start_Ok := #Start_Ok, Antrieb_plus_start := #DVP_Antriebe.MA0150.Stat.A_vor, Antrieb_plus_stoppen := #DVP_Antriebe.MA0150.Stat.Stop_vor, hStOk := #ErrAnz, Ausfahr_Inks := #DVP_Auslagern.Ausfahren_Ok_A.Dyn.Rest_Inks); + END_REGION + + REGION VollPuffer 17 + #VollPuffer_17(VollPuffer_Nr := 117, ErrQuit := #ErrQuit, B_VollPufferEinfahrt := #BG3067, B_InSchleuse_IN := #BG3094, B_InSchleuse_OUT := #BG3253, B_Stau_raus_Out := #DVP_Sensoren.Stau_BG3240.Stat.B_Akt, B_QuerTrolley_Out := #BG3184, Antrieb_plus_aktiv := #MA0150, Schleuse_geöffnet_IN := #MB3094, Schleuse_geöffnet_OUT := #MB3253, Y_Schleuse_Auf_IN := #DVP_Zylinder.Schleuse_Mitte_VP17.Stat.Ast, Y_Schleuse_Auf_OUT := #DVP_Zylinder.Schleuse_Ausfahrt_VP17.Stat.Ast, Error := %DB708.DBW352, Start_Ok := #Start_Ok, Antrieb_plus_start := #DVP_Antriebe.MA0150.Stat.A_vor, Antrieb_plus_stoppen := #DVP_Antriebe.MA0150.Stat.Stop_vor, hStOk := #ErrAnz, Ausfahr_Inks := #DVP_Auslagern.Ausfahren_Ok_A.Dyn.Rest_Inks); + END_REGION + + REGION VollPuffer 18 + #VollPuffer_18(VollPuffer_Nr := 118, ErrQuit := #ErrQuit, B_VollPufferEinfahrt := #BG3066, B_InSchleuse_IN := #BG3093, B_InSchleuse_OUT := #BG3252, B_Stau_raus_Out := #DVP_Sensoren.Stau_BG3240.Stat.B_Akt, B_QuerTrolley_Out := #BG3184, Antrieb_plus_aktiv := #MA0150, Schleuse_geöffnet_IN := #MB3093, Schleuse_geöffnet_OUT := #MB3252, Y_Schleuse_Auf_IN := #DVP_Zylinder.Schleuse_Mitte_VP18.Stat.Ast, Y_Schleuse_Auf_OUT := #DVP_Zylinder.Schleuse_Ausfahrt_VP18.Stat.Ast, Error := %DB708.DBW354, Start_Ok := #Start_Ok, Antrieb_plus_start := #DVP_Antriebe.MA0150.Stat.A_vor, Antrieb_plus_stoppen := #DVP_Antriebe.MA0150.Stat.Stop_vor, hStOk := #ErrAnz, Ausfahr_Inks := #DVP_Auslagern.Ausfahren_Ok_A.Dyn.Rest_Inks); + END_REGION + + REGION VollPuffer 19 + #VollPuffer_19(VollPuffer_Nr := 119, ErrQuit := #ErrQuit, B_VollPufferEinfahrt := #BG3065, B_InSchleuse_IN := #BG3092, B_InSchleuse_OUT := #BG3215, B_Stau_raus_Out := #DVP_Sensoren.Stau_BG3184.Stat.B_Akt, B_QuerTrolley_Out := #BG3183, Antrieb_plus_aktiv := #MA0150, Schleuse_geöffnet_IN := #MB3092, Schleuse_geöffnet_OUT := #MB3215, Y_Schleuse_Auf_IN := #DVP_Zylinder.Schleuse_Mitte_VP19.Stat.Ast, Y_Schleuse_Auf_OUT := #DVP_Zylinder.Schleuse_Ausfahrt_VP19.Stat.Ast, Error := %DB708.DBW356, Start_Ok := #Start_Ok, Antrieb_plus_start := #DVP_Antriebe.MA0150.Stat.A_vor, Antrieb_plus_stoppen := #DVP_Antriebe.MA0150.Stat.Stop_vor, hStOk := #ErrAnz, Ausfahr_Inks := #DVP_Auslagern.Ausfahren_Ok_A.Dyn.Rest_Inks); + END_REGION + + REGION VollPuffer 20 + #VollPuffer_20(VollPuffer_Nr := 120, ErrQuit := #ErrQuit, B_VollPufferEinfahrt := #BG3064, B_InSchleuse_IN := #BG3091, B_InSchleuse_OUT := #BG3214, B_AusSchleuse_OUT := #BG3184, B_Stau_raus_Out := #DVP_Sensoren.Stau_BG3184.Stat.B_Akt, B_QuerTrolley_Out := #BG3183, Antrieb_plus_aktiv := #MA0150, Schleuse_geöffnet_IN := #MB3091, Schleuse_geöffnet_OUT := #MB3214, Y_Schleuse_Auf_IN := #DVP_Zylinder.Schleuse_Mitte_VP20.Stat.Ast, Y_Schleuse_Auf_OUT := #DVP_Zylinder.Schleuse_Ausfahrt_VP20.Stat.Ast, Error := %DB708.DBW358, Start_Ok := #Start_Ok, Antrieb_plus_start := #DVP_Antriebe.MA0150.Stat.A_vor, Antrieb_plus_stoppen := #DVP_Antriebe.MA0150.Stat.Stop_vor, hStOk := #ErrAnz, Ausfahr_Inks := #DVP_Auslagern.Ausfahren_Ok_A.Dyn.Rest_Inks); + END_REGION + + REGION VollPuffer 21 + #VollPuffer_21(VollPuffer_Nr := 121, ErrQuit := #ErrQuit, B_VollPufferEinfahrt := #BG3063, B_InSchleuse_IN := #BG3090, B_InSchleuse_OUT := #BG3213, B_AusSchleuse_OUT := #BG3184, B_Stau_raus_Out := #DVP_Sensoren.Stau_BG3184.Stat.B_Akt, B_QuerTrolley_Out := #BG3183, Antrieb_plus_aktiv := #MA0150, Schleuse_geöffnet_IN := #MB3090, Schleuse_geöffnet_OUT := #MB3213, Y_Schleuse_Auf_IN := #DVP_Zylinder.Schleuse_Mitte_VP21.Stat.Ast, Y_Schleuse_Auf_OUT := #DVP_Zylinder.Schleuse_Ausfahrt_VP21.Stat.Ast, Error := %DB708.DBW360, Start_Ok := #Start_Ok, Antrieb_plus_start := #DVP_Antriebe.MA0150.Stat.A_vor, Antrieb_plus_stoppen := #DVP_Antriebe.MA0150.Stat.Stop_vor, hStOk := #ErrAnz, Ausfahr_Inks := #DVP_Auslagern.Ausfahren_Ok_A.Dyn.Rest_Inks); + END_REGION + + REGION VollPuffer 22 + #VollPuffer_22(VollPuffer_Nr := 122, ErrQuit := #ErrQuit, B_VollPufferEinfahrt := #BG3027, B_InSchleuse_IN := #BG3052, B_InSchleuse_OUT := #BG3212, B_Stau_raus_Out := #DVP_Sensoren.Stau_BG3184.Stat.B_Akt, B_QuerTrolley_Out := #BG3183, Antrieb_plus_aktiv := #MA0150, Schleuse_geöffnet_IN := #MB3052, Schleuse_geöffnet_OUT := #MB3212, Y_Schleuse_Auf_IN := #DVP_Zylinder.Schleuse_Mitte_VP22.Stat.Ast, Y_Schleuse_Auf_OUT := #DVP_Zylinder.Schleuse_Ausfahrt_VP22.Stat.Ast, Error := %DB708.DBW362, Start_Ok := #Start_Ok, Antrieb_plus_start := #DVP_Antriebe.MA0150.Stat.A_vor, Antrieb_plus_stoppen := #DVP_Antriebe.MA0150.Stat.Stop_vor, hStOk := #ErrAnz, Ausfahr_Inks := #DVP_Auslagern.Ausfahren_Ok_A.Dyn.Rest_Inks); + END_REGION + + REGION VollPuffer 23 + #VollPuffer_23(VollPuffer_Nr := 123, ErrQuit := #ErrQuit, B_VollPufferEinfahrt := #BG3026, B_InSchleuse_IN := #BG3051, B_InSchleuse_OUT := #BG3211, B_Stau_raus_Out := #DVP_Sensoren.Stau_BG3184.Stat.B_Akt, B_QuerTrolley_Out := #BG3183, Antrieb_plus_aktiv := #MA0150, Schleuse_geöffnet_IN := #MB3051, Schleuse_geöffnet_OUT := #MB3211, Y_Schleuse_Auf_IN := #DVP_Zylinder.Schleuse_Mitte_VP23.Stat.Ast, Y_Schleuse_Auf_OUT := #DVP_Zylinder.Schleuse_Ausfahrt_VP23.Stat.Ast, Error := %DB708.DBW364, Start_Ok := #Start_Ok, Antrieb_plus_start := #DVP_Antriebe.MA0150.Stat.A_vor, Antrieb_plus_stoppen := #DVP_Antriebe.MA0150.Stat.Stop_vor, hStOk := #ErrAnz, Ausfahr_Inks := #DVP_Auslagern.Ausfahren_Ok_A.Dyn.Rest_Inks); + END_REGION + + REGION VollPuffer 24 + #VollPuffer_24(VollPuffer_Nr := 124, ErrQuit := #ErrQuit, B_VollPufferEinfahrt := #BG3025, B_InSchleuse_IN := #BG3050, B_InSchleuse_OUT := #BG3210, B_Stau_raus_Out := #DVP_Sensoren.Stau_BG3184.Stat.B_Akt, B_QuerTrolley_Out := #BG3183, Antrieb_plus_aktiv := #MA0150, Schleuse_geöffnet_IN := #MB3050, Schleuse_geöffnet_OUT := #MB3210, Y_Schleuse_Auf_IN := #DVP_Zylinder.Schleuse_Mitte_VP24.Stat.Ast, Y_Schleuse_Auf_OUT := #DVP_Zylinder.Schleuse_Ausfahrt_VP24.Stat.Ast, Error := %DB708.DBW366, Start_Ok := #Start_Ok, Antrieb_plus_start := #DVP_Antriebe.MA0150.Stat.A_vor, Antrieb_plus_stoppen := #DVP_Antriebe.MA0150.Stat.Stop_vor, hStOk := #ErrAnz, Ausfahr_Inks := #DVP_Auslagern.Ausfahren_Ok_A.Dyn.Rest_Inks); + END_REGION + + REGION VollPuffer 25 + #VollPuffer_25(VollPuffer_Nr := 125, ErrQuit := #ErrQuit, B_VollPufferEinfahrt := #BG3024, B_InSchleuse_IN := #BG3047, B_InSchleuse_OUT := #BG3207, B_Stau_raus_Out := #DVP_Sensoren.Stau_BG3184.Stat.B_Akt, B_QuerTrolley_Out := #BG3183, Antrieb_plus_aktiv := #MA0150, Schleuse_geöffnet_IN := #MB3047, Schleuse_geöffnet_OUT := #MB3207, Y_Schleuse_Auf_IN := #DVP_Zylinder.Schleuse_Mitte_VP25.Stat.Ast, Y_Schleuse_Auf_OUT := #DVP_Zylinder.Schleuse_Ausfahrt_VP25.Stat.Ast, Error := %DB708.DBW368, Start_Ok := #Start_Ok, Antrieb_plus_start := #DVP_Antriebe.MA0150.Stat.A_vor, Antrieb_plus_stoppen := #DVP_Antriebe.MA0150.Stat.Stop_vor, hStOk := #ErrAnz, Ausfahr_Inks := #DVP_Auslagern.Ausfahren_Ok_A.Dyn.Rest_Inks); + END_REGION + + REGION Störungen anzeigen UZ7102/7103 + IF #ErrAnz THEN + #DOutbound_Bereich.A01_UZ7104.StOk_blinken := TRUE; + #DOutbound_Bereich.A01_UZ7105.StOk_blinken := TRUE; + END_IF; + END_REGION + + REGION AusVollPuffer-Simulation A + END_REGION + + REGION Ende + RETURN; + END_REGION + +END_FUNCTION_BLOCK diff --git a/SCL-Export/=A01+UH07-KF00/VollPufferStrecken_B.scl b/SCL-Export/=A01+UH07-KF00/VollPufferStrecken_B.scl new file mode 100644 index 0000000..20e6a1f --- /dev/null +++ b/SCL-Export/=A01+UH07-KF00/VollPufferStrecken_B.scl @@ -0,0 +1,585 @@ +FUNCTION_BLOCK "VollPufferStrecken_B" +{ 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 + AB319 : Byte; // war "AB319" + DVollPufferStrecken_A : Word; // war "DVollPufferStrecken_A" + SGes : Word; // war "SGes" + END_VAR + + VAR_IN_OUT + BG3005 : Word; // war "BG3005" + BG3006 : Word; // war "BG3006" + BG3007 : Word; // war "BG3007" + BG3010 : Word; // war "BG3010" + BG3011 : Word; // war "BG3011" + BG3012 : Word; // war "BG3012" + BG3013 : Word; // war "BG3013" + BG3014 : Word; // war "BG3014" + BG3015 : Word; // war "BG3015" + BG3016 : Word; // war "BG3016" + BG3017 : Word; // war "BG3017" + BG3020 : Word; // war "BG3020" + BG3021 : Word; // war "BG3021" + BG3022 : Word; // war "BG3022" + BG3023 : Word; // war "BG3023" + BG3030 : Word; // war "BG3030" + BG3031 : Word; // war "BG3031" + BG3032 : Word; // war "BG3032" + BG3033 : Word; // war "BG3033" + BG3034 : Word; // war "BG3034" + BG3035 : Word; // war "BG3035" + BG3036 : Word; // war "BG3036" + BG3037 : Word; // war "BG3037" + BG3040 : Word; // war "BG3040" + BG3041 : Word; // war "BG3041" + BG3042 : Word; // war "BG3042" + BG3043 : Word; // war "BG3043" + BG3044 : Word; // war "BG3044" + BG3045 : Word; // war "BG3045" + BG3046 : Word; // war "BG3046" + BG3181 : Word; // war "BG3181" + BG3182 : Word; // war "BG3182" + BG3183 : Word; // war "BG3183" + BG3190 : Word; // war "BG3190" + BG3191 : Word; // war "BG3191" + BG3192 : Word; // war "BG3192" + BG3193 : Word; // war "BG3193" + BG3194 : Word; // war "BG3194" + BG3195 : Word; // war "BG3195" + BG3196 : Word; // war "BG3196" + BG3197 : Word; // war "BG3197" + BG3200 : Word; // war "BG3200" + BG3201 : Word; // war "BG3201" + BG3202 : Word; // war "BG3202" + BG3203 : Word; // war "BG3203" + BG3204 : Word; // war "BG3204" + BG3205 : Word; // war "BG3205" + BG3206 : Word; // war "BG3206" + BG3423 : Word; // war "BG3423" + BG3424 : Word; // war "BG3424" + BG3425 : Word; // war "BG3425" + BG3426 : Word; // war "BG3426" + BG3427 : Word; // war "BG3427" + BG3430 : Word; // war "BG3430" + BG3431 : Word; // war "BG3431" + BG3432 : Word; // war "BG3432" + BG3433 : Word; // war "BG3433" + BG3434 : Word; // war "BG3434" + BG3435 : Word; // war "BG3435" + BG3450 : Word; // war "BG3450" + BG3451 : Word; // war "BG3451" + BG3452 : Word; // war "BG3452" + BG3453 : Word; // war "BG3453" + BG3454 : Word; // war "BG3454" + BG3455 : Word; // war "BG3455" + BG3456 : Word; // war "BG3456" + BG3457 : Word; // war "BG3457" + BG3460 : Word; // war "BG3460" + BG3461 : Word; // war "BG3461" + BG3462 : Word; // war "BG3462" + BG3481 : Word; // war "BG3481" + BG3482 : Word; // war "BG3482" + BG3483 : Word; // war "BG3483" + BG3484 : Word; // war "BG3484" + BG3485 : Word; // war "BG3485" + BG3486 : Word; // war "BG3486" + BG3487 : Word; // war "BG3487" + BG3490 : Word; // war "BG3490" + BG3491 : Word; // war "BG3491" + BG3492 : Word; // war "BG3492" + BG3493 : Word; // war "BG3493" + BG3494 : Word; // war "BG3494" + DOutbound_Bereich : Word; // war "DOutbound_Bereich" + DVP_Antriebe : Word; // war "DVP_Antriebe" + DVP_Auslagern : Word; // war "DVP_Auslagern" + DVP_Sensoren : Word; // war "DVP_Sensoren" + DVP_Zylinder : Word; // war "DVP_Zylinder" + MA0147 : Bool; // war "MA0147" + MB3030 : Byte; // war "MB3030" + MB3031 : Byte; // war "MB3031" + MB3032 : Byte; // war "MB3032" + MB3033 : Byte; // war "MB3033" + MB3034 : Byte; // war "MB3034" + MB3035 : Byte; // war "MB3035" + MB3036 : Byte; // war "MB3036" + MB3037 : Byte; // war "MB3037" + MB3040 : Byte; // war "MB3040" + MB3041 : Byte; // war "MB3041" + MB3042 : Byte; // war "MB3042" + MB3043 : Byte; // war "MB3043" + MB3044 : Byte; // war "MB3044" + MB3045 : Byte; // war "MB3045" + MB3046 : Byte; // war "MB3046" + MB3190 : Byte; // war "MB3190" + MB3191 : Byte; // war "MB3191" + MB3192 : Byte; // war "MB3192" + MB3193 : Byte; // war "MB3193" + MB3194 : Byte; // war "MB3194" + MB3195 : Byte; // war "MB3195" + MB3196 : Byte; // war "MB3196" + MB3197 : Byte; // war "MB3197" + MB3200 : Byte; // war "MB3200" + MB3201 : Byte; // war "MB3201" + MB3202 : Byte; // war "MB3202" + MB3203 : Byte; // war "MB3203" + MB3204 : Byte; // war "MB3204" + MB3205 : Byte; // war "MB3205" + MB3206 : Byte; // war "MB3206" + MB3450 : Byte; // war "MB3450" + MB3451 : Byte; // war "MB3451" + MB3452 : Byte; // war "MB3452" + MB3453 : Byte; // war "MB3453" + MB3454 : Byte; // war "MB3454" + MB3455 : Byte; // war "MB3455" + MB3456 : Byte; // war "MB3456" + MB3457 : Byte; // war "MB3457" + MB3460 : Byte; // war "MB3460" + MB3461 : Byte; // war "MB3461" + MB3462 : Byte; // war "MB3462" + MB3482 : Byte; // war "MB3482" + MB3483 : Byte; // war "MB3483" + MB3484 : Byte; // war "MB3484" + MB3485 : Byte; // war "MB3485" + MB3486 : Byte; // war "MB3486" + MB3487 : Byte; // war "MB3487" + MB3490 : Byte; // war "MB3490" + MB3491 : Byte; // war "MB3491" + MB3492 : Byte; // war "MB3492" + MB3493 : Byte; // war "MB3493" + MB3494 : Byte; // war "MB3494" + END_VAR + + VAR + VollPuffer_26 : "MHMVollpuffer"; + VollPuffer_27 : "MHMVollpuffer"; + VollPuffer_28 : "MHMVollpuffer"; + VollPuffer_29 : "MHMVollpuffer"; + VollPuffer_30 : "MHMVollpuffer"; + VollPuffer_31 : "MHMVollpuffer"; + VollPuffer_32 : "MHMVollpuffer"; + VollPuffer_33 : "MHMVollpuffer"; + VollPuffer_34 : "MHMVollpuffer"; + VollPuffer_35 : "MHMVollpuffer"; + VollPuffer_36 : "MHMVollpuffer"; + VollPuffer_37 : "MHMVollpuffer"; + VollPuffer_38 : "MHMVollpuffer"; + VollPuffer_39 : "MHMVollpuffer"; + VollPuffer_40 : "MHMVollpuffer"; + VollPuffer_41 : "MHMVollpuffer"; + VollPuffer_42 : "MHMVollpuffer"; + VollPuffer_43 : "MHMVollpuffer"; + VollPuffer_44 : "MHMVollpuffer"; + VollPuffer_45 : "MHMVollpuffer"; + VollPuffer_46 : "MHMVollpuffer"; + VollPuffer_47 : "MHMVollpuffer"; + VollPuffer_48 : "MHMVollpuffer"; + VollPuffer_49 : "MHMVollpuffer"; + VollPuffer_50 : "MHMVollpuffer"; + VollPuffer_51 : "MHMÜberlauf_VP"; + Simulation : Struct + Gefahren_26 : Bool; + Gefahren_27 : Bool; + Gefahren_28 : Bool; + Gefahren_29 : Bool; + Gefahren_30 : Bool; + Gefahren_31 : Bool; + Gefahren_32 : Bool; + Gefahren_33 : Bool; + Gefahren_34 : Bool; + Gefahren_35 : Bool; + Gefahren_36 : Bool; + Gefahren_37 : Bool; + Gefahren_38 : Bool; + Gefahren_39 : Bool; + Gefahren_40 : Bool; + Gefahren_41 : Bool; + Gefahren_42 : Bool; + Gefahren_43 : Bool; + Gefahren_44 : Bool; + Gefahren_45 : Bool; + Gefahren_46 : Bool; + Gefahren_47 : Bool; + Gefahren_48 : Bool; + Gefahren_49 : Bool; + Gefahren_50 : Bool; + Gefahren_51 : Bool; + END_STRUCT; + Ohne_PC_fahren : Bool; + Ein_Inilauf_aktiv : Bool; + END_VAR + + VAR_TEMP + ErrQuit : Bool; + ErrAnz : Bool; + Antrieb : Bool; + Stau : Bool; + Start_Ok : Bool; + SorterReset : Bool; + A_Err : Char; + B_Err : Char; + C_Err : Char; + D_Err : Char; + END_VAR + +BEGIN + REGION Systemzeug + #VollPuffer_26.Dyn.Sk_OUT.Auto_akt := #DOutbound_Bereich.A01_UH07.AnlageEin; + #VollPuffer_27.Dyn.Sk_OUT.Auto_akt := #DOutbound_Bereich.A01_UH07.AnlageEin; + #VollPuffer_28.Dyn.Sk_OUT.Auto_akt := #DOutbound_Bereich.A01_UH07.AnlageEin; + #VollPuffer_29.Dyn.Sk_OUT.Auto_akt := #DOutbound_Bereich.A01_UH07.AnlageEin; + #VollPuffer_30.Dyn.Sk_OUT.Auto_akt := #DOutbound_Bereich.A01_UH07.AnlageEin; + #VollPuffer_31.Dyn.Sk_OUT.Auto_akt := #DOutbound_Bereich.A01_UH07.AnlageEin; + #VollPuffer_32.Dyn.Sk_OUT.Auto_akt := #DOutbound_Bereich.A01_UH07.AnlageEin; + #VollPuffer_33.Dyn.Sk_OUT.Auto_akt := #DOutbound_Bereich.A01_UH07.AnlageEin; + #VollPuffer_34.Dyn.Sk_OUT.Auto_akt := #DOutbound_Bereich.A01_UH07.AnlageEin; + #VollPuffer_35.Dyn.Sk_OUT.Auto_akt := #DOutbound_Bereich.A01_UH07.AnlageEin; + #VollPuffer_36.Dyn.Sk_OUT.Auto_akt := #DOutbound_Bereich.A01_UH07.AnlageEin; + #VollPuffer_37.Dyn.Sk_OUT.Auto_akt := #DOutbound_Bereich.A01_UH07.AnlageEin; + #VollPuffer_38.Dyn.Sk_OUT.Auto_akt := #DOutbound_Bereich.A01_UH07.AnlageEin; + #VollPuffer_39.Dyn.Sk_OUT.Auto_akt := #DOutbound_Bereich.A01_UH07.AnlageEin; + #VollPuffer_40.Dyn.Sk_OUT.Auto_akt := #DOutbound_Bereich.A01_UH07.AnlageEin; + #VollPuffer_41.Dyn.Sk_OUT.Auto_akt := #DOutbound_Bereich.A01_UH07.AnlageEin; + #VollPuffer_42.Dyn.Sk_OUT.Auto_akt := #DOutbound_Bereich.A01_UH07.AnlageEin; + #VollPuffer_43.Dyn.Sk_OUT.Auto_akt := #DOutbound_Bereich.A01_UH07.AnlageEin; + #VollPuffer_44.Dyn.Sk_OUT.Auto_akt := #DOutbound_Bereich.A01_UH07.AnlageEin; + #VollPuffer_45.Dyn.Sk_OUT.Auto_akt := #DOutbound_Bereich.A01_UH07.AnlageEin; + #VollPuffer_46.Dyn.Sk_OUT.Auto_akt := #DOutbound_Bereich.A01_UH07.AnlageEin; + #VollPuffer_47.Dyn.Sk_OUT.Auto_akt := #DOutbound_Bereich.A01_UH07.AnlageEin; + #VollPuffer_48.Dyn.Sk_OUT.Auto_akt := #DOutbound_Bereich.A01_UH07.AnlageEin; + #VollPuffer_49.Dyn.Sk_OUT.Auto_akt := #DOutbound_Bereich.A01_UH07.AnlageEin; + #VollPuffer_50.Dyn.Sk_OUT.Auto_akt := #DOutbound_Bereich.A01_UH07.AnlageEin; + #VollPuffer_51.Dyn.Sk_OUT.Auto_akt := #DOutbound_Bereich.A01_UH07.AnlageEin; + #VollPuffer_26.Dyn.Sk_OUT.Bereich_ok := NOT (#DOutbound_Bereich.A01_UC071.BereichErr); + #VollPuffer_27.Dyn.Sk_OUT.Bereich_ok := NOT (#DOutbound_Bereich.A01_UC071.BereichErr); + #VollPuffer_28.Dyn.Sk_OUT.Bereich_ok := NOT (#DOutbound_Bereich.A01_UC071.BereichErr); + #VollPuffer_29.Dyn.Sk_OUT.Bereich_ok := NOT (#DOutbound_Bereich.A01_UC071.BereichErr); + #VollPuffer_30.Dyn.Sk_OUT.Bereich_ok := NOT (#DOutbound_Bereich.A01_UC071.BereichErr); + #VollPuffer_31.Dyn.Sk_OUT.Bereich_ok := NOT (#DOutbound_Bereich.A01_UC071.BereichErr); + #VollPuffer_32.Dyn.Sk_OUT.Bereich_ok := NOT (#DOutbound_Bereich.A01_UC071.BereichErr); + #VollPuffer_33.Dyn.Sk_OUT.Bereich_ok := NOT (#DOutbound_Bereich.A01_UC071.BereichErr); + #VollPuffer_34.Dyn.Sk_OUT.Bereich_ok := NOT (#DOutbound_Bereich.A01_UC071.BereichErr); + #VollPuffer_35.Dyn.Sk_OUT.Bereich_ok := NOT (#DOutbound_Bereich.A01_UC071.BereichErr); + #VollPuffer_36.Dyn.Sk_OUT.Bereich_ok := NOT (#DOutbound_Bereich.A01_UC071.BereichErr); + #VollPuffer_37.Dyn.Sk_OUT.Bereich_ok := NOT (#DOutbound_Bereich.A01_UC071.BereichErr); + #VollPuffer_38.Dyn.Sk_OUT.Bereich_ok := NOT (#DOutbound_Bereich.A01_UC071.BereichErr); + #VollPuffer_39.Dyn.Sk_OUT.Bereich_ok := NOT (#DOutbound_Bereich.A01_UC071.BereichErr); + #VollPuffer_40.Dyn.Sk_OUT.Bereich_ok := NOT (#DOutbound_Bereich.A01_UC071.BereichErr); + #VollPuffer_41.Dyn.Sk_OUT.Bereich_ok := NOT (#DOutbound_Bereich.A01_UC071.BereichErr); + #VollPuffer_42.Dyn.Sk_OUT.Bereich_ok := NOT (#DOutbound_Bereich.A01_UC071.BereichErr); + #VollPuffer_43.Dyn.Sk_OUT.Bereich_ok := NOT (#DOutbound_Bereich.A01_UC071.BereichErr); + #VollPuffer_44.Dyn.Sk_OUT.Bereich_ok := NOT (#DOutbound_Bereich.A01_UC071.BereichErr); + #VollPuffer_45.Dyn.Sk_OUT.Bereich_ok := NOT (#DOutbound_Bereich.A01_UC071.BereichErr); + #VollPuffer_46.Dyn.Sk_OUT.Bereich_ok := NOT (#DOutbound_Bereich.A01_UC071.BereichErr); + #VollPuffer_47.Dyn.Sk_OUT.Bereich_ok := NOT (#DOutbound_Bereich.A01_UC071.BereichErr); + #VollPuffer_48.Dyn.Sk_OUT.Bereich_ok := NOT (#DOutbound_Bereich.A01_UC071.BereichErr); + #VollPuffer_49.Dyn.Sk_OUT.Bereich_ok := NOT (#DOutbound_Bereich.A01_UC071.BereichErr); + #VollPuffer_50.Dyn.Sk_OUT.Bereich_ok := NOT (#DOutbound_Bereich.A01_UC071.BereichErr); + #VollPuffer_51.Dyn.Sk_OUT.Bereich_ok := NOT (#DOutbound_Bereich.A01_UC071.BereichErr); + IF FALSE THEN #VollPuffer_26.Dyn.Sk_OUT.Bereich_ok := FALSE; END_IF; + END_REGION + + REGION Nur 1 aktiver Inilauf möglich, falls kein Abruf aktiv! + #Ein_Inilauf_aktiv := (((((((((((((((((((((((((((((((((((((((((((((((((#DVollPufferStrecken_A.VollPuffer_01.Dyn.Status.Puffer_initialisieren_OUT OR #DVollPufferStrecken_A.VollPuffer_02.Dyn.Status.Puffer_initialisieren_OUT) OR #DVollPufferStrecken_A.VollPuffer_03.Dyn.Status.Puffer_initialisieren_OUT) OR #DVollPufferStrecken_A.VollPuffer_04.Dyn.Status.Puffer_initialisieren_OUT) OR #DVollPufferStrecken_A.VollPuffer_05.Dyn.Status.Puffer_initialisieren_OUT) OR #DVollPufferStrecken_A.VollPuffer_06.Dyn.Status.Puffer_initialisieren_OUT) OR #DVollPufferStrecken_A.VollPuffer_07.Dyn.Status.Puffer_initialisieren_OUT) OR #DVollPufferStrecken_A.VollPuffer_08.Dyn.Status.Puffer_initialisieren_OUT) OR #DVollPufferStrecken_A.VollPuffer_09.Dyn.Status.Puffer_initialisieren_OUT) OR #DVollPufferStrecken_A.VollPuffer_10.Dyn.Status.Puffer_initialisieren_OUT) OR #DVollPufferStrecken_A.VollPuffer_11.Dyn.Status.Puffer_initialisieren_OUT) OR #DVollPufferStrecken_A.VollPuffer_12.Dyn.Status.Puffer_initialisieren_OUT) OR #DVollPufferStrecken_A.VollPuffer_13.Dyn.Status.Puffer_initialisieren_OUT) OR #DVollPufferStrecken_A.VollPuffer_14.Dyn.Status.Puffer_initialisieren_OUT) OR #DVollPufferStrecken_A.VollPuffer_15.Dyn.Status.Puffer_initialisieren_OUT) OR #DVollPufferStrecken_A.VollPuffer_16.Dyn.Status.Puffer_initialisieren_OUT) OR #DVollPufferStrecken_A.VollPuffer_17.Dyn.Status.Puffer_initialisieren_OUT) OR #DVollPufferStrecken_A.VollPuffer_18.Dyn.Status.Puffer_initialisieren_OUT) OR #DVollPufferStrecken_A.VollPuffer_19.Dyn.Status.Puffer_initialisieren_OUT) OR #DVollPufferStrecken_A.VollPuffer_20.Dyn.Status.Puffer_initialisieren_OUT) OR #DVollPufferStrecken_A.VollPuffer_21.Dyn.Status.Puffer_initialisieren_OUT) OR #DVollPufferStrecken_A.VollPuffer_22.Dyn.Status.Puffer_initialisieren_OUT) OR #DVollPufferStrecken_A.VollPuffer_23.Dyn.Status.Puffer_initialisieren_OUT) OR #DVollPufferStrecken_A.VollPuffer_24.Dyn.Status.Puffer_initialisieren_OUT) OR #DVollPufferStrecken_A.VollPuffer_25.Dyn.Status.Puffer_initialisieren_OUT) OR #VollPuffer_26.Dyn.Status.Puffer_initialisieren_OUT) OR #VollPuffer_27.Dyn.Status.Puffer_initialisieren_OUT) OR #VollPuffer_28.Dyn.Status.Puffer_initialisieren_OUT) OR #VollPuffer_29.Dyn.Status.Puffer_initialisieren_OUT) OR #VollPuffer_30.Dyn.Status.Puffer_initialisieren_OUT) OR #VollPuffer_31.Dyn.Status.Puffer_initialisieren_OUT) OR #VollPuffer_32.Dyn.Status.Puffer_initialisieren_OUT) OR #VollPuffer_33.Dyn.Status.Puffer_initialisieren_OUT) OR #VollPuffer_34.Dyn.Status.Puffer_initialisieren_OUT) OR #VollPuffer_35.Dyn.Status.Puffer_initialisieren_OUT) OR #VollPuffer_36.Dyn.Status.Puffer_initialisieren_OUT) OR #VollPuffer_37.Dyn.Status.Puffer_initialisieren_OUT) OR #VollPuffer_38.Dyn.Status.Puffer_initialisieren_OUT) OR #VollPuffer_39.Dyn.Status.Puffer_initialisieren_OUT) OR #VollPuffer_40.Dyn.Status.Puffer_initialisieren_OUT) OR #VollPuffer_41.Dyn.Status.Puffer_initialisieren_OUT) OR #VollPuffer_42.Dyn.Status.Puffer_initialisieren_OUT) OR #VollPuffer_43.Dyn.Status.Puffer_initialisieren_OUT) OR #VollPuffer_44.Dyn.Status.Puffer_initialisieren_OUT) OR #VollPuffer_45.Dyn.Status.Puffer_initialisieren_OUT) OR #VollPuffer_46.Dyn.Status.Puffer_initialisieren_OUT) OR #VollPuffer_47.Dyn.Status.Puffer_initialisieren_OUT) OR #VollPuffer_48.Dyn.Status.Puffer_initialisieren_OUT) OR #VollPuffer_49.Dyn.Status.Puffer_initialisieren_OUT) OR #VollPuffer_50.Dyn.Status.Puffer_initialisieren_OUT) OR #VollPuffer_51.Dyn.Status.Puffer_initialisieren_OUT; + END_REGION + + REGION AusVollPuffer-Simulation B + GOTO En02_B; + IF NOT (#Ohne_PC_fahren) THEN GOTO En02_B; END_IF; + IF (((((((((((((((((((((((((#Ohne_PC_fahren AND #VollPuffer_26.Status2.Alles_ausfahren_OUT) OR #VollPuffer_27.Status2.Alles_ausfahren_OUT) OR #VollPuffer_28.Status2.Alles_ausfahren_OUT) OR #VollPuffer_29.Status2.Alles_ausfahren_OUT) OR #VollPuffer_30.Status2.Alles_ausfahren_OUT) OR #VollPuffer_31.Status2.Alles_ausfahren_OUT) OR #VollPuffer_32.Status2.Alles_ausfahren_OUT) OR #VollPuffer_33.Status2.Alles_ausfahren_OUT) OR #VollPuffer_34.Status2.Alles_ausfahren_OUT) OR #VollPuffer_35.Status2.Alles_ausfahren_OUT) OR #VollPuffer_36.Status2.Alles_ausfahren_OUT) OR #VollPuffer_37.Status2.Alles_ausfahren_OUT) OR #VollPuffer_38.Status2.Alles_ausfahren_OUT) OR #VollPuffer_39.Status2.Alles_ausfahren_OUT) OR #VollPuffer_40.Status2.Alles_ausfahren_OUT) OR #VollPuffer_41.Status2.Alles_ausfahren_OUT) OR #VollPuffer_42.Status2.Alles_ausfahren_OUT) OR #VollPuffer_43.Status2.Alles_ausfahren_OUT) OR #VollPuffer_44.Status2.Alles_ausfahren_OUT) OR #VollPuffer_45.Status2.Alles_ausfahren_OUT) OR #VollPuffer_46.Status2.Alles_ausfahren_OUT) OR #VollPuffer_47.Status2.Alles_ausfahren_OUT) OR #VollPuffer_48.Status2.Alles_ausfahren_OUT) OR #VollPuffer_49.Status2.Alles_ausfahren_OUT) OR #VollPuffer_50.Status2.Alles_ausfahren_OUT) OR #VollPuffer_51.Status2.Alles_ausfahren_OUT THEN GOTO En02_B; END_IF; + IF (((((((((((((((((((((((((((#Ohne_PC_fahren AND #VollPuffer_26.Status2.Alles_ausfahren_OUT) OR #VollPuffer_27.Status2.Alles_ausfahren_OUT) OR #VollPuffer_28.Status2.Alles_ausfahren_OUT) OR #VollPuffer_29.Status2.Alles_ausfahren_OUT) OR #VollPuffer_30.Status2.Alles_ausfahren_OUT) OR #VollPuffer_31.Status2.Alles_ausfahren_OUT) OR #VollPuffer_32.Status2.Alles_ausfahren_OUT) OR #VollPuffer_33.Status2.Alles_ausfahren_OUT) OR #VollPuffer_34.Status2.Alles_ausfahren_OUT) OR #VollPuffer_35.Status2.Alles_ausfahren_OUT) OR #VollPuffer_36.Status2.Alles_ausfahren_OUT) OR #VollPuffer_37.Status2.Alles_ausfahren_OUT) OR #VollPuffer_38.Status2.Alles_ausfahren_OUT) OR #VollPuffer_39.Status2.Alles_ausfahren_OUT) OR #VollPuffer_40.Status2.Alles_ausfahren_OUT) OR #VollPuffer_41.Status2.Alles_ausfahren_OUT) OR #VollPuffer_42.Status2.Alles_ausfahren_OUT) OR #VollPuffer_43.Status2.Alles_ausfahren_OUT) OR #VollPuffer_44.Status2.Alles_ausfahren_OUT) OR #VollPuffer_45.Status2.Alles_ausfahren_OUT) OR #VollPuffer_46.Status2.Alles_ausfahren_OUT) OR #VollPuffer_47.Status2.Alles_ausfahren_OUT) OR #VollPuffer_48.Status2.Alles_ausfahren_OUT) OR #VollPuffer_49.Status2.Alles_ausfahren_OUT) OR #VollPuffer_50.Status2.Alles_ausfahren_OUT) OR #VollPuffer_51.Status2.Alles_ausfahren_OUT) AND #BG3206) AND NOT (#Simulation.Gefahren_26) THEN + #VollPuffer_26.Status2.Alles_ausfahren_OUT := TRUE; + #Simulation.Gefahren_26 := TRUE; + GOTO En02_B; + END_IF; + IF #BG3205 AND NOT (#Simulation.Gefahren_27) THEN + #VollPuffer_27.Status2.Alles_ausfahren_OUT := TRUE; + #Simulation.Gefahren_27 := TRUE; + GOTO En02_B; + END_IF; + IF #BG3204 AND NOT (#Simulation.Gefahren_28) THEN + #VollPuffer_28.Status2.Alles_ausfahren_OUT := TRUE; + #Simulation.Gefahren_28 := TRUE; + GOTO En02_B; + END_IF; + IF #BG3203 AND NOT (#Simulation.Gefahren_29) THEN + #VollPuffer_29.Status2.Alles_ausfahren_OUT := TRUE; + #Simulation.Gefahren_29 := TRUE; + GOTO En02_B; + END_IF; + IF #BG3202 AND NOT (#Simulation.Gefahren_30) THEN + #VollPuffer_30.Status2.Alles_ausfahren_OUT := TRUE; + #Simulation.Gefahren_30 := TRUE; + GOTO En02_B; + END_IF; + IF #BG3201 AND NOT (#Simulation.Gefahren_31) THEN + #VollPuffer_31.Status2.Alles_ausfahren_OUT := TRUE; + #Simulation.Gefahren_31 := TRUE; + GOTO En02_B; + END_IF; + IF #BG3200 AND NOT (#Simulation.Gefahren_32) THEN + #VollPuffer_32.Status2.Alles_ausfahren_OUT := TRUE; + #Simulation.Gefahren_32 := TRUE; + GOTO En02_B; + END_IF; + IF #BG3197 AND NOT (#Simulation.Gefahren_33) THEN + #VollPuffer_33.Status2.Alles_ausfahren_OUT := TRUE; + #Simulation.Gefahren_33 := TRUE; + GOTO En02_B; + END_IF; + IF #BG3196 AND NOT (#Simulation.Gefahren_34) THEN + #VollPuffer_34.Status2.Alles_ausfahren_OUT := TRUE; + #Simulation.Gefahren_34 := TRUE; + GOTO En02_B; + END_IF; + IF #BG3195 AND NOT (#Simulation.Gefahren_35) THEN + #VollPuffer_35.Status2.Alles_ausfahren_OUT := TRUE; + #Simulation.Gefahren_35 := TRUE; + GOTO En02_B; + END_IF; + IF #BG3194 AND NOT (#Simulation.Gefahren_36) THEN + #VollPuffer_36.Status2.Alles_ausfahren_OUT := TRUE; + #Simulation.Gefahren_36 := TRUE; + GOTO En02_B; + END_IF; + IF #BG3193 AND NOT (#Simulation.Gefahren_37) THEN + #VollPuffer_37.Status2.Alles_ausfahren_OUT := TRUE; + #Simulation.Gefahren_37 := TRUE; + GOTO En02_B; + END_IF; + IF #BG3192 AND NOT (#Simulation.Gefahren_38) THEN + #VollPuffer_38.Status2.Alles_ausfahren_OUT := TRUE; + #Simulation.Gefahren_38 := TRUE; + GOTO En02_B; + END_IF; + IF #BG3191 AND NOT (#Simulation.Gefahren_39) THEN + #VollPuffer_39.Status2.Alles_ausfahren_OUT := TRUE; + #Simulation.Gefahren_39 := TRUE; + GOTO En02_B; + END_IF; + IF #BG3190 AND NOT (#Simulation.Gefahren_40) THEN + #VollPuffer_40.Status2.Alles_ausfahren_OUT := TRUE; + #Simulation.Gefahren_40 := TRUE; + GOTO En02_B; + END_IF; + IF #BG3494 AND NOT (#Simulation.Gefahren_41) THEN + #VollPuffer_41.Status2.Alles_ausfahren_OUT := TRUE; + #Simulation.Gefahren_41 := TRUE; + GOTO En02_B; + END_IF; + IF #BG3493 AND NOT (#Simulation.Gefahren_42) THEN + #VollPuffer_42.Status2.Alles_ausfahren_OUT := TRUE; + #Simulation.Gefahren_42 := TRUE; + GOTO En02_B; + END_IF; + IF #BG3492 AND NOT (#Simulation.Gefahren_43) THEN + #VollPuffer_43.Status2.Alles_ausfahren_OUT := TRUE; + #Simulation.Gefahren_43 := TRUE; + GOTO En02_B; + END_IF; + IF #BG3491 AND NOT (#Simulation.Gefahren_44) THEN + #VollPuffer_44.Status2.Alles_ausfahren_OUT := TRUE; + #Simulation.Gefahren_44 := TRUE; + GOTO En02_B; + END_IF; + IF #BG3490 AND NOT (#Simulation.Gefahren_45) THEN + #VollPuffer_45.Status2.Alles_ausfahren_OUT := TRUE; + #Simulation.Gefahren_45 := TRUE; + GOTO En02_B; + END_IF; + IF #BG3487 AND NOT (#Simulation.Gefahren_46) THEN + #VollPuffer_46.Status2.Alles_ausfahren_OUT := TRUE; + #Simulation.Gefahren_46 := TRUE; + GOTO En02_B; + END_IF; + IF #BG3486 AND NOT (#Simulation.Gefahren_47) THEN + #VollPuffer_47.Status2.Alles_ausfahren_OUT := TRUE; + #Simulation.Gefahren_47 := TRUE; + GOTO En02_B; + END_IF; + IF #BG3485 AND NOT (#Simulation.Gefahren_48) THEN + #VollPuffer_47.Status2.Alles_ausfahren_OUT := TRUE; + #Simulation.Gefahren_48 := TRUE; + GOTO En02_B; + END_IF; + IF #BG3484 AND NOT (#Simulation.Gefahren_49) THEN + #VollPuffer_49.Status2.Alles_ausfahren_OUT := TRUE; + #Simulation.Gefahren_49 := TRUE; + GOTO En02_B; + END_IF; + IF #BG3483 AND NOT (#Simulation.Gefahren_50) THEN + #VollPuffer_50.Status2.Alles_ausfahren_OUT := TRUE; + #Simulation.Gefahren_50 := TRUE; + GOTO En02_B; + END_IF; + IF #BG3482 AND NOT (#Simulation.Gefahren_51) THEN + #VollPuffer_51.Status2.Alles_ausfahren_OUT := TRUE; + #Simulation.Gefahren_51 := TRUE; + GOTO En02_B; + END_IF; + #Simulation.Gefahren_26 := FALSE; + #Simulation.Gefahren_27 := FALSE; + #Simulation.Gefahren_28 := FALSE; + #Simulation.Gefahren_29 := FALSE; + #Simulation.Gefahren_30 := FALSE; + #Simulation.Gefahren_31 := FALSE; + #Simulation.Gefahren_32 := FALSE; + #Simulation.Gefahren_33 := FALSE; + #Simulation.Gefahren_34 := FALSE; + #Simulation.Gefahren_35 := FALSE; + #Simulation.Gefahren_36 := FALSE; + #Simulation.Gefahren_37 := FALSE; + #Simulation.Gefahren_38 := FALSE; + #Simulation.Gefahren_39 := FALSE; + #Simulation.Gefahren_40 := FALSE; + #Simulation.Gefahren_41 := FALSE; + #Simulation.Gefahren_42 := FALSE; + #Simulation.Gefahren_43 := FALSE; + #Simulation.Gefahren_44 := FALSE; + #Simulation.Gefahren_45 := FALSE; + #Simulation.Gefahren_46 := FALSE; + #Simulation.Gefahren_47 := FALSE; + #Simulation.Gefahren_48 := FALSE; + #Simulation.Gefahren_49 := FALSE; + #Simulation.Gefahren_50 := FALSE; + En02_B: ; + END_REGION + + REGION AusVollPuffer-Strecke hat Stau + #Stau := ((#DVP_Sensoren.Stau_BG3183.Stat.B_Akt OR #DVP_Sensoren.Stau_BG3182.Stat.B_Akt) OR #DVP_Sensoren.Stau_BG3181.Stat.B_Akt) OR #DVP_Sensoren.Stau_BG3481.Stat.B_Akt; + END_REGION + + REGION Starten ist erlaubt + #Start_Ok := (((((((((((((((((((#AB319 = 0) AND NOT (#MB3200)) AND NOT (#MB3201)) AND NOT (#MB3202)) AND NOT (#MB3203)) AND NOT (#MB3204)) AND NOT (#MB3205)) AND NOT (#MB3206)) AND NOT (#MB3482)) AND NOT (#MB3483)) AND NOT (#MB3484)) AND NOT (#MB3485)) AND NOT (#MB3486)) AND NOT (#MB3487)) AND NOT (#MB3490)) AND NOT (#MB3491)) AND NOT (#MB3492)) AND NOT (#MB3493)) AND NOT (#MB3494)) AND NOT (#Stau); + END_REGION + + REGION Störung quittieren UZ7104/7107 + #ErrQuit := #DOutbound_Bereich.A01_UZ7104.StOk_aktiv OR #DOutbound_Bereich.A01_UZ7107.StOk_aktiv; + END_REGION + + REGION VollPuffer 26 + #ErrAnz := FALSE; + #VollPuffer_26(VollPuffer_Nr := 126, ErrQuit := #ErrQuit, B_VollPufferEinfahrt := #BG3023, B_InSchleuse_IN := #BG3046, B_InSchleuse_OUT := #BG3206, B_AusSchleuse_OUT := #BG3183, B_Stau_raus_Out := #DVP_Sensoren.Stau_BG3183.Stat.B_Akt, B_QuerTrolley_Out := #BG3182, Antrieb_plus_aktiv := #MA0147, Schleuse_geöffnet_IN := #MB3046, Schleuse_geöffnet_OUT := #MB3206, Y_Schleuse_Auf_IN := #DVP_Zylinder.Schleuse_Mitte_VP26.Stat.Ast, Y_Schleuse_Auf_OUT := #DVP_Zylinder.Schleuse_Ausfahrt_VP26.Stat.Ast, Error := %DB708.DBW370, Start_Ok := #Start_Ok, Antrieb_plus_start := #DVP_Antriebe.MA0147.Stat.A_vor, Antrieb_plus_stoppen := #DVP_Antriebe.MA0147.Stat.Stop_vor, hStOk := #ErrAnz, Ausfahr_Inks := #DVP_Auslagern.Ausfahren_Ok_B.Dyn.Rest_Inks); + END_REGION + + REGION VollPuffer 27 + #VollPuffer_27(VollPuffer_Nr := 127, ErrQuit := #ErrQuit, B_VollPufferEinfahrt := #BG3022, B_InSchleuse_IN := #BG3045, B_InSchleuse_OUT := #BG3205, B_AusSchleuse_OUT := #BG3183, B_Stau_raus_Out := #DVP_Sensoren.Stau_BG3183.Stat.B_Akt, B_QuerTrolley_Out := #BG3182, Antrieb_plus_aktiv := #MA0147, Schleuse_geöffnet_IN := #MB3045, Schleuse_geöffnet_OUT := #MB3205, Y_Schleuse_Auf_IN := #DVP_Zylinder.Schleuse_Mitte_VP27.Stat.Ast, Y_Schleuse_Auf_OUT := #DVP_Zylinder.Schleuse_Ausfahrt_VP27.Stat.Ast, Error := %DB708.DBW372, Start_Ok := #Start_Ok, Antrieb_plus_start := #DVP_Antriebe.MA0147.Stat.A_vor, Antrieb_plus_stoppen := #DVP_Antriebe.MA0147.Stat.Stop_vor, hStOk := #ErrAnz, Ausfahr_Inks := #DVP_Auslagern.Ausfahren_Ok_B.Dyn.Rest_Inks); + END_REGION + + REGION VollPuffer 28 + #VollPuffer_28(VollPuffer_Nr := 128, ErrQuit := #ErrQuit, B_VollPufferEinfahrt := #BG3021, B_InSchleuse_IN := #BG3044, B_InSchleuse_OUT := #BG3204, B_AusSchleuse_OUT := #BG3183, B_Stau_raus_Out := #DVP_Sensoren.Stau_BG3183.Stat.B_Akt, B_QuerTrolley_Out := #BG3182, Antrieb_plus_aktiv := #MA0147, Schleuse_geöffnet_IN := #MB3044, Schleuse_geöffnet_OUT := #MB3204, Y_Schleuse_Auf_IN := #DVP_Zylinder.Schleuse_Mitte_VP28.Stat.Ast, Y_Schleuse_Auf_OUT := #DVP_Zylinder.Schleuse_Ausfahrt_VP28.Stat.Ast, Error := %DB708.DBW374, Start_Ok := #Start_Ok, Antrieb_plus_start := #DVP_Antriebe.MA0147.Stat.A_vor, Antrieb_plus_stoppen := #DVP_Antriebe.MA0147.Stat.Stop_vor, hStOk := #ErrAnz, Ausfahr_Inks := #DVP_Auslagern.Ausfahren_Ok_B.Dyn.Rest_Inks); + END_REGION + + REGION VollPuffer 29 + #VollPuffer_29(VollPuffer_Nr := 129, ErrQuit := #ErrQuit, B_VollPufferEinfahrt := #BG3020, B_InSchleuse_IN := #BG3043, B_InSchleuse_OUT := #BG3203, B_Stau_raus_Out := #DVP_Sensoren.Stau_BG3183.Stat.B_Akt, B_QuerTrolley_Out := #BG3182, Antrieb_plus_aktiv := #MA0147, Schleuse_geöffnet_IN := #MB3043, Schleuse_geöffnet_OUT := #MB3203, Y_Schleuse_Auf_IN := #DVP_Zylinder.Schleuse_Mitte_VP29.Stat.Ast, Y_Schleuse_Auf_OUT := #DVP_Zylinder.Schleuse_Ausfahrt_VP29.Stat.Ast, Error := %DB708.DBW376, Start_Ok := #Start_Ok, Antrieb_plus_start := #DVP_Antriebe.MA0147.Stat.A_vor, Antrieb_plus_stoppen := #DVP_Antriebe.MA0147.Stat.Stop_vor, hStOk := #ErrAnz, Ausfahr_Inks := #DVP_Auslagern.Ausfahren_Ok_B.Dyn.Rest_Inks); + END_REGION + + REGION VollPuffer 30 + #VollPuffer_30(VollPuffer_Nr := 130, ErrQuit := #ErrQuit, B_VollPufferEinfahrt := #BG3017, B_InSchleuse_IN := #BG3042, B_InSchleuse_OUT := #BG3202, B_Stau_raus_Out := #DVP_Sensoren.Stau_BG3183.Stat.B_Akt, B_QuerTrolley_Out := #BG3182, Antrieb_plus_aktiv := #MA0147, Schleuse_geöffnet_IN := #MB3042, Schleuse_geöffnet_OUT := #MB3202, Y_Schleuse_Auf_IN := #DVP_Zylinder.Schleuse_Mitte_VP30.Stat.Ast, Y_Schleuse_Auf_OUT := #DVP_Zylinder.Schleuse_Ausfahrt_VP30.Stat.Ast, Error := %DB708.DBW378, Start_Ok := #Start_Ok, Antrieb_plus_start := #DVP_Antriebe.MA0147.Stat.A_vor, Antrieb_plus_stoppen := #DVP_Antriebe.MA0147.Stat.Stop_vor, hStOk := #ErrAnz, Ausfahr_Inks := #DVP_Auslagern.Ausfahren_Ok_B.Dyn.Rest_Inks); + END_REGION + + REGION VollPuffer 31 + #VollPuffer_31(VollPuffer_Nr := 131, ErrQuit := #ErrQuit, B_VollPufferEinfahrt := #BG3016, B_InSchleuse_IN := #BG3041, B_InSchleuse_OUT := #BG3201, B_Stau_raus_Out := #DVP_Sensoren.Stau_BG3183.Stat.B_Akt, B_QuerTrolley_Out := #BG3182, Antrieb_plus_aktiv := #MA0147, Schleuse_geöffnet_IN := #MB3041, Schleuse_geöffnet_OUT := #MB3201, Y_Schleuse_Auf_IN := #DVP_Zylinder.Schleuse_Mitte_VP31.Stat.Ast, Y_Schleuse_Auf_OUT := #DVP_Zylinder.Schleuse_Ausfahrt_VP31.Stat.Ast, Error := %DB708.DBW380, Start_Ok := #Start_Ok, Antrieb_plus_start := #DVP_Antriebe.MA0147.Stat.A_vor, Antrieb_plus_stoppen := #DVP_Antriebe.MA0147.Stat.Stop_vor, hStOk := #ErrAnz, Ausfahr_Inks := #DVP_Auslagern.Ausfahren_Ok_B.Dyn.Rest_Inks); + END_REGION + + REGION VollPuffer 32 + #VollPuffer_32(VollPuffer_Nr := 132, ErrQuit := #ErrQuit, B_VollPufferEinfahrt := #BG3015, B_InSchleuse_IN := #BG3040, B_InSchleuse_OUT := #BG3200, B_Stau_raus_Out := #DVP_Sensoren.Stau_BG3182.Stat.B_Akt, B_QuerTrolley_Out := #BG3181, Antrieb_plus_aktiv := #MA0147, Schleuse_geöffnet_IN := #MB3040, Schleuse_geöffnet_OUT := #MB3200, Y_Schleuse_Auf_IN := #DVP_Zylinder.Schleuse_Mitte_VP32.Stat.Ast, Y_Schleuse_Auf_OUT := #DVP_Zylinder.Schleuse_Ausfahrt_VP32.Stat.Ast, Error := %DB708.DBW382, Start_Ok := #Start_Ok, Antrieb_plus_start := #DVP_Antriebe.MA0147.Stat.A_vor, Antrieb_plus_stoppen := #DVP_Antriebe.MA0147.Stat.Stop_vor, hStOk := #ErrAnz, Ausfahr_Inks := #DVP_Auslagern.Ausfahren_Ok_B.Dyn.Rest_Inks); + END_REGION + + REGION VollPuffer 33 + #VollPuffer_33(VollPuffer_Nr := 133, ErrQuit := #ErrQuit, B_VollPufferEinfahrt := #BG3014, B_InSchleuse_IN := #BG3037, B_InSchleuse_OUT := #BG3197, B_AusSchleuse_OUT := #BG3182, B_Stau_raus_Out := #DVP_Sensoren.Stau_BG3182.Stat.B_Akt, B_QuerTrolley_Out := #BG3181, Antrieb_plus_aktiv := #MA0147, Schleuse_geöffnet_IN := #MB3037, Schleuse_geöffnet_OUT := #MB3197, Y_Schleuse_Auf_IN := #DVP_Zylinder.Schleuse_Mitte_VP33.Stat.Ast, Y_Schleuse_Auf_OUT := #DVP_Zylinder.Schleuse_Ausfahrt_VP33.Stat.Ast, Error := %DB708.DBW384, Start_Ok := #Start_Ok, Antrieb_plus_start := #DVP_Antriebe.MA0147.Stat.A_vor, Antrieb_plus_stoppen := #DVP_Antriebe.MA0147.Stat.Stop_vor, hStOk := #ErrAnz, Ausfahr_Inks := #DVP_Auslagern.Ausfahren_Ok_B.Dyn.Rest_Inks); + END_REGION + + REGION VollPuffer 34 + #VollPuffer_34(VollPuffer_Nr := 134, ErrQuit := #ErrQuit, B_VollPufferEinfahrt := #BG3013, B_InSchleuse_IN := #BG3036, B_InSchleuse_OUT := #BG3196, B_AusSchleuse_OUT := #BG3182, B_Stau_raus_Out := #DVP_Sensoren.Stau_BG3182.Stat.B_Akt, B_QuerTrolley_Out := #BG3181, Antrieb_plus_aktiv := #MA0147, Schleuse_geöffnet_IN := #MB3036, Schleuse_geöffnet_OUT := #MB3196, Y_Schleuse_Auf_IN := #DVP_Zylinder.Schleuse_Mitte_VP34.Stat.Ast, Y_Schleuse_Auf_OUT := #DVP_Zylinder.Schleuse_Ausfahrt_VP34.Stat.Ast, Error := %DB708.DBW386, Start_Ok := #Start_Ok, Antrieb_plus_start := #DVP_Antriebe.MA0147.Stat.A_vor, Antrieb_plus_stoppen := #DVP_Antriebe.MA0147.Stat.Stop_vor, hStOk := #ErrAnz, Ausfahr_Inks := #DVP_Auslagern.Ausfahren_Ok_B.Dyn.Rest_Inks); + END_REGION + + REGION VollPuffer 35 + #VollPuffer_35(VollPuffer_Nr := 135, ErrQuit := #ErrQuit, B_VollPufferEinfahrt := #BG3012, B_InSchleuse_IN := #BG3035, B_InSchleuse_OUT := #BG3195, B_Stau_raus_Out := #DVP_Sensoren.Stau_BG3182.Stat.B_Akt, B_QuerTrolley_Out := #BG3181, Antrieb_plus_aktiv := #MA0147, Schleuse_geöffnet_IN := #MB3035, Schleuse_geöffnet_OUT := #MB3195, Y_Schleuse_Auf_IN := #DVP_Zylinder.Schleuse_Mitte_VP35.Stat.Ast, Y_Schleuse_Auf_OUT := #DVP_Zylinder.Schleuse_Ausfahrt_VP35.Stat.Ast, Error := %DB708.DBW388, Start_Ok := #Start_Ok, Antrieb_plus_start := #DVP_Antriebe.MA0147.Stat.A_vor, Antrieb_plus_stoppen := #DVP_Antriebe.MA0147.Stat.Stop_vor, hStOk := #ErrAnz, Ausfahr_Inks := #DVP_Auslagern.Ausfahren_Ok_B.Dyn.Rest_Inks); + END_REGION + + REGION VollPuffer 36 + #VollPuffer_36(VollPuffer_Nr := 136, ErrQuit := #ErrQuit, B_VollPufferEinfahrt := #BG3011, B_InSchleuse_IN := #BG3034, B_InSchleuse_OUT := #BG3194, B_Stau_raus_Out := #DVP_Sensoren.Stau_BG3182.Stat.B_Akt, B_QuerTrolley_Out := #BG3181, Antrieb_plus_aktiv := #MA0147, Schleuse_geöffnet_IN := #MB3034, Schleuse_geöffnet_OUT := #MB3194, Y_Schleuse_Auf_IN := #DVP_Zylinder.Schleuse_Mitte_VP36.Stat.Ast, Y_Schleuse_Auf_OUT := #DVP_Zylinder.Schleuse_Ausfahrt_VP36.Stat.Ast, Error := %DB708.DBW390, Start_Ok := #Start_Ok, Antrieb_plus_start := #DVP_Antriebe.MA0147.Stat.A_vor, Antrieb_plus_stoppen := #DVP_Antriebe.MA0147.Stat.Stop_vor, hStOk := #ErrAnz, Ausfahr_Inks := #DVP_Auslagern.Ausfahren_Ok_B.Dyn.Rest_Inks); + END_REGION + + REGION VollPuffer 37 + #VollPuffer_37(VollPuffer_Nr := 137, ErrQuit := #ErrQuit, B_VollPufferEinfahrt := #BG3010, B_InSchleuse_IN := #BG3033, B_InSchleuse_OUT := #BG3193, B_Stau_raus_Out := #DVP_Sensoren.Stau_BG3182.Stat.B_Akt, B_QuerTrolley_Out := #BG3181, Antrieb_plus_aktiv := #MA0147, Schleuse_geöffnet_IN := #MB3033, Schleuse_geöffnet_OUT := #MB3193, Y_Schleuse_Auf_IN := #DVP_Zylinder.Schleuse_Mitte_VP37.Stat.Ast, Y_Schleuse_Auf_OUT := #DVP_Zylinder.Schleuse_Ausfahrt_VP37.Stat.Ast, Error := %DB708.DBW392, Start_Ok := #Start_Ok, Antrieb_plus_start := #DVP_Antriebe.MA0147.Stat.A_vor, Antrieb_plus_stoppen := #DVP_Antriebe.MA0147.Stat.Stop_vor, hStOk := #ErrAnz, Ausfahr_Inks := #DVP_Auslagern.Ausfahren_Ok_B.Dyn.Rest_Inks); + END_REGION + + REGION VollPuffer 38 + #VollPuffer_38(VollPuffer_Nr := 138, ErrQuit := #ErrQuit, B_VollPufferEinfahrt := #BG3007, B_InSchleuse_IN := #BG3032, B_InSchleuse_OUT := #BG3192, B_Stau_raus_Out := #DVP_Sensoren.Stau_BG3182.Stat.B_Akt, B_QuerTrolley_Out := #BG3181, Antrieb_plus_aktiv := #MA0147, Schleuse_geöffnet_IN := #MB3032, Schleuse_geöffnet_OUT := #MB3192, Y_Schleuse_Auf_IN := #DVP_Zylinder.Schleuse_Mitte_VP38.Stat.Ast, Y_Schleuse_Auf_OUT := #DVP_Zylinder.Schleuse_Ausfahrt_VP38.Stat.Ast, Error := %DB708.DBW394, Start_Ok := #Start_Ok, Antrieb_plus_start := #DVP_Antriebe.MA0147.Stat.A_vor, Antrieb_plus_stoppen := #DVP_Antriebe.MA0147.Stat.Stop_vor, hStOk := #ErrAnz, Ausfahr_Inks := #DVP_Auslagern.Ausfahren_Ok_B.Dyn.Rest_Inks); + END_REGION + + REGION VollPuffer 39 + #VollPuffer_39(VollPuffer_Nr := 139, ErrQuit := #ErrQuit, B_VollPufferEinfahrt := #BG3006, B_InSchleuse_IN := #BG3031, B_InSchleuse_OUT := #BG3191, B_AusSchleuse_OUT := #BG3181, B_Stau_raus_Out := #DVP_Sensoren.Stau_BG3181.Stat.B_Akt, B_QuerTrolley_Out := #BG3481, Antrieb_plus_aktiv := #MA0147, Schleuse_geöffnet_IN := #MB3031, Schleuse_geöffnet_OUT := #MB3191, Y_Schleuse_Auf_IN := #DVP_Zylinder.Schleuse_Mitte_VP39.Stat.Ast, Y_Schleuse_Auf_OUT := #DVP_Zylinder.Schleuse_Ausfahrt_VP39.Stat.Ast, Error := %DB708.DBW396, Start_Ok := #Start_Ok, Antrieb_plus_start := #DVP_Antriebe.MA0147.Stat.A_vor, Antrieb_plus_stoppen := #DVP_Antriebe.MA0147.Stat.Stop_vor, hStOk := #ErrAnz, Ausfahr_Inks := #DVP_Auslagern.Ausfahren_Ok_B.Dyn.Rest_Inks); + END_REGION + + REGION VollPuffer 40 + #VollPuffer_40(VollPuffer_Nr := 140, ErrQuit := #ErrQuit, B_VollPufferEinfahrt := #BG3005, B_InSchleuse_IN := #BG3030, B_InSchleuse_OUT := #BG3190, B_AusSchleuse_OUT := #BG3181, B_Stau_raus_Out := #DVP_Sensoren.Stau_BG3181.Stat.B_Akt, B_QuerTrolley_Out := #BG3481, Antrieb_plus_aktiv := #MA0147, Schleuse_geöffnet_IN := #MB3030, Schleuse_geöffnet_OUT := #MB3190, Y_Schleuse_Auf_IN := #DVP_Zylinder.Schleuse_Mitte_VP40.Stat.Ast, Y_Schleuse_Auf_OUT := #DVP_Zylinder.Schleuse_Ausfahrt_VP40.Stat.Ast, Error := %DB708.DBW398, Start_Ok := #Start_Ok, Antrieb_plus_start := #DVP_Antriebe.MA0147.Stat.A_vor, Antrieb_plus_stoppen := #DVP_Antriebe.MA0147.Stat.Stop_vor, hStOk := #ErrAnz, Ausfahr_Inks := #DVP_Auslagern.Ausfahren_Ok_B.Dyn.Rest_Inks); + END_REGION + + REGION VollPuffer 41 + #VollPuffer_41(VollPuffer_Nr := 141, ErrQuit := #ErrQuit, B_VollPufferEinfahrt := #BG3435, B_InSchleuse_IN := #BG3462, B_InSchleuse_OUT := #BG3494, B_AusSchleuse_OUT := #BG3181, B_Stau_raus_Out := #DVP_Sensoren.Stau_BG3181.Stat.B_Akt, B_QuerTrolley_Out := #BG3481, Antrieb_plus_aktiv := #MA0147, Schleuse_geöffnet_IN := #MB3462, Schleuse_geöffnet_OUT := #MB3494, Y_Schleuse_Auf_IN := #DVP_Zylinder.Schleuse_Mitte_VP41.Stat.Ast, Y_Schleuse_Auf_OUT := #DVP_Zylinder.Schleuse_Ausfahrt_VP41.Stat.Ast, Error := %DB708.DBW400, Start_Ok := #Start_Ok, Antrieb_plus_start := #DVP_Antriebe.MA0147.Stat.A_vor, Antrieb_plus_stoppen := #DVP_Antriebe.MA0147.Stat.Stop_vor, hStOk := #ErrAnz, Ausfahr_Inks := #DVP_Auslagern.Ausfahren_Ok_B.Dyn.Rest_Inks); + END_REGION + + REGION VollPuffer 42 + #VollPuffer_42(VollPuffer_Nr := 142, ErrQuit := #ErrQuit, B_VollPufferEinfahrt := #BG3434, B_InSchleuse_IN := #BG3461, B_InSchleuse_OUT := #BG3493, B_Stau_raus_Out := #DVP_Sensoren.Stau_BG3181.Stat.B_Akt, B_QuerTrolley_Out := #BG3481, Antrieb_plus_aktiv := #MA0147, Schleuse_geöffnet_IN := #MB3461, Schleuse_geöffnet_OUT := #MB3493, Y_Schleuse_Auf_IN := #DVP_Zylinder.Schleuse_Mitte_VP42.Stat.Ast, Y_Schleuse_Auf_OUT := #DVP_Zylinder.Schleuse_Ausfahrt_VP42.Stat.Ast, Error := %DB708.DBW402, Start_Ok := #Start_Ok, Antrieb_plus_start := #DVP_Antriebe.MA0147.Stat.A_vor, Antrieb_plus_stoppen := #DVP_Antriebe.MA0147.Stat.Stop_vor, hStOk := #ErrAnz, Ausfahr_Inks := #DVP_Auslagern.Ausfahren_Ok_B.Dyn.Rest_Inks); + END_REGION + + REGION VollPuffer 43 + #VollPuffer_43(VollPuffer_Nr := 143, ErrQuit := #ErrQuit, B_VollPufferEinfahrt := #BG3433, B_InSchleuse_IN := #BG3460, B_InSchleuse_OUT := #BG3492, B_Stau_raus_Out := #DVP_Sensoren.Stau_BG3181.Stat.B_Akt, B_QuerTrolley_Out := #BG3481, Antrieb_plus_aktiv := #MA0147, Schleuse_geöffnet_IN := #MB3460, Schleuse_geöffnet_OUT := #MB3492, Y_Schleuse_Auf_IN := #DVP_Zylinder.Schleuse_Mitte_VP43.Stat.Ast, Y_Schleuse_Auf_OUT := #DVP_Zylinder.Schleuse_Ausfahrt_VP43.Stat.Ast, Error := %DB708.DBW404, Start_Ok := #Start_Ok, Antrieb_plus_start := #DVP_Antriebe.MA0147.Stat.A_vor, Antrieb_plus_stoppen := #DVP_Antriebe.MA0147.Stat.Stop_vor, hStOk := #ErrAnz, Ausfahr_Inks := #DVP_Auslagern.Ausfahren_Ok_B.Dyn.Rest_Inks); + END_REGION + + REGION VollPuffer 44 + #VollPuffer_44(VollPuffer_Nr := 144, ErrQuit := #ErrQuit, B_VollPufferEinfahrt := #BG3432, B_InSchleuse_IN := #BG3457, B_InSchleuse_OUT := #BG3491, B_Stau_raus_Out := #DVP_Sensoren.Stau_BG3181.Stat.B_Akt, B_QuerTrolley_Out := #BG3481, Antrieb_plus_aktiv := #MA0147, Schleuse_geöffnet_IN := #MB3457, Schleuse_geöffnet_OUT := #MB3491, Y_Schleuse_Auf_IN := #DVP_Zylinder.Schleuse_Mitte_VP44.Stat.Ast, Y_Schleuse_Auf_OUT := #DVP_Zylinder.Schleuse_Ausfahrt_VP44.Stat.Ast, Error := %DB708.DBW406, Start_Ok := #Start_Ok, Antrieb_plus_start := #DVP_Antriebe.MA0147.Stat.A_vor, Antrieb_plus_stoppen := #DVP_Antriebe.MA0147.Stat.Stop_vor, hStOk := #ErrAnz, Ausfahr_Inks := #DVP_Auslagern.Ausfahren_Ok_B.Dyn.Rest_Inks); + END_REGION + + REGION VollPuffer 45 + #VollPuffer_45(VollPuffer_Nr := 145, ErrQuit := #ErrQuit, B_VollPufferEinfahrt := #BG3431, B_InSchleuse_IN := #BG3456, B_InSchleuse_OUT := #BG3490, B_Stau_raus_Out := #DVP_Sensoren.Stau_BG3481.Stat.B_Akt, Antrieb_plus_aktiv := #MA0147, Schleuse_geöffnet_IN := #MB3456, Schleuse_geöffnet_OUT := #MB3490, Y_Schleuse_Auf_IN := #DVP_Zylinder.Schleuse_Mitte_VP45.Stat.Ast, Y_Schleuse_Auf_OUT := #DVP_Zylinder.Schleuse_Ausfahrt_VP45.Stat.Ast, Error := %DB708.DBW408, Start_Ok := #Start_Ok, Antrieb_plus_start := #DVP_Antriebe.MA0147.Stat.A_vor, Antrieb_plus_stoppen := #DVP_Antriebe.MA0147.Stat.Stop_vor, hStOk := #ErrAnz, Ausfahr_Inks := #DVP_Auslagern.Ausfahren_Ok_B.Dyn.Rest_Inks); + END_REGION + + REGION VollPuffer 46 + #VollPuffer_46(VollPuffer_Nr := 146, ErrQuit := #ErrQuit, B_VollPufferEinfahrt := #BG3430, B_InSchleuse_IN := #BG3455, B_InSchleuse_OUT := #BG3487, B_AusSchleuse_OUT := #BG3481, B_Stau_raus_Out := #DVP_Sensoren.Stau_BG3481.Stat.B_Akt, Antrieb_plus_aktiv := #MA0147, Schleuse_geöffnet_IN := #MB3455, Schleuse_geöffnet_OUT := #MB3487, Y_Schleuse_Auf_IN := #DVP_Zylinder.Schleuse_Mitte_VP46.Stat.Ast, Y_Schleuse_Auf_OUT := #DVP_Zylinder.Schleuse_Ausfahrt_VP46.Stat.Ast, Error := %DB708.DBW410, Start_Ok := #Start_Ok, Antrieb_plus_start := #DVP_Antriebe.MA0147.Stat.A_vor, Antrieb_plus_stoppen := #DVP_Antriebe.MA0147.Stat.Stop_vor, hStOk := #ErrAnz, Ausfahr_Inks := #DVP_Auslagern.Ausfahren_Ok_B.Dyn.Rest_Inks); + END_REGION + + REGION VollPuffer 47 + #VollPuffer_47(VollPuffer_Nr := 147, ErrQuit := #ErrQuit, B_VollPufferEinfahrt := #BG3427, B_InSchleuse_IN := #BG3454, B_InSchleuse_OUT := #BG3486, B_AusSchleuse_OUT := #BG3481, B_Stau_raus_Out := #DVP_Sensoren.Stau_BG3481.Stat.B_Akt, Antrieb_plus_aktiv := #MA0147, Schleuse_geöffnet_IN := #MB3454, Schleuse_geöffnet_OUT := #MB3486, Y_Schleuse_Auf_IN := #DVP_Zylinder.Schleuse_Mitte_VP47.Stat.Ast, Y_Schleuse_Auf_OUT := #DVP_Zylinder.Schleuse_Ausfahrt_VP47.Stat.Ast, Error := %DB708.DBW412, Start_Ok := #Start_Ok, Antrieb_plus_start := #DVP_Antriebe.MA0147.Stat.A_vor, Antrieb_plus_stoppen := #DVP_Antriebe.MA0147.Stat.Stop_vor, hStOk := #ErrAnz, Ausfahr_Inks := #DVP_Auslagern.Ausfahren_Ok_B.Dyn.Rest_Inks); + END_REGION + + REGION VollPuffer 48 + #VollPuffer_48(VollPuffer_Nr := 148, ErrQuit := #ErrQuit, B_VollPufferEinfahrt := #BG3426, B_InSchleuse_IN := #BG3453, B_InSchleuse_OUT := #BG3485, B_Stau_raus_Out := #DVP_Sensoren.Stau_BG3481.Stat.B_Akt, Antrieb_plus_aktiv := #MA0147, Schleuse_geöffnet_IN := #MB3453, Schleuse_geöffnet_OUT := #MB3485, Y_Schleuse_Auf_IN := #DVP_Zylinder.Schleuse_Mitte_VP48.Stat.Ast, Y_Schleuse_Auf_OUT := #DVP_Zylinder.Schleuse_Ausfahrt_VP48.Stat.Ast, Error := %DB708.DBW414, Start_Ok := #Start_Ok, Antrieb_plus_start := #DVP_Antriebe.MA0147.Stat.A_vor, Antrieb_plus_stoppen := #DVP_Antriebe.MA0147.Stat.Stop_vor, hStOk := #ErrAnz, Ausfahr_Inks := #DVP_Auslagern.Ausfahren_Ok_B.Dyn.Rest_Inks); + END_REGION + + REGION VollPuffer 49 + #VollPuffer_49(VollPuffer_Nr := 149, ErrQuit := #ErrQuit, B_VollPufferEinfahrt := #BG3425, B_InSchleuse_IN := #BG3452, B_InSchleuse_OUT := #BG3484, B_Stau_raus_Out := #DVP_Sensoren.Stau_BG3481.Stat.B_Akt, Antrieb_plus_aktiv := #MA0147, Schleuse_geöffnet_IN := #MB3452, Schleuse_geöffnet_OUT := #MB3484, Y_Schleuse_Auf_IN := #DVP_Zylinder.Schleuse_Mitte_VP49.Stat.Ast, Y_Schleuse_Auf_OUT := #DVP_Zylinder.Schleuse_Ausfahrt_VP49.Stat.Ast, Error := %DB708.DBW416, Start_Ok := #Start_Ok, Antrieb_plus_start := #DVP_Antriebe.MA0147.Stat.A_vor, Antrieb_plus_stoppen := #DVP_Antriebe.MA0147.Stat.Stop_vor, hStOk := #ErrAnz, Ausfahr_Inks := #DVP_Auslagern.Ausfahren_Ok_B.Dyn.Rest_Inks); + END_REGION + + REGION VollPuffer 50 + #VollPuffer_50(VollPuffer_Nr := 150, ErrQuit := #ErrQuit, B_VollPufferEinfahrt := #BG3424, B_InSchleuse_IN := #BG3451, B_InSchleuse_OUT := #BG3483, B_Stau_raus_Out := #DVP_Sensoren.Stau_BG3481.Stat.B_Akt, Antrieb_plus_aktiv := #MA0147, Schleuse_geöffnet_IN := #MB3451, Schleuse_geöffnet_OUT := #MB3483, Y_Schleuse_Auf_IN := #DVP_Zylinder.Schleuse_Mitte_VP50.Stat.Ast, Y_Schleuse_Auf_OUT := #DVP_Zylinder.Schleuse_Ausfahrt_VP50.Stat.Ast, Error := %DB708.DBW418, Start_Ok := #Start_Ok, Antrieb_plus_start := #DVP_Antriebe.MA0147.Stat.A_vor, Antrieb_plus_stoppen := #DVP_Antriebe.MA0147.Stat.Stop_vor, hStOk := #ErrAnz, Ausfahr_Inks := #DVP_Auslagern.Ausfahren_Ok_B.Dyn.Rest_Inks); + END_REGION + + REGION VollPuffer 51 + IF #BG3482 THEN #VollPuffer_51.Status2.Alles_ausfahren_OUT := TRUE; END_IF; + #VollPuffer_51(VollPuffer_Nr := 151, ErrQuit := #ErrQuit, B_VollPufferEinfahrt := #BG3423, B_InSchleuse_IN := #BG3450, B_InSchleuse_OUT := #BG3482, B_Stau_raus_Out := #DVP_Sensoren.Stau_BG3481.Stat.B_Akt, Antrieb_plus_aktiv := #MA0147, Schleuse_geöffnet_IN := #MB3450, Schleuse_geöffnet_OUT := #MB3482, Y_Schleuse_Auf_IN := #DVP_Zylinder.Schleuse_Mitte_VP51.Stat.Ast, Y_Schleuse_Auf_OUT := #DVP_Zylinder.Schleuse_Ausfahrt_VP51.Stat.Ast, Error := %DB708.DBW420, Start_Ok := #Start_Ok, Antrieb_plus_start := #DVP_Antriebe.MA0147.Stat.A_vor, Antrieb_plus_stoppen := #DVP_Antriebe.MA0147.Stat.Stop_vor, hStOk := #ErrAnz, Ausfahr_Inks := #DVP_Auslagern.Ausfahren_Ok_B.Dyn.Rest_Inks); + END_REGION + + REGION Störungen anzeigen UZ7104/7107 + IF #ErrAnz THEN + #DOutbound_Bereich.A01_UZ7104.StOk_blinken := TRUE; + #DOutbound_Bereich.A01_UZ7107.StOk_blinken := TRUE; + END_IF; + END_REGION + + REGION AusVollPuffer-Simulation A+B + IF NOT (#SGes.Ohne_PC_Fahren) THEN RETURN; END_IF; + "Simulation_Aus_VP_Trolley_starten"(); // Ausfahren mit 3s Stau-Sensor + END_REGION + + REGION Ende + RETURN; + END_REGION + +END_FUNCTION_BLOCK