Sequential Function Chart エディタ (SFC)
概要
Sequential Function Chart (SFC) は 3 番目のグラフィカル IEC 61131-3 言語であり、ステップ-トランジションモデルを通じて 状態指向のシーケンス を記述します — 形式的にはペトリネットに関連します。SFC ダイアグラムは、 条件付きの トランジション で接続された ステップ のシーケンス で構成されます。任意の時点でステップのサブセットがアクティブであり、 ステップは出力トランジションが TRUE になると離れます。
SFC は シーケンシャル制御、モードマシン、バッチプロセス にとって 自然な言語です — 「最初にこれ、次にそれ、ただし…の場合を除く」と 記述するすべてのものです。
エディタのレイアウト
SFC エディタは FBD および LD と同じ 3 部構成スキーム (上部のツール バー、グリッド + ズーム + パン付きの QGraphicsView、右側の変数 テーブル) に従います。ツールバーは各 SFC 要素タイプ用のツールを提供 します。
要素タイプ
ステップ
ステップは名前付きの 長方形ボックス です。アクティブな間、それに 関連付けられたアクションが実行されます。
- 初期ステップ: POU のエントリポイント。プログラム開始時にアクティブ になります。エディタでは 二重の境界線 で描画されます。
- 後続ステップ: 単一の境界線で描画されます。先行するトランジション が発火するとアクティブになります。
ポート: 上 (IN、前のトランジションから)、下 (OUT、次のトランジション へ)、右 (アクションブロックへの接続)。
トランジション
トランジションは、2 つのステップ間の垂直接続線上の 短い水平バー です。
バーの右側には 条件 があります — ST 式 (例: tmr.Q AND xReady)、
またはファンクションブロックの出力です。
条件が TRUE になると、先行するステップが非アクティブになり、後続の ステップがアクティブになります。
アクションブロック
アクションブロックは ステップがアクティブな間に何が起こるか を 記述します。2 つのセルで構成されます: 左側の 修飾子 と、右側の アクション名 (ST アクションまたは出力変数への参照)。
| 修飾子 | 意味 |
|---|---|
N | Non-stored — ステップがアクティブな間に実行 (デフォルト)。 |
P | Pulse — ステップ起動時に 1 サイクル分だけ発火。 |
S | Set — 設定され、ステップ遷移を越えてアクティブのまま。 |
R | Reset — S で以前に設定されたアクションをクリア。 |
L | Limited — 指定された時間だけ実行。 |
D | Delayed — 指定された遅延後にのみ開始。 |
複数のアクションブロックを 1 つのステップにドッキングできます。
分岐と合流
分岐 (divergence) はシーケンスを複数のパスに分け、合流 (convergence) がそれらを再び結合します。SFC には 2 種類あります:
- 選択 (OR 分岐): どのトランジション条件が最初に TRUE になるかに 応じて、パスのうち 正確に 1 つ に入ります。1 本の水平バー で描画されます。
- 並列 (AND 分岐): すべての パスが同時にアクティブになり、 独立に実行されます。各パスが合流点に到達してはじめて、シーケンスが 進みます。2 本の水平バー で描画されます。
ジャンプ
ジャンプアイテムは、ターゲットステップの名前を持つ 下向きの矢印
です。現在のパスから名前付きステップに制御を移します — 典型的には
シーケンスの末尾での「最初に戻る」、またはエラー処理 (「Step_Error
にジャンプ」) に使用されます。
用途
SFC は、プログラムが明確な 時間的シーケンス を持つ場合に適しています:
- マシンモード — Init → Idle → Running → Cleanup → Idle。
- バッチプロセス — Fill → Heat → Mix → Drain。
- 安全シーケンス — 定義された順序で停止シーケンスを実行 (「最初 にヒーターをオフ、次にポンプをオフ、次にメインコンタクタ」)。
- プロセス工学 — 遅延と条件を伴う反応ステップ。
同じ機能を ST で実装する場合と比較して、SFC バージョンは大幅に読み
やすくなります — ステップの順序と分岐条件がグラフィカルに自明であり、
一方 ST では CASE state OF 構造が同じ情報を間接的にしか伝えません。
関連項目
- Function Block Diagram — アクションまたはトランジション 条件 の内部 のロジック用。
- Ladder Diagram — より単純なインターロック回路向けの代替 グラフィカル言語。
- ライブラリ — タイマー (
TON,TP) はトランジション 条件の一般的な部品。