ロボット制御

FANUCロボットの位置レジスタとは?教示点との違いとPLC連携の土台になる理由

教示点を60点すべて教える方法と、基準点1点にずらす量を足す方法を並べて比べた図
fa-engineer

パレットに製品を並べる動作をロボットに組ませるとき、やり方は大きく3つあります。

  1. 置く場所を1点ずつ教える
  2. ロボットの標準パレタイズ機能を使う
  3. PLC側でずらす量を計算して、ロボットに渡す

私は3つ目を選ぶことが多いです。

理由は「1や2ができないから」ではありません。設備全体をPLCで動かしている現場では、そのほうが後々ラクだからです。その話は3本目で詳しく書きます。

そして3つ目を実現する土台になるのが、この記事で扱う位置レジスタです。ティーチペンダントでは イチレジ[ ] と表示されます。

今回は計算の話も通信の話もしません。「位置レジスタとは何か」「教示点と何が違うのか」だけを、しっかり押さえます。

【補足2】本記事の画面図は、説明のために筆者が作成したイメージ図です。メーカーが公開している資料ではありません。ご使用の機種やバージョンによって、表示や項目の並びが異なる場合があります。

1. 点を1つずつ教えると、何が起きるか

ロボットを実際に動かして「ここ」と登録した点を教示点と呼びます。ペンダントには イチ[1] イチ[2] … と表示されます。

分かりやすい方法です。動かして覚えさせるだけなので、初めての人でも扱えます。

ただし、規則的に並ぶ動作をさせようとすると3つの問題が出ます。

問題1:点数が一気に増える

5列 × 4行 × 3段のパレタイズなら、置く場所だけで60点。

1点30秒で教えられたとしても30分。実際には安全確認や姿勢の微調整が入るので、半日仕事になることもあります。

問題2:変更に弱い

製品のサイズが変われば、並ぶ間隔が変わります。60点すべてが影響を受けます。

「1点だけ直す」では済みません。全部です。

問題3:他の人が触れない

イチ[37] を見ても、それが何列目の何段目なのか分かりません。

作った本人は覚えていても、半年後の自分や、担当が代わった人には読めません。結果として、誰も直せないプログラムができあがります。

点を1つずつ教える
イチ[1] 1段目1列目
イチ[2] 1段目2列目
イチ[3] 1段目3列目
   ︙
イチ[60] 3段目5列目
60点すべてを実際に動かして登録
寸法が変われば60点とも修正
位置レジスタで受け取る
イチ[1] 基準点(1点だけ教える)
イチレジ[1] 積み位置
 └ PLCが計算して書き込む
教えるのは1点だけ
品種が増えてもPLCの数値を変えるだけ

2. 位置レジスタとは「座標を入れておく箱」

位置レジスタは、ひとことで言うと座標を入れておく箱です。

イチレジ[1] イチレジ[2] … と番号が振られていて、それぞれに「X座標はいくつ、Y座標はいくつ」という情報を入れておけます。

教示点との違いを表にします。

教示点 イチ[ ]位置レジスタ イチレジ[ ]
保存される場所そのプログラムの中ロボット全体で共有
値の入れ方ロボットを動かして教える数値を直接書ける
他のプログラムから使えない使える
計算で中身を変えるできないできる

太字にした3行が、この記事のすべてです

教示点は、ロボットを動かさないと値が変わりません。

位置レジスタは、数字を書き込むだけで値が変わります。しかもプログラムの中に閉じておらず、ロボット全体で共有されています。

つまり位置レジスタは、外から受け取った数字で書き換えられる箱だということです。

  • ロボット自身が計算して入れてもいい
  • PLC側で計算した値を受け取って、その分だけずらしてもいい

ロボットの側から見れば、どちらでも同じです。「箱に入っている座標へ動く」だけです。

この性質があるから、「計算はPLCに任せて、ロボットは動くことに専念させる」という組み方ができます。

3. なぜ私はPLC側で計算するのか

標準のパレタイズ機能は、よくできています

まず誤解のないように書きます。標準でパレタイズ機能があり、できることは多いです。

マニュアルを読むと、次のことがはっきり書かれています。

  • 行・列・段のパターンを教えれば、規則的に積む動作を作れる
  • パレタイズレジスタが「いま何行目・何列目・何段目か」を持っている
  • そのレジスタに値を直接書き込める。つまり途中から再開できる
  • 条件分岐で特定の位置だけ飛ばせる。マニュアルには「偶数段の5個目だけ積まない」という実例まで載っている
  • 画面で「いま何番目を積んでいるか」を確認できる

それでも別の構成を選ぶ理由

できるかどうかではなく、設備全体をどう管理するかの問題です。

理由1:積み方の情報が2か所に分かれる

標準機能を使うと、積み方はロボットの中に持つことになります。一方、生産の指示や品種の切り替えはPLC側から来ます。

