=== FC 6182: LPtoHW_Draussen_FC  [STL] ===
INTERFACE:
  Input:
  Output:
  InOut:
  Temp:
  Constant:
  Return:
    Ret_Val : Void

--- NW 1: Rückmeldung ---
      SET                                                    // Rückmeldungen erst mal resetten
      R      "M180.6"                                        // Weiterfahrt von Ziel-FC erlaubt


--- NW 2: Schleuse 3323 (Trolley-Beladung): Ausgefahren ? ---
      L      "MW190"
      L      3323                                            // Aufruf von Schleuse 3323 ?
      <>I                                                    // Nein!
      JC     X3323E

// Evtl. erkannten Sack löschen:
      SET
      R      "DLPtoHW_Sensoren".Sack_BG3324.Stat.B_Akt

// Trolleydaten ändern:
      AN     "DLeerPufferStrecken".DurchfahrModus.Aktiv
      JC     SackTrolley                                     // Sack-Trolleydaten erzeugen

// Leer-Trolley für VP-Daten:
CALL FC "Trolleydaten_neu_anlegen" (Gesamt_Trolley_DL:=1000, TrolleyID:="DLPtoHW_OmniFahren".Schleuse_3323.Dyn.TrolleyID_Schleuse, Endziel:=16#B000, ShopGroup:=DINT#-1)   // Vollpuffer | ShopGroup = -1 bei Leertrolly für Vollpuffer!

// Standort übermitteln:
CALL FC "Trolley_DL_Neue_Pos" (Gesamt_Trolley_DL:=1000, TrolleyID:="DLPtoHW_OmniFahren".Schleuse_3323.Dyn.TrolleyID_Schleuse, Position:=16#7108, ShopGroup:=Dint#0, Err:="M199.0")   // Leser 7108

      L      "DLeerPufferStrecken".DurchfahrModus.RestTrolleys
      +      -1
      T      "DLeerPufferStrecken".DurchfahrModus.RestTrolleys

      L      0                                               // Noch Rest-Trolleys vorhanden ?
      >I                                                     // Ja!
      BEC

      SET
      R      "DLeerPufferStrecken".DurchfahrModus.Aktiv      // Erst mal beenden

      BEU

SackTrolley: CALL FC "Trolleydaten_neu_anlegen" (Gesamt_Trolley_DL:=1000, TrolleyID:="DLPtoHW_OmniFahren".Schleuse_3323.Dyn.TrolleyID_Schleuse, Endziel:=16#AAAA, ShopGroup:=DINT#0)   // AMR-Bereich

// Standort übermitteln:
CALL FC "Trolley_DL_Neue_Pos" (Gesamt_Trolley_DL:=1000, TrolleyID:="DLPtoHW_OmniFahren".Schleuse_3323.Dyn.TrolleyID_Schleuse, Position:=16#7108, ShopGroup:=Dint#0, Err:="M199.0")   // Leser 7108

// Umschalten auf Durchfahr-Modus:
      A      "DLeerPufferStrecken".DurchfahrModus.Anmelden
      R      "DLeerPufferStrecken".DurchfahrModus.Anmelden
      S      "DLeerPufferStrecken".DurchfahrModus.Aktiv

      BEU

X3323E: NOP 0


--- NW 3: Schleuse 4221 (Vor ByPass zum VP): Ausgefahren ? ---
      L      "MW190"
      L      4221                                            // Aufruf von Schleuse 4221?
      <>I                                                    // Nein!
      JC     X4221E

// Evtl. erkannten Sack löschen:
      SET
      R      "DLPtoHW_Sensoren".Sack_BG4222.Stat.B_Akt

      L      "DLPtoHW_OmniFahren".Schleuse_4221.Dyn.Weichen_Ziel
      L      16#4224                                         // Gerade ? Also zum AMR-Bereich?
      ==I                                                    // Ja !
      JCN    X4221                                           // Negierter Sprung

// Trolley fährt zum AMR:
// Trolleydaten in DB1000 löschen, da zum AMR fährt und danach kein Leser mehr!
CALL FC "Trolleydaten_löschen" (Gesamt_Trolley_DL:=1000, TrolleyID:="DLPtoHW_OmniFahren".Schleuse_4221.Dyn.TrolleyID_Schleuse)

      BEU

X4221: NOP 0
// Trolley fährt zu VP:
// Bei Partner (Schleuse 4207) wieder mit Schritt 0 beginnen (erneuter Ziel-FC-Aufruf)
      L      0
      T      "DHWtoVP_OmniFahren".Schleuse_4207.Dyn.Sk.Akt_Schritt

X4221E: NOP 0


--- NW 4: Ende ---
      BE

