みなさんはPLCというものをご存じでしょうか?
普段見ることがないのですが、みなさんの身の回りにも使われている技術なんです!!
例を挙げれば信号機や洗濯機、 遊園地などのアトラクションでも使用されている機械を
動かすためのコンピューターのようなものです。
この技術は主に自動車を作るための工場や、アマゾンの倉庫などなど、色々な所で使用されています。
このコンピューターはみなさんがご存じのプログラミング言語とは違い
ラダー言語
という言語でプログラミングされています。
↑こういうのです。(三菱電機 GX WORKS2というソフトです。)
文系の高校を卒業し、ふらふらした後に偶然職業訓練所でこの仕事に出会いました。
全く電気の知識もなければ、数学はもとより、算数ですら怪しい文系バリバリの筆者でも現在では
まがいなりにも電気制御エンジニアとして、
お客様から依頼された機械をオーダーメイドで作成し、
機械を動かす仕事にかれこれ10年くらい従事しております。
そんな私がPLC(シーケンサ)を勉強してみたいけど教えてくれる人がいない!!
興味があるけど難しそう!!
といった方々向けに基本をお伝えいたします。
このサイトを見て頂くとことで簡単なプログラムなら自分で作成することが可能となり、
今まで自社の使用している機械がどういうプログラムで動いているのか?
メンテナンスするときはどういう風にすればいいのか?
という疑問にお答えし、少しでも問題解決のお手伝いができるようなサイトを目指します!
そもそもPLCとは?
PLCとはさまざまな機械を動かすためのコンピューターです!
そこに専用の言語であるラダー言語やST言語というものでプログラムを作っていき、
機械を動かすためのコンピューターです。
PLCは様々なメーカーのものがあります。
みなさんも知っている有名な会社の例を出します。
三菱電機製PLC(シーケンサ)
キーエンス製PLC
オムロン製PLC
があります。
それぞれに特徴もあるのですが、プログラミングするためのソフトもすべて違います・・・。
今回はこの中でも私がよく使用している三菱制PLC(シーケンサー)のプログラミング方法を解説していきます。
入力と出力について
PLCには状態を把握するための情報(例えばボタンを押したよ!ということがわかる部分)が
X(入力)と言われる信号で、
機械を動かしたり、ランプを光らせたり外部に影響を及ぼす部分を
Y(出力)といいます。
PLCではこれらを使用してボタンを押す→PLCがボタンがONしたことがわかる→ランプを光らせる!
というようにX(入力)されたことを確認してY(出力)するという順番でプログラムを作成していくことになります。
上記のプログラムですと、X0がONする(ボタンが押される)とY0がONする(ランプが点灯する)という風なプログラムになります。
左側にボタンやセンサーを配置してボタンが押された!やセンサーがONしたよ!という条件を並べて、
右側にはボタンが押された結果ランプを光らせる!という出力をするという流れになります。
このようにラダー回路は視覚的にわかりやすい構造になっています。
接点について
ラダープログラムを勉強する上で重要なのが接点の意味を理解することです。
接点とは?と思ったかたもいらっしゃるのではないでしょうか?
家庭でご飯を炊くときや、電子レンジを使用する際にスタートボタンを押すと炊飯器はご飯を炊き始めて、電子レンジだとあたためを開始しますよね?
そのようなボタンを押すと、ONするものをa接点といいます。
その反対で通常であればONしている状態であるが、ボタンが押されたときにOFFになるものをb接点と呼びます。
このb接点は主に非常停止ボタンや、停止ボタンで使用されることが多いです。
a接点とb接点には別の呼び方もありa接点はN.O(ノーマルオープン)b接点はN.C(ノーマルクローズ)と呼ばれることもあります。
N.Oノーマルオープンは通常時は接点が離れた状態である(OFFしている)ものがボタンを押されたときにくっつく状態(ONする)接点になります。
N.Cノーマルクローズは通常時は接点がくっついている状態(ONしている)ものがボタンを押されたときに離れる(OFFする)接点になります。
ラダープログラムでは上記のX0がa接点で、X1がb接点になります。
ボタンAを押すとa接点がONして、Y000がONしてランプが点灯します。
しかし、停止ボタンが押されている間にボタンAを押してもランプは点灯しません。
上記のプログラムの場合はb接点があって、 その出力がY000になっています。
このような場合にはボタンが押されていない場合にはランプが点灯し、 ボタンが押された時に
ランプが消える回路になります。
ラダー言語ではこのa接点とb接点の組み合わせにより、プログラムを書いていきますので、
まずは接点がどういう物なのか?をきちんと理解していきましょう!!
最初は混乱すると思いますが、徐々に見慣れてきますので頑張っていきましょう!
タイマー回路について
PLCでのプログラムにはタイマーと言われるものが使われます。
例えばセンサーがONしてから1秒後に次の動作に移ろう!
ランプを5秒光らせて、5秒ランプを消し、また5秒後にランプをつけよう!
など様々な状態で使用します。
上記回路の場合はX000のボタンを押し続ける → 1秒後にランプがボタンを押している間点灯する。
ボタンを離すとまた1秒後にランプが点灯するという回路になります。
T0というのがタイマーの番号みたいなもので、後ろの k10 というところで1秒間ONしていたら
タイマーがONの状態になるよ!というのを表現しています。
自己保持回路について
自己保持回路とは自分の接点で自分をONする。という意味になります。
使用する場面としては
一度ボタンを押したらランプが点灯し続けるようにしたい。
動作が完了したことを記憶しておきたい場合などに使用します。
X000ボタンAが押される → Y000ランプが点灯する → 点灯したランプのa接点でボタンAボタン
の代わりになるというイメージです。
Y000がONして、自分のa接点でランプを点灯させる形になります。
ですのでX000ボタンAは一度ボタンを押して、離してもランプは点灯し続けます。
ただし、自己保持回路を使用する場合には自己保持を解除する回路も同時に組む必要があります。
じゃないと自己保持したままになってしまいます。
そこでX001の停止ボタンをb接点で回路に入れておくことでX001の停止ボタンを押すと、
自己保持回路が解除されるように入れておきます。
信号機のプログラムを作ってみよう!
ここまでの内容が理解できれば信号機の回路を作成することができます。
プログラミング言語でいうところのHello World並みに最初は信号機の回路を組む気がします!
X000 = プログラムスタート
X001 = プログラム停止
Y000 = 赤色点灯
Y001 = 黄色点灯
Y002 = 緑色点灯
上記の入力と出力を使用して、実際にプログラミングしてみてください!
X000を押す → 緑色(Y002)が点灯する → 2秒後に黄色(Y001)が点灯 →
2秒後に赤色(Y000)が点灯 → 2秒後に緑色が点灯という風に回路を組んでみてください。
ラダープログラムは色々な組み方があります。
一度自分で考えてみてプログラムを書いてみてくださいね。
書けましたでしょうか?
参考プログラムをおいておきます。
いかがでしょうか?
大体一緒になりましたでしょうか?
あくまで参考程度にみてください。
プログラムは人によって全然作り方が違う場合があります。
ただし、私は師匠からは人がみてわかりやすいプログラムを書きなさいといわれました。
他の人がメンテナンスをするときに困るからと。
実際に私も他人のプログラムを見たときにこの人のはみにくいな~と思うことがあります。
そうならないように可能な限り見やすいプログラムを組んでいきましょう!