=== FB 2128: VPtoEP_OmniFahren  [STL] ===
INTERFACE:
  Input:
  Output:
  InOut:
  Static:
    Schleuse_3247 : "MHMOmniSchleuse_Plus"
    Schleuse_3275 : "MHMOmniSchleuse"
    Bereich_3361 : "MHMOmniBereich_Plus"
    Schleuse_3363 : "MHMOmniSchleuse"
    Schleuse_3366 : "MHMOmniSchleuse"
    Bereich_4441 : "MHMOmniBereich_Plus"
    Schleuse_4443 : "MHMOmniSchleuse_Plus"
    Weiche_4445 : "MHMOmniWeiche_Plus"
    Schleuse_4450 : "MHMOmniSchleuse_Plus"
    Bereich_4454 : "MHMOmniBereich_Plus"
    Übergang_4501 : "MHMÜbergang_ohne_Schleuse"
  Temp:
    ErrQuit : Bool
    ErrAnz : Bool
    Stau_raus : Bool
    Start_ok : Bool
    B_aktiv : Bool
    B_vor_Schleuse : Bool
    B_nach_Schleuse : Bool
    Antrieb_aktiv : Bool
    Antrieb_vor : Bool
    Antrieb_stop : Bool
    Fahren_Ok : Bool
    Antrieb_nicht_stoppen : Bool
  Constant:

--- NW 1: Systemzeug ---
// Verschiedene Bereiche:
      A      "DOutbound_Bereich".A01_UH07.AnlageEin
      =      Schleuse_3247.Dyn.Sk.Auto_akt
      =      Schleuse_3275.Dyn.Sk.Auto_akt
      =      Bereich_3361.Dyn.Sk.Auto_akt
      =      Schleuse_3363.Dyn.Sk.Auto_akt
      =      Schleuse_3366.Dyn.Sk.Auto_akt
      =      Bereich_4441.Dyn.Sk.Auto_akt
      =      Schleuse_4443.Dyn.Sk.Auto_akt
      =      Weiche_4445.Dyn.Status.Auto_akt
      =      Schleuse_4450.Dyn.Sk.Auto_akt
      =      Bereich_4454.Dyn.Sk.Auto_akt

      AN     "DOutbound_Bereich".A01_UC071.BereichErr
      =      Schleuse_3247.Dyn.Sk.Bereich_ok
      =      Schleuse_3275.Dyn.Sk.Bereich_ok
      AN     "DOutbound_Bereich".A01_UH07.BereichErr
      =      Bereich_3361.Dyn.Sk.Bereich_ok
      =      Schleuse_3363.Dyn.Sk.Bereich_ok
      =      Schleuse_3366.Dyn.Sk.Bereich_ok
      AN     "DOutbound_Bereich".A01_UC074.BereichErr
      =      Bereich_4441.Dyn.Sk.Bereich_ok
      =      Schleuse_4443.Dyn.Sk.Bereich_ok
      =      Weiche_4445.Dyn.Status.Bereich_ok
      =      Schleuse_4450.Dyn.Sk.Bereich_ok
      =      Bereich_4454.Dyn.Sk.Bereich_ok


--- NW 2: Störungen quittieren UZ7105 ---
      A      "DOutbound_Bereich".A01_UZ7105.StOk_aktiv
      O      "DOutbound_Bereich".A01_UC071.StOk_aktiv
      O      "DOutbound_Bereich".A01_UH07.StOk_aktiv
      =      ErrQuit


