Functionの条件実行化(EN/ENO)

ラダー言語をご使用の方は命令を条件実行で動作させるのは必須の作業ですが、PLCnextでもFuncionの条件実行が可能です。

条件実行(EN/ENO)の設定

PLCnext EngineerではFunctionの配置時のデフォルトを条件実行化(EN/ENO付)することもできますし、一つ一つのFunctionを配置した時にそれを常時実行か条件実行(EN/ENO)するか選択することもできます。

  • Funcion配置時のデフォルト
    • PLCnext EngineerにおいてExtras > Optionsで右下のダイアログボックスを開き、
      EN/ENO Settingsの2つのチェックボックスをチェックすると、FBDプログラム、STプログラムへのFunctionの配置時にデフォルトでFunctionがEN/ENO付の条件実行となります。
  1. Function配置後の変更

ENは、Enable inputの略で、EN/ENOを有効にすると、Functionの入力変数として自動的にENが追加されます。ENがTRUEの時のみ、Functionのロジックが実行されます。ENOは、ENable Outputの略で、ENがTRUEかつFunctionの実行が正常の時のみENOがTRUEとして後段のENに伝えることができます。(システム定義のFunctionでは範囲外の足し算のようなエラーで自動的にENOがFALSEになりますが、ユーザー定義のFunctionではユーザーがENOの値を制御できます。)

実行例

条件実行をする簡単なプログラムを作成し、AXC F 1152のシミュレータで動作させました。

この例で、ADDは引数同士の足し算、MULは掛け算です。MY_FUNCは、in1^2+in2を出力するユーザー定義Functionです。
i1は2なので、実行されると、iResult = (2+1) * 3 = 9、iResult2 = 2^2+3 = 7が想定されますが、enableCalcがFALSEのため、いずれのFunctionのEN/ENOもFALSEとなり実行されず、iResult、iResult2とも初期値の0のままです。

enableCalcをTRUEにすると、iResult = 9、iResult2 = 7となり、演算が実行されていることがわかります。

注意) ADDとMULの間の信号線は赤く表示すべきですが、PLCnext Engineer 2024.0.2では黒く表示されてしまっていますので、信号の伝搬の確認は、別途信号線値を変数で受けてご確認ください。

  • URLをコピーしました!