Skip to main content

SFC要素:アクション

シンボル:_cds_icon_sfc_action.png

アクションには、使用可能なプログラミング言語のいずれかで記述された1つ以上のステートメントが含まれます。アクションは、ステップまたはトランジションに割り当てることができます。

SFCステップで呼び出すアクションは、プロジェクト内にPOUとして作成されている必要があります。

_cds_img_sfc_element_action.png

例外:アクション関連付けとしてステップに追加するIECアクションの場合は、アクション オブジェクトの代わりにブール変数を指定できます。この変数の値は、アクションが実行されるたびにFALSEとTRUEの間で切り替わります。

重要

ステップ名は、上位のPOUのスコープ内で一意に定義する必要があります。SFCで記述されたアクションには、そのアクションが割り当てられているステップと同じ名前のステップを含めることはできません。

IECアクションとステップ アクションがあります。

IECアクション

IECアクションは、IEC 61131-3規格に準拠したアクションです。IECアクションは、その修飾子に従って実行されます。

IECアクションは2回実行されます。1回目はステップがアクティブになったとき、2回目はステップが非アクティブ化されたときです。1つのステップに複数のアクションを割り当てた場合、アクションのリストは上から下へ処理されます。

各アクション ボックスには、1列目に修飾子、2列目にアクション名が含まれます。どちらも直接編集できます。

_cds_img_sfc_iec_action.png

重要

同じグローバル ブール変数が、異なるSFC POUでIECアクションとして関連付けられている場合、意図しない上書きが発生する可能性があります。

ステップ アクションとは異なり、IECアクションではさまざまな修飾子を使用できます。

ステップ アクションとのもう1つの違いは、各IECアクションに制御フラグが用意されていることです。これにより、アクションが別のステップから同時に呼び出された場合でも、アクションはどの時点でも必ず1回だけ実行されます。ステップ アクションでは、これは保証されません。

アクション関連付けを挿入コマンドを使用して、ステップにIECアクションを割り当てます。

ステップ アクション

ステップ アクションは、IEC規格を拡張するために使用できるアクションです。

  • エントリー アクション:

    このアクションは、ステップがアクティブ化された後、メイン アクションが実行される前に1回実行されます。

    エントリー アクション要素プロパティを使用して、単一のステップ内から、新しいアクション、またはSFCオブジェクトの下にすでに作成されているアクションを参照します(2)。

    エントリー アクションを追加コマンドを使用して、ステップに新しいアクションを追加できます。エントリー アクションは、ステップ ボックスの左下隅にEで表示されます。

  • メイン アクション:

    このアクションは、ステップがアクティブ化され、エントリー アクションがすでに実行された後に実行されます。ただし、IECアクションとは異なり、ステップが非アクティブ化されたときに2回目の実行は行われません。また、ここでは修飾子も使用できません。

    • (1)メイン アクション要素プロパティを使用して、既存のステップにアクションを追加できます。

    • ステップ要素をダブルクリックして、新しいアクションを作成して追加できます。

    メイン アクションは、ステップ ボックスの右上隅に塗りつぶされた三角形で表示されます。

  • 終了アクション:

    このアクションは、ステップが非アクティブ化された後に1回実行されます。ただし、実行は同じサイクル内ではなく、次のサイクルの開始時に行われることに注意してください。

    終了アクション要素プロパティ(3)を使用して、新しいアクション、またはSFCオブジェクトの下にすでに作成されているアクションをステップから参照できます。

    終了アクションを追加コマンドを使用して、ステップに終了アクションを追加できます。

    終了アクションは、ステップ ボックスの右下隅にXで表示されます。

_cds_img_sfc_non_iec_actions.png

IECアクションとステップ アクションの違い

修飾子NのIECアクションとステップ アクションの主な違いは、IECアクションは常に2回実行されることです。1回目はステップがアクティブになったとき、2回目はステップが非アクティブ化されたときです。次の例を参照してください。

例 8. 例
_cds_img_sfc_diff_iecaction_stepaction.png

ステップAS1に、アクションAction_AS1を、ステップ アクションとして1回(左)、修飾子NのIECアクションとして1回追加しています。どちらの場合も2つのトランジションが切り替わるため、初期ステップに再び到達するまでにそれぞれ2 PLCサイクルかかります。カウンター変数iCounterが0で初期化され、アクションAction_AS1内でインクリメントされるものとします。Initステップが再びアクティブになった後、左側の例ではiCounterの値は1です。一方、右側の例では、AS1の非アクティブ化によってIECアクションが2回目に実行されるため、値は2になります。



もう1つの違いは、ステップ アクションは埋め込むことができる点です。この場合、ステップ アクションには該当するステップからのみアクセスできます。このステップをコピーすると、新しいアクション オブジェクトが自動的に作成され、それぞれの実装コードがコピーされます。ステップ アクションを埋め込むかどうかは、ステップに最初のアクションを挿入するとき、または後でコピー時に複製要素プロパティを使用して定義します。通常、この動作はSFCのオプションで事前に設定することもできます。

IECアクションでは、アクション オブジェクトの代わりにブール変数を指定することもできます。ステップ アクションでは、これはできません。