--- NW 3: Schleuse 3247 ---
CALL FB "None" ,  (Schleusen_Nr:=3247, ErrQuit:=ErrQuit, B_VorSchleuse:="BG3246", B_InSchleuse:="BG3247", B_Zähl:="BG3251", B_Stau_raus:="DVPtoEP_Sensoren".Stau_BG3251.Stat.B_Akt, Start_Ok:=1, Antrieb_Schleuse_aktiv:="MA0151", Antrieb_plus_aktiv:="MA0151", Schleuse_geöffnet:="MB3247", RestZeit_Bereich_plus:=?, Y_Schleuse_Auf:="DVPtoEP_Zylinder".Schleuse_3247.Stat.Ast, Error:=DB708.DBW520, Antrieb_Schleuse_vor:="DVPtoEP_Antriebe".MA0151.Stat.A_vor, Antrieb_Schleuse_start:="DVPtoEP_Antriebe".MA0151.Stat.A_start, Antrieb_Schleuse_stop:="DVPtoEP_Antriebe".MA0151.Stat.Stop_vor, Antrieb_Schleuse_PS:="DVPtoEP_Antriebe".MA0151.Stat.A_PS, Antrieb_plus_vor:=?, Antrieb_plus_start:=?, hStOk:=ErrAnz)   // Identisch


--- NW 4: Schleuse 3275 ---
CALL FB "None" ,  (Schleusen_Nr:=3275, ErrQuit:=ErrQuit, B_VorSchleuse:="BG3251", B_InSchleuse:="BG3275", B_AusSchleuse:="BG3274", B_Stau_raus:="DVPtoEP_Sensoren".Stau_BG3274.Stat.B_Akt, Start_Ok:=Bereich_3361.Dyn.Sk.Bereich_ok, Antrieb_Schleuse_aktiv:="MA0151", Antrieb_plus_aktiv:="MA0060", Schleuse_geöffnet:="MB3275", RestZeit_Bereich_plus:=Bereich_3361.Dyn.Restzeit, Y_Schleuse_Auf:="DVPtoEP_Zylinder".Schleuse_3275.Stat.Ast, Error:=DB708.DBW570, Antrieb_Schleuse_vor:="DVPtoEP_Antriebe".MA0151.Stat.A_vor, Antrieb_Schleuse_start:="DVPtoEP_Antriebe".MA0151.Stat.A_start, Antrieb_Schleuse_stop:="DVPtoEP_Antriebe".MA0151.Stat.Stop_vor, Antrieb_Schleuse_PS:="DVPtoEP_Antriebe".MA0151.Stat.A_PS, Antrieb_plus_vor:=Bereich_3361.Dyn.Status.Trolley_kommt_in_Bereich, Antrieb_plus_start:=?, hStOk:=ErrAnz)


--- NW 5: Störungen anzeigen UZ7105 ---
      A      ErrAnz
      R      ErrAnz
      S      "DOutbound_Bereich".A01_UZ7105.StOk_blinken
      S      "DOutbound_Bereich".A01_UC071.StOk_blinken
      S      "DOutbound_Bereich".A01_UH07.StOk_blinken


--- NW 6: Störungen quittieren UZ7105/0701 ---
      A      "DOutbound_Bereich".A01_UZ7105.StOk_aktiv
      O      "DOutbound_Bereich".A01_UZ0701.StOk_aktiv
      O      "DOutbound_Bereich".A01_UC071.StOk_aktiv
      O      "DOutbound_Bereich".A01_UH07.StOk_aktiv
      =      ErrQuit


--- NW 7: Bereich 3361 ---
      A      "BG3274"
      A      "MB3275"
      =      B_vor_Schleuse

CALL FB "None" ,  (Bereichs_Nr:=3361, ErrQuit:=ErrQuit, B_BereichsAnfang:=B_vor_Schleuse, B_BereichsEnde:="BG3361", B_Zähl:="BG3362", B_Stau_raus:="DVPtoEP_Sensoren".Stau_BG3362.Stat.B_Akt, Start_Ok:=1, Antrieb_Bereich_aktiv:="MA0060", Antrieb_plus_aktiv:="MA0061", RestZeit_Bereich_plus:=?, Antrieb_Bereich_vor:="DVPtoEP_Antriebe".MA0060.Stat.A_vor, Antrieb_Bereich_stop:="DVPtoEP_Antriebe".MA0060.Stat.Stop_vor, Error:=DB708.DBW454, Antrieb_Bereich_start:="DVPtoEP_Antriebe".MA0060.Stat.A_start, Antrieb_plus_vor:="DVPtoEP_Antriebe".MA0061.Stat.A_vor, Antrieb_plus_start:="DVPtoEP_Antriebe".MA0061.Stat.A_start, Antrieb_minus_vor:="DVPtoEP_Antriebe".MA0151.Stat.A_vor, hStOk:=ErrAnz)


