ネットワーク内の変数またはアドレスの値が読み出されたとき、コンパイラは、ネットワークが実行される直前に変数またはアドレスが持っていた値を採用します。
変数またはアドレスの値が変更され、読み出されたとき、意図しないエラーが発生することがありますので、ご注意ください。
この現象は以下のような過程で発生します。まず、ネットワークの先頭で変数の値を仮変数としてコピーします。すべての読み出し動作は、仮変数から処理します。一方、すべての書き込み動作は、元の変数に対して処理します。
例1:
エディタ |
プログラムコード |
説明 |
|
LD |
「仮コピーから読み出した値」に起因する、予期しない演算結果 |
||
DT768に格納されたiVariableの値を仮変数として、DT769へコピーするプログラムコード |
|||
DT769に格納された仮変数から読み出し、5を加算し、iVariable (DT768)へ書き込み。 再度、DT769に格納された仮変数を読み出し、3を乗算し、iVariable (DT768)へ書き込み。 |
|||
GRタイプエディタ |
「仮コピーから読み出し」をしないことに起因する、予期される演算結果 |
例2:
エディタ |
プログラムコード |
説明 |
|
LD |
bOutputの「仮コピーから読み出した値」に起因する、予期される演算結果 |
R0511に格納されたbOutputの値を仮変数として、R0500へコピーするプログラムコード |
|
仮変数R0500からの読み出し |
|||
GRタイプエディタ |
「仮コピーから読み出し」をしないことに起因する、予期しない演算結果 |