同じ「積み方」の情報が、ロボットとPLCの2か所に分かれます。品種が増えるたびに、両方を合わせに行くことになります。

理由2:品種追加のたびにロボットを触ることになる

PLC側で計算する構成なら、品種の追加はPLCの数値を変えるだけです。ロボットのプログラムは触りません。

標準機能だと、ロボットの設定画面をたどって、パターンを追加・修正する作業が発生します。

理由3:ロボットは単純なほうが、後で助かる

これがいちばん大きい理由です。

ロボットを「言われた座標に行くだけ」にしておくと、トラブルのときに切り分けが速くなります。

位置がおかしければ、渡している数値を見ればいい。数値が正しくて動きがおかしいなら、ロボット側の問題。切り分けが2択で済みます。

ロボットの中に計算ロジックがあると、この切り分けができません。夜中に呼び出されたとき、この差は大きいです。

理由4:他の設備と連動しやすい

在庫、段取り、前工程の状況。積む位置をこれらと連動させて決めたいなら、判断はPLCに集約したほうが素直です。すでにPLCが他の設備とつながっているからです。

逆に、標準機能のほうが向いているケース

公平のために書いておきます。

  • ロボット単体で完結する設備。PLCと連携する必要がない
  • 積み方が固定で、品種が増えない
  • PLCを触れる人が社内にいない

このどれかに当てはまるなら、標準機能のほうが早いですし、素直です。構成の向き不向きの話であって、どちらが優れているという話ではありません。

4. 位置レジスタの中身は6つの数字

位置レジスタの詳細画面を開くと、6つの項目が並んでいます。

項目意味単位
X左右方向の位置mm
Y前後方向の位置mm
Z上下方向の位置mm
WX軸まわりの傾きdeg(度)
PY軸まわりの傾きdeg(度)
RZ軸まわりの傾きdeg(度)

X・Y・Zが「どこに」、W・P・Rが「どの向きで」を表します。単位は画面にも表示されています。

位置レジスタの詳細画面。値が未設定だとアスタリスクが並び、値を入れるとZに100.000mmが表示される

まだ一度も値を入れていない位置レジスタは、数値の代わりに ****** が並びます。「空っぽ」という意味です。

もうひとつ大事な性質があります。位置レジスタは、X・Y・Zを1つずつ個別に書き換えられます。

「基準点のX座標にだけ100mm足す」という扱いができるので、ずらす量だけを外から受け取って、基準点に足し込むという組み方ができます。PLCとつなぐときは、この形になります。

直交と各軸、どちらで持つか

位置レジスタには2つの持ち方があります。ソフトキーの [形式] で切り替えます。

形式中身向いている用途
直交上のX・Y・Z・W・P・R寸法図の数字をそのまま使いたいとき
各軸各軸の角度(J1〜J6)姿勢をそのまま再現したいとき

PLCと連携する構成なら、直交です。

理由は単純で、PLC側が扱うのは「ピッチ100mm」「段の高さ50mm」といった寸法だからです。直交ならその数字をそのまま使えます。各軸(角度)では、PLC側で角度に変換する必要が出てきて、計算が現実的でなくなります。

ただし直交には注意点があります。同じXYZでも、ロボットの肘の向きが変わることがあります。座標としては正しいのに、腕が想定と違う形で入ってきて周りにぶつかる、という事故が起こり得ます。

対策は、必ず低速で1回試すことです。位置レジスタを使い始めた直後は、特に気をつけてください。

5. 実際に画面を開いてみる

大まかな流れ

  1. 画面選択から位置レジスタの画面へ進む
  2. 一覧を見る
  3. 番号を選んで中身を見る
  4. 値を入れてみる

まずは動かさずに、中身を見るだけから始めてください。位置レジスタは全プログラムで共有される場所なので、いきなり書き換えると、動いている別のプログラムに影響が出ることがあります。

ステップ1:位置レジスタの画面を開く

MENU(画面選択)を押します。1ページ目に位置レジスタはありません。

ティーチペンダントの画面選択メニュー1ページ目。ユーティリティからファイルまでの項目が並び、位置レジスタは含まれていない

0 -- 次 -- を選んで2ページ目へ進み、データ を選びます。

ティーチペンダントの画面選択メニュー2ページ目。データの項目を選ぶと位置レジスタに進める

データ を選ぶと、レジスタ 位置レジスタ などの項目が並ぶので、位置レジスタを選びます。

⚠️ DATA キーを直接押しても開けますが、こちらは「最後に開いていた画面」が出ます。

レジスタが出ることも、位置レジスタが出ることもあります。押したのに違う画面が出て戸惑うのは、たいていこれです。慣れるまでは画面選択からたどるほうが確実です。

ステップ2:一覧を見る

一覧にはこう並びます。

位置レジスタの一覧画面。番号のうしろに名称が表示され、未設定の番号は空欄になっている

番号のうしろは「名称」です。名前を付けていない初期状態では空欄になります。

