- Beiträge
- 9.189
- Reaktionspunkte
- 2.934
-> Hier kostenlos registrieren
Hallo,
ich habe ein Problem mit der registerindirekten Adressierung. Und zwar habe ich einen FB in dem ich einen weiteren FB als Multiinstanz aufrufe. In diesem FB der Multiinstanz möchte ich nun in einer Schleife mit der Registerindirekten Adressierung arbeiten, da die absolute Adresse sich ja immer verschieben kann.
Beispiel:
Nun wird der Wert aber nicht an die passende Adresse geschrieben.
Im der Variablendeklaration der statischen Variablen steht #FiFO_Letzter_Antrieb_1 an Adresse 38.0. Im DB jedoch an Adresse 76. Der Wert wird jedoch nicht an Adresse 76.0, sondern an Adresse 38.0 im DB geschrieben.
In der Zuweisung habe ich auch schon T B oder T DBI probiert, es ändert sich aber nicht.
Achja, ich probiere mit PLCsim weil ich leider keine SPS zur Verfügung habe.
Kann ich das Problem irgendwie lösen ohne den Offset fest anzuparametrieren?
Grüße
Thomas
ich habe ein Problem mit der registerindirekten Adressierung. Und zwar habe ich einen FB in dem ich einen weiteren FB als Multiinstanz aufrufe. In diesem FB der Multiinstanz möchte ich nun in einer Schleife mit der Registerindirekten Adressierung arbeiten, da die absolute Adresse sich ja immer verschieben kann.
Beispiel:
Code:
L P##FiFO_Letzter_Antrieb_1 // Zeiger auf ersten Eintrag in Liste
LAR1 // ins Adressregister laden
L #FiFo_Zeiger // FiFo Zeiger laden
L 1
-I
SLW 3 // Auf Zeigerformat bringen
+AR1 // Zum Adressregister hinzuaddieren
L #Nr_Letzter_Antrieb // Wert
T DBB [AR1,P#0.0] // und Wert in Adresse schreiben
Im der Variablendeklaration der statischen Variablen steht #FiFO_Letzter_Antrieb_1 an Adresse 38.0. Im DB jedoch an Adresse 76. Der Wert wird jedoch nicht an Adresse 76.0, sondern an Adresse 38.0 im DB geschrieben.
In der Zuweisung habe ich auch schon T B oder T DBI probiert, es ändert sich aber nicht.
Achja, ich probiere mit PLCsim weil ich leider keine SPS zur Verfügung habe.
Kann ich das Problem irgendwie lösen ohne den Offset fest anzuparametrieren?
Grüße
Thomas