アキュムレータの内容がTRUEのとき、オペランドフィールドで定義されたラベルの位置から、プログラムの実行を継続します。
この演算子で使用できるオペランドは、次のデータ型です。プログラム内に存在するいずれのラベルにも有効です。アキュムレータの値は、BOOL型でなければいけません。
下記のサンプルプログラムの場合、比較命令がいずれのデータ型でも使用できるため、var_1とvar_2は、いずれのデータ型でも使用できます。var_3, var_4, var_5は、それらを使用する動作に従って、数字のデータ型として宣言してください。LABEL1とLABEL2は、プログラム内で有効なラベルにする必要があります。アキュムレータの値がTRUEを保持しているときは、ジャンプのみ実行されます。TRUEでないときは、JMPC命令に続くプログラムを実行します。
ラベルには、コロン : をつける必要があります。ただし、JMPC命令の右側に指定するラベルでは、コロン : は省略して記述します。
ラベルはネットワークの先頭のみに挿入することができます。ラベルは、ジャンプ用に使用しない場合でも、どのネットワークの先頭にも挿入することができます。(例: このプログラム例ではLABEL0が該当します。)
POUヘッダには、このプログラムで使用するすべての入力変数と出力変数を宣言します。
(* Beginning of network 0 *) |
|||
LABEL0: |
LD |
var_1 |
(* Load var_1 in accu *) |
EQ |
var_2 |
(* Compare accu with var_2; store result of comparison in accu; result is of type BOOL*) |
|
JMPC |
LABEL1 |
(* If accu contains TRUE continue program execution at position LABEL1 *) |
|
(* Beginning of network 1 *) |
|||
LABEL1: |
MUL |
var_3 |
(* Multiply accu by var_3 *) |
SUB |
var_4 |
(* Subtract var_4 from accu; result is store in accu *) |
|
ST |
var_5 |
(* Store accu in var_5*) |