Profinet FB oder FC aufrufen im OB86

epy

Level-1
Beiträge
19
Reaktionspunkte
2
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo zusammen,

ich habe in einem Beispiel gesehen das im OB86 ein FB aufgerufen wird.
In diesem FB wird auf den Temp Variablen des OB86 zugegriffen.
Vor jedem indirektem Zugriff werden folgende Befehle benutzt:

L DW#16#87000000;
LAR1 ;

Hier wird anscheinend ein Versatz geladen.
Kann mir das jemand näher Erklären ?
Hab im Forum leider nichts gefunden.

Gleich noch eine Frage.
Hat jemand schon Erfahrung mit der Auswertung im OB86
und den Variable OB86_FLT_ID für

B#16#CA PROFINET IO-Systemausfall
B#16#CB PROFINET IO-Stationsausfall/Stationswiederkehr
B#16#CC PROFINET IO-Stationswiederkehr mit Störung
B#16#CD PROFINET IO-Stationswiederkehr, Sollausbau weicht von Ist ausbau ab

Mit #CB hab ich schon Auswertungen gesehen. Mit den anderen noch nicht.
Möchte mir einen FC oder FB bauen mit einer möglichst genauen Auswertung der Profinet Devices im Fehlerfall.:rolleyes:

Gruß
Epy
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hi,

ja ich weiß, aber der FB126 ist leider nur für Panels ausgelegt.
Ich dachte da eher an den alten FB125 für Profibus.
Und das ganze natürlich etwas einfacher gestalten.

Gruß
Epy
 
L DW#16#87000000;
LAR1 ;

Hier wird anscheinend ein Versatz geladen.
Kann mir das jemand näher Erklären ?
Hier wird ein Pointer auf den Beginn der vorherigen Lokaldaten (Lokaldaten des aufrufenden Bausteins) erstellt und ins Adreßregister AR1 geladen,
so daß danach mit bereichsübergreifender registerindirekter Adressierung auf diese Lokaldaten zugegriffen werden kann, ohne sie an den aufgerufenen
Baustein übergeben zu müssen (quick & dirty! nicht nachmachen!), z.B.
Code:
L     DW#16#87000000  //Pointer Anfangsadresse vorherige Lokaldaten
LAR1                  //in Adressregister AR1 laden
L     B [AR1, P#1.0]  //Byte aus Adresse AR1 + P#1.0 = LB1 der vorherigen Lokaldaten lesen
lädt den Fehlercode aus OB86_FLT_ID an Adresse OB86:LB1 in den AKKU1 (wenn der aufrufende Baustein der OB86 ist).

16#87 ist die Bereichskennung für die Vorherigen Lokaldaten

Siehe die mit Step7 installierten Handbücher und die Step7-Hilfe
* Programmieren mit STEP 7 -> Format des Parametertyps POINTER
* System- und Standardfunktionen für S7-300/400 -> Baugruppenträgerausfall-OB (OB 86)
und die Step7-Hilfe Hilfe zu AWL -> Adressierung -> Bereichsübergreifende, registerindirekte Adressierung.

Harald
 
Zurück
Oben