pointer laden in muktiinstanzen

Markus

Administrator
Teammitglied
Beiträge
6.323
Reaktionspunkte
2.341
Zuviel Werbung?
-> Hier kostenlos registrieren
wollte die frage schon immer mal stellen...

ich habe einen fb, diesen rufe ich als multinstanz mehrmals auf.
in dem fb habe ich einige indirekte berechnungen.
wenn ich aber in dem fb einen pointer lade, ist die adresse falsch, da sie ja relativ zum datenbereich des fb ist.

wenn also den pointer der ersten stat variable im fb lade, dann hat der den wert 0. das ist aber im bezug auf den db falsch, da der datenbereich für den aufgerufenen fb ja weiter hinten liegt.

bisher lade ich immer von dem fb-aufruf den pointer der muliinstanz im aufrufenden fb, und gebe diesen wert als parameter an den aufgerufenen fb, dort wird er als offset zum geladenen pointer addiert.

das geht doch bestimmt auch eleganter, oder nicht?

danke!
 
Hallo Markus

Wenn du im FB mit dem AR1 arbeitest kannst den Adressversatz bei einem Multiinstanz-Aufruf folgendemasen berechnen:
Code:
  TAR2  //Adressversatz in Akku 1 laden
  +AR1  //Inhalt von Akku1 zu AR1 addieren
 
@plc_tippser
Daher
Code:
L ar2
t Temp
.
.
.
.
L temp
tar2

Unterbrechnungen durch OB's nicht berücksichtigt. Dann würde noch das STW zusätzlich retten und wiederherstellen.
 
Zurück
Oben