目次次へChap.6 工程歩進制御(1)

この章から、工程歩進制御について説明してゆきます。
最初の予定では、番外編で作成した命令語インタプリタを使って動作を確認するつもりだったのですが、ラダー図上でON・OFFが見えた方が理解しやすいため、ラダー図開発ツールLD Cv!のシミュレーション機能を使って説明することにしました。
(番外編で作成した命令語インタプリタ用のプログラムリストも掲載しておきましたので、命令語インタプリタでも動作は確認できます。)

6.1 工程歩進制御とは
工程歩進制御を考えるために、次の例題を考えてみます。

例題1 レールに乗った台車で荷物をA地点からB地点に運んで、B地点に到着したら荷物を台車から降ろして、A地点に戻ってくる。(図6.1)

図6.1 例題1の説明図

この例題の動作は、次の(1)〜(4)の動作に分解することができます。

(1)押ボタンスイッチを押すと、台車移動モータ(正転)をONにして、台車をA地点からB地点へ移動させる。
(2)台車がB地点に到達したことをリミットスイッチで検出すると、台車移動モータ(正転)をOFFにして台車を停止し、エアーシリンダをONにして台車の底を斜めに傾けて荷物を台車の外へ排出する。
(3)台車の中の荷物が空になったことを光センサで検出すると、台車移動モータ(逆転)をONにして台車をB地点からA地点へ移動させる。
(4)台車がA地点に到達したことをリミットスイッチで検出すると、台車移動モータ(逆転)をOFFにして台車を停止する。

ところで、この制御の特徴は(1)〜(4)の動作が必ずこの順番に進行しなければならない点です。
すなわち(1)の動作の後は必ず(2)の動作をおこない、(2)動作の後は必ず(3)の動作をおこない、(3)動作の後は必ず(4)の動作をおこなわなければなりません。
このように、実行する順番があらかじめ決定されている制御を工程歩進制御といいます。(この表現は、多少不正確なところがあります。)
工程歩進制御では、外部入力に対していつも決まった処理を実行するわけではありません。現在の工程と無関係な信号が入力されたら無視します。

図6.2は例題1の制御を図に表したものです。

図6.2 例題1の制御を図に表したもの


6.2 工程歩進制御の実現方法
次に、工程歩進制御をラダー図でプログラミングする方法について説明します。
工程歩進制御では、現在の状態(工程)が何であるかを制御システム自身が知っていなければなりません。
このため制御システム内部に工程を記憶する記憶回路(メモリ)が必要となります。
ラダー図で工程歩進制御をおこなう場合は、この記憶回路を「自己保持回路」か「セット・リセットコイル」で構成するのが一般的です。
今回は、自己保持回路で構成してみます。

次の例題を考えます。

例題2 緑色(ランプ−緑)、黄色(ランプ−黄)、赤色(ランプ−赤)の3つのランプと、緑色(PB−緑)、黄色(PB−黄)、赤色(PB−赤)の押ボタンスイッチがある。押ボタンスイッチを押すと、それぞれ対応する色のランプが点灯する。ただし、ランプの点灯順番は、必ず緑→黄→赤→緑→...であり、この順番以外の押ボタンスイッチを押しても状態は変わらない。

図6.3は例題2の制御を図に表したものです。

図6.3 例題2の制御を図に表したもの

さっき説明したように、制御システム内部に工程を記憶する記憶回路(メモリ)が必要です。
ここでは、自己保持回路のコイルに工程を記憶させることとし、各工程に対して表6.1のようにコイルを対応させます。

表6.1 工程とコイルの状態
工程 対応するコイルとその状態
工程1(緑色ランプを点灯) コイルM80がON
工程2(黄色ランプを点灯) コイルM81がON
工程3(赤色ランプを点灯) コイルM82がON

では、プログラミンングをおこないます。

