CRMA15とCRMA16のコネクタに注意(?)

写真の真ん中あたりにある、黒くて40ピンのコネクタ2つのうち、左側がCRMA15で、右側がCRMA16になります。
注意したいのはピンの並び順です。取説に書いてある図では上にA01がくるように書いてあることが多いですが、実際はA01が下にきます。

   CRMA15         CRMA16
┏━━━━┓     ┏━━━━┓
┃B20  A20┃     ┃B20  A20┃
┃B19  A19┃     ┃B19  A19┃
┃B18  A18┃     ┃B18  A18┃
┃B17  A17┃     ┃B17  A17┃
┃B16  A16┃     ┃B16  A16┃
┃B15  A15┃     ┃B15  A15┃
┃B14  A14┃     ┃B14  A14┃
┃B13  A13┃     ┃B13  A13┃
┃B12  A12┃     ┃B12  A12┃
┃B11  A11┃     ┃B11  A11┃
┃B10  A10┃     ┃B10  A10┃
┃B09  A09┃     ┃B09  A09┃
┃B08  A08┃     ┃B08  A08┃
┃B07  A07┃     ┃B07  A07┃
┃B06  A06┃     ┃B06  A06┃
┃B05  A05┃     ┃B05  A05┃
┃B04  A04┃     ┃B04  A04┃
┃B03  A03┃     ┃B03  A03┃
┃B02  A02┃     ┃B02  A02┃
┃B01  A01┃     ┃B01  A01┃
┗━━━━┛     ┗━━━━┛

シンボル版 ティーチングペンダント

シンボル版ティーチングペンダントというのをさわりました。
ボタンに日本語表記がありません。
表記が違うだけでボタンの配置は同じです。
いつものに慣れてしまっていたせいか、わかりづらく感じました。
海外向けの場合はこのほうが良いのかもしれませんね。

三角関数を使うには?

R-30iB Mate
微妙な動きをさせたいとき、、、
例えばカメラで撮影して得た角度によって、その方向にハンドを動かしたいとか、sin、cos、tanのような三角関数の計算がしたいときがあります。

しかし、標準では三角関数は計算できません。オプションの「数学関数機能オプション(J593)」を入れましょう。
そういったオプションがセットになった「システム設計ツール」というのもあるのかも?メーカーの方に聞いてみてください。

ビジョンのコツ その2 回転ズレはADJ_OFS

前回は基準位置から離れた同じ向きのワークのズレの調整方法を紹介しました。
今回は、ワークが回転しているときにロボットハンドをワークに合わせて回転させるとズレてしまうことの対策を考えてみます。

ツールの先端を原点とするツール座標をしっかりと設定していても、回転したワークを拾うときにズレはどうしても起きてきてしまうものです。そんなときに役立つのはADJ_OFS(アジャストオフセット)という命令です。今回はADJ_OFSの使い方について書いていきたいと思います。

手順1.ワークを180度回転させ、前回のプログラムをそのまま走らせみます。
↑上下さかさまにワークを置いてプログラムを動かす

.

手順2.ズレ量を調査して、ADJ_OFSで補正させます。
ズレ量を調査したところ、目分量ですが、だいたい次の図のような感じでした。

赤丸がハンドの中心で、X方向に-0.4mm、Y方向に+1.2mmずらすと本来行くべき中心になるようなズレ。ADJ_OFSは偏心する円の中心を補正する役目があるようなので、ズレ量の半分の値をセットしてあげます。
この場合、Xを-0.2mm、Yを+0.6mmになります。
それではプログラムに補正をさせる文を加えてみます。

1: !待機イチへ移動
2:カクジク イチ[1] 100% イチギメ
3:
4: !ビジョン検出
5: ビジョン ケンシュツ ‘VISION_R’
6: ビジョン ホセイデータシュトク ‘VISION_R’ ビジョンレジ[1] ジャンプ ラベル[999]
7:
8: !ADJ_OFSで回転微調整
9: イチレジ[7,1:ADJ_OFS値]=(-.2)     ←X方向-0.2mm
10: イチレジ[7,2:ADJ_OFS値]=.6        ←Y方向 +0.6mm
11: イチレジ[7,3:ADJ_OFS値]=0
12: イチレジ[7,4:ADJ_OFS値]=0
13: イチレジ[7,5:ADJ_OFS値]=0
14: イチレジ[7,6:ADJ_OFS値]=0
15: ヨビダシ ADJ_OFS(1,1,7,1)
16:
17: !ワーク上空へ移動
18: イチレジ[8,1:上空補正]=0
19: イチレジ[8,2:上空補正]=0
20: イチレジ[8,3:上空補正]=30
21: イチレジ[8,4:上空補正]=0
22: イチレジ[8,5:上空補正]=0
23: イチレジ[8,6:上空補正]=0
24:
25:チョクセン イチレジ[41:ワーク基準イチ] 100mm/sec イチギメ ビジョンホセイ,ビジョンレジ[1] イチホセイ,イチレジ[8:上空補正]
26:
27: !ワークへ移動
28:チョクセン イチレジ[41:ワーク基準イチ] 50mm/sec イチギメ ビジョンホセイ,ビジョンレジ[1]
29:
30: シュウリョウ
31:
32: ラベル[999]
33: !ワーク未検出
34: シュウリョウ

