ステートチャート
ステートチャートは、有限状態マシンをグラフィカルにプログラムできるグラフィカルな形式です。ステートマシンは、実行時に有限数の状態の1つに継続的に存在するシステムです。各状態でアクションを実行できます。イベントが発生すると、次の状態への遷移が発生します。移行中にアクションを実行することもできます。
の CODESYS、ステートチャートは、で作成されるPOUです。 ステートチャート 実装言語。このタイプのPOUは、 のシンボル POU 表示または デバイス 見る。プログラム、関数ブロック、関数、メソッド、アクション、またはプロパティをステートチャートとして作成できます。エディターは、状態、疑似状態、および遷移の要素を提供します。
状態と遷移は、メソッドまたはアクションを呼び出すことができます。疑似状態は、プロセスを制御するために使用される制御要素ですが、アクションやメソッドを呼び出すことはありません。
: 州
:高速状態
:複合状態
:開始状態
: 終了状態
:フォーク/参加
: 選択
: 遷移
:完了遷移
:例外遷移
ステートチャートには、他の状態に切り替えるための少なくとも2つの状態と2つの遷移があります。
イベントに応答する遷移のガード条件は、ブール式またはブール変数です。通常のフォントとトランジションラインの横の角かっこで表示されます。以下の例: [bPowerOn]
、 [bPowerOff]
、 [bDoIt]
、 [bReady]
。
トランザクションアクションは、遷移のガード条件が次のようになるとすぐに実行されるアクションです。 TRUE
。アクション名は太字で表示され、 //
トランジションラインの前。
以下の例: //PowerUp //PowerDown TODO
遷移には、アクティブ状態の複数の出力遷移のガード条件が同時に適用される場合に適用される優先順位があります。この場合、優先順位は、遷移線の先頭にある数字記号によって図に表されます。州で以下の例を参照してください Idle
:(1)および(2)。
状態には、合計3つのタイプのアクションがあります。 ENTRY
、 DO
、 と EXIT
。これらのアクションの詳細については、のヘルプページを参照してください。 州 エレメント。
この例は、通常の3つの状態を持つ単純なマシンのステートチャートを示しています。 PowerOff
、 Idle
、 と DoIt
。イベントが発生すると、つまり作成されたガード条件が満たされると、システムは次の状態に切り替わります。たとえば、マシンは稼働状態に切り替わります DoIt
ガード状態になるとすぐに bDoIt
値を取得します TRUE
。
すべてのアクションが終了すると、マシンは状態に戻ります Idle
次のイベントを待ちます。マシンの電源を切ることもできます(//PowerDown
アクション)そして、 PowerOff
州。
