SFC(シーケンシャル・ファンクション・チャート)言語とは、PLCを制御するための5種類の言語の1つとしてPLC用標準規格:IEC 61131-3に定義されているプログラミング言語です。
SFC言語(以下:SFC)は処理を実行する順序をフローチャートのような図で表すことから「一連動作に適した言語」として知られています。
三菱電機製シーケンサFXシリーズでは、SFCによるシーケンス制御が可能です。
SFCによる基本的な一連動作の作成方法については以下のページで解説しております。
![00_【SFC】基本的な一連動作の作成方法](https://denkisekkeijin.com/wp-content/uploads/2019/09/00_【SFC】基本的な一連動作の作成方法-160x160.png)
↑の記事では、一連動作を一回しかしない仕様でした。今回は一連動作に「繰り返し処理」を追加して、何回でも繰り返すことが出来る一連動作を作成します。
この記事では、GX Works2を用いて一連動作を繰り返すSFCを作成する手順を解説します。
目次
1. 基となるSFCの内容
今回作成するSFCに触れる前に、基となるSFCについて解説します。
一連動作の仕様
一連動作の仕様は以下のようになります。
待機中にスイッチ(緑)を押すと、下記の一連動作を行う。
<一連動作>
ランプ(緑)点灯 ⇒ ランプ(赤)点灯 ⇒ ランプ(青)点灯 ⇒ ランプ(黄)点灯
各々の点灯時間は1秒間とする。
一連動作が終了すると、待機中に戻る。
至って単純な一連動作です。この仕様では一連動作が終了すると、繰り返し処理を行わずに終了します。(ずーっとスイッチ(緑)を押していれば繰り返しますが…)
状態遷移図
一連動作の状態遷移図は以下のようになります。
![状態遷移図](https://denkisekkeijin.com/wp-content/uploads/2019/09/20_状態遷移図.png)
アドレスマップ
スイッチ・ランプのアドレスマップは以下のようになります。
ランプ(緑):Y0
ランプ(赤):Y1
ランプ(青):Y2
ランプ(黄):Y3
GOTの動作イメージ
GOTの動作イメージは以下のようになります。
![GOTの動作イメージ](https://denkisekkeijin.com/wp-content/uploads/2019/09/temp-1.gif)
使用していないデバイスが多々ありますが、ご了承ください。
SFCプログラム
SFCのプログラムは以下のようになります。(GIF)
![](https://denkisekkeijin.com/wp-content/uploads/2019/10/80.gif)
SFCプログラムは、上記のようなSFCブロックを起動するため、別にラダーブロックが必要になります。以下がラダーブロックです。
![ラダーブロックの編集2](https://denkisekkeijin.com/wp-content/uploads/2019/09/92-1024x122.png)
長くなりましたが、以上の基となるSFCについての解説です。記事冒頭でも紹介しましたが、このSFCの作成方法は以下のページで解説しております。
![00_【SFC】基本的な一連動作の作成方法](https://denkisekkeijin.com/wp-content/uploads/2019/09/00_【SFC】基本的な一連動作の作成方法-160x160.png)
2. 一連動作を繰り返すSFC
それでは、一連動作を繰り返すSFCについて解説します。
一連動作の仕様
一連動作の仕様は以下のようになります。
待機中にスイッチ(緑)を押すと、下記の一連動作を行う。
<一連動作>
ランプ(緑)点灯 ⇒ ランプ(赤)点灯 ⇒ ランプ(青)点灯 ⇒ ランプ(黄)点灯
各々の点灯時間は1秒間とする。
一連動作が終了したとき、セレクタスイッチ(白)がONの場合は一連動作を最初から繰り返し、OFFの場合は待機中に戻る。
セレクタスイッチ(白)の状態により、一連動作を繰り返しすか判別します。
状態遷移図
繰り返し処理がある一連動作の状態遷移図は以下のようになります。
![状態遷移図2](https://denkisekkeijin.com/wp-content/uploads/2019/10/20_状態遷移図-1024x685.png)
一連動作終了時にセレクタスイッチ(白)の状態で『初期工程(待機中)』か『第1工程(一連動作の最初)』のどちらに遷移するか判別します。
アドレスマップ
ランプ(緑):Y0
ランプ(赤):Y1
ランプ(青):Y2
ランプ(黄):Y3
セレクタスイッチ(白):X10
セレクタスイッチ(白)はX10としています。
GOTの動作イメージ
GOTの動作イメージは以下のようになります。
![GOT動作イメージ](https://denkisekkeijin.com/wp-content/uploads/2019/10/GOT動作.gif)
セレクタスイッチ(白)は『左側でOFF』『右側でON』とします。
SFCプログラム(SFCブロック)
プログラムのSFCブロックは以下のようになります。
![SFC](https://denkisekkeijin.com/wp-content/uploads/2019/10/20_SFC.png)
Zoomは以下のようになります。
【ステップ0】待機中にランプ(緑)点滅のラダープログラム
![ステップ0](https://denkisekkeijin.com/wp-content/uploads/2019/09/70-1024x123.png)
M8013は三菱電機FXシリーズの特殊デバイスで、1秒周期でON/OFFが切り替わるデバイスです。
【トランジション0】待機中にスイッチ(緑)を押すと一連動作を開始するラダープログラム
![トランジション0](https://denkisekkeijin.com/wp-content/uploads/2019/09/71-1024x122.png)
TRAN命令はSFC特有の命令です。TRAN命令をONさせることによりトランジションが実行されて次のステップに遷移します。
【ステップ10】ランプ(緑)を1秒間点灯するラダープログラム
![ステップ10](https://denkisekkeijin.com/wp-content/uploads/2019/09/72-1024x247.png)
【トランジション1】ランプ(緑)が1秒間点灯後にトランジション
![トランジション1](https://denkisekkeijin.com/wp-content/uploads/2019/09/73-1024x126.png)
【ステップ11】ランプ(赤)を1秒間点灯するラダープログラム
![ステップ11](https://denkisekkeijin.com/wp-content/uploads/2019/09/74-1024x248.png)
【トランジション2】ランプ(赤)が1秒間点灯後にトランジション
![トランジション2](https://denkisekkeijin.com/wp-content/uploads/2019/09/75-1024x124.png)
【ステップ12】ランプ(青)を1秒間点灯するラダープログラム
![ステップ12](https://denkisekkeijin.com/wp-content/uploads/2019/09/76-1024x248.png)
【トランジション3】ランプ(青)が1秒間点灯後にトランジション
![トランジション3](https://denkisekkeijin.com/wp-content/uploads/2019/09/77-1024x121.png)
【ステップ13】ランプ(黄)を1秒間点灯するラダープログラム
![ステップ13](https://denkisekkeijin.com/wp-content/uploads/2019/09/78-1024x251.png)
【トランジション4】ランプ(黄)が1秒間点灯後にセレクタスイッチ(白)がONでトランジション
![トランジション4](https://denkisekkeijin.com/wp-content/uploads/2019/10/4-1024x123.png)
セレクタスイッチ(白)がONだと、ステップ10にジャンプします。※ステップ10は一連動作の最初です。
【トランジション5】ランプ(黄)が1秒間点灯後にセレクタスイッチ(白)がOFFでトランジション
![トランジション5](https://denkisekkeijin.com/wp-content/uploads/2019/10/5-1024x121.png)
セレクタスイッチ(白)がOFFだと、ステップ0にジャンプします。※ステップ0は待機中です。
SFCプログラム(ラダーブロック)
プログラムのラダーブロックは以下のようになります。
![ラダーブロック](https://denkisekkeijin.com/wp-content/uploads/2019/10/ラダーブロック-1024x125.png)
先ほどのSFCを実行させるためにイニシャルステートをラダーブロックでONさせるためのものです。
M8002は三菱電機FXシリーズの特殊デバイスで、STOP→RUN時に1スキャンのみONするデバイスです。
3. おわりに
一連動作を繰り返すSFCについて解説しました。
一連動作を繰り返すことを「連続運転」といい、一度のみ実行することを「一巡運転」と表現したりすることがあります。
この「連続運転」は実務で多く使用されることから、大切な考え方になります。