オレンジ色のところが新たに加えた部分です。

ADJ_OFS(引数1,引数2,引数3,引数4)の簡単な説明
引数1:補正データの入ったレジスタの種類。ビジョンレジは1、イチレジは2
引数2:引数1のレジスタ番号
引数3:調整量の設定値が入ったイチレジ番号
引数4:補正データを格納するビジョンレジまたはイチレジ番号
詳しくはマニュアルを見ましょう

あとは、このプログラムを動かしつつ、値を少しずつ変えて何度もトライして調整していってください。また、ワークの向きも180度だけではなく90度などもためして合わせこんでください。

どうしても、合わない場合は検出角度によってADJ_OFSの補正値を場合分けすることも可能です。また、ハンドのガタとり(バックラッシュ除去動作)したり、艤装ケーブルのツッパリによる位置ずれなどズレの起こる要因を取り除くことも考えてください。

ビジョンのコツ その1 まずは検出面Z高さで調整

カメラで撮影して散らばっているワークを拾いに行く、なんてことは良くあるケースだと思います。ワークがある程度大きいものであれば特に気にすることはないのですが、10mm以下の小さなワークですとちょっとしたズレでワークを拾えなかったりします。そんなときの調整のコツなんかを書いていきたいと思います。あ、ばら積みとかの3Dではなく2Dのお話です。

ワークをピックアップするのにちょとした位置ズレをおこしてしまうのには次の2種類のパターンがあります。
a.初めに覚えさせた基準となるワークの位置から離れると、離れた分だけ比例して位置ズレが生じてしまう
b.ワークが回転していてハンドをその向きに回転させるとズレてしまう

それではa.について解説していきたいと思います。(b.は次回)

話をわかりやすくするためにこういうものを用意してみました。リンゴマークのようなのがワークだと思ってください。2つのワークは回転させずに、同じ向きにしておきます。

手順1.まずは、カメラ中央にワークを置いて撮影し、その映像からパターンマッチ用のモデル教示を行います。
必要ない方のワークにはカメラのキャップをかぶせて隠しています。

手順2.次に画面右上の「カメラ1台の2次元補正」選んでからスナップ検出します。
慣れてきても、この時点でスナップ検出を押すのを忘れがちですw。次にやるハンド移動後では、ハンドが邪魔でスナップ検出できないので注意です。
手順3.そして、ワークのところにハンドを持っていき、基準位置の設定ボタンを押し保存しましょう。それと同時に実際にプログラムでピックアップ位置に移動する際に使用するイチレジ(今回の例ではイチレジ[41])にも登録します。

ここまでできると、プログラムでビジョン撮影してワークへハンドを移動できるようになると思います。

手順4.実際に以下のプログラムを作って動かしてみます。

1: !待機イチへ移動
2:カクジク イチ[1] 100% イチギメ   ←撮影の邪魔にならない位置を登録してください
3:
4: !ビジョン検出
5: ビジョン ケンシュツ ‘VISION_R’ ←みなさんのビジョン名にあわせてください
6: ビジョン ホセイデータシュトク ‘VISION_R’ ビジョンレジ[1] ジャンプ ラベル[999]
7:
8: !ワーク上空へ移動
9: イチレジ[8,1:上空補正]=0    ←X
10: イチレジ[8,2:上空補正]=0   ←Y
11: イチレジ[8,3:上空補正]=30  ←Z 30mm上空  Z以外は0
12: イチレジ[8,4:上空補正]=0   ←W
13: イチレジ[8,5:上空補正]=0   ←P
14: イチレジ[8,6:上空補正]=0   ←R
15:
16:チョクセン イチレジ[41:ワーク基準イチ] 100mm/sec イチギメ ビジョンホセイ,ビジョンレジ[1] イチホセイ,イチレジ[8:上空補正]
17:
18: !ワークへ移動
19:チョクセン イチレジ[41:ワーク基準イチ] 100mm/sec イチギメ ビジョンホセイ,ビジョンレジ[1]
20:
21: シュウリョウ
22:
23: ラベル[999]
24: !ワーク未検出
25: シュウリョウ