--- NW 8: Störungen anzeigen UZ7105/0701 ---
      A      ErrAnz
      R      ErrAnz
      S      "DOutbound_Bereich".A01_UZ7105.StOk_blinken
      S      "DOutbound_Bereich".A01_UZ0701.StOk_blinken
      S      "DOutbound_Bereich".A01_UC071.StOk_blinken
      S      "DOutbound_Bereich".A01_UH07.StOk_blinken


--- NW 9: Störungen quittieren UZ0701 ---
      A      "DOutbound_Bereich".A01_UZ0701.StOk_aktiv
      O      "DOutbound_Bereich".A01_UH07.StOk_aktiv
      =      ErrQuit


--- NW 10: Schleuse 3363 ---
CALL FB "None" ,  (Schleusen_Nr:=3363, ErrQuit:=ErrQuit, B_VorSchleuse:="BG3362", B_InSchleuse:="BG3363", B_AusSchleuse:="BG3364", B_Stau_raus:="DVPtoEP_Sensoren".Stau_BG3364.Stat.B_Akt, Start_Ok:=1, Antrieb_Schleuse_aktiv:="MA0061", Antrieb_plus_aktiv:="MA0061", Schleuse_geöffnet:="MB3363", RestZeit_Bereich_plus:=?, Y_Schleuse_Auf:="DVPtoEP_Zylinder".Schleuse_3363.Stat.Ast, Error:=DB708.DBW528, Antrieb_Schleuse_vor:="DVPtoEP_Antriebe".MA0061.Stat.A_vor, Antrieb_Schleuse_start:="DVPtoEP_Antriebe".MA0061.Stat.A_start, Antrieb_Schleuse_stop:="DVPtoEP_Antriebe".MA0061.Stat.Stop_vor, Antrieb_Schleuse_PS:="DVPtoEP_Antriebe".MA0061.Stat.A_PS, Antrieb_plus_vor:=?, Antrieb_plus_start:=?, hStOk:=ErrAnz)   // Identisch



--- NW 11: Schleuse 3366 (vor BST 1) ---
      AN     "7_HMI_Err_UH07_OB".System.Gesamt_Feueralarm_Halle3
      AN     "7_HMI_Err_UH07_OB".System.Gesamt_Feueralarm_Halle4
      AN     "7_HMI_Err_UH07_OB".System.BST1_Feueralarm
      AN     "7_HMI_Err_UH07_OB".System.BST1_Geschlossen
      AN     "7_HMI_Err_UH07_OB".System."BST1_Störung"
      A      Bereich_4441.Dyn.Sk.Bereich_ok
      =      Fahren_Ok

CALL FB "None" ,  (Schleusen_Nr:=3366, ErrQuit:=ErrQuit, B_VorSchleuse:="BG3364", B_InSchleuse:="BG3366", B_AusSchleuse:="BG4440", B_Stau_raus:="DVPtoEP_Sensoren".Stau_BG4440.Stat.B_Akt, Start_Ok:=Fahren_Ok, Antrieb_Schleuse_aktiv:="MA0061", Antrieb_plus_aktiv:="MA0320", Schleuse_geöffnet:="MB3366", RestZeit_Bereich_plus:=Bereich_4441.Dyn.Restzeit, Y_Schleuse_Auf:="DVPtoEP_Zylinder".Schleuse_3366.Stat.Ast, Error:=DB708.DBW530, Antrieb_Schleuse_vor:="DVPtoEP_Antriebe".MA0061.Stat.A_vor, Antrieb_Schleuse_start:="DVPtoEP_Antriebe".MA0061.Stat.A_start, Antrieb_Schleuse_stop:="DVPtoEP_Antriebe".MA0061.Stat.Stop_vor, Antrieb_Schleuse_PS:="DVPtoEP_Antriebe".MA0061.Stat.A_PS, Antrieb_plus_vor:=Bereich_4441.Dyn.Status.Trolley_kommt_in_Bereich, Antrieb_plus_start:=?, hStOk:=ErrAnz)


