シーケンス制御講座

データシフトについて

シーケンス制御講座 中級編 データシフトについて

設備の多くは複数のユニットがあり、ワークを順番に送って加工や検査を行って、終われば次の工程にワークを送って同じ動作を繰り返します。この時、検査結果や作業が完了したという記憶をワークと一緒にプログラム上でも搬送(シフト)していかないといけません。このデータシフトという考え方を解説します。これがわかると複数のユニットが実装された機械の制御も簡単です。

作成日:2015年01月20日
更新日:2022年12月26日


サンプル設備の解説

設備の中には、1つの作業だけでなく、複数の作業を行う設備もあり、わかり難いと思いますが下のイラストのような感じに作業を分割して行っています。この違う作業工程(ネジを締めるユニットや部品を運ぶユニット)でのデータのやりとりの考え方を説明します。

まずは設備の基本的なことの説明です。上のような複数の工程に分けられた設備は中規模~大規模な設備に入ります。今回はプログラムの説明ではなく、データの扱い方の説明なので、難しく考える必要はありません。

各作業ユニットを「ステーション」と呼びます。最初の「ベースを入れる」の部分は人が入れるか、コンベアで流れてくるか方法は決めていませんが、この設備には勝手にベースが入ってきます。そしてベースとは製品の一部です。この製品のことを「ワーク」と呼びます。

最初のステーションではベースに部品を置きます。このステーションでは部品を置くだけで、ほかの事は一切行いません。ワークはそのまま左側に搬送されますので、2番目のステーションには部品が置いてあるワークが搬送されてきます。そして2番目のステーションでカバーを置きます。ここでも置くだけです。

3番目のステーションにはカバーが置いてある製品が搬送されてきますので、ネジ締めを行います。そして4番目のステーションでネジが締め付けてあるか、センサー等で確認します。

基本的な設備の仕様を説明しましたが、なぜこのように作業工程を分ける必要があるのか説明します。一つのステーションですべての作業を行うことも可能です。なぜ工程を分割するかというと、サイクルタイムの問題です。サークルタイムは「タクト」とも呼ばれることがあり、この設備での一台辺りの製造時間となります。上のイラストで説明すると、「完成品を排出」と書いてある部分に製品が排出される間隔になります。

同じステーションですべての作業を行うには、部品を置いて、カバーを置いて、ネジを締めて、ネジをチェックします。この作業は順番に行う必要があり、同時にはできません。しかし、ステーションによって作業工程を分割すれば、最初のステーションで部品を置いている間に、ほかのステーションでもネジを締めたり同時に作業ができます。製品の搬送時間もあるので一概には言えませんが、作業工程が多く、上手に分割できればサイクルタイムは比較的に早くなります。サイクルタイムが早くなれば、同じ時間設備を運転させたとき、生産数も多くなります。

サンプル設備の動作

上記のような理由で作業を分割していますが、各ステーションでのワークの搬送を簡単に説明しておきます。

まずこれが待機状態です。

各ステーションの作業がすべて完了したら、搬送を上昇させます。

搬送が上昇すると、搬送用の「爪」がワークに引っかかります。その状態で右に移動させます。

製品に「爪」が引っかかっているので、製品もすべて右に移動されます。

そのまま搬送を戻すと、「爪」の反対側が製品に引っかかり、製品も中途半端に戻されるため、いったん「爪」を下降させます。

そして搬送を戻します。無事搬送が戻れば、待機状態になります。この一連の作業を「サイクル運転」と呼びます。

このような搬送を使用している設備は多く、「トランスファー方式」などと呼ばれることもあります。

なぜデータを記憶するのか?

この設備の最初のステーションで、部品をおく作業を失敗した場合、その後のステーションは作業する必要がありません。その場合NGとして排出しますが、どこの工程でNGが発生したのか作業者にわからないといけません。すべての工程が問題なく動作した場合のみ良品として排出する必要があります。

データを覚える必要があるのですが、ラダー図を駆使すれば何とかできるかも知れません。ただし無理やり自己保持等で製品情報を記憶させると、後で複雑になりすぎて自分でもわからなくなる可能性があります。

データシフトの考え方

私のやり方を紹介しますが、まず各ステーションにデータレジスタを割り当てます。たとえば2番目のステーションはD200~100個使用します。つまりD299までです。

上のイラストのように100個ずつ、きりがいいように割り当ててください。そして各ステーションの100個のアドレスの中の割付を下のイラストのように行います。

この割り当ては各ステーション同じになります。たとえば最初のステーションで部品を置いて成功したら「D101」に1を書き込みます。失敗したら2を書きます。製品を搬送するときD100~100個のデータをD200~にコピーします。次はカバーを置くステーションですが、最初のステーションが成功したかを確認する必要があります。その場合は「D201」を確認すればいいのです。

2番目のステーションも同じように、成功したら「D220」~の好きな位置に情報を書き込めばいいのです。2番目のステーションなので200番台に書きます。さらに、「カバーを置く」は20~39になっていますので、「D220」~に書くのです。

同じように3番目のステーションは300番台になります。例えばネジを4本締めるとした場合、これだけのデータレジスタを割り付けてあれば何本目のネジが失敗したのかという情報まで記憶できます。「D341」にネジ締め完了判定として、正常に完了した場合は1を書き込み、失敗したら2を書き込む。さらに1本目のネジ締め情報は「D342」に書けばいいのです。

このように各ステーションで情報を書き込んで、隣のステーションに渡していけば、最後のステーションでは「D400」番台を調べれば、すべてのステーションの情報がわかります。その情報を元に、良品か不良品かを判定すればいいのです。

データの移動には順番があるので注意が必要です。まずは「D300」~のデータを「D400」~に移動します。そのあと「D200」~のデータを「D300」~に移動します。そして「D100」~のデータを「D200」~に移動します。最後に「D100」~100個のデータを削除します。

反対に「D100」~移動していくと、「D100」~のデータがどんどんコピーされて、すべてのステーションのデータが最初のステーションのデータと同じになってしまいます。

ラダー図ではこのように書きます。

プログラムの簡単な説明をすると。[BMOVP D300 D400 K100]は「D300」のデータを「D400」に100個コピーしなさいという意味です。つまり「D300~D399」までのブロック単位のデータ一式が、「D400~D499」にそのままコピーされます。最後の「K100」の部分がデータレジスタの数です。BMOVPの最後のPはパルスで実行するという意味です。

この命令はコピーなのでコピー元は残ります。「D300」から順番にコピーしていくので、例えば「D300」~のデータは次の「D200」~のデータに上書きされます。そして最後まで行くと「D100」~のデータを「D200」~にコピーした時点で、コピー元の「D100」~のデータが残ってしまいます。

[FMOVP K0 D100 K100]と書いてあります。これは”0”のデータを「D100」~100個分書きなさいという命令です。つまり「D100~D199」までのデータレジスタの値はすべて0になります。

トランスファーが移動完了したタイミングで実行すれば、スムーズにデータが移動するはずです。

これがデータシフトの考え方で、各ステーションは自分の情報が書き込んであるデータレジスタのブロックを見ればいいのです。各ステーションが他のステーションを見るようなプログラムは、インターロック以外基本的に必要ないのです。



図解入門 よくわかる最新 シーケンス制御と回路図の基本はKindle版(電子書籍)です。単行本ご希望の方は、フォーマットで単行本を選択してください。または、トップページよりご購入ください。

Copyright (C) 2010 シーケンス制御講座, All rights reserved.