FANUC標準インターフェースコマンド
本節では、FANUCロボットとMech-Mindインライン測定システム間でTCPプロトコル通信を行うための標準インターフェースコマンドについて説明します。そのうち、ロボット(クライアント側)はMech-Mindインライン測定システム(サーバー)にコマンドを送信し、Mech-Mindインライン測定システムは処理後のデータをロボットに返します。
コマンド一覧
| コマンド | 呼び出し必須か | 説明 |
|---|---|---|
必須 |
ロボットと通信するIPCのIPアドレス、ポート番号、および通信タイムアウトの待ち時間を設定する |
|
任意 |
ロボットがMech-Metricsにプロジェクトの切り替え開始を通知する |
|
必須 |
測定タスクを開始する前に、ロボットが測定開始コマンドに対してカスタム情報を設定する |
|
必須 |
ロボットが Mech-Metrics に新しいワークの測定開始を通知し、ワーク名、ワークSN、およびその他のワーク情報を Mech-Metrics に送信する |
|
必須 |
対応する測定特徴の Mech-MSR プロジェクトの実行をトリガーする。複数回の測定を行う必要がある場合は、このコマンドを複数回呼び出す可能 |
|
必須 |
ロボットが Mech-Metrics に測定終了を通知し、ワークの測定結果を問い合わせる |
|
任意 |
一部のユースケースでは、測定開始時にワークSNを取得できない。例えば、測定中にバーコードやQRコードをスキャンして取得しなければならない。このコマンドは、ワーク測定中にワークSNを入力するために使用する |
|
任意 |
ワークSNを入力することで、Mech-Metrics ソフトウェアのメイン画面を対応するワークのデータビューに切り替える |
|
必須(自動キャリブレーションプログラムの場合) |
ロボットのハンドアイキャリブレーション(外部パラメータキャリブレーション)に使用する |
注意事項
これらのコマンドを使用する前に、以下の事項に注意してください。
-
FANUCロボットコマンドの呼び出しに関する説明:
-
プログラムの仮引数リスト内の各パラメータの間は、自動的にカンマで区切られます。
-
各仮引数変数には、対応する型の値を直接挿入すればよいです。
-
RレジスタおよびSRレジスタを介して間接的に値を取得できます。
-
FANUCロボットの場合、通信初期化を除き、その他のコマンド内部にTCPプロトコル通信接続の確立および切断のロジックがすでに含まれており、実行前後に自動で接続・切断が行われます。
-
-
コマンドのデータ単位:
-
関節角度の単位は度(°)です。
-
ロボットのフランジ位置姿勢またはロボットのツール位置姿勢は位置と姿勢で構成されています。位置(XYZ座標値)の単位はミリメートル(mm)、姿勢はオイラー角で表され、単位は度(°)です。
-
通信初期化
このコマンドは、ロボットと通信するIPCのIPアドレス、ポート番号、および通信のタイムアウト待ち時間を設定するために使用されます。
呼び出しのタイミング
このコマンドを使用した後、ユーザーはロボットとインライン測定システム間のTCPプロトコル通信接続を確立するには、TCPプロトコル通信接続の確立を呼び出す必要があります。初期化は一度だけ実行すればよいです。
コマンド形式
MSR_INIT_SKT(C_Tag,Ip_Addr,Svr_Port,Time_Out)
入力パラメータ
C_Tag
Ip_Addr
このパラメータはIPCのIPアドレスを示します。データ型はstringです。
Svr_Port
このパラメータは、IPCがロボットと通信を確立するために使用するポート番号を示します。このパラメータ値は、Mech-MSR ソフトウェアのTCP・ASCII通信設定(標準通信方式)で設定されたホストポート番号と一致している必要があります。データ型はnumです。
|
ロボットシステムのバージョンがV10の場合、Svr_Portの値の範囲は[1~32767]です。 |
Time_Out
このパラメータは通信タイムアウトの待ち時間を示し、単位は分です。
サンプル
CALL MSR_INIT_SKT ('1', '192.168.1.20', 30000, 5)
上記のサンプルは、ロボットのポート番号1が接続するIPCのIPアドレスが192.168.1.20、ポート番号が30000、タイムアウト待ち時間が5分であることを示しています。
プロジェクトの切り替え
ロボットが Mech-Metrics にプロジェクト切り替えの開始を通知します。
呼び出しのタイミング
プロジェクト切り替えを開始する前。
コマンド形式
MSR_SW_PROJ(RobotID, Job,MSR_Status)
入力パラメータ
RobotID
このパラメータはワーク番号を示します。ワーク番号は1から99までの整数です。指定するワーク番号は、ワーク番号を設定画面で既に設定されている必要があります。データ型はnumです。
Job
このパラメータはプロジェクト番号を示します。指定するプロジェクト番号は、あらかじめプロジェクト切り替え管理で設定されている必要があります。データ型はnumです。
出力パラメータ
MSR_Status
このパラメータは、コマンドのステータスコードを保存するためのRレジスタ番号を示します。
8105:コマンドの実行に成功しました。
-99:ロボット通信異常。
サンプル
CALL MSR_SW_PROJ(1, 2, 53)
上記のサンプルは、ワーク番号1、プロジェクト番号2のプロジェクトに切り替え、コマンドのステータスコードを数値レジスタR[53]に保存することを示しています。
ユーザーカスタム情報の設定
このコマンドは、測定開始コマンドにカスタム情報を設定するために使用します。
呼び出しのタイミング
測定タスクを開始する前に、測定開始用のユーザーカスタム情報を設定するため、あらかじめこのコマンドを呼び出す必要があります。
コマンド形式
MSR_MEAS_PARM(CustomData[0]; CustomData[1]; CustomData[2]; CustomData[3]; CustomData[4]; CustomData[5]; CustomData[6]; CustomData[7])
入力パラメータ
CustomData[0]-CustomData[7]
このパラメータはワークのカスタム情報を示します。カスタムパラメータは、Mech-Metrics により多くのワーク情報を提供する必要がある場合にのみ使用されます。このコマンドでは、最大8つのカスタムパラメータを指定でき、各カスタムパラメータの値は0から8までの整数です。0はそのカスタムパラメータが不要であることを示します。
カスタムパラメータを使用する場合:
-
Mech-Metrics ソフトウェア設定画面の上部にある機能エリアでを選択し、指定のカスタムパラメータ(例:カスタムパラメータ1)に対してその数値(1〜8)の意味を設定します。
-
このコマンドで指定のカスタムパラメータを設定します。
サンプル
CALL MSR_MEAS_PARM(1,1,1,1,1,1,1,1)
上記のサンプルは、ワークの8つのカスタム情報を事前に設定し、各カスタム値がいずれも整数1であることを示しています。
測定タスクの開始
ロボットが Mech-Metrics に新しいワークの測定開始を通知し、ワーク名、ワークSN、およびその他のワーク情報を Mech-Metrics に送信します。
呼び出しのタイミング
新しいワークの測定を開始する時点。
コマンド形式
MSR_ST_MEAS(RobotID, SReg_Num1, SReg_Num2, Qc_Mode, Reg_Num, MSR_Status)
入力パラメータ
RobotID
このパラメータはワーク番号を示します。ワーク番号は1から99までの整数です。
SReg_Num1
このパラメータは、測定するワーク名(Piece_Name)の文字列レジスタ番号を示します。ワーク名には英数字を含めることができ、長さは20文字以内です。
SReg_Num2
このパラメータは、ワークSN(Piece_Sn)の文字列レジスタ番号を示します。ワークSNとは、ワークのシリアル番号のことであり、そのワークの一意の識別子(ID)です。ワークSNには英数字を含めることができ、長さは30文字以内です。
Qc_Mode
このパラメータはワークの品質検査モードを示します。QCはQuality Controlの略称です。各パラメータ値の意味は以下の通りです:
-
1:全数検査
-
2:抜取検査
-
その他:既存の設定を使用
Reg_Num
このパラメータは数値レジスタ番号を示し、ソフトウェアから返される今回の実行が連続実行か通常の実行かを保存するために使用します。
0:実行
1:連続実行
実行が指定された場合、ロボット側は以下のコマンドを1回実行します:測定タスクの開始→特徴測定の実行→測定タスクの終了。複数の特徴を測定する場合は、特徴測定の実行コマンドを複数回実行してください。例えば、ユーザーが2つの特徴を測定したい場合、1回の実行において、ロボット側で以下のようにコマンドを実行する必要があります:プログラム開始→測定タスクの開始→特徴測定の実行→特徴測定の実行→測定タスクの終了→プログラム終了。
連続実行が指定された場合、ロボット側は1ラウンドのコマンドを実行した後、測定タスクの開始に戻って繰り返し実行します。あるラウンドにおいて測定タスクの開始が1回実行が返された場合、ロボットプログラムは現在のラウンドのコマンド実行完了後に停止します。
|
MSR_Status
このパラメータは、コマンドのステータスコードを保存するためのRレジスタ番号を示します。
8100:コマンドの実行に成功しました。
-99:ロボット通信異常。
サンプル
CALL MSR_ST_MEAS(1,1,2,1,10,53)
上記のサンプルは、ロボットが Mech-Metrics に新しいワークの測定开始を通知し、ワーク番号1、文字列レジスタ番号1のワーク名、文字列レジスタ番号2のワークSN、および品質検査の全数検査モード1をソフトウェアに送信すると同時に、Mech-Metrics ソフトウェア今回の実行モードを番号10の数値レジスタアドレスに保存し、ステータスコードを数値レジスタR[53]に保存することを示しています。
特徴測定の実行
対応する特徴測定の Mech-MSR プロジェクト実行をトリガーします。
呼び出しのタイミング
ロボットが測定対象特徴の撮影位置に到達した時点。
コマンド形式
MSR_MEAS_FEA(RobotID, Measure_Index,MSR_Status)
入力パラメータ
RobotID
このパラメータはワーク番号を示します。ワーク番号は1から99までの整数です。指定するワーク番号は、ワーク番号を設定画面で既に設定されている必要があります。データ型はnumです。
Measure_Index
このパラメータは、測定対象となる特徴の測定番号を示します。データ型はnumです。測定番号はその特徴の一意の識別子(ID)です。測定特徴番号は1から999までの整数です。
出力パラメータ
MSR_Status
このパラメータは、コマンドのステータスコードを保存するためのRレジスタ番号を示します。
8101:コマンドの実行に成功しました。
-99:ロボットの通信に異常が発生しました。
サンプル
CALL MSR_MEAS_FEAT(1, 3, 53)
上記のサンプルは、ロボット側からワーク番号1、測定対象特徴の測定番号3となる Mech-MSR プロジェクトの実行をトリガーし、ステータスコードを数値レジスタR[53]に保存することを示します。
測定タスクの終了
ロボットが Mech-Metrics に測定終了を通知し、ワークの測定結果を問い合わせます。
呼び出しのタイミング
最後の測定対象特徴の撮影が完了し、ワークの測定が完了した時点。
コマンド形式
MSR_END_MEAS(RobotID,Reg_Judge,Reg_Num1,Reg_Num2,Reg_Num3,MSR_Status)
入力パラメータ
RobotID
このパラメータはワーク番号を示します。ワーク番号は1から99までの整数です。指定するワーク番号は、ワーク番号を設定画面で既に設定されている必要があります。データ型はnumです。
出力パラメータ
Reg_Judge
このパラメータは、ワークの判定結果を保存するための数値レジスタ番号を示します。1はOK、0はNGを表します。
Reg_Num1, Reg_Num2, Reg_Num3
このパラメータは、ワークの測定項目数を保存するための数值レジスタ番号を示します。データ型はnumです。詳細は以下の通りです:
-
Reg_Num1ワークが公差1を超えた測定項目数を保存します。
-
Reg_Num2ワークが公差2を超えた測定項目数を保存します。
-
Reg_Num3ワークが公差3を超えた測定項目数を保存します。
MSR_Status
このパラメータは、コマンドのステータスコードを保存するためのRレジスタ番号を示します。
8102:コマンドの実行に成功しました。
-99:ロボットの通信に異常が発生しました。
サンプル
CALL MSR_END_MEAS(1,11,12,13,14,53)
上記のサンプルは、ロボットが Mech-Metrics に測定終了(ワーク番号1)を通知し、同時に Mech-Metrics 測定結果を返し、ワークの判定結果を番号11の数値レジスタに、ワークが公差1、公差2、公差3を超えた測定項目数をそれぞれ番号12、13、14の数値レジスタに保存し、ステータスコードを数値レジスタR[53]に保存することを示しています。
測定中のワークSN入力
一部のユースケースでは、測定開始時にワークSNを取得できない。例えば、測定中にバーコードやQRコードをスキャンして取得しなければなりません。このコマンドは、ワーク測定中にワークSNを入力するために使用する
呼び出しのタイミング
現在のワーク測定中の任意時点。
コマンド形式
MSR_SET_WP(RobotID, SReg_Num2, MSR_Status)
入力パラメータ
RobotID
このパラメータはワーク番号を示します。ワーク番号は1から99までの整数です。指定するワーク番号は、ワーク番号を設定画面で既に設定されている必要があります。データ型はnumです。
PieceSN
このパラメータは、ワークSNの文字列レジスタ番号を示します。ワークSNとは、ワークのシリアル番号のことであり、そのワークの一意の識別子(ID)です。ワークSNには英数字を含めることができ、長さは30文字以内です。
出力パラメータ
MSR_Status
このパラメータは、コマンドのステータスコードを保存するためのRレジスタ番号を示します。
8103:コマンド実行成功。
-99:ロボット通信異常。
サンプル
CALL MSR_SET_WP(1, 2, 53)
上記のサンプルでは、ロボットが Mech-Metrics に文字列レジスタ番号2に記録されているワークSN(ワーク番号1)を引き渡し、ステータスコードを数値レジスタR[53]に保存することを示しています。
ワーク履歴データの照会
外部からワークSNを入力することにより、Mech-Metrics ソフトウェアのメイン画面を入力された番号のワークに切り替えます。
呼び出しのタイミング
非測定中の任意時点。
コマンド形式
MSR_VIEW_WP(RobotID, SReg_Num2, MSR_Status)
入力パラメータ
RobotId
このパラメータはワーク番号を示します。ワーク番号は1から99までの整数です。データ型はnumです。
PieceSn
このパラメータは、ワークSNの文字列レジスタ番号を示します。ワークSNとは、ワークのシリアル番号のことであり、そのワークの一意の識別子(ID)です。ワークSNには英数字を含めることができ、長さは30文字以内です。
出力パラメータ
MSR_Status
このパラメータは、コマンドのステータスコードを保存するためのRレジスタ番号を示します。
8104:コマンドの実行に成功しました。
-99:ロボット通信異常。
サンプル
CALL MSR_VIEW_WP(1, 2, 53)
上記のサンプルは、ロボットが非測定時に、文字列レジスタアドレス番号2内のワークSNを Mech-Metrics に入力し(ワーク番号は1)、Mech-Metrics ソフトウェアのメイン画面を該当ワークのデータビューに切り替え、ステータスコードを数値レジスタR[53]に保存することを示しています。
キャリブレーション
このコマンドは、ロボットのハンドアイキャリブレーション(外部パラメータのキャリブレーション)に使用します。このコマンドは、Mech-MSRカメラメニューの3Dカメラキャリブレーションツールと組み合わせて使用する必要があります。
呼び出し順序
正式な測定を開始する前に、このコマンドを呼び出してロボットのハンドアイキャリブレーションを行う必要があります。
コマンド形式
MSR_CALIB(Move_Type,PosJps,WaitTime,AxisNum,AxisVal,Reg_CalibPos,Reg_CalibMov)
入力パラメータ
{Move_Type}
このパラメータはロボットの移動タイプを示し、値の範囲が1または2です。
-
1:直線運動
-
2:関節運動
{Pos_Jps}
このパラメータは、キャリブレーションポイントの位置姿勢形式を指定するために使用し、値は1または2です。
-
1:ツール位置姿勢
-
2:関節角度
{Wait_time}
このパラメータは、ロボットがキャリブレーションポイントに移動した後の待ち時間(ロボットの振動・ブレを防止するため)を示します。単位は秒で、デフォルトは2秒です。データ型はnumです。
AxisNum
このパラメータはロボットの軸数を示します。
{Ext}
このパラメータは外部軸のデータを示し、単位はミリメートル(mm)です。現場に第7軸のレールがあり、ロボットがそのレールの動きを制御する場合は、このパラメータを具体的な外部軸データ値に設定する必要があります。そうでない場合、このパラメータは0に設定してください。
| 外部軸を使用する場合、ロボットの外部軸タイプは Auxiliary Linear Axis に設定する必要があります。このコマンドは他のタイプの外部軸には対応していません。 |
Reg_CalibPos
このパラメータは、MSR_AUTO_CALIBにおけるキャリブレーションの開始点に使用される位置レジスタ番号を示します。
Reg_CalibMov
このパラメータは、Mech-MSR によって計算されたキャリブレーションポイントの位置姿勢に使用される位置レジスタ番号を示します。このパラメータは、MSR_CALIB命令内部でMSR_MOVEJおよびMSR_MOVEELを使用する場合にのみ使用されます。
出力パラメータ
TOP_Status
コマンドのステータスコードを保存するために使用します。
サンプル
CALL MSR_CALIB(2,1,2,6,0,100,99)
上記のサンプルは、キャリブレーションポイントの位置姿勢形式がツール位置姿勢であり、ロボットが関節角度形式でキャリブレーションポイントに移動した後の待ち時間が2秒、かつ外部軸がなく、キャリブレーション開始点にレジスタPR[100]を使用して保存することを示しています。