変数へのアクセス(後からの割り付け)

ネットワーク内の変数またはアドレスの値が読み出されたとき、コンパイラは、ネットワークが実行される直前に変数またはアドレスが持っていた値を採用します。

変数またはアドレスの値が変更され、読み出されたとき、意図しないエラーが発生することがありますので、ご注意ください。

この現象は以下のような過程で発生します。まず、ネットワークの先頭で変数の値を仮変数としてコピーします。すべての読み出し動作は、仮変数から処理します。一方、すべての書き込み動作は、元の変数に対して処理します。

例1:

エディタ

プログラムコード

説明

LD

「仮コピーから読み出した値」に起因する、予期しない演算結果

DT768に格納されたiVariableの値を仮変数として、DT769へコピーするプログラムコード

DT769に格納された仮変数から読み出し、5を加算し、iVariable (DT768)へ書き込み。

再度、DT769に格納された仮変数を読み出し、3を乗算し、iVariable (DT768)へ書き込み。

GRタイプエディタ

「仮コピーから読み出し」しないことに起因する、予期される演算結果

例2:

エディタ

プログラムコード

説明

LD

bOutput「仮コピーから読み出した値」に起因する、予期される演算結果

R0511に格納されたbOutputの値を仮変数として、R0500へコピーするプログラムコード

仮変数R0500からの読み出し

GRタイプエディタ

「仮コピーから読み出し」しないことに起因する、予期しない演算結果

最終修正日: 2019-08-05このページに関するフィードバックお問い合わせ窓口