--- NW 12: Störungen anzeigen UZ0701 ---
      A      ErrAnz
      R      ErrAnz
      S      "DOutbound_Bereich".A01_UZ0701.StOk_blinken
      S      "DOutbound_Bereich".A01_UH07.StOk_blinken


--- NW 13: Störungen quittieren UZ7401 ---
      A      "DOutbound_Bereich".A01_UZ7401.StOk_aktiv
      O      "DOutbound_Bereich".A01_UC074.StOk_aktiv
      O      "DOutbound_Bereich".A01_UH07.StOk_aktiv
      =      ErrQuit


--- NW 14: Bereich 4441 (hinter BST 1) ---
// Falls Trolley hinter BST noch gespeichert
      A      "DVPtoEP_Sensoren".Stau_BG4440.Stat.B_Akt
      S      "DVPtoEP_Antriebe".MA0320.Stat.A_start

      A      "BG4440"
      A      "MB3366"
      =      B_vor_Schleuse

CALL FB "None" ,  (Bereichs_Nr:=4441, ErrQuit:=ErrQuit, B_BereichsAnfang:=B_vor_Schleuse, B_BereichsEnde:="BG4441", B_Zähl:="BG4442", B_Stau_raus:="DVPtoEP_Sensoren".Stau_BG4442.Stat.B_Akt, Start_Ok:=1, Antrieb_Bereich_aktiv:="MA0320", Antrieb_plus_aktiv:="MA0321", RestZeit_Bereich_plus:=?, Antrieb_Bereich_vor:="DVPtoEP_Antriebe".MA0320.Stat.A_vor, Antrieb_Bereich_stop:="DVPtoEP_Antriebe".MA0320.Stat.Stop_vor, Error:=DB708.DBW474, Antrieb_Bereich_start:="DVPtoEP_Antriebe".MA0320.Stat.A_start, Antrieb_plus_vor:="DVPtoEP_Antriebe".MA0321.Stat.A_vor, Antrieb_plus_start:="DVPtoEP_Antriebe".MA0321.Stat.A_start, Antrieb_minus_vor:=?, hStOk:=ErrAnz)


--- NW 15: Schleuse 4443 ---
CALL FB "None" ,  (Schleusen_Nr:=4443, ErrQuit:=ErrQuit, B_VorSchleuse:="BG4442", B_InSchleuse:="BG4443", B_Zähl:=?, B_Stau_raus:="DVPtoEP_Sensoren".Stau_BG4445.Stat.B_Akt, Start_Ok:=1, Antrieb_Schleuse_aktiv:="MA0321", Antrieb_plus_aktiv:=?, Schleuse_geöffnet:="MB4443", RestZeit_Bereich_plus:=?, Y_Schleuse_Auf:="DVPtoEP_Zylinder".Schleuse_4443.Stat.Ast, Error:=DB708.DBW554, Antrieb_Schleuse_vor:="DVPtoEP_Antriebe".MA0321.Stat.A_vor, Antrieb_Schleuse_start:="DVPtoEP_Antriebe".MA0321.Stat.A_start, Antrieb_Schleuse_stop:="DVPtoEP_Antriebe".MA0321.Stat.Stop_vor, Antrieb_Schleuse_PS:="DVPtoEP_Antriebe".MA0321.Stat.A_PS, Antrieb_plus_vor:=?, Antrieb_plus_start:=?, hStOk:=ErrAnz)   // über Weiche | über Weiche | über Weiche


