二重コイル~PLCラダーのN.G.回路~

PLCとタッチパネル

1.二重コイルとは

PLCラダーの設計でおそらく誰もが経験したことがあるはず、またはこれから誰もが経験するはずの「二重コイル」。別名「ダブルコイル」ともよばれるこれはどんな状態のことをいうのでしょうか。この記事では二重コイルに関する解説とそのチェックや回避方法について記載していきます。

説明画像はクリックやタップで拡大可能です。そのままでは分かりづらいと思いますので適宜拡大してご覧ください。

1)その名のとおり

「二重コイル」とはその名のとおり別回路で同一のコイルが、二つ以上存在してしまうことを言います。それがどのような状態なのかは以下の画像を見てもらえれば一目瞭然です。キーエンス製のPLCラダー(KV STUDIO)での二重コイルと三菱電機製のPLCラダー(GX Works2)での二重コイルの両方を載せておきます。

ご覧のとおり、全く別の条件で出力することを命令されている同一コイルが存在しますね。上の画像ではKV STUDIOなら「Y50コイル」、GX Works2なら「Y0コイル」が二重コイルとなっています。こうなってしまうとプログラムとしては矛盾が生じることとなり、コイルはどちらの命令(条件)に従えばいいのか判断がつかなくなってしまいます。それでもPLCは健気に命令に従おうとした結果、見た目におかしな動作をすることとなります。

ひとまず上の画像にある回路の例を人間語(日本語)で解釈してみます。KV STUDIOでは「Y50コイル」を、GX Works2では「Y0コイル」を各々出力としている点だけご注意ください。以下が画像のプログラムを人間語にした場合の文章です。

1行目:【「X0,a接点」がON(導通)のとき「Y50(Y0)コイル」を出力しなさい】

2行目:【「X1,a接点」がON(導通)のとき「Y50(Y0)コイル」を出力しなさい】

一見OR回路のような解釈になってしまいそうですが1行目と2行目をもっと厳密に解釈すると以下のようになります。

1行目:【「X0,a接点」がONのときのみ「Y50(Y0)コイル」を出力しなさい】

2行目:【「X1,a接点」がONのときのみ「Y50(Y0)コイル」を出力しなさい】

これだと矛盾がわかりやすいのではないでしょうか。

2)出力しない

先ずは二重コイルを記述してしまった場合の結果をみてみましょう。以下の画像では「M0コイル」を二重に記述してしまった例です。PLCメーカー問わず「X0,a接点」をONさせても「M0コイル」が出力してくれないので、そのあとに続く「Y50コイル」や「Y0コイル」の出力はありません。しかし「X1,a接点」のONでは出力してくれます。ただ見た目になにかおかしいですね。「X0,a接点」のONが無い行の「M0コイル」も出力しているように見えます。

KV STUDIOでの二重コイルとシミュレーション

「X0,a接点」がONでも「M0コイル」は出力していません。

「X1,a接点」がONで「M0コイル」が出力していますが「X0,a接点」で出力するはずの「M0コイル」も命令無しで出力しているように見えます。

GX Works2での二重コイルとシミュレーション

「X0,a接点」がONでも「M0コイル」は出力していません。

「X1,a接点」がONで「M0コイル」が出力していますが「X0,a接点」で出力するはずの「M0コイル」も命令無しで出力しているように見えます。

KV STUDIOでもGX Works2でも同じ結果です。変な出力状態ですね。なぜこんなことになるのでしょうか。その理由を探りましょう!

シーケンサー(PLC),GOT(タッチパネル)などの各種プログラミングソフトウェアを統合したプログラミング用のソフトウェアです。国内PLCの老舗メーカから出ているソフトウェアなだけあって高いコストパフォーマンスを誇ります。

中小規模設計や設計動作検証にもってこいの三菱電機製PLCです。もちろん増設にも対応しています!

2.「スキャン」という考え方

PLCラダーでは「スキャン」という考え方があります。これは、高速でプログラムを繰り返し読み込むことをいいます。PLCラダーではそのプログラムの順番を「ステップ」という単位で数えます。

プログラムの0ステップ目からプログラムENDを読み込んだら再び0ステップ目から読み込みを開始します。この繰り返しのうち一巡を「スキャン(またはワンスキャン)」といい、さらにその一巡の速さを「スキャンタイム」といいます。

あるスキャン時に接点の状態が変化していたら以降のステップにおけるコイルや接点の状態を命令に沿って変更していくという動作になります。

これを踏まえてPLCラダーの状態がどう変化しているのかをみていくと、その動作が理解できると思います。以降で動きを見やすく組んだPLCラダーで二重コイルと挙動について解説します。

1)命令のやりとり

高速で読み込まれるスキャンのなかでどのような命令のやりとりが行われているのか会話調で順番つけて表現しました。PLCラダーの中では以下のようなやりとりがなされています。画像ではKV STUDIOを例に挙げていますがGX Works2でも同じ挙動です。

一度は出力の命令を受けた「M0コイル」ですがすぐに逆の命令をうけ、実際に出力するのをやめています。この場合「M0コイル」は出力しないことになります。

PLCラダーではスキャン内の後ろにある命令の方が優先されます。というよりは後ろにある命令で上書きされるという挙動です。

以下の画像の状態は先ほどの状態とは逆ですね。スキャンの最後で出力する旨の命令をうけて出力し、次のスキャンで出力停止の命令を受け出力停止したかと思えばすぐに再び出力命令をうけて実際に出力しています。

より後ろにある命令でコイルの出力状態を上書きされた結果、「M0コイル」は出力する結果となっています。

2)二重コイルの動きが見やすい回路

