-> Hier kostenlos registrieren
Hallo, ich habe ein Problem bei indirekter Adressierung (mit der ich auch irgendwie auf Kriegsfuss stehe. Die enstprechenden Themen hierzu habe ich im Forum gefunden und auch gelesen aber irgendwie sind Theorie und Praxis noch nicht ganz Deckungsgleich). Und zwar möchte ich über den OB35 einmal im Monat Zählerstände in einem DB ablegen als Ringspeicher mit 24 Monatswerten. Habe zu diesem Thema auch im Forum ein wenig gesucht und auch etwas gefunden was eigentlich gut passen würde allerdings bekomme ich nur einen Wert geschrieben und erhalte dann bei weiteren Versuchen Bereichlängenfehler beim schreiben in der CPU Diagnose. Habe den Code zur Zeit zum Testen in einem FB stehen und den M58.0 steuere ich über die Variablentabelle um den Schreibvorgang zu simulieren. Später im OB35 würde ich dann mit L MW 60 beginnen.
U M 58.0
FP M 58.1
SPBN M001
L MW 60 // hier sollte das Ziel DBD für DB11 stehen
SLD 5 // + 4Byte, SLD 3 für Byteadresse und SLD 2 für + 4Byte
L P#0.0
+D
LAR1
L MD 54 //hier liegt der Zählwert
AUF DB 11
T DBD [AR1,P#0.0]
L MW 60
+ 1
T MW 60
L 24
<I
SPB M001
L 0 //nach 24 Durchgängen wieder bei 0 Anfangen
T MW 60
M001: NOP 0
DB11 ist in der CPU vorhanden. Habe ich als Array 1..24 angelegt im Format DINT mit Anfangswert 0. Hat jemand einen Ansatz woher der Bereichslängenfehler kommt? Danke schon mal vorab.
U M 58.0
FP M 58.1
SPBN M001
L MW 60 // hier sollte das Ziel DBD für DB11 stehen
SLD 5 // + 4Byte, SLD 3 für Byteadresse und SLD 2 für + 4Byte
L P#0.0
+D
LAR1
L MD 54 //hier liegt der Zählwert
AUF DB 11
T DBD [AR1,P#0.0]
L MW 60
+ 1
T MW 60
L 24
<I
SPB M001
L 0 //nach 24 Durchgängen wieder bei 0 Anfangen
T MW 60
M001: NOP 0
DB11 ist in der CPU vorhanden. Habe ich als Array 1..24 angelegt im Format DINT mit Anfangswert 0. Hat jemand einen Ansatz woher der Bereichslängenfehler kommt? Danke schon mal vorab.