Pointer stimmt nach dem Speichern nicht mehr

matziane

Level-1
Beiträge
120
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,

bin beim Programmieren etwas verwirrt, habe folgenden Ablauf programmiert.
Alles ganz normal, mittels Pointer eine Adresse abfragen.
Soweit ja nichts besonderes.

L DID [AR2,P#294.0] //Adresse Peripherieeingang 1
L 0
==I
SPB m001
L DID [AR2,P#294.0]
T #ADDRU1
m001: L DID [AR2,P#302.0] //Adresse Peripherieeingang 2
L 0
==I
SPB GEND
L DID [AR2,P#302.0]
T #ADDRU2

Jedoch sobald ich speichere, sieht der Code folgendermaßen aus, warum?

L #MFC[2].RES2 //Adresse Peripherieeingang 1
L 0
==I
SPB m001
L #MFC[2].RES2
T #ADDRU1
m001: L DID [AR2,P#302.0] //Adresse Peripherieeingang 2
L 0
==I
SPB GEND
L DID [AR2,P#302.0]
T #ADDRU2

Warum auf einmal symbolisch bei dem ersten Pointer und warum dann nicht auch bei dem zweiten.
Die Bezeichnung der Variable hat mit der Verwendung nichts zu tun, im abgefragten DB gibt es zwar eine stelle MFC[2].Res2, die ist aber an einer ganz anderen Stelle.

Programm arbeitet soweit normal, eigentlich genau so wie es soll, nur das dieser Pointer da so sonderbar steht.

Vielen Dank im voraus für eueren Rat
 
Das rührt daher das Siemens die Adressierung auf die stat Daten auf diese weise speichert, und nun zufällig das DID [AR2,P#294.0] auf eine Adresse von dir in denn statischen Daten des FBs definierten Doppelwortes passt.
 
Hallo,

ersteinmal dankeschön für die Ratschläge.
Ja das ist in einem FB programmiert.
Habe die Instanz-DBs gelöscht und neu generiert (sind mehrere Instanz DBs zu diesem einen FB zugehörig).
Danach die richtigen Adressen im Programm eingegeben und gespeichert, nach wie vor steht das komische kram danach drin.

:confused:
 
Zurück
Oben