--- NW 16: Weiche 4445 ---
      A      "MA0321"
      A      "MA0332"
      =      Antrieb_aktiv

      SET
      R      Antrieb_vor
      R      Antrieb_stop

CALL FB "None" ,  (Weichen_Nr:=4445, ErrQuit:=ErrQuit, Fahren_Ok:=1, B_Ziel_gerade:="BG4447", B_Ziel_abzweig:="BG4461", Antrieb_Weiche_aktiv:=Antrieb_aktiv, Antrieb_Gerade_aktiv:="MA0322", Antrieb_Abzweig_aktiv:="MA0331", Weiche_ist_AST:="MB4445", Y_Weiche_gerade:=?, Y_Weiche_abzweig:="DVPtoEP_Zylinder".Weiche_4445.Stat.Ast, Error:=DB708.DBW556, Antrieb_Weiche_vor:=Antrieb_vor, Antrieb_Weiche_stop:=Antrieb_stop, Antrieb_Weiche_gerade_vor:="DVPtoEP_Antriebe".MA0322.Stat.A_vor, Antrieb_Weiche_gerade_stop:="DVPtoEP_Antriebe".MA0322.Stat.Stop_vor, Antrieb_Weiche_abzweig_vor:="DEPtoLP_Antriebe".MA0331.Stat.A_vor, Antrieb_Weiche_abzweig_stop:="DEPtoLP_Antriebe".MA0331.Stat.Stop_vor, hStOk:=ErrAnz)   // da 2 Antriebe notwendig

      A      Antrieb_vor
      S      "DVPtoEP_Antriebe".MA0321.Stat.A_vor
      S      "DEPtoLP_Antriebe".MA0332.Stat.A_vor
      S      "DVPtoEP_Antriebe".MA0321.Stat.A_start
      S      "DEPtoLP_Antriebe".MA0332.Stat.A_start

      A      Antrieb_stop
      S      "DVPtoEP_Antriebe".MA0321.Stat.Stop_vor

      A      Antrieb_stop
      A      "MB4445"                                        // Nur bei Abzweig
      S      "DEPtoLP_Antriebe".MA0332.Stat.Stop_vor

// Damit Partner fahren kann:
      A      Weiche_4445.Dyn.Status.Weiche_frei
      R      "DVPtoEP_Zylinder".Weiche_4445.Stat.Ast


--- NW 17: Schleuse 4450 ---
      SET
      R      Antrieb_vor

CALL FB "None" ,  (Schleusen_Nr:=4450, ErrQuit:=ErrQuit, B_VorSchleuse:="BG4447", B_InSchleuse:="BG4450", B_Zähl:="BG4451", B_Stau_raus:="DVPtoEP_Sensoren".Stau_BG4451.Stat.B_Akt, Start_Ok:=1, Antrieb_Schleuse_aktiv:="MA0322", Antrieb_plus_aktiv:="MA0323", Schleuse_geöffnet:="MB4450", RestZeit_Bereich_plus:=Bereich_4454.Dyn.Restzeit, Y_Schleuse_Auf:="DVPtoEP_Zylinder".Schleuse_4450.Stat.Ast, Error:=DB708.DBW558, Antrieb_Schleuse_vor:="DVPtoEP_Antriebe".MA0322.Stat.A_vor, Antrieb_Schleuse_start:="DVPtoEP_Antriebe".MA0322.Stat.A_start, Antrieb_Schleuse_stop:="DVPtoEP_Antriebe".MA0322.Stat.Stop_vor, Antrieb_Schleuse_PS:="DVPtoEP_Antriebe".MA0322.Stat.A_PS, Antrieb_plus_vor:=Antrieb_vor, Antrieb_plus_start:=?, hStOk:=ErrAnz)

      A      Antrieb_vor
      S      "DVPtoEP_Antriebe".MA0322.Stat.A_vor
      S      Bereich_4454.Dyn.Status.Trolley_kommt_in_Bereich


