Vorgänger Lokaldaten...

Jochen Kühner

Level-3
Beiträge
4.291
Reaktionspunkte
527
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,

Habe in meinem Oprationsliste S7-400 Handbuch gerade gelsen das man mittels der AR's auch auf die Lokaldaten des AUfrufenden Bausteins gelangen kann... Kann mir jm. beschreiben wie das genau geht???
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,

Habe in meinem Oprationsliste S7-400 Handbuch gerade gelsen das man mittels der AR's auch auf die Lokaldaten des AUfrufenden Bausteins gelangen kann... Kann mir jm. beschreiben wie das genau geht???

Das ist nichts neues.

Ein Any-Pointer mit Datentype 87 zeigt auf die V - Lokaldaten.

Such mal im "Merkerwort" - Thread, da hat Volker eine Übersicht über Pointeradressierung, wenn ich mich nicht irre.

attachment.php
 
Zuletzt bearbeitet:
Yep ug stimmt, muß ich doch mal ausprobieren, damit kann man sich dann völlig unentbehrlich machen, weil keiner mehr weiß, worauf man denn nun gerade zugreift. :ROFLMAO:
 
Yep ug stimmt, muß ich doch mal ausprobieren, damit kann man sich dann völlig unentbehrlich machen, weil keiner mehr weiß, worauf man denn nun gerade zugreift. :ROFLMAO:

Hehe...
Ich wüsste auch wirklich nicht, warum ich auf den V-Lokalbereich zugreifen sollte.

Werte übergeb ich per Parameter.

Ist aber vielleicht ne schöne Übung für das Biologiestudium ! :rolleyes:
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Wenn ich an einem Baustein als IN einen Pointer deklariere, den auf die Lokaldaten des aufrufenden Bausteins lege und in dem Baustein den Zeiger initialisiere, dann greift er auch auf die V-Lokaldaten zu.

Ist auch gar nicht ganz unüblich, kennen nur wenige.

pt
 
Hallo, ich hab da auch noch ein ein Bit kleines Problem`chen , mit Daten im V-Lokaldatenbereich.
...FC --> Aufruf FB oder FC
Temp:ARRAY[0..11]of byte -->in:any Temp(Anypointer):any

bei Speicherbereich 16#82 zB.:
(...AR1 beinhaltet eine Byte- und Bitadresse innerhalb des im Anypointer def. Bereichs)
kann ich die Bitanweisung U A[AR1,P0.0] verwenden,um den ganzen Bereich abzuklappern
aber wie sieht's bei 16#87 aus ???

gibt es den keine Möglichkeit dieTemp Lokaldaten des aufrufenden innerhalb des aufgerufenen Bausteins herzustellen ?...die SPS tut's doch auch wenn der Aufruf beendet ist ?

anbei der betreffende Baustein bei Sprungmarke " SEG7: " muss nur noch die Bitanweisung für 16#87 rein

ich bin für jeden Lösungsvorschlag dankbar
 

Anhänge

  • FUNCTION.doc
    47,5 KB · Aufrufe: 11
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich hab das noch nicht so ganz verstanden, du mußt die richtige Adresse für das AR1 natürlich berechnen und dann:

U L [AR1,P#0.0]

oder was meinst du genau?

Wenn das mit dem Berechnen so nicht geht, kannst du mit dem Anypointer, der ja auf die Lokaldaten des Vorgängers zeigt, das Byte, Wort, oder Doppelwort umladen und dieses umgeladene dann abzählen.

Wäre das nicht ohnehin eine Option gewesen, die Daten jeweils komplett umzuladen in einen temp-Bereich und dann erst abzuzählen? Dann müßte man doch gar nicht zwischen E,A, DIX ... unterscheiden.
 
...
habe meinen Fehler erkannt:
anstatt Datentyp;Byte-und Bitadresse, welche der Anypointer ja eh schon in den letzten 4 Bytes, hat ins AR1 zuladen, habe ich nur Byte-und Bitadresse geladen das machte es unabdingbar den Speicherbeich E;A;M..usw vor [AR1,P#0.0] zu schreiben

stehen Datentyp; Byte-und Bitadresse schon im AR1 zur verfügung kann E;A;M..usw entfallen

..na klar
 
Zurück
Oben