Ersatz für AR1?

Isha

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

Ich schreibe einen Pointer in einem FB ins AR1.
Leider wird aber das AR1 von Siemens wärend der Bearbeitung des FB überschrieben.
Kann ich den Pointer auch woanders speichern, z.B. in einer lokalen Variable? Wie würde das funktionieren?

Code:
L     #EA_StartAdr
      ITD   
      L     L#8
      *D    
      LAR1  
 
      U     #VW.MasseinheitGrad  //INOUT Struktur
      =     A [AR1,P#50.2]
 
// Funktioniert nicht weil AR1 beim lesen der INOUT-Struktur überschrieben wurde
      U     #VW.RelativePos   
      =     A [AR1,P#50.3]
.......

Gruss
ISha
 
Code:
// DB-Register und Adressregister AR1 sichern
 
      L     DBNO                        // DB-Register
      T     #DB_REGISTER
 
      TAR1  #AR1_REGISTER               // AR1-Register
 
// DB-Register und Adressregister AR1 wiederherstellen
 
      AUF   DB [#DB_REGISTER]           // DB-Register
 
      LAR1  #AR1_REGISTER               // AR1-Register

Gruß Kai
 
Folgender Programmcode sollte funktionieren:

Code:
      L     #EA_StartAdr
      ITD   
      L     L#8
      *D    
      LAR1  
 
// Registerinhalte retten
 
      L     DBNO                        // DB-Register
      T     #DB_REGISTER
 
      TAR1  #AR1_REGISTER               // AR1-Register
 
// Zugriff auf Bausteinparameter mit zusammengesetztem Datentyp
 
      U     #VW.MasseinheitGrad         //INOUT Struktur
 
// Registerinhalte wiederherstellen
 
      AUF   DB [#DB_REGISTER]           // DB-Register
 
      LAR1  #AR1_REGISTER               // AR1-Register
 
// Ausgangszuweisung
 
      =     A [AR1,P#50.2]

Gruß Kai
 
Danke für die Antwort.

Leider habe ich aber ca. 50 solche Zuweisungen im FB.
Dann müsste ich nach jeder Abfrage der INOUT-Variable das AR1 wiederherstellen.
Gibt es keine einfachere Variante?
Kann ich die Startadresse nicht in einer lokalen Variable speichern?
So dass es nicht mehr heisst:

= A [AR1,P#50.2]
sondern
= A [#Startadresse,P#50.2]

wobei #Startadresse eine lokale Variable wäre?

Gruss
Isha
 
Kannst Du den FB mal hier ins Forum stellen, damit man sich den Aufbau der INOUT-Struktur und den Aufbau der Ausgangszuweisungen ansehen kann?

Gruß Kai
 
Zurück
Oben