以下の例は、SFCプログラムの動作を示します。この例では、アクションリストやアクション、トランジションに直接的に、ステップフラグとBOOL型変数を使用しています。特に、この例では、アクションクオリファイアの働きも示しています。
Step1は以下のように割り付けられています:
BOOL型変数bVarStep1_P: パルスアクションクオリファイアP付で、Step1の最初のスキャンのみTRUEにセットされます。
BOOL型変数bVarStep1_S_R: セット型アクションクオリファイアS付で、Step1の間TRUEにセットされ、Step1が終わったあとも、Step3でFALSEにリセットされるまでTRUEのまま保持されます。
BOOL型変数bVarStep1_N: デフォルトの非保持型クオリファイアN付で、ステップを実行している間のみ、TRUEになります。
デフォルトのアクションクオリファイアN付のアクションプログラムAction1は、Step 1が活性状態になっている間、実行されます。
アクションの内容:
bVarAction1_Nは、ステップフラグStep1.Xによって、TRUEまたはFALSEになります。ステップフラグは、Step1の実行中はTRUEになり、Step1の最後のスキャン時にFALSEになります。ご注意: この動作は、bVarStep1_N と同一ではありません。
bVarAction1_Sは、Step1が実行されている間にTRUEにセットされ、Step1が完了するまでその値が保持されます。
Step2には、アクションが定義されていません。
Step3は、ステップの最初のスキャンで変数をリセットするリセット型アクションクオリファイアR付のBOOL型変数bVarStep1_S_Rが定義されています。
PLC の 1スキャン |
ステップとトランジション |
アクション |
ステップフラグを使用すると、トランジション条件がTRUEになった後、ステップの最後のスキャンを確認することができます。このケースでは、ステップフラグの値は、FALSEになります。
システム変数sys_bIsFirstScanOfSfcStepを使用すると、最初のスキャンを確認することができます。このとき変数は TRUEになります。