--- NW 18: Störungen anzeigen UZ7401 ---
      A      ErrAnz
      R      ErrAnz
      S      "DOutbound_Bereich".A01_UZ7401.StOk_blinken
      S      "DOutbound_Bereich".A01_UC074.StOk_blinken
      S      "DOutbound_Bereich".A01_UH07.StOk_blinken


--- NW 19: Störungen quittieren UZ7401/7402 ---
      A      "DOutbound_Bereich".A01_UZ7401.StOk_aktiv
      O      "DOutbound_Bereich".A01_UZ7402.StOk_aktiv
      O      "DOutbound_Bereich".A01_UC074.StOk_aktiv
      O      "DOutbound_Bereich".A01_UH07.StOk_aktiv
      =      ErrQuit


--- NW 20: Bereich 4454 ---
      A      "BG4453"
      A      "MB4450"
      =      B_vor_Schleuse

      A      "DVPtoEP_Sensoren".Stau_BG4500.Stat.B_Akt
      O      "DVPtoEP_Sensoren".Stau_BG4530.Stat.B_Akt
      O      "DVPtoEP_Sensoren".Stau_BG4502.Stat.B_Akt
      =      Stau_raus

CALL FB "None" ,  (Bereichs_Nr:=4454, ErrQuit:=ErrQuit, B_BereichsAnfang:=B_vor_Schleuse, B_BereichsEnde:="BG4454", B_Zähl:="BG4500", B_Stau_raus:=Stau_raus, Start_Ok:=1, Antrieb_Bereich_aktiv:="MA0323", Antrieb_plus_aktiv:="MA0324", RestZeit_Bereich_plus:=?, Antrieb_Bereich_vor:="DVPtoEP_Antriebe".MA0323.Stat.A_vor, Antrieb_Bereich_stop:="DVPtoEP_Antriebe".MA0323.Stat.Stop_vor, Error:=DB708.DBW476, Antrieb_Bereich_start:="DVPtoEP_Antriebe".MA0323.Stat.A_start, Antrieb_plus_vor:="DVPtoEP_Antriebe".MA0324.Stat.A_vor, Antrieb_plus_start:="DVPtoEP_Antriebe".MA0324.Stat.A_start, Antrieb_minus_vor:="DVPtoEP_Antriebe".MA0322.Stat.A_vor, hStOk:=ErrAnz)


--- NW 21: MA0324 / Übergang 4501 ---
      A      "BG4500"
      O      "BG4530"
      =      B_vor_Schleuse

CALL FB "None" ,  (ErrQuit:=ErrQuit, B_Anfang:=B_vor_Schleuse, B_Am_Übergang:="BG4501", B_Stau_Antrieb_plus:="BG4502", Antrieb_aktiv:="MA0324", Antrieb_plus_aktiv:="MA0325", Antrieb_vor:="DVPtoEP_Antriebe".MA0324.Stat.A_vor, Antrieb_start:="DVPtoEP_Antriebe".MA0324.Stat.A_start, Antrieb_stop:="DVPtoEP_Antriebe".MA0324.Stat.A_PS, Antrieb_plus_vor:="DVPtoEP_Antriebe".MA0325.Stat.A_vor, Antrieb_plus_start:="DVPtoEP_Antriebe".MA0325.Stat.A_start)


--- NW 22: Störungen anzeigen UZ7401/7402 ---
      A      ErrAnz
      R      ErrAnz
      S      "DOutbound_Bereich".A01_UZ7401.StOk_blinken
      S      "DOutbound_Bereich".A01_UZ7402.StOk_blinken
      S      "DOutbound_Bereich".A01_UC074.StOk_blinken
      S      "DOutbound_Bereich".A01_UH07.StOk_blinken


--- NW 23: Ende ---
      BE

