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. ![]() |
![]() |