FUNまたはFBのEN/ENO接続

先頭のファンクション(FUN)またはファンクションブロック(FB)のイネーブル入力ENOの状態(TRUEまたはFALSE)により、FUN/FBの実行、出力変数への書込みが行われるかどうかが決まります。(LDまたはFBDのEN/ENOをご参照ください)

後続のFUN/FBが、上記の出力変数の1つを入力変数として使用する場合、コンパイラはテンポラリ変数を生成します。他のテンポラリ変数も同じアドレスを使用する可能性もあるため、出力変数に何も書き込まれない場合 (例えばENOがFALSEのとき)には、入力変数の値が確定されません。

これを避けるために、ネットワーク内のすべてのFUNやFBは、それぞれの前に接続されているFUN/FBが実行したときだけ実行するように、配置しておく必要があります。コンパイラは、後続のFUNやFBのEN入力が未接続になっているか、ANDファンクションが接続されているかを確認します。

ネットワーク1の場合、実行条件CompareFALSEのとき、ADDのイネーブル入力ENが不定となり、警告メッセージが表示されます。

ネットワーク2の場合、正しくプログラミングされており、警告は発生しません。

ネットワーク3では、Add_toFALSE、かつCompareTRUEの場合、後続のFUN (GT)は実行されますが、前段のFUN (E_ADD)は実行されません。動作は不定となりますが、コンパイラは警告メッセージを発生しません。

関連トピック

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