Files
HundM_awl/=A01+UH06-KF00/Programmbausteine/Logistik/LeerTrolley to AMR-Platz ermitteln.awl
T

77 lines
2.3 KiB
Plaintext

=== FC 4: LeerTrolley to AMR-Platz ermitteln [STL] ===
INTERFACE:
Input:
Erlaubter_Bereich : Word // 0=Alles ok, A000=nur PS, B000=nur MPS ok
Output:
AMR_Platz : Word // AMR-Platz ermitteln
InOut:
Temp:
DLDB : Int
Para : Word
Constant:
Return:
Ret_Val : Void
--- NW 1: Initialisierung ---
L 16#0
T AMR_Platz
L 1112 // Mit DL (12 Trolleys benötigt) beginnen
T DLDB
--- NW 2: Werden 12->1 Trolley(s) benötigt? ---
NextDL: L 16#F100 // 1.Datensatz lesen
T Para
Next: CALL FC "DatenOut" (SSDB:=DLDB, SSDW:=0, PARA:=Para, SEARCHDATEN:=P#M200.0, RE_VAL:="MB198", OUTDATEN:=P#M220.0, Position:="MW196")
A "M198.7" // Datensatz ist vorhanden
JC Check
// Nächst kleiner benötigte Stückzahl:
L DLDB
+ -1
T DLDB
L 1101 // 1 Trolley benötigt
>=I // noch sinnvoll?
JC NextDL // Ja!
BEU
--- NW 3: Check, ob Bereich ok ---
Check: L Erlaubter_Bereich
L 16#0 // Keine Beschränkung ?
==I // Ja !
JC AMR
L "MW220" // Nächstes ABP-Ziel
L 16#F000
AW // maskieren
L Erlaubter_Bereich // wie erlaubter Bereich ?
==I // Ja!
A(
L "MW220" // Nächstes ABP-Ziel
L 16#0 // Sinnvoller Wert ?
<>I // Nein !
)
JC AMR
// Nächsetn Eintrag lesen:
L 16#FF00 // Nächsten Datensatz lesen
T Para
JU Next
--- NW 4: Puffer aufbereiten ---
AMR: L "MW220"
T AMR_Platz
--- NW 5: Ende ---
BE