FBD、LD、ILでは、EN/ENO付きファンクションやファンクションブロックを使用して、実行条件を持つプログラムを組むことができます。ENとはイネーブル入力を、ENOはイネーブル出力を示します。
STエディタには、EN/ENO付きのファンクションやファンクションブロックはありません。ファンクションやファンクションブロックの実行を制御する代わりにIF文またはCASE文を使用してください。IEC仕様のすべてのファンクション、ファンクションブロックは、ENとENOの両方が使用できます
ブール型入力変数または論理式のブール結果は、EN入力に接続することができます。
EN入力がTRUEの場合
ファンクションまたはファンクションブロックが処理されます。正常に実行された後、対応するENO出力がTRUEにセットされます。このEN出力に接続された次のファンクションまたはファンクションブロックのENO入力は、これがTRUEの場合に処理されます。
EN入力がFALSEの場合
ファンクションまたはファンクションブロックは処理されません。ファンクション結果は変更されず、接続された変数はその値が保持されます。
プログラミング言語 |
EN = FALSE Þ ENO = FALSE |
EN = TRUE Þ ENO = TRUE |
LD |
||
FBD |
||
IL |
ユーザー定義ファンクションとファンクションブロックは、EN/ENO付き、EN/ENOなしのいずれでも作成することができます。これらは、以下の方法で選択することができます:
新しいPOUを作成するときに"「EN/ENOを使用する」"を選択する( )
「EN/ENOを使用する」"を選択する
...を使用して"命令を挿入するときに「[EN/ENO付き]」を選択する
ENO出力の値
ユーザー定義ファンクションまたはファンクションブロックのボディ内で、ENO出力を明示的にセットしない場合、EN入力と同じ値となります。
ユーザー定義ファンクションまたはファンクションブロックのボディ内で、ENO出力がFALSEにセットされた場合、出力変数の値は、出力に転送されません。
POUの処理の前にENをTRUEにセットします。POUの処理が正常に実行されたとき、それに対応するENO出力が、"TURE"にセットされます。ENOがセットされていない場合は、エラーが発生しているおそれがあります。