"
L #OB86_RACKS_FLTD
PUSH
UD DW#16#FF
T MW 122
Interessant ist hier eigentlich schon der Teil mit "L #OB86_RACKS_FLTD".
#OB86_RACKS_FLTD ist eigentlich (wenn man den OB86 neu einfügt) ein Array[0..31] of Bool
Kann also nicht direkt mit dem Lade-Befehl angefasst werden.
Es gibt aber den alten Trick (hier wahrscheinlich auch gemacht) dass man den Datentyp in der Schnittstelle des OB einfach selbst auf DWORD stellt.
(ist aber irgendwie unschön)
Mit "L #OB86_RACKS_FLTD" hat man nun also den Wert von #OB86_RACKS_FLTD im Akku1.
Wozu das Push dienen soll ist mir auch nicht klar. Danach hat man sowohl in Akku1 als auch in Akku2 den Wert von #OB86_RACKS_FLTD.
Das einzige was ich mir vorstellen kann ist, da "UD DW#16#FF" den Wert von Akku 2 auch nicht ändert, dass damit der Wert von #OB86_RACKS_FLTD im Akku2 gerettet wird. Aber wozu? Kommt danach noch Code?
Zum Inhalt von #OB86_RACKS_FLTD
Code:
- Bit 0 bis 7: Nr. der DP-Station
- Bit 8 bis 15: DP-Mastersystem-ID
- Bit 16 bis 30: logische Basisadresse bei einem S7-Slave bzw. Diagnoseadresse bei einem DP-Normslave
- Bit 31: I/O-Kennung
"UD DW#16#FF", steht dann für - Akku1 Doppelwortmäßig UND-Verknüpft mit der Konstanten: 0000 0000 0000 0000 0000 0000 1111 1111.
Nach der Operation bleiben aus #OB86_RACKS_FLTD nur die unteren 8Bit erhalten. Das ist die Nr. der DP-Station.