LD プログラム
|
ST プログラム
|
説明
|
|
Y0 := X0 AND X1 OR X2 AND NOT X3;
|
|
他の記述方法:
|
IF X0 AND X1 OR X2 AND NOT X3 THEN
Y0:=TRUE;
ELSE
Y0:=FALSE;
END_IF;
|
同じ動作だが、より多くのリソースが必要。
注記 WHILEループを使用した場合、スキャンタイムエラーが生じ、ウォッチドッグエラーが発生します。
|
2. セット/リセット出力を持つネットワーク
|
LD プログラム
|
ST プログラム
|
|
|
IF X0 AND X1 THEN
Y0 := TRUE;
END_IF;
IF X2 AND NOT X3 THEN
Y0 := FALSE;
END_IF;
|
|
3. パルスフラグ(立上がり/立下がりエッジ検出)をもつネットワーク
|
LD プログラム
|
ST プログラム
|
説明
|
|
(* rising edge *)
IF X0 AND NOT X0_Old THEN
Count:=Count+1;
END_IF;
X0_Old:=X0;
(* falling edge *)
IF NOT X1 AND X1_Old THEN
Count:=Count-1;
END_IF;
X1_Old:=X1;
|
ファンクションまたはファンクションブロックを用いない場合のエッジ検出の明示的なクエリー
|
他の記述方法:
|
(* rising edge *)
R_TRIG_X0( CLK:= X0 );
IF R_TRIG_X0.Q THEN
Count:=Count+1;
END_IF;
(* falling edge *)
F_TRIG_X1( CLK:= X1 );
IF F_TRIG_X1.Q THEN
Count:=Count-1;
END_IF;
|
IEC Standard Libraryの"R_TRIG"または"F_TRIG"ファンクションブロックインスタンスを使用
|
他の記述方法:
|
(* rising edge *)
IF DF(X0) THEN
Count:=Count+1;
END_IF;
(* falling edge *)
IF DFN(X1) THEN
Count:=Count-1;
END_IF;
|
基本ファンクションDFまたはDFNを使用
|