Lokaldatenbereich des Vorgängerbausteins

A

Anonymous

Guest
Zuviel Werbung?
->Hier kostenlos registrieren
:D Hallo SPS-Freunde! :D

Ich möchte auf den Lokaldatenbereich des Vorgängerbausteins (d.h. des aufrufenden Bausteins) zugreifen.

Beispiel: FC1 ruft FC2 auf. Jetzt möchte in FC2 auf die Lokaldaten von FC1 zugreifen. (Ich weiß, hört sich verrückt an, und ein Einsteiger brauch das bestimmt nicht. :? )

Hat jemand eine Idee :?:

Vielen Dank,
Gregor
 

Zottel

Well-known member
Beiträge
2.299
Punkte Reaktionen
277
Ohne zu wissen ob es geht, würde ich mal einen Pointer auf den Beginn des Lokaldatenbereich des Aufrufers setzen, entweder in einer globalen Variablen oder dem aufgerufenen Baustein übergeben.
 
OP
A

Anonymous

Guest
Zuviel Werbung?
->Hier kostenlos registrieren
VL Zugriff ist möglich

Hallo

Der nachfolgende Code greift auf das erste Doppelwort im Lokaldatenspeicher des aurufenden Bausteins zu:


L DW#16#87000000 //Encoding for VL-area
LAR1 //store in AR1
L D [AR1,P#0.0] //access first DWORD in predecessor LSTACK


Diese Methode ermöglicht eine laufzeitoptimierte Übergabe von Parametern an Funktionen. Außerdem wird sie teilweise auch direkt von den Step7 Tools verwendet.

Es ist aber nicht möglich mit dieser Methode aus einem OB121 oder OB122 auf die Lokaldaten des fehlerverursachenden Bausteins zuzugreifen, obwohl sich beide auf der gleichen Lokaldatenstackebene befinden!

Gruß
 
Oben