=== FB 3431: EntnahmePufferStrecken  [STL] ===
INTERFACE:
  Input:
  Output:
  InOut:
  Static:
    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
  Input:
    EntnahmePuffer_Nr : Int                             // Aufruf für Entnahme-Puffer
    B_LeerpufferEinfahrt : Bool                         // Sensor Trolley fährt in Entnahmepuffer
  Output:
  InOut:
  Static:
    Para : Struct
      Entnahmepuffer_DL_DB : Int                        // Einsprung Entnahmepuffer-Datenliste-DB
      Entnahmepuffer_DL_DW : Int                        // Einsprung Entnahmepuffer-Datenliste-DW
    Status2 : Struct
      Eintrag_DL_Leerliste_erfolgt : Bool               // Eintrag in DLLPPuffer_Entnahme (DB500) erfolgt
    Puffer : "UDLHMEntnahmePuffer"                      // Statische Entnahmepufferdaten (aus DL)
    Dyn : Struct
      Status : Struct
        Puffer_OUT_leer : Bool                          // Puffer ist Entnahme
        Leer_Check_OUT : Bool                           // Entnahmepuffer wird auf Entnahme gecheckt
        Leerpuffer_initialisieren : Bool                // Entnahmepuffer initialisieren 
      Error : "UErrHMEntnahmePuffer"
  None:
    MaxAnzahl_LeerPuffer : Int                          // Maximale Anzahl im EntnahmePuffer Bereich erlaubt
    Wartezeit_bis_Puffer_leer : Int                     // Nach dieser Zeit wird Puffer als Entnahme gesetzt [1s]
  None:
    Entnahmepuffer_DL : Bool                            // Entnahmepuffer-Datenliste fehlerhaft
    Undef_Entnahmepuffer : Bool                         // undefinierter Entnahmepuffer
    Err_Stau_Einfahrt : Bool                            // Stau am Entnahmepuffer-Eingang
  Input:
    EntnahmePuffer_Nr : Int                             // Aufruf für Entnahme-Puffer
    B_LeerpufferEinfahrt : Bool                         // Sensor Trolley fährt in Entnahmepuffer
  Output:
  InOut:
  Static:
    Para : Struct
      Entnahmepuffer_DL_DB : Int                        // Einsprung Entnahmepuffer-Datenliste-DB
      Entnahmepuffer_DL_DW : Int                        // Einsprung Entnahmepuffer-Datenliste-DW
    Status2 : Struct
      Eintrag_DL_Leerliste_erfolgt : Bool               // Eintrag in DLLPPuffer_Entnahme (DB500) erfolgt
    Puffer : "UDLHMEntnahmePuffer"                      // Statische Entnahmepufferdaten (aus DL)
    Dyn : Struct
      Status : Struct
        Puffer_OUT_leer : Bool                          // Puffer ist Entnahme
        Leer_Check_OUT : Bool                           // Entnahmepuffer wird auf Entnahme gecheckt
        Leerpuffer_initialisieren : Bool                // Entnahmepuffer initialisieren 
      Error : "UErrHMEntnahmePuffer"
  None:
    MaxAnzahl_LeerPuffer : Int                          // Maximale Anzahl im EntnahmePuffer Bereich erlaubt
    Wartezeit_bis_Puffer_leer : Int                     // Nach dieser Zeit wird Puffer als Entnahme gesetzt [1s]
  None:
    Entnahmepuffer_DL : Bool                            // Entnahmepuffer-Datenliste fehlerhaft
    Undef_Entnahmepuffer : Bool                         // undefinierter Entnahmepuffer
    Err_Stau_Einfahrt : Bool                            // Stau am Entnahmepuffer-Eingang
  Input:
    EntnahmePuffer_Nr : Int                             // Aufruf für Entnahme-Puffer
    B_LeerpufferEinfahrt : Bool                         // Sensor Trolley fährt in Entnahmepuffer
  Output:
  InOut:
  Static:
    Para : Struct
      Entnahmepuffer_DL_DB : Int                        // Einsprung Entnahmepuffer-Datenliste-DB
      Entnahmepuffer_DL_DW : Int                        // Einsprung Entnahmepuffer-Datenliste-DW
    Status2 : Struct
      Eintrag_DL_Leerliste_erfolgt : Bool               // Eintrag in DLLPPuffer_Entnahme (DB500) erfolgt
    Puffer : "UDLHMEntnahmePuffer"                      // Statische Entnahmepufferdaten (aus DL)
    Dyn : Struct
      Status : Struct
        Puffer_OUT_leer : Bool                          // Puffer ist Entnahme
        Leer_Check_OUT : Bool                           // Entnahmepuffer wird auf Entnahme gecheckt
        Leerpuffer_initialisieren : Bool                // Entnahmepuffer initialisieren 
      Error : "UErrHMEntnahmePuffer"
  None:
    MaxAnzahl_LeerPuffer : Int                          // Maximale Anzahl im EntnahmePuffer Bereich erlaubt
    Wartezeit_bis_Puffer_leer : Int                     // Nach dieser Zeit wird Puffer als Entnahme gesetzt [1s]
  None:
    Entnahmepuffer_DL : Bool                            // Entnahmepuffer-Datenliste fehlerhaft
    Undef_Entnahmepuffer : Bool                         // undefinierter Entnahmepuffer
    Err_Stau_Einfahrt : Bool                            // Stau am Entnahmepuffer-Eingang
  Input:
    EntnahmePuffer_Nr : Int                             // Aufruf für Entnahme-Puffer
    B_LeerpufferEinfahrt : Bool                         // Sensor Trolley fährt in Entnahmepuffer
  Output:
  InOut:
  Static:
    Para : Struct
      Entnahmepuffer_DL_DB : Int                        // Einsprung Entnahmepuffer-Datenliste-DB
      Entnahmepuffer_DL_DW : Int                        // Einsprung Entnahmepuffer-Datenliste-DW
    Status2 : Struct
      Eintrag_DL_Leerliste_erfolgt : Bool               // Eintrag in DLLPPuffer_Entnahme (DB500) erfolgt
    Puffer : "UDLHMEntnahmePuffer"                      // Statische Entnahmepufferdaten (aus DL)
    Dyn : Struct
      Status : Struct
        Puffer_OUT_leer : Bool                          // Puffer ist Entnahme
        Leer_Check_OUT : Bool                           // Entnahmepuffer wird auf Entnahme gecheckt
        Leerpuffer_initialisieren : Bool                // Entnahmepuffer initialisieren 
      Error : "UErrHMEntnahmePuffer"
  None:
    MaxAnzahl_LeerPuffer : Int                          // Maximale Anzahl im EntnahmePuffer Bereich erlaubt
    Wartezeit_bis_Puffer_leer : Int                     // Nach dieser Zeit wird Puffer als Entnahme gesetzt [1s]
  None:
    Entnahmepuffer_DL : Bool                            // Entnahmepuffer-Datenliste fehlerhaft
    Undef_Entnahmepuffer : Bool                         // undefinierter Entnahmepuffer
    Err_Stau_Einfahrt : Bool                            // Stau am Entnahmepuffer-Eingang
  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
  Constant:

--- NW 1: Störung quittieren UZ7402 ---
      A      "DOutbound_Bereich".A01_UZ7402.StOk_aktiv
      =      ErrQuit


--- NW 2: EntnahmePuffer 01 ---
      SET
      R      ErrAnz

CALL FB "None" ,  (EntnahmePuffer_Nr:=201, B_LeerpufferEinfahrt:="BG4504", Error:=DB708.DBW164, hStOk:=ErrAnz)


--- NW 3: EntnahmePuffer 02 ---
CALL FB "None" ,  (EntnahmePuffer_Nr:=202, B_LeerpufferEinfahrt:="BG4505", Error:=DB708.DBW166, hStOk:=ErrAnz)


--- NW 4: EntnahmePuffer 03 ---
CALL FB "None" ,  (EntnahmePuffer_Nr:=203, B_LeerpufferEinfahrt:="BG4506", Error:=DB708.DBW168, hStOk:=ErrAnz)


--- NW 5: EntnahmePuffer 04 ---
CALL FB "None" ,  (EntnahmePuffer_Nr:=204, B_LeerpufferEinfahrt:="BG4507", Error:=DB708.DBW170, hStOk:=ErrAnz)


--- NW 6: Störungen anzeigen UZ7402 ---
      A      ErrAnz
      S      "DOutbound_Bereich".A01_UZ7402.StOk_blinken


--- NW 7: Ende ---
      BE

