FANUCインライン測定サンプルプログラム

現在ご覧いただいているのは最新版の内容です(V1.3.0)。異なるバージョンを参照する場合は、画面右上のボタンから切り替えが可能です。

■ ご利用中のバージョンが分からない場合や、サポートが必要な場合はお気軽にサポート窓口までご連絡ください。

プログラム概要

機能

ユーザはロボット側からトリガーをかけて Mech-Metrics を起動し、Mech-MSR を使用して測定を行い、Mech-Metrics へ測定結果を返す

ファイルパス

Mech-MSR および Mech-Metrics ソフトウェアのインストールディレクトリCommunication Component/Robot_Interface/FANUC/sample/MSR_Metrics_Sample1.LS

必要なリソース

Mech-MSR ソリューションと Mech-Metrics プロジェクト

利用の前提条件

  • インライン測定定システム側の準備:

    • 現在のワークが Mech-Metrics で Mech-MSR ソリューションに関連付けられていること

    • 現在の特徴が Mech-Metrics で Mech-MSR プロジェクトにバインドされていること

    • Mech-MSR ソリューションとプロジェクトが Mech-MSR で開かれていること

  • ロボット側の準備:

    • FANUC標準インターフェース通信設定が完了していること

    • FANUC自動キャリブレーションが完了していること

    • 測定位置がティーチング済みであること

    • ロボット側でロボットを最初の測定予定位置に移動していること

    • 測定開始前にロボットとカメラを30分間予熱済みであること

    • 測定を開始する前に、外部の照明環境と温度が安定していること

本サンプルプログラムは、あくまで例示用のプログラムです。ユーザーは実際の状況に応じて変更する必要があり、プログラムを直接使用しないでください。

プログラム説明

以下は、MSR_Metrics_Sample1 サンプルプログラムのコードと関連する説明です。

   1:  !-------------------------------- ;
   2:  !FUNCTION: MSR_Metrics_Sample1 ;
   3:  !Mech-Mind, 2024-05-27 ;
   4:  !-------------------------------- ;
   5:   ;
   6:  !set current uframe NO. to 0 ;
   7:  UFRAME_NUM=0 ;
   8:  !set current tool NO. to 1 ;
   9:  UTOOL_NUM=1 ;
  10:  !move to robot home position ;
  11:  J P[4] 100% FINE    ;
  12:  !Init Socket!Modify IP Address ;
  13:  CALL MSR_INIT_SKT('8','192.168.1.20',50000,5) ;
  14:  !Set Custom Values ;
  15:  CALL MSR_MEAS_PARM(10,20,30,40,50,60,70,80) ;
  16:  !SR:String Register; R:Register ;
  17:  !Set Robot_Id,SR No.1, ;
  18:  !SR No.2,Qc_Mode,R NO. ;
  19:  !SR No.1:Piece_Name ;
  20:  !SR No.2:Piece_Sn ;
  21:  !R No.:Continuous Mode ;
  22:  CALL MSR_ST_MEAS(1,1,2,1,10) ;
  23:  !Set Robot_Id,SR No.2 ;
  24:  !SR No.2:Piece_Sn ;
  25:  CALL MSR_SET_WP(1,2) ;
  26:  !move to 1st image-capturing ;
  27:  !position ;
  28:  J P[1] 100% FINE    ;
  29:  !Set Robot_Id,Index ;
  30:  CALL MSR_MEAS_FEAT(1,3) ;
  31:  !move to 2ed image-capturing ;
  32:  !position ;
  33:  J P[2] 100% FINE    ;
  34:  !Set Robot_Id,Index ;
  35:  CALL MSR_MEAS_FEAT(1,3) ;
  36:  !move to 3rd image-capturing ;
  37:  !position ;
  38:  J P[3] 100% FINE    ;
  39:  !Set Robot_Id,Index ;
  40:  CALL MSR_MEAS_FEAT(1,3) ;
  41:  !Set Robot_Id,R No. ;
  42:  !R No.1:Measure Result ;
  43:  !R No.2:Alarm Count1 ;
  44:  !R No.3:Alarm Count2 ;
  45:  !R No.4:Alarm Count3 ;
  46:  CALL MSR_END_MEAS(1,11,12,13,14) ;
  47:  !Set Robot_Id,SR No.2 ;
  48:  !SR No.2:Piece_Sn ;
  49:  CALL MSR_VIEW_WP(1,2) ;
  50:  WAIT   1.00(sec) ;
  51:  PAUSE ;

下表は上記プログラムのロジック解説です。上記のコードにおいて、コメントアウトされている内容は「!」から始まります。下表ではコメントアウトされた内容については説明しません。

フロー コードと説明

座標系設定

   6:  !set current uframe NO. to 0 ;
   7:  UFRAME_NUM=0 ;
   8:  !set current tool NO. to 1 ;
   9:  UTOOL_NUM=1 ;
  • UFRAME_NUM=0:現在選択されているユーザー座標系番号を0(ワールド座標系)に設定する

  • UTOOL_NUM=1:現在選択されているツール座標系番号を1に設定する(ユーザーは事前に1番ツール座標系を設定しておくことが必要)

指定位置に移動

  10:  !move to robot home position ;
  11:  J P[4] 100% FINE    ;
  • J:ロボットの関節移動コマンド。ロボットが円弧型軌跡に沿って指定位置まで移動することを示す

  • P[4]:ロボットの移動先となる目標位置を指定する

  • 100%:最大移動速度に対する相対的な移動速度の百分率

  • FINE:指定位置に正確に到達する

通信初期化

