I/O割付けのメモ

最初につまずくのはやはりI/O割付けでしょうか。ラックNo.?スロット?なにそれおいしいの?

何回やっても忘れちゃうんですよね。ということで、良く使うものをメモとして残しておきたいと思います。

I/O割付けに関連 するシステム変数

  • $MAX_DIG_PRT : DI/DO数の変更
  • $IO_AUTO_CFG : FALSEにするとDI/DO自動割付け無効
  • $IO_AUTO_UOP : FALSEにするとUOPの自動割付無効(これはシステム設定でも設定できます)

ラックNo.とスロット

ラックNo.スロット
CC-Link921 or 2
CC-Link IE Field1051
メインボード CRMA15・16481
EtherNet/IP89EIP設定のコネクション番号
プロセスI/Oリンク01~
I/O Unit Model A1~16Base UNIT Slot
I/O Unit Model B1~16基本UNIT DIP SW
I/Oリンクスレーブインタフェース321

R-30iB Mate PlusとオムロンCJ2のEtherNet/IP通信

R-30iB Mate PlusとオムロンCJ2(CJ2M、CJ2H、CJ1W-EIP21など)でEtherNet/IP(以下EIP)通信をするためには、少し注意が必要です。というのも、オムロンのCJ2でEIPの設定をするには「Network Configrator」というオムロンのソフトを使う必要があり、そのソフトにR-30iB Mate用のedsファイルを読込ませてもPlusとバージョン番号が違うため、はじかれてEIP通信が行えません。CJ2のEIP通信がバージョン番号チェックに厳格で真面目な性格であるともいえますが。。。

ちなみにR-30iB MateのEIPのedsファイルは、ファナックの会員サイトでお得意様会員になればダウンロード可能です。 ただ、2019/05/17現在ダウンロードできるのは「R-30iB Mate」用であり、「R-30iB Mate Plus」用とはなっていません。ファナックの担当の方に言えば「R-30iB Mate Plus」用のedsファイルをもらえますが、すぐに でも試したい場合は、自分でedsファイルを書き換えて
「R-30iB Mate」 用を「R-30iB Mate Plus」用にしてしまうことも可能です。

それでは、edsファイルの書換え方について説明します
(以下、自己責任で行ってください)

ファナックのR-30iB MateのEIPのedsファイルをテキストエディタで開きます。Windows標準のメモ帳でもかまいません。20行目あたりにある以下の数字を書き換えます。Rev2.4をRev3.1にします。

MajRev = 2;
MinRev = 4;

↓のように書き換えます。

MajRev = 3;
MinRev = 1;

書き換えたedsファイルを使って「Network Configrator」で設定を転送してください。

R-30iB Mate Plusが来た

R-30iB Mate Plusが来ました。処理速度が速いですね。あと、ティーペンの画面がきれい。

ちょっと気になった点
・初期設定用のウィザードが微妙にうざい
・プログラム作成画面がアイコンエディタだとやばい
 (慣れたら使いやすいのでしょうが)
・昔自作したカレルが動かない


ということで、プログラム作成画面を昔ながらの「標準エディタ」と「アイコンエディタ」を切替える方法についてです。


まず、画面左下のホームアイコンでメニュー画面を表示させます。

[基本設定]→[初期設定]を選択

8番目か9番目あたりの項目にプログラムエディタを選択する画面があるので、そこで「アイコンエディタ」と「標準エディタ」を選ぶことができます。

LED照明付 カメラパッケージ LED点灯/消灯方法

前回にひきつづきカメラパッケージについてです。

LED照明付のカメラパッケージのLED点灯/消灯制御は、ロボットプログラムから「IRVLEDON」というカレル関数を呼んで行います。
次の画面のように呼出します。

第一引数の1はカメラのチャンネル番号になります。
第二引数の16はLEDの明るさで1~16を設定します。


■カレル関数の呼出し方
プログラム作成画面で[命令]→[呼出し/終了]→[プログラム呼出し]と選択します。

つづいて、画面下の[コレクション]→[カレル]→一覧から[IRVLEDON]を選択します。

「IRVLEDON(1,16)」と入力したいので引数を設定します。カーソルをIRVLEDONの後にもっていき、[選択]→[定数]→[1]を入力します。

さらに、「IRVLEDON(1)」の最後尾にカーソルをもっていき、 [選択]→[定数]→[16]を入力します。

先述した通り、第一引数はカメラのチャンネルになります。
第二引数はLEDの明るさで1~16を設定します。


LEDを消灯するときは点灯と同様にカレルの「IRVLEDOFF」を呼び出します。ただし、消灯では引数を指定しません(指定しても無視されるようです)。つまり、IRVLEDOFFを実行するとすべてのチャンネルのLEDが消灯します。指定のチャンネルのLEDだけをOFFするカレルは、現在、用意されていないようです。

詳しい説明は、B-83304JA iRVision取扱説明書(リファレンス編)に載っています。

FANUC 2DV Sensor カメラパッケージ レンズ交換

FANUC 2DV Sensor カメラパッケージのレンズ交換をしようとしたら、どこをはずしてもレンズが外せずてこずりました…。

まず、ケーブル類を外します。
外したくても指が入らないのでピンセットなどで頑張る必要があります。
(後から思ったのですが、この時点ではずす必要なかったかもです…。)

次に六角レンチで下の画像のセットネジをはずします。

次の写真の矢印のようにひねると、上下で分割できます。

ここまでくれば説明不要でしょうが、3本のキャップネジをはずせばカメラブラケットがはずせます。

ちなみに、このFANUC 2DV Sensor カメラパックのレンズ交換などの取説は、
「B-82775JA : 力センサ・立体センサ iRVision/V-500iA 保守説明書」 になります。この取説はロボット付属のDVDには入っていませんでした。FANUCの会員サイトで「B-82775JA」のpdfをダウンロードする必要があるようです。4.3.3章にレンズ交換について書いてありました。

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にしたところでピッタリ合いました。
この時点ではちょっとのズレだとしても、後々別の原因のズレが複合的に発生してくるとドツボにはまってしまうので、まずは最初にしっかりと合わせることが大事です。