Adressregister retten

Solaris

Level-2
Beiträge
500
Reaktionspunkte
135
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo ,


ich schreibe gerade einen FB in dem ich zwei DB´s nacheinander öffne und mittels Pointeradressierung Werte lese und schreibe. Reicht es aus wenn ich mit
Code:
*NW1
TAR1  #RETTAR1
.
.
.
*NW20
LAR1  #RETTAR1
das Adressregister am Anfang des FB´s speichere und am Ende wieder zurückschreibe oder muß ich das Adressregister bei jedem DB-Zugriff sichern?
 
Code:
TAR1 #RETTAR1
TAR2 #RETTAR2
.
.
LAR1  #RETTAR1
LAR2  #RETTAR2
Wenn du schon die Register rettest, kannst du ja auch beide retten, so bist du auf jeden Fall auf der sicheren Seite. Dann reicht das jedenfalls aus.
 
Code:
TAR1 #RETTAR1
TAR2 #RETTAR2
.
.
LAR1  #RETTAR1
LAR2  #RETTAR2
Wenn du schon die Register rettest, kannst du ja auch beide retten, so bist du auf jeden Fall auf der sicheren Seite. Dann reicht das jedenfalls aus.

Als welchen Daten-Typ deklariert man den #RETTAR2 eigentlich?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Warum nicht? Wenn schon was drin steht im AR1 wird ers ändern und dort wo es bereits verwendet wurde stimmt es dann nicht mehr, odeR`?

Weil man die Adressregister (Pointer) immer auf einen Wert setzt, bevor man damit arbeitet.

Wenn ein Baustein von einem höherwertigen OB unterbrochen wird, speichert das System die ARs für dich.
Wenn der Baustein dann weiterläuft steht wieder der Wert zu Beginn der Unterbrechung drin.

Ich kenne keinen einzigen Fall, bei dem man AR1 speichern und wieder herstellen muß.

Micha
 
angenommen im fc1 lädt einer seinen pointer ins ar1 . ich will aber jetzt im fc 2 auch irgendeinen pointer machen und ins ar1 laden. was ist dann im fc1? stimmt doch dann icht mehr oder?
 
Die Bausteine laufen doch nacheinander ab.
Wenn dein FC1 dran ist, wird das AR1 auf eine Adresse gesetzt, danach damit gearbeitet.
Beim nächsten Aufruf von FC1 das Gleiche...
Deshalb ist es scheißegal, was FC2 macht. FC1 schreibt sich das AR1 wieder auf die Adresse mit der im FC1 gearbeitet wird.

In einem Baustein das AR zu nutzen, ohne zu wissen was drinsteht halte ich für bedenklich.

Das Ganze verhält sich wie mit den Lokaldaten.
Da schreibt man auch immer erst mal was rein, bevor man sie ausliest.
Ansonsten ist das Ergebnis immer ein Zufallsprodukt...
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Weil man die Adressregister (Pointer) immer auf einen Wert setzt, bevor man damit arbeitet.

Wenn ein Baustein von einem höherwertigen OB unterbrochen wird, speichert das System die ARs für dich.
Wenn der Baustein dann weiterläuft steht wieder der Wert zu Beginn der Unterbrechung drin.

Ich kenne keinen einzigen Fall, bei dem man AR1 speichern und wieder herstellen muß.

Micha

Also wenn in einer Funktion in der mit den Adressregistern gearbeitet wird, eine weiter aufgerufen die ebenso Register braucht, kann es Sinn machen die Register zu sichern und zurück zuschreiben.
Solche Anwendungen kenne ich öfter.

bike
 
Also wenn in einer Funktion in der mit den Adressregistern gearbeitet wird, eine weiter aufgerufen die ebenso Register braucht, kann es Sinn machen die Register zu sichern und zurück zuschreiben.
Solche Anwendungen kenne ich öfter.

bike

soso, mal wieder für die NASA programmiert?

Willst du mir ernsthaft erzählen, daß du Funktionen verwendest die z.B. mit

Code:
t w [ar1,p#0.0]

beginnen???

Wo du doch so für verständliche Programme und saubere Programmierung einstehst...

Ausserdem kann man das AR ja gar nicht von einem FC in einen anderen FC übertragen.
Ausser bike kann das keiner!

Ach ja, hier gings glaub drum, ob man das AR speichern muss.
 
soso, mal wieder für die NASA programmiert?

Willst du mir ernsthaft erzählen, daß du Funktionen verwendest die z.B. mit

Code:
t w [ar1,p#0.0]

beginnen???

Wo du doch so für verständliche Programme und saubere Programmierung einstehst...

Ausserdem kann man das AR ja gar nicht von einem FC in einen anderen FC übertragen.
Ausser bike kann das keiner!

Ach ja, hier gings glaub drum, ob man das AR speichern muss.

Nur gut, dass du PLC prgrammieren erfunden hast.

Warum gibt es TAR1 und TAR2? Nur weil du es nicht verstehst, ist das noch lange keine Begründung, dass es manchmal notwendig ist.


Bike
 
Zurück
Oben