二重コイルでどのような動作がおきているのかがもっと見やすくなるようなPLCラダーを作成してみました。二重コイルの回路の間に、該当のコイルからの接点命令で別のコイルを出力するような回路を作成しました。これを元にひとつひとつの動きをのぞいてみましょう。以下同じように会話調で表現しています。

下の画像ではけなげに命令を実行しようとした結果、一瞬出力してすぐに出力停止している様がわかります。

スキャン中に「M0コイル」が一瞬出力した結果「Y50コイル」も出力することになっています。そしてその後の「M0コイル」出力停止命令で上書きされていますので「Y51コイル」は出力していません。シミュレーションではONしていないようにみえる「M0,a接点」ですが途中ではONしているのですね。

見た目に違和感しかありません。

下の画像は上の画像と同じ回路ですが、接点の状態を変えています。「X0,a接点」がONしていないのに「M0,a接点」はONしているように見えますが2行目の「M0,a接点」は実際にONしていないことが「Y50コイル」の挙動からわかります。

ですがその直後の「X1,a接点」に出力命令を出されて「M0コイル」が出力し、結果「Y51コイル」は出力しています。

やっぱり違和感ばかりですね。

通称「電ドラボール」。携帯性と利便性が両立した逸品です!もちろん手締めも可能です。かさばらず作業性UP!!

3.わかりづらさ以外にも不具合がある

上記のようにシミュレーションやモニタリングで非常に読みづらい状態になっていることがよくわかります。これまでの画像のように一目で二重コイルをみることができる範囲での記述ならすぐに気づくことができるかもしれませんが、PLCラダー内の離れた位置での二重コイルの場合、なかなか気づくことができないかもしれません。やっかいです。

シミュレーションやモニタリング時に「え?なんでここが出力してるの??」や「あれ?なぜ出力しない??ONしない??」ということがおこり、解読の大きな妨げになります。

さらにこの二重コイルでは、スキャン中の高速読み込みのなかで激しくON/OFFを繰り返しますので不安定な動作も招きかねません。その場合はどのような挙動になるのか予測不可能ということになります。「実際にはこうなりました!」といいたいところですが、危なっかしいので試したことはありません。なにより、「動作の安定性の高さ」を特徴に持つPLCの信頼性をわざわざ落とす必要は無いはずです。

中小規模制御に対応のNanoシリーズのPLCです。動作検証にももってこいです。中小規模向けとはいえ現代のニーズをバッチリ汲み取った機能性には驚きの逸品です。

4.「二重コイル」の確認と回避

それでは、このやっかいな二重コイルをチェックしたり回避するにはどうすればよいのでしょうか。その方法を記載していきます。

1)KV STUDIOではすぐに警告が出る

KV STUDIOには二重コイル対して非常にありがたい機能があります。

二重コイルを記述してしまった際にすぐに警告が発せられるのです。以下の画像はその警告が出た瞬間です。

これは本当にありがたい機能です。能動的にチェックをかけなくても記述時に警告してくれることで二重コイルを避けることができます。本来二重コイルは記述する必要がありませんのでここで解消しない手はありませんね。

2)KV STUDIOでのチェック方法

KV STUDIOでは前述の警告である程度二重コイルを回避できますが、類似回路作成のためコピー&ペーストで回路複製した場合は警告は発せられません。また何らかの理由で一度敢えて二重コイルを記述し後程の訂正を前提とした場合も含めてKV STUDIOでの二重コイルチェック方法を記載します。

メニューバーの「変換」をクリックし、さらに展開したメニューから「2重コイルチェック」をクリックします。即座に検索が開始されます。

チェック結果が画面下に表示されます。検索結果ウィンドウ「検索1」内の内容(例えば[2重コイルチェック]:OUT M0)をダブルクリックするとPLCラダー内の該当箇所へカーソルがジャンプします。これは記述時に警告を受けたときも同様です。

3)GX Works2でのチェック方法

GX Works2での二重コイルチェック方法を記載します。

メニューバーの「ツール」をクリックし、さらに展開したメニューの「プログラムチェック」をクリックします。

開いたウィンドウではデフォルトでチェック内容全てにレ点が入っていますが、「2重コイルチェック」のチェックボックスにもレ点が入っていることを確認したうえで「実行」をクリックします。

画面下にチェック結果が「アウトプット」として表示されます。結果の内容(例えば「'M0'は2重コイルとなっています。誤動作を起こす可能性があるためプログラムを見直してください。ステップ…」)をダブルクリックするとPLCラダー内の該当箇所へジャンプするとともに該当コイルが真っ赤になります。少しびっくりします。

交直流の電圧電流測定および抵抗測定もこれ一つ!広い測定範囲も特徴の設計にも保全にも役立つ秀逸なツールです。

5.二重コイルの多くはOR回路の記載ミス

では最後に、二重コイルを発見した場合はどうすればよいのかを解説します。

もうすでにご理解の方がおられるかもしれませんが、ほとんどの場合出力条件をOR回路でまとめることができます。先程までの回路を例に二重コイルを回避したPLCラダーを以下に記載します。

「X0,a接点」と「X1,a接点」をOR回路として接続し「M0コイル」を出力するように変更しました。【「X0,a接点」でも「X1,a接点」でも「M0コイル」を出力させたい】のであればこの変更で問題はありません。「M0,a接点」での出力「Y50(Y0)コイル」をOR回路にしているのはついでの変更です。

KV STUDIO

GX Works2

二重コイルは入力に対する出力の状態が見づらくなり、動作も不安定になる可能性の高い、メリットの無いプログラム内容です。ですので、この状態や起こりうる動作をしっかり理解して回避することが必要となります。

そういった場合にこの記事が役立てれば幸いです。

最後までお付き合いいただきありがとうございます。

コメント