【SFC】一連動作の途中で条件分岐する方法

00_【SFC】一連動作の途中で条件分岐する方法

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

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

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

SFCによる基本的な一連動作の作成方法については以下のページで解説しております。

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

↑の記事では、一連動作中に分岐などの処理をせずに工程を1ヶずつ行う仕様でした。今回は一連動作に「条件により分岐する処理」を追加します。

この記事では、GX Works2を用いて一連動作に分岐処理を追加したSFCについて解説します。

1. 基となるSFCの内容

今回作成するSFCに触れる前に、基となるSFCについて解説します。

一連動作の仕様

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

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

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

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

至って単純な一連動作です。この仕様では一連動作が終了すると、繰り返し処理を行わずに終了します。(ずーっとスイッチ(緑)を押していれば繰り返しますが…)

状態遷移図

一連動作の状態遷移図は以下のようになります。

状態遷移図

アドレスマップ

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

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

GOTの動作イメージ

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

GOTの動作イメージ

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

SFCプログラム

SFCのプログラムは以下のようになります。(GIF)

SFCプログラムは、上記のようなSFCブロックを起動するため、別にラダーブロックが必要になります。以下がラダーブロックです。

ラダーブロックの編集2

長くなりましたが、以上の基となるSFCについての解説です。記事冒頭でも紹介しましたが、このSFCの作成方法は以下のページで解説しております。

00_【SFC】基本的な一連動作の作成方法【SFC】基本的な一連動作の作成方法
注意
SFCを作成する手順も上の記事で解説していますので、この記事内では省略させて頂きます。

2. 一連動作の途中で条件分岐するSFC

それでは、一連動作の途中で条件分岐するSFCについて解説します。

一連動作の仕様(条件分岐あり)

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

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

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

一連動作中「ランプ(赤)点灯後」に、スイッチ(青)が押されていればランプ(青)のみでなく全色点灯する。

一連動作中にスイッチ(青)の状態により「ランプ(青)のみ点灯させるか」と「全色点灯させるか」を条件分岐します。

状態遷移図

条件分岐の処理がある一連動作の状態遷移図は以下のようになります。

状態遷移図2

ランプ(赤)が点灯した後、スイッチ(青)の状態により第3工程が①と②の2ヶのうち、いずれか1ヶが実行されます。

このいずれか1ヶが実行されることを選択分岐と表現します。

アドレスマップ

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

スイッチ(青)はX2としています。

GOTの動作イメージ

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

GOT動作イメージ

ランプ(赤)が点灯後、スイッチ(青)がOFFであれば「ランプ(青)のみ点灯」して、ONであれば「ランプ(全色)が点灯」します。

SFCプログラム(SFCブロック)

プログラムのSFCブロックは以下のようになります。

SFC

ランプ(全色)を点灯するためのトランジション5,6とステップ14を追加しました。

Zoomは以下のようになります。

メモ
ZoomとはSFCブロックの各ステップ・トランジションの実行内容のことです。

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

ステップ0

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

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

トランジション0

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

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

ステップ10

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

トランジション1

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

ステップ11

【トランジション2】ランプ(赤)が1秒間点灯後にスイッチ(青)がOFFのトランジション

トランジション2

ランプ(赤)点灯後にスイッチ(青)がOFFしていた場合にステップ12を実行するための条件です。

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

ステップ12

トランジション2にて選択分岐したステップです。

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

トランジション3

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

ステップ13

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

トランジション4

セレクタスイッチ(白)がONだと、ステップ10にジャンプします。※ステップ10は一連動作の最初です。

【トランジション5】 ランプ(赤)が1秒間点灯後にスイッチ(青)がONのトランジション

トランジション5

ランプ(赤)点灯後にスイッチ(青)がONしていた場合にステップ14を実行するための条件です。

【ステップ14】ランプ(全色)を1秒間点灯するラダープログラム

ステップ14

トランジション5にて選択分岐したステップです。

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

トランジション6

SFCプログラム(ラダーブロック)

プログラムのラダーブロックは以下のようになります。

ラダーブロック

先ほどのSFCを実行させるためにイニシャルステートをラダーブロックでONさせるためのものです。

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

3. おわりに

条件分岐があるSFCについて解説しました。

複数の条件のうち、1ヶのみ選択して実行することを選択分岐といい、この記事で解説しましたが、よく似たもので複数の処理を並行して行うことがあります。この並行して行う処理を並列分岐と呼びます。

コメントを残す

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