« pick&place移動動作と吸着ポートの同期制御の詳細タイミング評価をしました | トップページ | ブログの読者(社長さん)から突然メイルをいただきました。 »

2011年6月26日

アーチモーション動作と真空吸着、真空破壊制御の同期制御用MOS言語プログラム

アーチモーションと真空吸着、真空破壊の同期制御用MOS言語プログラムを作りました。

昨日の続きです。

プライムモーション社のパルス列出力8軸モーションカードJOY-RT8CRと

WindowリアルタイムIO制御環境「MOSBench」で実験しました。

アーチモーション、別の呼び方では、ゲートモーションは、

IC等、小型部品のピックアンドプレイス動作で必要になります。

以下の緑色の動きのようになるので、アーチとか、ゲートと言います。

Image001_2

実際にプログラミングして実験して、取得した軌跡はこれ。

_110625

パルス列位置指令出力カウンタの動きです。

上下反対なのは、Z軸の+方向を下降に取っているためです。

これを時間波形で取ると、以下になります。

_110624

横軸は時間です。左のほうが時間的に古いです。

一番上の波形が、X軸速度指令波形。

次が、Z軸速度指令波形。

黄色の縦線の部分で、Z軸が下降してきて(速度波形の山がゼロに近づいてきて)、速度がゼロになる前に、吸着ポートがオンしています。

つまり、下降停止する直前から、真空吸着を始めています。

そして、

Z軸が上昇して(2番目の波形としては、谷になって)、X軸が移動して(1番目の波形が台形になって)、次に、Z軸の下降(2番目の波形が山)になります。

その下降動作が終了しない(その山がゼロにならない)うちに、吸着ポートがオフしています(真空破壊しています)。

この制御プログラムはこれ。(クリックで拡大)

_110624_3

行き(搬送)の動作は、67行目から75行目。

帰りの動作は、82行目から90行目。

これだけで、行きと帰りのアーチモーション指令、かつ、吸着ポートの位相制御も行っている。

これが、機械制御言語「MOS言語」の得意技。

例えば、行きのアーチモーションは、3つのPTP移動をオーバラップすることにより実現している。

RobPtpMove( Rob1, pos_pick_top, 3); //ピック位置の上方へ移動
RobPtpMove( Rob1, pos_place_top, 3); //プレイス位置の上方へ移動
RobPtpMove( Rob1, pos_place, 1); //プレイス位置へ移動

が3つの移動。

この3つの移動を、以下の「オーバラップ命令」によって、各50%重ね合わせて、移動完了前に、次の移動を開始させ、アーチの形にしている。

その魔法の命令が、

RobSetOverlap( Rob1, 50);

ロボ セット オーバラップ 命令!」

ドラエモン風に声に出して言って欲しい。もう一度、

ロボ セット オーバラップ 命令!」

次に、吸着ポートのモーションとの同期位相制御のコーディングについて、説明する。

ポイントは、70行目にある。

移動の進捗度(進み具合)を監視しながら、指定の進捗度を超えたら、ポート出力DOUTを制御する命令。

RobSetMoveProgressDo(Rob1, 1, 95, kyuchaku_port, 0);

「ロボ セット ムーブ プログレス ディーオー 命令!」

ちょっと長い。

これは、動作95%進捗で吸着ポートをOFF「0」にする命令。

この命令を発行した後に、ロボット「Rob1」への移動命令を発行すると、その移動の進捗度95%以上になったら、「kyuchaku_port」が「0」(OFF)になる。

この進捗度を監視して、ポート制御する命令を無効に(リセット)する関数もある。75行目の

RobResetMoveProgressDo(Rob1, 1);

「ロボ リセット ムーブ プログレス ディーオー 命令!」

引数の2つ目、ここでは、「」が、進捗度DOUT命令の識別番号。1から16まで可能。

いままでは、進捗度で「kyuchaku_port」が「0」(OFF)になる話をしてきたが、

進捗度で「kyuchaku_port」が「1」(ON)になるコードも書いてある。

それが、85行目の

  RobSetMoveProgressDo(Rob1, 2, 95, kyuchaku_port, 1);

同様に、その機能を無効に(リセット)する関数もあって、90行目の

  RobResetMoveProgressDo(Rob1, 2);

引数の2つ目、識別番号を「」にして、区別している。

アーチモーションと真空吸着ポートの同期位相制御のソースファイルは、こちら、

「oyaji_ptp_arch_dout.mos.c」をダウンロード

ダウンロードの方法は、マウスを当てて、右クリック。

そして、「対象をファイルに保存」を選んでください。

実機への応用およびその結果については、使用者の責任で行ってください。

これは、基礎実験用のプログラムです。

ちなみに今回は、DIOカードをパソコンに差していないので、吸着ポートのポート番号は、MOS資源のメモリ上のポート「バーチャルI/O」ポートに指定してあります。

アーチモーションと真空吸着ポートの同期位相制御に関する記事;

概要、

http://robotcontroller.cocolog-nifty.com/blog/2011/06/post-8505.html

詳細タイミング解析、位相同期の繰り返し再現性については、

http://robotcontroller.cocolog-nifty.com/blog/2011/06/pickplace-16b2.html

アーチモーション軌跡指令の繰り返し再現性については、

http://robotcontroller.cocolog-nifty.com/blog/2011/06/post-e899.html

■Link: 「高性能制御を簡単に、みんなに!」  

半導体装置、電子部品装置向け リアルタイムWindows 40軸超高速コントローラ

リアルタイムWindows 40軸超高速マシンコントローラ

RTEXとパルス列16軸+IO スタンドアロン マシンコントローラ

RTEXとパルス列16軸 スタンドアロン マシンコントローラ

|

« pick&place移動動作と吸着ポートの同期制御の詳細タイミング評価をしました | トップページ | ブログの読者(社長さん)から突然メイルをいただきました。 »

モーション制御」カテゴリの記事

コメント

コメントを書く



(ウェブ上には掲載しません)


コメントは記事投稿者が公開するまで表示されません。



« pick&place移動動作と吸着ポートの同期制御の詳細タイミング評価をしました | トップページ | ブログの読者(社長さん)から突然メイルをいただきました。 »