Lesezugriff auf Variablen nach einem Schreibzugriff innerhalb desselben Netzwerks ("Late Assignment")

Wenn innerhalb eines Netzwerks der Wert einer Variablen oder Adresse gelesen wird, wird immer der Initialwert verwendet, den die Variable bzw. Adresse beim Eintritt in das Netzwerk hatte.

Das gilt auch, wenn der Wert einer Variable bzw. Adresse geändert und anschließend gelesen wird (late assignment).

Dem liegt folgender Mechanismus zugrunde: Am Anfang eines Netzwerks wird der Wert der betreffenden Variable in eine temporäre Variable kopiert. Jeder weitere Lesezugriff erfolgt auf die temporäre Variable; alle Schreibzugriffe erfolgen auf die ursprüngliche Variable.

Beispiel 1:

Editor

Programmcode

Beschreibung

LD

Unerwartetes Ergebnis, da Lesezugriff auf temporäre Kopie.

Zusätzlicher Code zum Kopieren des Wertes von iVariable in DT768 in die temporäre Variable in DT769

Wert der temporären Variable in DT769 lesen, 5 addieren und neuen Wert in iVariable in DT768 schreiben.

Wieder Wert der temporären Variable in DT769 lesen, mit 3 multiplizieren und neuen Wert in iVariable in DT768 schreiben.

GR-Editor

Kein unerwartetes Ergebnis, da kein Lesezugriff auf temporäre Kopie.

Beispiel 2:

Editor

Programmcode

Beschreibung

LD

Kein unerwartetes Ergebnis, da Lesezugriff auf temporäre Kopie von bOutput

Zusätzlicher Code zum Kopieren des Wertes von bOutput in R0511 in die temporäre Variable in R0500

Lesen von temporärer Variable R0500

GR-Editor

Unerwartetes Ergebnis, da kein Lesezugriff auf temporäre Kopie.

Letzte Änderung am: 2021-03-26Feedback zu dieser SeitePanasonic Hotline