=== FC 276: AMR_LeerTrolley_Anforderung  [STL] ===
INTERFACE:
  Input:
    LeerTrolleys_benötigt : Int
    ArbeitsPlatz : Word
  Output:
  InOut:
    Gespeicherte_LeerTrolleys : Int
  Temp:
    DLDB : Int
  Constant:
  Return:
    Ret_Val : Void

--- NW 1: Änderung vorhanden? ---
      L      "LeerTrolleys_benötigt"                         // Diese Anzahl wird benötigt
      L      Gespeicherte_LeerTrolleys                       // Diese Anzahl ist schon gespeichert
      ==I                                                    // Identisch!
      A(
      L      "LeerTrolleys_benötigt"                         // Diese Anzahl wird benötigt
      L      0
      <>I
      )
      BEC                                                    // Keine Änderung nötig!


--- NW 2: Alle evtl. gespeicherte Anforderungen löschen ---
      L      1112                                            // Mit DL (12 Trolleys benötigt) beginnen
      T      DLDB

NextDL: L      ArbeitsPlatz
      T      "MW220"

CALL FC "DatenOut" (SSDB:=DLDB, SSDW:=0, PARA:=16#E100, SEARCHDATEN:=P#M220.0, RE_VAL:="MB198", OUTDATEN:=P#M200.0, Position:="MW196")   // Daten suchen und austragen

// Nächst kleiner benötigte Stückzahl:
      L      DLDB
      +      -1
      T      DLDB

      L      1101                                            // 1 Trolley benötigt
      >=I                                                    // noch sinnvoll?
      JC     NextDL                                          // Ja!

      L      0                                               // Keine Speicherung mehr
      T      Gespeicherte_LeerTrolleys                       // Diese Anzahl ist schon gespeichert


--- NW 3: Benötigte Leertrolleys speichern ---
      L      "LeerTrolleys_benötigt"
      L      12
      <=I
      JC     OK

      T      "LeerTrolleys_benötigt"

OK:   L      "LeerTrolleys_benötigt"
      L      0
      ==I                                                    // Nichts benötigt
      JC     ESave

      CAC
      +      1100                                            // 1101 ->1112
      T      DLDB

      L      ArbeitsPlatz
      T      "MW220"

CALL FC "DatenIn" (SSDB:=DLDB, SSDW:=0, INDATEN:=P#M220.0, RE_VAL:="MB198")

      AN     "M198.7"                                        // Eintrag richtig erfolgt
      JC     ESave

      L      "LeerTrolleys_benötigt"                         // Anzahl übergeben
      T      Gespeicherte_LeerTrolleys                       // Diese Anzahl ist schon gespeichert

ESave: NOP 0


--- NW 4: Ende ---
      BE

