【SFC】基本的な一連動作の作成方法

00_【SFC】基本的な一連動作の作成方法

SFC(シーケンシャル・ファンクション・チャート)言語とは、PLCを制御するための5種類の言語の1つとしてPLC用標準規格:IEC 61131-3に定義されているプログラミング言語です。

SFC言語(以下:SFC)は処理を実行する順序をフローチャートのような図で表すことから「一連動作に適した言語」として知られています。

日本国内ではあまり使用されていませんが、欧州では広く使用されているそうです。

三菱電機製シーケンサFXシリーズでは、SFCによるシーケンス制御が可能です。

SFCはラダープログラムと比較すると歴史が浅く「ラダーで一連動作を組めるがSFCは使用したことが無い」といった方が多いかと思います。

この記事では、GX Works2を用いて簡単な一連動作をSFCで作成する手順を解説します。

「SFCに興味があるが、参考になるものが少なく今まで手が出せなかった」という方に少しでもSFCについて知っていただければ幸甚です。

1. 作成するSFCの内容

今回作成するSFCの内容な以下のようになります。

一連動作の仕様

一連動作の仕様は以下のようになります。

仕様
待機中、ランプ(緑)が1秒周期で点滅する。(ON:0.5秒、OFF:0.5秒)
待機中にスイッチ(緑)を押すと、下記の一連動作を行う。

<一連動作>
ランプ(緑)点灯 ⇒ ランプ(赤)点灯 ⇒ ランプ(青)点灯 ⇒ ランプ(黄)点灯
各々の点灯時間は1秒間とする。

一連動作が終了すると、待機中に戻る。

ごく簡単な一連動作です。今回はこの仕様をSFCで作成します。

アドレスマップ

スイッチ・ランプのアドレスマップは以下のようになります。

スイッチ(緑):X0
ランプ(緑):Y0
ランプ(赤):Y1
ランプ(青):Y2
ランプ(黄):Y3

GOTの動作イメージ

GOTの動作イメージは以下のようになります。

GOTの動作イメージ

使用していないデバイスが多々ありますが、ご了承ください。

2. 状態遷移図で動作を確認

SFCで一連動作を作成する前に、状態遷移図と呼ばれるもので一連動作を整理します。

状態遷移図

フローチャートのように、上から順々に実行していきます。

オレンジ枠で囲われたものが、実際に実行する内容です。

状態遷移図_実行内容

十字で書かれたものが、トランジションと呼ばれる「次工程に遷移するための条件」です。

状態遷移図_トランジション

3. SFC作成方法(GX Works2)

それでは、上記のSFCをGX Works2で作成します。使用するシーケンサはFX3Gです。

プロジェクトの作成

1.メニューバーのプロジェクト(P) ⇒ 新規作成(N)…をクリックします。

プロジェクトの作成1

2.新規作成のウィンドウが表示されるので以下のように設定します。

プロジェクトの作成2
  • シリーズ(S):FXCPU
  • 機種(T):FX3G/FX3GC
  • プロジェクト種別(P):シンプルプロジェクト
  • プログラム言語(G):SFC

設定が完了したらOKをクリックします。

3.続いて、ブロック情報設定のウィンドウが表示されるので以下のように設定します。

プロジェクトの作成3
  • タイトル(T):起動回路
  • ブロック種別(B):ラダーブロック

設定が完了したら実行(E)をクリックします。

4.ラダーブロックが作成されました。

プロジェクトの作成4

これが一体何なのか、後ほど解説します。

5.SFCブロックを追加します。ナビゲーションウィンドウのMAINを右クリックしてデータ新規作成(A)…をクリックします。

プロジェクトの作成5

6.データ新規作成のウィンドウが表示されるので以下のように設定します。

プロジェクトの作成6
  • データ型(D):プログラム
  • データ名(N):Block1
  • プログラム言語(L):SFC

設定が完了したらOKをクリックします。

