ラダー・ロジックとは何か

ラダー・ロジックとはラダー図・ラダー言語とも呼ばれ、PLCのプログラムを組むときに使用されます。

プログラムが2本の並行するレール(母線。どちらか一方を+、どちらか一方を−の電極と考えると初心者はわかりやすい)と その間に渡される接点・コイルで構成されます。

百聞は一見にしかず、ということで三菱電機Qシリーズのプログラムを画像で示します。

・ラダーの基本要素はa接点、b接点、コイル 以上!!

↓画像をClickで拡大↓

「母線1と母線2が繋がればコイルに電気が流れる。」 この説明が初心者に理解しやすいと思います。

  • a接点・・・スイッチを押す(あるいはセンサーが反応する)ことで接点がつながり回路が閉じて電気が流れます。
  • b接点・・・スイッチを押すことで接点が離れ回路が開いて電気が止まります。(a接点と逆動作)
  • コイル・・・接点(=スイッチ)が閉じて、母線1と母線2が繋がれば、ここに電気が流れます。

この図ではコイルにPLCの出力ポート(Y20)を指定しています。 Y20にモーターが接続されていると考えてください。

また入力ポートX10に運転ボタン、入力ポートX11に運転停止ボタンを接続しています。

したがって、このプログラムは「運転ボタンを押す」かつ「運転停止ボタンを押さない」でモーター動作するプログラムになります。 2つの接点(=スイッチ)が閉じて初めて電気が流れますので、AND回路といいます。

それに対して、運転ボタン1あるいは運転ボタン2(それぞれX12、X13とします。)のどちらかが押されたときに モーターを回したいときは以下のOR回路のようにします。

↓画像をClickで拡大↓

X12、X13のどちらかのスイッチが閉じれば、母線1と母線2が繋がってコイルに電気が流れますよね〜。

・ラダーの2番目の基本は自己保持回路!!

上の2つのプログラムでは、押している時だけへっこむボタン(モーメンタリー動作するボタンといいます。)のときは、 どちらもボタンをずっと押し続けないとモーター動作しません。

一度運転ボタン(X10)を押すとモーター動作し、運転停止ボタン(X11)でモーター停止するプログラムは以下のようにします。

↓画像をClickで拡大↓

M番号はX番号(入力)、Y番号(出力)とは別の補助リレーと呼ばれるものです。 M0は1行目のプログラムでコイルがONすると、2行目と3行目のM0のa接点のスイッチが繋がります。

一度、運転ボタン(X10)を押すとM0がONになり、2行目のM0のa接点のスイッチが繋がりますので、 たとえX10のスイッチが離れてもM0はONのままです。これを自己保持回路といいます。

3行目でM0がONのときはY20がONになりモーター動作します。

また運転停止ボタン(X11)を押すと、X11のb接点が離れますので、M0もY20もOFFになりモーター停止します。(自己保持解除)

・ラダーにも変数がある?!

上のプログラムでは単純にスイッチをON、OFFしてモーターあるいはランプに電気を流すことしかできませんが、 普通のプログラミング言語みたいに数値比較をしてモーターを動作させることもできます。

運転ボタン(X10)を3回押すとモーター動作し、運転停止ボタン(X11)を押すと停止するプログラムは 以下の図となります。

↓画像をClickで拡大↓

プログラミング言語の変数に該当するものはデータメモリ(D番号)と呼ばれます。 上のプログラムはINCPという命令文で、X10がONするタイミングでD0の値を1ずつ増やし、 D0が3になればY20をONにしてモーターを回します。

※INCPはC言語でいうとインクリメント命令(++)です。

押した回数をリセットするにはX11を押して MOV命令文でD0を0にします。

※MOVはC言語でいうと代入命令(=)です。数字の前のKは10進数の意味。

なお上のプログラムは不完全です。はじめにD0を0に初期化する必要があります。いわゆる変数の初期化が漏れています。

・上記知識だけでPLCのプログラムは書ける!!

実はラダーの基本は上で書いた内容で終了です。

上記の知識である程度の動作を行う機械のプログラムは十分書けます。

C言語やJavaのようにある程度時間をかけて勉強しないとプログラムが全く書けないということはありません。 実際筆者は全く予備知識のない人にも短期間で簡単なプログラムが書けるように育成したことがあります。

次はサーボとはを見てみてください。

興味のある方はこちらのサイトも見てみてください。