12:  !Init Socket!Modify IP Address ;
13:  CALL MSR_INIT_SKT('8','192.168.1.20',50000,5) ;
  • CALL MSR_INIT_SKT('8','192.168.1.20',50000,5):インライン測定システムとロボット間のTCPプロトコルによる通信接続を確立する

    • '8':ロボットポート番号

    • '192.168.1.20':IPCのIPアドレス

    • 50000:IPCのポート番号

    • 5:通信タイムアウトの待ち時間、単位:分

      ユーザーは実際の状況に応じて、ここのIPCのIPアドレスおよびポート番号を修正し、Mech-MSR で設定したものと一致するようにする必要があります。

カスタムパラメータ設定

14:  !Set Custom Values ;
15:  CALL MSR_MEAS_PARM(10,20,30,40,50,60,70,80) ;
  • CALL MSR_MEAS_PARM(10,20,30,40,50,60,70,80):カスタムパラメータを設定する

    • 10,20,30,40,50,60,70,80:一連のカスタムパラメータ。Mech-Metrics により多くのワーク情報を提供する必要がある場合にのみ使用される

測定開始

  16:  !SR:String Register; R:Register ;
  17:  !Set Robot_Id,SR No.1, ;
  18:  !SR No.2,Qc_Mode,R NO. ;
  19:  !SR No.1:Piece_Name ;
  20:  !SR No.2:Piece_Sn ;
  21:  !R No.:Continuous Mode ;
  22:  CALL MSR_ST_MEAS(1,1,2,1,10) ;
  • CALL MSR_ST_MEAS(1,1,2,1,10):測定タスクを開始する

    • 1:ワーク番号

    • 1:ワーク名を保存するための文字列レジスタ番号

    • 2:ワークSNを保存するための文字列レジスタ番号

    • 1:品質検査モード 1 は全数検査、2 は抜取検査を表す

      ここの品質検査モードは、Mech-Metrics で設定した内容と一致している必要があります。

    • 10:Mech-Metrics から返された今回の実行が連続実行か単発実行かを保存するための数値レジスタ番号

Mech-Metrics にワークを入力

  23:  !Set Robot_Id,SR No.2 ;
  24:  !SR No.2:Piece_Sn ;
  25:  CALL MSR_SET_WP(1,2) ;
  • ALL MSR_SET_WP(1,2):ワーク情報を設定し、測定中にワーク番号を入力する

    • 1:ワーク番号

    • 2:入力されたワークSNを保存するための文字列レジスタ番号

ロボットを指定位置へ移動させ、特徴測定を行う

  26:  !move to 1st image-capturing ;
  27:  !position ;
  28:J P[1] 100% FINE    ;
  29:  !Set Robot_Id,Index ;
  30:  CALL MSR_MEAS_FEAT(1,3) ;
  31:  !move to 2ed image-capturing ;
  32:  !position ;
  33:J P[2] 100% FINE    ;
  34:  !Set Robot_Id,Index ;
  35:  CALL MSR_MEAS_FEAT(1,3) ;
  36:  !move to 3rd image-capturing ;
  37:  !position ;
  38:J P[3] 100% FINE    ;
  39:  !Set Robot_Id,Index ;
  40:  CALL MSR_MEAS_FEAT(1,3) ;
  • JP [1] 100% FINE:最初の測定位置に正確に移動、速度100%

  • CALL MSR_MEAS_FEAT(1,3):ロボット側はワーク番号1、測定特徴の測定番号3となる Mech-MSR プロジェクトの実行をトリガーする

    • 1:ワーク番号

    • 3:特徴測定番号

      呼び出しごとの特徴番号は、実際の状況に応じて修正する必要があります。

  • JP [2] 100% FINE:2番目の測定位置に正確に移動、速度100%

  • JP [3] 100% FINE:3番目の測定位置に正確に移動、速度100%

    ユーザーは事前にこれら3つの測定位置をティーチングしておく必要があります。具体的なティーチング方法については、自動キャリブレーションにおけるFANUC自動キャリブレーション篇のキャリブレーションの初期位置を設定部分の操作をご参照ください。

測定終了

  41:  !Set Robot_Id,R No. ;
  42:  !R No.1:Measure Result ;
  43:  !R No.2:Alarm Count1 ;
  44:  !R No.3:Alarm Count2 ;
  45:  !R No.4:Alarm Count3 ;
  46:  CALL MSR_END_MEAS(1,11,12,13,14) ;
  • CALL MSR_END_MEAS(1,11,12,13,14):測定タスクを終了し、測定結果を保存して返す

    • 1:ワーク番号

    • 11:ワーク判定結果を保存するための数値レジスタ番号 1 はOK、0 はNGを表す

    • 12,13,14:ワークの公差 1、公差 2、公差 3を超えた測定項目数を保存するための数値レジスタ番号

履歴データ照会

  47:  !Set Robot_Id,SR No.2 ;
  48:  !SR No.2:Piece_Sn ;
  49:  CALL MSR_VIEW_WP(1,2) ;
  • CALL MSR_VIEW_WP(1,2):特定のロボットを使用してワークのSNを Mech-Metrics に入力し、Mech-Metrics ソフトウェアのメイン画面を該当するワークのデータビューに切り替える

    • 1:ワーク番号

    • 2:入力待ちのワークSNを保存するための文字列レジスタ番号

この情報は役に立ちましたか?

ご意見・ご要望がございましたら、以下よりお寄せください:

Mech-Mindは、お客様のプライバシーを重視しています

このサイトでは最高の体験を提供するために Cookie を使用しています。サイトの閲覧を続ける場合、Cookie の使用に同意したことになります。「拒否する」を選択すると、このサイトを訪れた際に追跡や記憶が行われないように単独の Cookie が使用されます。