SFC言語

SFC言語とは、シーケンス処理を制御するための工程歩進プログラムを容易に記述するために開発された、プログラム言語(*1)です。
詳しくは後に説明しますが、実行ステップとステップ移行条件のみを順次動作するもので、フローチャート(流れ図)のような方式となっており、
プログラムの流れや動きが把握しやすくなっています。

SFC_Flow-chart

LD言語(ラダー)

LD言語とは、論理回路を記述するための手法で、現在多くのメーカーのプログラマブルロジックコントローラ(PLC)で採用されているプログラム言語です。

LD言語についてはこちらのエントリーをご参照ください
PLCを動かすためのプログラム ラダー

 

*1 PLCプログラム言語とは
国際電気標準会議規定による国際規格IEC61131-3にてPLC用の以下の5種類のプログラム言語が定義されています。


IL言語 【インストラクション リスト】
アプリケーションの小型化

il_language


LD言語 【ラダー ダイアグラム】
リレーシーケンスの置き換え

ld-language


FBD言語 【ファンクション ブロック ダイアグラム】
データ処理系(PID制御等)

fbd-language


ST言語 【ストラクチャード テキスト】
数値計算向き言語

sfc-language


SFC言語 【シーケンシャル ファンクション チャート】
アプリケーション構造記述

sfc-language

 

動作(動き)処理プログラムはSFCが使いやすい

動作(動き)処理プログラムをラダーで作成する場合は、実行動作ステップを自己保持やセット/リセット等の方法で動作を切り分ける必要があり、実行動作ステップの全体を把握しにくいと言えます。
SFCで作成する場合は、前にも述べましたがフローチャートの様に動作を流れで作成でき、視覚的にSFCのほうが分かりやすいと言えます。
一方、常時計算処理のようなプログラムを作成する場合、SFCでは実行状態のステップのみ処理されるため、常時計算処理を作る場合はラダーの方が優れています。
大量のステップの計算処理を作る場合も、視覚的にラダーのほうが分かりやすく作りやすいと言えます。

よって、ラダーとSFCの特徴を活かし、2つの言語を組み合わせて使用するプログラムが望ましいと言えます。
SFCがプログラムの流れや動きを把握しやすいという特徴を、簡単な動作プログラムにてご説明いたします。

 

同じ動作(動き)処理プログラムをSFCとラダーで書いてみる

動作概略

lamp-off
左図の操作パネルに3つのランプと1つのモーメンタリ式押しボタンスイッチがあります。

lamp-on-green①運転ボタンを押すことで、まずランプ1(緑色)が点灯します。

lamp-on-yellow②ランプ1が点灯してから3秒後にランプ1を消灯し、ランプ2(黄色)を点灯します。

lamp-on-yellow③ランプ2が点灯してから3秒後にランプ2を消灯し、ランプ3(赤色)を点灯します。

lamp-on-red④ランプ3が点灯してから3秒後にランプ3を消灯して一連の動作が終了します。

運転終了後に、再度運転ボタンを押すことで上記の動作を①から順番に一通り行います。

上記の動作の制御プログラムをラダープログラムとSFCプログラムの2種類を作成致しました。

*作成した2種類のプログラムは、三菱のQシリーズシーケンサ用のプログラムです。
(SFCはMELSAP-L方式で作成しています。)

ラダーで作成した場合【図1】

ladder

図1

SFCで作成した場合【図2】

lighting-control01

図2

この2つのプログラム(図1,図2)は、同じ動作を、ラダー(図1)で作成した場合とSFC(図2)で作成した場合のものです。
SFCはステップと移行条件で構成されています。
SFC図2で枠で囲っているステップと移行条件をラダーでは図1のような分類になりステップが出力コイルで移行条件が接点になります。

プログラムの経験がなくてもSFCではフローチャートの要領で動作の流れや動作の状況を把握しやすくなっています。

 

SFCプログラムの動作の流れ

経験がなくてもフローチャートの要領で把握しやすいという事を実際の、プログラムの流れに沿ってご説明いたします。
改めて下記SFCで書かれた回路図をご覧ください。

SFCのランプ点灯制御回路と操作パネル

lighting-control

図3

lamp-off

図3の赤枠で囲まれた、先頭のステップ0(イニシャルステップ)は下の移行条件0が成立するまで実行します。
ステップ0のプログラムは記述されていないので、ステップ0実行中の動作はありません。
最初の移行条件「aX0」とは入力デバイス「X0」がONすると移行条件が成立します。
運転ボタンを押すと、入力デバイス「X0」がONしますので移行条件0が成立してステップ0の実行を停止して、次のステップ(ステップ1)を実行します。

 

lighting-control01

図4

lamp-off

操作パネル

図4の赤枠で囲まれた、ステップ1には「oY10, oT1 K30」とプログラミングされています。

動作は出力デバイス「Y10」がONしますので「Y10」に接続しているランプ1が点灯します。
同時にタイマー「T1」が計測を開始します。

図4の青枠で囲まれた移行条件1「aT1」はステップ1でタイマー「T1」が計測を開始してから3秒経過することで移行条件が成立してステップ1の実行が停止して次のステップ(ステップ2)へと移行します。
ステップ1実行停止すると出力デバイス「Y10」とタイマー「T1」がOFFします。
「Y10」がOFFすると同時にランプ1も消灯します。
ステップ2移行もステップ1同様ランプの点灯、タイマーで時間を計測、3秒経過にて次のステップへ移行を繰返しステップ3までの動作が終了するとエンドステップに到達し、一連の動作が
終了します。

このように、フローチャートと同様に、ステップ0からフローチャートのように順にプログラムを追っていく事ができ、全体を把握しやすいのです。

PLCでは、多くの場合ラダーで記述されていますが、SFCはフローチャートのように動作の流れや動作の状況を把握しやすので、動作(動き)処理プログラムには適しています。
特に、『動作が複雑』、『動作管理項目が多い』などの場合弊社ではSFC言語を使用しています。

制御技術G 小川、櫻井