7.ブロック情報設定のウィンドウが表示されるので以下のように設定します。

プロジェクトの作成7
  • タイトル(T):一連動作
  • プログラム種別(B):SFCブロック

設定が完了したら実行(E)をクリックします。

8.SFCブロックが作成されました。

プロジェクトの作成8

このSFCブロックに一連動作のSFCプロブラムを作成していきます。

SFCブロックの作成

1.ナビゲーションウィンドウの「001:Block1 一連動作」をダブルクリックします。

SFCブロックの作成1

2.プロジェクトのプログラム言語をSFCにすると、ウィンドウが以下のように2ヶに分かれます。

SFCブロックの作成2

上図の赤色枠がSFC図、水色枠がZoomと呼ばれるウィンドウです。

SFC図には一連動作となるSFCを作成して、Zoomには各々実行するラダープログラムを作成するイメージです。

SFC図で一連動作の作成

1.【ステップ0】SFC図の行数1、列数1にカーソルを合わせてダブルクリックします。(Enterキーを押してもOKです)

SFC記号入力のウィンドウで以下の設定をします。

SFC図の作成1
  • 図記号:STEP/0
  • コメント(C):待機中

このステップ(STEP)では、ランプ点灯/点滅やタイマコイルの起動など出力処理を行います。設定が完了したらOKをクリックします。

2.【トランジション0】SFC図の行数2、列数1にカーソルを合わせてダブルクリックします。

SFC図の作成2
  • 図記号:TR/0

このトランジション(TR)では、次のステップに遷移するための条件を作成します。

メモ
トランジション(transition)とは、移り変わりや変わり目といった意味でSFCでは次のステップに遷移する意味です。

3.同じ要領で以下のようにSFC図にステップとトランジションを作成していきます。

SFC図の作成3
  • 図記号:STEP/10
  • コメント(C):ランプ(緑)点灯
SFC図の作成4
  • 図記号:TR/1
SFC図の作成5
  • 図記号:STEP/11
  • コメント(C):ランプ(赤)点灯
SFC図の作成6
  • 図記号:TR/2
SFC図の作成7
  • 図記号:STEP/12
  • コメント(C):ランプ(青)点灯
SFC図の作成8
  • 図記号:TR/3
SFC図の作成9
  • 図記号:STEP/13
  • コメント(C):ランプ(黄)点灯
SFC図の作成10
  • 図記号:TR/4

4.【ジャンプ0】SFC図の行数16、列数1にカーソルを合わせてダブルクリックします。

SFC図の作成11
  • 図記号:JUMP/0

このジャンプ(JUMP)では、指定したステップに直接ジャンプするための命令です。

今回は「ステップ0」にジャンプします。つまり、一連動作が終了した時点で「待機中」に戻ります。

5.作成したSFC図は以下のようになります。

SFC図の作成12

ここまでは「あくまで一連動作の流れを記述しただけ」です。ランプの点灯などの各々の処理は次項のZoomで作成します。

そして、各ステップやトランジションに「?マーク」が付いています。これは「SFC図は作成したけど、その内容が記述されていない」状態ですので、現時点で間違っている訳ではありません。

Zoomで処理内容を作成

それでは、Zoomで各々の処理内容を記述していきます。

例えば、ステップ0の処理内容を記述する場合、SFC図の行数1、列数1にカーソルを合わせると右側のZoomウィンドウに編集することができます。

zoom作成

1.【ステップ0】待機中にランプ(緑)点滅のラダープログラム

zoom作成手順1

画像が細かくなってしまうので、以降ラダープログラムのみ記載します。

zoom作成手順2

M8013は三菱電機FXシリーズの特殊デバイスで、1秒周期でON/OFFが切り替わるデバイスです。

2.【トランジション0】待機中にスイッチ(緑)を押すと一連動作を開始するラダープログラム

zoom作成手順3

TRAN命令はSFC特有の命令です。TRAN命令をONさせることによりトランジションが実行されて次のステップに遷移します。

