77 lines
2.3 KiB
Plaintext
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
|
|
|