- Beiträge
- 15.400
- Reaktionspunkte
- 4.034
-> Hier kostenlos registrieren
Ich hab gerade einen Fehler zu suchen. Irgendein Baustein schreibt Daten wild in die SPS, denke ein Pointerproblem. Dazu seh ich mir gerade einen Fremdbaustein an und stolpere über 2 Sachen:
1.
2.
Er arbeitet die ganze Zeit nur mit AR2, rettet aber AR1.
Macht das Sinn, sollte man nicht AR2 retten (ist ein FB, der wiederumg in einem FB aufgerufen wird, aber keine Multiinstanz!)
1.
Code:
//Adresse der DP in Adressregister
L DID 134
L DIW 138
LAR2
Ok, merke gerade, das kann ich mir noch erklären, Grundadresse und dann nochmal überschmieren, dafür würd ich dem Progger die Finger spitzen.AR2 lädt das Adreßregister AR2 mit dem Inhalt von AKKU 1 (32 Bit-Pointer).
2.
Code:
TAR1 #RettAR2 //Adresse der DP in Adressregister
L DID 128
L DIW 132
LAR2
L DIB 0 //TAG übermitteln
T PAB [AR2,P#5.0]
L DIB 1
T PAB [AR2,P#4.0]
L DIB 2
T PAB [AR2,P#3.0]
L DIB 3
T PAB [AR2,P#2.0]
NOP 0
...
L PEB [AR2,P#1.0]
T DIB 272
L PEB [AR2,P#0.0]
T DIB 273
LAR1 #RettAR2
NOP 0
Macht das Sinn, sollte man nicht AR2 retten (ist ein FB, der wiederumg in einem FB aufgerufen wird, aber keine Multiinstanz!)