3.【ステップ10】ランプ(緑)を1秒間点灯するラダープログラム

zoom作成手順4

SFCに慣れていないと疑問が幾つかあると思います。

「入力条件の接点が何もないけど…」と思うかもしれませんが問題ありません。出力をそのまま左側の母線に繋げてOKです。

「ステップ0でもY0を使用したからダブルコイルでは…?」これもOKです。ステップ10を実行しているとき、他のステップは”不実行”となる為、同じコイルであっても他のステップであれば使用することができます。

4.【トランジション1】ランプ(緑)が1秒間点灯後にトランジション

zoom作成手順5

5.【ステップ11】ランプ(赤)を1秒間点灯するラダープログラム

zoom作成手順6

6.【トランジション2】ランプ(赤)が1秒間点灯後にトランジション

zoom作成手順7

7.【ステップ12】ランプ(青)を1秒間点灯するラダープログラム

zoom作成手順8

8.【トランジション3】ランプ(青)が1秒間点灯後にトランジション

zoom作成手順9

9.【ステップ13】ランプ(黄)を1秒間点灯するラダープログラム

zoom作成手順10

10.【トランジション4】ランプ(黄)が1秒間点灯後にトランジション

zoom作成手順11

以上でZoomの作成は完了です。

少し細かいGifですが、作成したSFC図とZoomは以下のようになります。

zoom作成手順12

各ステップやトランジションの「?マーク」が消えました。

「やっと完成したか…」と思ったもしれませんが、もう少し作成しなければならないことがあります。

SFCプログラムを実行するための回路をラダーブロックで作成する必要があります。

ラダーブロックで、「イニシャルステート」をONすることで、このSFCが初めて実行されます。「イニシャルステート」とは先頭のステップの番号で、今回は”0”です。

イニシャルステートの説明

次項で、ラダーブロックでイニシャルステートをONさせるラダープログラムを作成します。

ラダーブロックでイニシャルステートのON

前述した通り、SFCを実行するためにはイニシャルステートをラダーブロックでONさせる必要があります。

今回のイニシャルステートの番号は”0”になります。そして、ステートとは”S”で表現されるデバイスです。(SFCを使用しないとあまり馴染みがないかと思います。)

つまり今回は、ステートリレーS0をラダーブロックでONさせる必要があり、S0がONすると先ほど作成したSFCが起動する流れになります。

1.ナビゲーションウィンドウの「000:Block 起動回路」をダブルクリックします。

ラダーブロックの編集1

2.ステートリレーS0をONするラダープログラムを作成します。

ラダーブロックの編集2

M8002は三菱電機FXシリーズの特殊デバイスで、STOP→RUN時に1スキャンのみONするデバイスです。

これでプログラムの作成は以上になります。

プログラムを変換

作成したプログラムを変換します。変換はF4キー、またはメニューバーの変換/コンパイル(C) → 変換(B)をクリックします。

変換1

正常に変換することが出来れば、シーケンサに書込みを行います。

4. 動作確認

それでは、シーケンサとGOTを用いて動作確認をします。※今回はPC上でシミュレーション機能を用いて解説します。

以下がGT Simulator3で動作確認した様子です。

動作確認1

その時のSFCは以下のように実行しています。

動作確認2

仕様通りに動作しました!

5. おわりに

SFCで基本的な一連動作の作成方法について解説しました。

記事にしてみたら、とても長くなってしまいました…。これからもSFCについて勉強しながら色々と解説していきたいと思います。

最後までご覧いただきありがとうございました。

2 COMMENTS

shimmi hiroshi

SFCは古いイメージがあります。
現在でも使用されているのでしょうか。
因みに私の知人、同僚に聞いても使用されている方がおりません。

返信する
電気設計人

私の周りでは使用している方がいますがごく少数ですね。
国内より海外で多いと聞いたことがあります。

返信する

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です