Step 7 Ob86

Anger

Level-2
Beiträge
70
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,

kann mir bitte jemand diesen Programmcode erklären.
Es stammt aus dem OB86. Aus dem MW122 konnte man die Adresse des gestörten Profibusteilnehmers entnehmen.

L #OB86_RACKS_FLTD
PUSH
UD DW#16#FF
T MW 122

Gruß
anger
 
Hallo,
was ist dir hier nicht klar ?
Der Befehl PUSH in dem Zusammenhang ?
Oder die Beschaltung der Temp-Variablen des OB's ?
Zu Beidem kann man in der Step7-Hilfe weitere Informationen bekommen ...
... oder ist es etwas Anderes ?

Gruß
Larry
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,

Es handelt sich hauptsächlich um den Befehl PUSH und um UD.
Laut Hilfe wird mit PUSH der Inhalt von Akku 1 in Akku 2 verschoben. Was mir aber nicht wirklich weiterhilft.

Gruß
Anger
 
"
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.
 
Zuletzt bearbeitet:
Zurück
Oben