うまくいきました。

手順5.続いて、カバーをずらしてもう一つのワークの方をためしてみます。

パッと見うまくいったように見えますが、拡大するとズレています。若干ですがハンドが左にズレているのがわかります。

ここで起きたズレはワークがある面とユーザ座標の高さにズレがあることからくるものです。

手順6.基準位置から見て遠い位置になったのか、近い位置になったのかで次のように調整します。

・基準位置からみてハンドの移動量が多すぎるときは、高さZを+する
・基準位置からみてハンドの移動量が少ないときは、高さZを-する


今回の例ではハンドが基準位置に対して大きく動きすぎているのでZを+する方向にずらしてみます。具体的には次の画面の赤枠の「検出面Z高さ」を変えます。
ここの値を変えると、基準位置も消去されてしまうので(これが本当に厄介)、この値を変更したら、手順2に戻って繰り返し基準位置の設定を行う必要があります。
(何度も同じことを繰り返すので、ワークは取り除かずカバーで隠すようにしているのです)

「Zの値を変えてみる→基準位置を設定する→プログラムでもう一つのワークのところにハンドを動かす」を繰り返してみたところ、今回はZを+4mmにしたところでピッタリ合いました。
この時点ではちょっとのズレだとしても、後々別の原因のズレが複合的に発生してくるとドツボにはまってしまうので、まずは最初にしっかりと合わせることが大事です。

マクロ登録して簡単呼び出し

FANUC R-30iB Mate
ハンドの先端にチャックやバキュームがついていることはよくあると思うけれど、マクロ登録すると、そのチャックの開閉やバキュームのON/OFFをティーペンから簡単に行えるようになります。
[シフト]を押しながら次の図のL字に並んだボタンのどれかを押して実行できるSUマクロが簡単でおすすめです。


SUマクロの登録例
まず、マクロに登録するプログラムを作ります。
動作グループ(モーショングループ)を*にします。
画面選択→設定→マクロを開きます。
プログラムの欄を今作成したプログラムにします。
割付をSU[1]にします。

これで、[シフト]を押しながら[ツール1]ボタンを押すとそのマクロが実行されるようになります。

コントローラのスタートボタン

FANUC R-30iB Mate
ロボットコントローラについてるスタートボタンでプログラムを動かしてみたい。そう、この緑のボタンです。

そんなときは、あらかじめシステム→システム設定で
「43 リモート/ローカル設定」を操作パネルにしておきます。
ちなみに、緑のSTARTボタンを押したときに実行するプログラムは一覧で選択中のプログラムになるようです。

ロボット単体で動かしたいローカル運転

FANUC R-30iB Mate
通常は装置の一部としてロボットはPLCなど外部から「うごいていいよ~」という信号(IMSTP,HOLD,SFSPD,ENBLがオンの信号)をもらうと動けるようになるんですが、装置を組み立てる前にロボット単体で動かしたい、なんてことは多々あります。

そうした時は、システム→システム設定で
「7 専用外部信号」
「8 再開専用(外部START)」
を無効にすると動けるようになります。
装置が組みあがったら有効に戻さないと危ないので注意ですね。

パソコンでコメント入力

FANUC R-30iB Mate
ティーペンでコメントをちまちまと入力していると時間がかかって非効率。
LANケーブルでパソコンとつなげてIE(Internet Explorer)でロボットコントローラのIPアドレスにアクセスするとIEでコメント入力できます。
この画面が表示されたら画面を下のほうにスクロールしてコメントツールを選択。

デフォルトの状態だとベーシック認証画面が出てユーザ名とパスワードを求められてしまうので、あらかじめティーペンで設定を変更する必要があります。
設定→ホスト通信→HTTPで下の画面のようにU(アンロック)させてあげるとできるようになります。

はじめまして!

日々、産業用ロボットと向き合って苦悩している駆け出しエンジニアによるROBOT雑記です。

ROBOT教示プログラム、PLCのソフト設計、それと通信するパソコンソフトなどを冷や汗をかきつつ作っていて、そんな感じのことを書いていけたらなと思っています。

特にROBOTは黄色いのをよく使ったりしています。