ここに名前を付けておくと、後の自分が助かります。「基準点」「段の上げ量」など、用途が分かる言葉を入れておいてください。空欄のまま運用すると、半年後に何の番号か分からなくなります。

ステップ3:中身を見る

番号を選ぶと、XYZWPRの6つが表示されます。

すでに値が入っている番号は、別のプログラムが使っている可能性があります。****** になっている空いた番号を選んでください。

ステップ4:値を入れてみる

空いている番号に、試しに次の値を入れてみます。

ステップ5:現在位置を取り込む

数値を手で打つほかに、いまロボットがいる場所をそのまま取り込む方法があります。基準点を登録するときによく使います。

ソフトキーの イチ記憶 を押すと現在値の座標が記録されます。

この操作が、次回以降の出発点になります。基準の1点さえ取り込めれば、あとは計算でずらしていけるからです。

6. よくあるつまずき

番号がぶつかる

位置レジスタは、ロボット全体で共有されています。

プログラムAで イチレジ[1] を使い、プログラムBでも イチレジ[1] を使っていると、お互いに書き換え合って動作がおかしくなります。しかも、このトラブルは再現しにくく、原因が分かりにくいという厄介さがあります。

PLCと連携する構成では、さらに注意が要ります。受け取った値を入れておく数値レジスタ レジ[ ] の番号も、同じように取り合いになるからです。

対策は地味ですが確実な方法しかありません。どの番号を何に使うか、一覧表を作ってください。

番号名称用途書き込む側
イチレジ[1]基準点パレットの基準ロボット(イチ記憶
イチレジ[2]積み位置基準点にずらす量を足した結果ロボット(計算)
レジ[1]〜[3]ずらし量XYZPLCから受け取った値ロボット(取り込み)
イチレジ[10]試験用空き

「書き込む側」の列を必ず作ってください。そして、ペンダントの名称欄にも同じ名前を入れておくと、画面を見ただけで分かります。

中身が空のまま使う

****** のままの位置レジスタを動作命令で使うと、アラームで止まります。

PLCと連携する構成では、値が届く前に計算してしまうと、意図しない座標になります。受け取りが終わったことを確認してから計算する仕組みが必要です。ここは3本目で扱います。

座標系が違っていて、思った場所に行かない

これがいちばん分かりにくいところです。実機も警告を出してくれます。

位置データは現在有効なユーザ、ツール座標系で変換されます。これらの座標系は、イチレジ を教示した時に使用された座標系とは異なる場合があります。

かみくだくと、こういうことです。

位置レジスタに入っている数字は、「どの座標系で見た数字か」とセットで意味を持ちます。登録したときと違う座標系で使うと、同じ数字でも別の場所を指します。

対策は2つです。

  • 位置レジスタを使うプログラムでは、ユーザ座標とツール座標を最初に指定しておく
  • 登録したときの座標系を、番号の管理表にメモしておく

座標系そのものの説明はこのシリーズの範囲を超えるので詳しくは触れません。お使いの機種のマニュアルか、メーカーにご確認ください。

7. まとめ

  • 点を1つずつ教えると、点数が増える・変更に弱い・他人が触れないの3つで詰まる
  • 位置レジスタ イチレジ[ ]座標を入れておく箱
  • 教示点との決定的な違いは、数字を書き込むだけで変えられ、ロボット全体で共有されること
  • だから外から受け取った数字で書き換えられる
  • 標準パレタイズ機能も優秀。選ぶ基準は「できるか」ではなく「設備全体をどう管理するか」
  • 中身はX・Y・Z(どこに)とW・P・R(どの向きで)の6つ。空だと ******
  • 現在位置は イチ記憶 で取り込める
  • 番号の管理表を作る。名称欄にも同じ名前を入れる

次回予告

次回は、この箱を実際に動作命令で使います。

イチホセイ イチレジ[1] という、教示点を位置レジスタの分だけずらして動く命令があります。基準の1点だけを教えて、あとは箱の中身でずらす。次はこれを中心に説明します。

3本目で、いよいよPLCから受け取った値でパレタイズさせるところまで進みます。PLCからのデータをどう受け取り、どう基準点に足し込むかを扱います。

お問い合わせ

設備の自動化やロボットの導入でお困りごとがあれば、お気軽にご相談ください。

ABOUT ME
Yu
Yu
設備エンジニア(フリーランス)
生産技術の現場で10年以上の経験を持ち、制御設計を中心に生産設備の開発全般に携わってきました。 特に、産業用ロボットを活用した自動化設備の開発を得意としており、機械・電気・制御の知識を横断的に活かして業務に取り組んでいます。 近年では、PLCと連携したIoTシステムの構築にも注力しており、PythonやSQL Serverなどを活用したデータ収集・可視化・分析の仕組みづくりにも対応しています。 現場のリアルな課題を解決するための実践的なノウハウを発信していきます。
記事URLをコピーしました