出力変数の書きかわるタイミング


Begin/Endセクションのトップに記述されたLD言語は1スキャン(1サイクル)中に上から下にプログラムが全て実行されます。
例えば、立ち上がりエッジの出力


というプログラムでは、接点の立ち上がり以降、最低1スキャンはtrueになります。


また、SFCのステップ内で次のような記述がある場合、

Action(P):
out:=true;
e:=false;
End_action;
このとき、outは1サイクル中はtrueになります。

ただし、上記の2つの例に関しては注意しないといけないことがあります。それは、出力変数の振る舞いについてです。
(1)出力変数はプログラム中で値を書き換えた場合、それがコンピュータ外部に反映されるのは1サイクルの終わり、全プログラムを終了した後です。つまり、出力変数を書き換えた後に同一サイクル中にその変数を読み出しても、その値は実際のI/Oの値と一致しているとは限りません。
(2)出力変数を同一サイクル中に複数回書き換えると、最後に書いた値が実際に出力されます。
最終更新:
2009-03-19 15:52
改訂:
1.0
評価点数:0 (0 件の投票)
Chuck Norris has counted to infinity. Twice.

このカテゴリー内のレコード

タグ