まず、表6.1のコイルが状態を保持(記憶)できるように、自己保持回路を構成します。
とりあえず不明な条件は保留にしておき、自己保持回路をプログラミングしたのが、図6.4のラダー図です。
ここで、自己保持回路のセット条件だけは、当然ランプと同じ色の押ボタンスイッチですから最初から書いておきます。

図6.4 例題2のラダー図(作成途中)

次にリセット条件(ラダー図中のB接点)を何にすればいいか考えてみます。
ランプは、緑→黄→赤→緑→...と変化するので、もし黄色のランプが点灯したら緑色のランプを消さなければなりません。
このことから考えると「ランプ−緑(M080)のリセット条件は、ランプ−黄(M081)のB接点」です。
同様に「ランプ−黄(M081)のリセット条件は、ランプ−赤(M082)のB接点」、「ランプ−赤(M082)のリセット条件は、ランプ−緑(M080)のB接点」となります。

さらに、考慮しなければならないことがあります。
セット条件は、各ランプと同じ色の押ボタンスイッチとしましたが、実はこの条件だけでは不具合を生じます。
たとえば、緑色のランプが点灯中(工程1)に、赤色の押ボタンスイッチを押す(条件C)と赤色のランプが点灯(工程3)してしまいます。
これでは工程1からいきなり工程3に移行することとなり、工程歩進制御になりません。
これを防止するためには、セット入力は「押ボタンスイッチ」と「ランプを点灯してよい状態」とのAND条件を使います。
具体的には「ランプ−赤(M082)のセット条件は、PB−赤(M002)のA接点と、ランプ−黄(M081)のA接点のAND結合」にします。

これらを考慮したのが、図6.5のラダー図です。
この図では隠れていますが、LD Cv!の文法に合わせてプログラム末にEND命令を入れてあります。
また、起動直後に点灯するランプを緑色にするために「運転1スキャンON(S1E)」を使っています。

図6.5 例題2のラダー図(最終形)

図6.5では、ラダー図をシミュレーション実行しているため、現在導通状態になっている接点・コイルは緑色で表示されています。
現在、緑色のランプが点灯(M080がON)していることがわかります。

ここで、黄色押ボタンスイッチ(M001)をONすると、緑色ランプが消灯して黄色ランプが点灯することを確かめてください。
3〜4行目の回路の部分に注目してください。(図6.6は、黄色押ボタンスイッチをONにする直前の状態です。)

図6.6 例題2のラダー図(黄色押ボタンスイッチをONにする直前の状態)


6.3 番外編で作成した命令語インタプリタを使った場合
番外編で作成したの命令語インタプリタでも同様の動作が確認できます。
図6.5のラダー図を命令語に展開した命令語プログラムを実行すれば同じ動作をするはずです。
この際、I/O番号のMをとってプログラムしてください。
また、運転開始1スキャンONは番外編の命令語インタプリタにはありませんので、I/O番号F0を割り当てています。
このため、命令語インタプリタで「ファイル読み込み」、「スキャン実行」をおこなった後「データ入力」で
(1)F0に1を書込み
(2)F0に0を書込み
の操作をおこなう必要があります。これでI/O番号80が1になるはずです。
参考までにプログラム(リスト1)と実行画面(図6.7)を掲載しておきます。

リスト1 命令語インタプリタ用のプログラム

/* 行番号0-2 */
LD
000
AND
082
OR
080
ANDNOT
081
OR
F0
OUT
080
/* 行番号3-4 */
LD
001
AND
080
OR
081
ANDNOT
082
OUT
081
/* 行番号5-6 */
LD
002
AND
081
OR
082
ANDNOT
080
OUT
082
/* 行番号7 */
END
図6.7 命令語インタプリタの実行画面

最後に、このプログラムを、実際のリレーで組むとリレーの反応のばらつきで誤動作するかもしれません。理由は、考えてみてください。
次回は、セット・リセットコイルを使った方法で複数の工程を並列に動かしてみることにします。

目次次へ