標準インターフェースコマンド

ABBで標準インターフェースを用いてロボットプログラミングを行う際は、以下の点にご注意ください。

  1. 複数の パラメータ はコロンで区切る必要があります。

  2. 全てのパラメータは ローカル変数 と定義します。

  3. パラメータは 入力パラメータ あるいは 出力パラメータ と定義することが可能です。

  4. 入力引数は定数、グローバル変数、ローカル変数を指定することができます。出力引数はグローバル変数、ローカル変数を指定することができます。

ABB標準インターフェースは、以下の機能を提供しています。

通信の初期化(MM_Init_Socket)

このコマンドは、ホストIPアドレス、ポート番号、およびTCP/IPの待機時間を設定するために使用されます。

プログラム

MM_Init_Socket "IP_Address",Server_Port,Time_Out;

入力パラメータ

IP_Address

IPCのIPアドレスです。

Server_Port

IPCのポート番号で、デフォルトのポート番号は50000です。

Time_Out

接続の試行を停止するまでの待機時間(秒単位)です。

サンプル

MM_Init_Socket "192.168.1.20",50000,60;

このサンプルを実行すると、IPCのIPアドレスは192.168.1.20、ポート番号は50000、待機時間は60秒に設定されます。

Mech-Visionをトリガー

このコマンドは、Mech-Visionのプロジェクトを起動し、カメラの撮影および視覚認識を行う場合に使われます。

プロジェクトはEye In Handモードである場合、このコマンドを用いて、ロボット撮影の位置姿勢をプロジェクトへ送信します。

このコマンドは、Mech-Visionのみ使用し、Mech-Vizを使用しない場合に使われます。

プログラム

MM_Start_Vis Job,Pos_Num_Need,SendPos_Type,MM_J;

入力パラメータ

Job

Mech-Visionのプロジェクト番号は、Mech-Visionのプロジェクトリストで確認できます。プロジェクト名の前の数字は、プロジェクト番号を表します。

Pos_Num_Need

ビジョン結果の期待数、つまりMech-Visionから期待されるビジョン結果の数です。 ビジョン結果には、ビジョンポイントとそれに対応する点群、ラベル、スケーリングなどが含まれます。

  • 0:Mech-Visionプロジェクトで認識できたすべてのビジョン結果を取得します。

  • 0より大きな整数:Mech-Visionプロジェクトで認識できた指定数のビジョン結果を取得します。

    • このパラメータの値がMech-Visionで認識されたビジョンポイントの合計数より大きい場合、認識結果にあるすべてのビジョンポイントを取得します。

    • このパラメータの値がMech-Visionで認識されたビジョンポイントの合計数より小さい場合、このパラメータで指定された数のビジョンポイントを取得します。

ヒント

102コマンドでビジョン結果を取得できます。デフォルトでは、102コマンドの1回実行で最大20点のビジョン結果を取得することができます。最初の実行後、返されるパラメータの1つは、リクエストされたすべてのビジョン結果が返されたかどうかを示します。そうでない場合は、102コマンドを繰り返してください。

SendPos_Type

ロボットの位置姿勢タイプです。このパラメータはロボット実機の位置姿勢がMech-Visionに送信される形式を指定します。設定可能な範囲は0~3です。

  • 0:ロボットの位置姿勢をビジョンシステムに送信する必要はありません。プロジェクトがEye To Handモードである場合、画像撮影はロボットの位置姿勢とは関係なく、Mech-Visionはロボットの位置姿勢を必要としません。

  • 1:ロボットの位置姿勢を「ロボットの現在の関節角度+フランジ位置姿勢」の形式でビジョンシステムに送信します。Eye In Handのプロジェクトでは、このパラメータを推奨します。Mech-Visionプロジェクトの「経路計画」ステップはロボットを使用して関節角度を送信します。フランジ位置姿勢がすべてゼロの場合、フランジデータは無視されます。

  • 2:ロボットの位置姿勢を現在のフランジ位置姿勢の形式でビジョンシステムに送信します。Eye In Handのプロジェクトで、ロボットが関節角度データがなく、フランジ位置姿勢のみがある場合(直行ロボットなど)に適しています。

  • 3:ロボットの位置姿勢をカスタマイズされた関節角度の形式(ユーザーにより設定された関節角度の変数を読み込む)でビジョンシステムに送信します。Eye To Handプロジェクトでは、このパラメータを推奨します。Mech-Visionプロジェクトの「経路計画」ステップはロボットが送信する関節角度を初期位置姿勢として使用します。

MM_J

ユーザーによりカスタマイズされた関節角度。SendPos_Typeパラメータ値を3に設定した場合、この関節角度は最初の経路点としてMech-Visionプロジェクトの「経路計画」ステップに送信します。SendPos_Typeパラメータの値が3以外の場合、ここでの関節角度は使用されませんが、必ず設定する必要があります。

サンプル

MM_Start_Vis 1, 1, 1,MM_J

このサンプルを実行するとMech-Visionプロジェクト1が実行されます。結果としてMech-Visionプロジェクト1から1つのビジョンポイントを返します。ロボットは現在の関節角度とフランジ位置姿勢をMech-Visionに送信します。

Mech-Visionの結果取得(MM_Get_VisData)

「Mech-Visionをトリガー」コマンドの後に使用されます。Mech-Visionの認識結果(ビジョンポイント)に対応するロボット位置姿勢とラベルを取得します。ロボットの位置姿勢はツール位置姿勢(TCP)の形式です。

Mech-Centerは、ビジョンポイントを対応するロボットTCPに自動的に変換します。変換過程は次の通りです。

  • ビジョンポイントに含まれる位置姿勢をY軸を中心に 180° 回転させます。

  • 対応するロボット型番の基準座標系定義にロボットベースの高さが含まれているかどうかを認識し、それに応じて垂直方向のオフセットを増やします。

ヒント

102コマンドは毎回最大20個までの認識結果を取得することができます。20個以上のビジョンポイントを取得したい場合、すべてのビジョンポイントを得るまで、102 コマンドを繰り返し実行してください。

プログラム

MM_Get_VisData Job,Last_Data,Pos_Num,MM_Status;

入力パラメータ

Job

Mech-Visionのプロジェクト番号は、Mech-Visionのプロジェクトリストで確認できます。プロジェクト名の前の数字は、プロジェクト番号を表します。

出力パラメータ

Last_Data

このパラメータは、取得したいすべてのTCPが得られたかどうかを表します。値は0か1となります。

  • 0:取得したいすべてのTCPが得られていない場合、このパラメータの値が1になるまで102 コマンドを繰り返し実行してください。

  • 1:取得したいすべてのTCPが得られました。

「Mech-Visionをトリガー」コマンドで設定されたTCP予期数が20(送受信データの長さの初期値)より大きい場合、このパラメータで送信すべきTCPが残っているかどうかを判断できます。データが送信されていない場合は、102コマンドを繰り返し呼び出して受信を継続することが可能です。

ヒント

すべてのTCPを取得していなくて、101コマンドを再実行すると、取得しなかったTCPのデータがなくなります。

変数型:num

Pos_Num

このコマンドを実行して、取得したTCPの数です。

  • リクエストしたTCP数はMech-Visionによって認識されたビジョンポイントの数よりも多い場合、Mech-Visionによって認識されたビジョンポイントの数に従って送信されます。

  • リクエストしたTCP数はMech-Visionによって認識されたビジョンポイントの数よりも少ない場合、リクエストした数に従って送信されます。

デフォルトの範囲は0~20です。

変数型:num

MM_Status

コマンドが正常に実行された場合、 1100 のステータスコードが返されます。エラーが発生した場合、エラーを表すエラーコードが返されます。

このコマンドを呼び出す時、Mech-Visionの結果が返されていない場合に、Mech-CenterはMech-Visionから結果を返すまで待機して、受信した結果をロボットへ送信します。デフォルト待ち時間は10sと設定され、タイムアウトになった場合、タイムアウトエラーを表すステータスコードが返されます。

変数型:num

サンプル

MM_Get_VisData 1,LastData,PoseNum,MMStatus;

このサンプルを実行すると、Mech-Visionプロジェクト1のビジョン結果が取得されます。LastDataは送信されていないTCPがあるかどうか、PoseNumは今回返されたTCPの数、MMStatusはステータスコードであることを示しています。

Mech-Vizをトリガー

このコマンドは、Mech-VisionとMech-Vizの両方を使用する場合に使われます。Mech-Vizプロジェクトを開始し、対応するMech-Visionプロジェクトを呼び出し、Mech-VizがMech-Visionのビジョン結果に基づいて経路を計画する時に使用されます。

Mech-Vizでは、 自動的に読み込む にチェックを入れる必要があります。

Mech-Centerのインストールディレクトリ(tool¥viz_project)フォルダには、サンプルプロジェクトがあり、それら基づいて修正することが可能です。

標準インターフェースに使用されるMech-Vizサンプルプロジェクトの詳細な説明については、 標準インターフェースに使用されるMech-Vizサンプルプロジェクト をご参照ください。

プログラム

MM_Start_Viz SendPos_Type,MM_J;

入力パラメータ

SendPos_Type

ロボットの位置姿勢タイプで、パラメータ範囲は0~2です。

0:Mech-Vizにロボットの位置姿勢を送信する必要はありません。Mech-Vizの仮想ロボットは関節角度[0,0,0,0,0,0]から一番目の経路点に移動します。

1:Mech-Vizにロボットの現在の関節角度とフランジ位置姿勢を送信します。Mech-Vizの仮想ロボットは現在の関節角度から一番目の経路点に移動します。

2:Mech-Vizに事前定義された関節角度を送信します。Mech-Vizの仮想ロボットは現在設定された関節角度から一番目の経路点に移動します。

ヒント

ロボットが関節角度 [0, 0, 0, 0, 0, 0] から最初の経路点に移動するときに、シーン内の衝突モデルがロボットに干渉する場合は、位置姿勢タイプを1に設定する必要があります。

MM_J

ユーザーによりカスタマイズされた関節角度。SendPos_Typeパラメータ値を2に設定した場合、この関節角度は最初の経路点としてMech-Visionプロジェクトの「経路計画」ステップに送信します。SendPos_Typeパラメータの値が2以外の場合、ここでの関節角度は使用されませんが、必ず設定する必要があります。

サンプル

MM_Start_Viz 1,MM_J;

対応するMech-Vizプロジェクトを実行し、現在のロボットの関節角度とフランジ位置姿勢をMech-Vizに送信します。

移動計画を取得(MM_Get_VizData)

このコマンドは、Mech-Vizが計画した経路を取得するために使用されます。「Mech-Vizをトリガー」コマンドの後に実行する必要があります。

このコマンドは毎回最大20個まで計画経路にある目標点を取得することができます。そのため、このコマンドを繰り返して実行する場合があります。

注釈

プロジェクト内の移動ステップの目標点をロボットに送信しない場合は、ステップパラメータで「移動目標点を送信」のチェックを外してください。

プログラム

MM_Get_VizData GetPos_Type,Last_Data,Pos_Num,VisPos_Num,MM_Status;

入力パラメータ

GetPos_Type

目標点のタイプで、Mech-Vizが返す目標点の形式を指定するために使用されます。

  • 1:目標点は、ロボットの関節角度(JPs)の形式で返されます。

  • 2:目標点は、ロボットのツール位置姿勢(TCP)の形式で返されます。

出力パラメータ

Last_Data

位置姿勢の送信が完了しているかどうか。

  • 0:経路にあるすべての目標点が送信されていないため、このパラメータの値が1になるまでに、このコマンドを繰り返して実行してください。

  • 1:経路にあるすべての目標点が送信されました。

Pos_Num

目標点の数です。このパラメータは、このコマンドの実行によって返された目標点([位置姿勢、ラベル、速度])の数を示すために使用されます。

経路に20個以上の目標点がある場合、このコマンドを繰り返して実行してください。

デフォルトの範囲は0~20です。

VisPos_Num

「ビジョン処理による移動」の位置、つまり「ビジョン処理による移動」ステップの目標点が経路全体における位置です。「ビジョン処理による移動」ステップは、視覚点(物体を把持する点)までの移動ステップです。

例えば、移動_1 -> 移動_2 -> ビジョン処理による移動 -> 移動_3のロジックにおいて、ステップ「ビジョン処理による移動」の位置は3です。

ステップ「ビジョン処理による移動」がなければ、このパラメータは0です。

MM_Status

ステータスコード。

コマンドが正常に実行された場合、 2100 のステータスコードが返されます。エラーが発生した場合、エラーを表すエラーコードが返されます。

ヒント

このコマンドを実行する時、Mech-Vizから結果が返されていない場合(まだ実行中)、Mech-CenterはMech-Viz からの結果を待って、それをロボットに送信します。デフォルトの場合、タイムアウト時間は10秒であり、待ち時間が超えるとタイムアウトエラーをロボットに返します。

サンプル

MM_Get_VizData 2,Last,Pos_Num,Vis_Index,StatusCode;

このサンプルを実行するとMech-Vizから行動計画をTCP位置姿勢で取得します。すべての行動計画が送信されたかどうかをLastに保存されます。受信した移動位置の数はPose_Numに保存されます。視覚移動の順番はVis_Indexに保存されます。ステータスコードはStatusCodeに保存されます。

位置姿勢を取得(MM_Get_Pose)

Mech-Visionからのビジョン結果またはMech-Vizからの移動経路にある位置姿勢データを、指定した位置姿勢変数に保存します。

プログラム

MM_Get_Pose Index,P90,Label,Pose_Speed;

入力パラメータ

Index:このパラメータは、ダンプする位置姿勢を指定するために使用されます。

出力パラメータ

P90

指定された位置姿勢を記録するための変数です。

Label

num型の変数で、位置姿勢に対応するラベルデータを保存・指定するために使用されます。

Pose_Speed

num型の変数で、位置姿勢に対応する移動速度を保存・指定するために使用されます。

サンプル

MM_Get_Pose 1,P90,Label,PoseSpeed1;

このサンプルを実行すると、最初に受信した位置姿勢をP90に、ラベルをLabelに、移動速度をPoseSpeed1に保存されます。

関節角度を取得(MM_Get_Jps)

Mech-Visionからのビジョン結果またはMech-Vizからの移動経路にある関節角度データを、指定した位置姿勢変数に保存するために使用されます。

プログラム

MM_Get_Jps Index,Jointtarget,Label,Pose_Speed;

入力パラメータ

Index:このパラメータは、ダンプする位置姿勢を指定するために使用されます。

出力パラメータ

Jointtarget

指定された関節角度を記録するための変数です。

Label

num型の変数で、位置姿勢に対応するラベルデータを保存・指定するために使用されます。

Pose_Speed

num型の変数で、位置姿勢に対応する移動速度を保存・指定するために使用されます。

サンプル

MM_Get_Jps 1,jpose1,Label1,PoseSpeed1;

このサンプルを実行すると、最初に受信した位置姿勢をjpose1に、対応するラベルをLabel1に、対応する移動速度をPoseSpeed1に保存します。

Mech-Visionパラメータレシピの切り替え(MM_Switch_Model)

Mech-Visionプロジェクトにパラメータレシピを切り替えます。

パラメータレシピを切り替えることで、Mech-Visionプロジェクトの各ステップのパラメータを変更することができます。

パラメータレシピには画像マッチングテンプレート、ROI、信頼度のしきい値などのパラメータの設定が含まれています。

注意

このコマンドは、「Mech-Visionをトリガー」コマンドの前に実行する必要があります。

プログラム

MM_Switch_Model Job,Model_Number;

入力パラメータ

Job

Mech-Visionのプロジェクト番号は、Mech-Visionのプロジェクトリストで確認できます。プロジェクト名の前の数字は、プロジェクト番号を表します。

Model_Number

レシピ番号。

Mech-Visionプロジェクトのレシピテンプレートの番号(正の整数)です。 プロジェクトアシスタント ‣ パラメータレシピ をクリックして、パラメータレシピエディタに入ります。番号の有効範囲は1~99です。

サンプル

MM_Switch_Model 1,1;

このサンプルを実行すると、Mech-VisionプロジェクトNo.1で使用されているレシピをレシピ1に切り替えます。

Mech-Vizの分岐を選択(MM_Set_Branch)

このコマンドは、Mech-Vizプロジェクトの分岐を指定する場合に使われます。分岐メカニズムは メッセージによって異なる分岐を実行 によって作成されたら、このコマンドがステップの出口を指定することで実現します。

このコマンドは、「Mech-Vizをトリガー」コマンドの後に実行する必要があります。

Mech-Vizプロジェクトが メッセージによって異なる分岐を実行 に実行すると、このコマンドによって出口を指定するのを待ちます。

プログラム

MM_Set_Branch Branch_Num,Exit_Num;

入力パラメータ

Branch_Num

分岐ステップID。

このパラメータは、分岐選択が行われる メッセージによって異なる分岐を実行 を指定するために使用されます。

このパラメータ、つまり、 メッセージによって異なる分岐を実行 のステップIDは正の整数である必要があります。ステップIDは、ステップパラメータで読み取りを行います。

Exit_Num

分岐の出口番号

このパラメータは、プロジェクトが メッセージによって異なる分岐を実行 ステップに沿って実行される出口を指定します。Mech-Vizプロジェクトはこの出口に従って実行し続けます。パラメータの値は正の整数です。

ヒント

  • 分岐の出口番号はMech-Vizで表される出口番号 + 1になります。例えば、番号が0の場合、出口番号は1です。

  • 出口番号は、1 から始まる出口のインデックス番号です。たとえば、指定された出口が左から右に2番目の出口である場合、番号は2です。

サンプル

MM_Set_Branch 1,3;

このサンプルを実行すると、Mech-Vizプロジェクト実行時に、分岐名1のステップに実行した場合、出口3を通過するようになります。

移動インデックスを設定(MM_Set_Index)

このコマンドはステップのインデックスパラメータを設定する時に使われます。一般的には、連続な移動か指定された移動ステップやパレタイジングなどに使用されます。

インデックスパラメータが付いたステップは「リストによる移動」、「グリッドによる移動」、「カスタマイズのパレットパターン」、「事前計画したパレットパターン」などです。

このコマンドは、「Mech-Vizをトリガー」コマンドの後に実行する必要があります。

プログラム

MM_Set_Index Skill_Num,Index_Num;

入力パラメータ

Skill_Num

ステップID。

このパラメータはどのステップがインデックスを設定する必要かを指定します。

このパラメータ、つまり、インデックス付きのステップのステップIDは正の整数である必要があります。ステップIDは、ステップパラメータで読み取りを行います。

Index_Num

次にこのステップが実行されたときに設定されるべきインデックス値です。

このコマンドを送信すると、Mech-Vizの現在のインデックス値がこのパラメータの値から1を引いた値に変更されます。

このコマンドで指定したステップにMech-Vizプロジェクトが実行されると、Mech-Vizの現在のインデックス値が、このパラメータの値まで1つずつ増加します。

  • サンプル:

    MM_Set_Index 2,10;

    このサンプルを実行すると、Mech-VizプロジェクトのステップIDの現在のインデックス値を9に設定し、そのステップにプロジェクトを実行すると1加算されて10となります。

ソフトウェアのステータスを取得(MM_Get_Status)

このコマンドは、Mech-Vision、Mech-Viz、Mech-Centerの起動状態を取得するために使用されます。

現在、このコマンドはMech-Visionのみ対応できます。

プログラム

MM_Get_Status MM_Status;

出力パラメータ

MM_Status

変数で、コマンドのステータスコードを保存するために使用されます。

システムのセルフチェックステータスです。ステータスコードが 1101 になると「Mech-Visionが準備できました」です。他のステータスコードが出てきた場合「Mech-Visionプロジェクトがまだ準備できていません」ということです。現在、このコマンドはMech-Visionプロジェクトの準備ができているかどうかを確認するためにのみ使用できます。

サンプル

MM_Get_Status StatusCode;

このサンプルを実行すると、ステータスコードを取得し、StatusCodeに格納します。

Mech-Visionプロジェクトへ対象物の寸法を送信

このパラメータはMech-Visionプロジェクトに、対象物の寸法を動的に送信すること場合に使われます。Mech-Visionプロジェクトを実行する前に対象物の寸法を確認する必要があります。

Mech-Visionプロジェクトに、 対象物の寸法を読み込む ステップを入れておきます。このステップのパラメータ パラメータから対象物の寸法を読み取る にチェックを入れる必要があります。

プログラム

MM_Set_BoxSize Job,Lenght,Width,Height;

入力パラメータ

Job

Mech-Visionのプロジェクト番号は、Mech-Visionのプロジェクトリストで確認できます。プロジェクト名の前の数字は、プロジェクト番号を表します。

Length, Width, Height

Mech-Visionプロジェクトへ送信される対象物寸法(縦、横、高さの順)。寸法値は 対象物の寸法を読み込む ステップで読み込まれます。

単位はミリメートル(mm)です。

サンプル

MM_Set_BoxSize 1,500,300,200

このサンプルを実行すると、Mech-Visionプロジェクトの 対象物の寸法を読み込む ステップで読み込んだ寸法を500*300*200mmに設定されます。

DO信号リストの取得(MM_Get_DoList)

複数の治具または吸盤パーティションを制御する場合、このコマンドを用いてDOリストを取得します。

このコマンドを実行する前に、MM_Get_VizDataを呼び出してMech-Vizが計画した経路を取得する必要があります。

サンプルプロジェクトに基づいてMech-Vizプロジェクトを設定し、プロジェクトに対応する吸盤のコンフィグファイルを設定します。サンプルプロジェクトのパスはMech-Centerのインストールディレクトリ(tool¥viz_project) の suction_zone です。

プログラム

MM_Get_DoList Status;

出力パラメータ

Status

ステータスコードを保存するための変数です。詳細については、 標準インターフェースのステータスコード一覧とトラブルシューティング をご参照ください。

サンプル

MM_Get_DoList Status;

このサンプルを実行すると、DO信号の取得が成功するかどうかを示すステータスコードがStatusに格納されます。

DO信号リストの設定(MM_Set_DoList)

Mech-Vizから送信されたDoリストをGO信号に設定します。最大4グループで、各グループは16bitのGO信号を格納します。複数のグループのGO信号を設定する場合は、このコマンドを繰り返してください。

注意

このコマンドはMM_Get_DoListの後で呼び出す必要があります。

プログラム

MM_Set_DoList Serial,GO16;

入力パラメータ

Serial

信号グループインデックス番号、範囲は1~4。

出力パラメータ

GO16

グループ信号名で、設定が必要なDO信号値を格納するために使用されます。

サンプル

MM_Set_DoList 1,GO16;
MM_Set_DoList 2,GO32;

MM_Set_DoList 1,GO16;を実行すると、Mech-Vizで計算されたDoListにある0-15の値が対応するGo16信号と設定されます。MM_Set_DoList 2,GO32;を実行すると、Mech-Vizで計算されたDoListにある16-32の値が対応するGo32信号と設定されます。

Mech-VizへTCPを送信

このコマンドは、Mech-VizプロジェクトにロボットTCPを動的に送信するためによく使われます。ロボットTCPを読み取るためのステップは 外部移動 です。

サンプルプロジェクトに基づいてMech-Vizプロジェクトを設定します。サンプルプロジェクトのパスはMech-Centerのインストールディレクトリ tool¥viz_project¥outer_move です。

外部移動 ステップをワークフローの適切な場所に配置します。

このコマンドは、「Mech-Vizをトリガー」コマンドの前に実行する必要があります。

プログラム

MM_Set_Pos Pos;

入力パラメータ

Pos

ロボットTCP。

外部移動 ステップの目標点のロボットTCPデータを設定するために使用されます。

サンプル

MM_Set_Pos P10;

このサンプルを実行すると、P10に格納されている位置姿勢データをMech-Vizの 外部移動 に送信します。

キャリブレーション

このコマンドは、ハンド・アイ・キャリブレーションを行う場合に使われます(カメラ外部パラメータのキャリブレーション)。

このコマンドの実行で、Mech-Visionとキャリブレーションの状態を同期し、 Mech-Visionからキャリブレーションポイントを取得します。

キャリブレーションを完成するために、このコマンドを繰り返して実行する必要があります。

プログラム

MM_Calib Move_Type,Pos_Jps,Wait_time,\num Ext;

入力パラメータ

Move_Type

移動方式

1:直線運動。 2:関節運動。

Pos_Jps

パラメータ

説明

入力パラメータ

Move_Type

移動方式を設定します。1はMoveLであり、2はMoveJです。

Pos_Jps

TCPデータまたは関節角度データを使用します。1ならTCPデータ、2なら関節角度データを使用します。

Wait_Time

ロボットがキャリブレーションポイントに到達した後の待機時間(秒)で、デフォルトでは2秒です。

Ext

外部軸のデータ(必要な場合)です。

  • サンプル1:

    MM_Calib 2,1,2;

  • サンプル1の詳細な説明:

    このサンプルを実行すると、ロボットはTCPデータを使用し、MoveJ方式で移動します。2秒以内次の位置へ到達しないと、停止します。

  • サンプル2:

    MM_Calib 2,1,2\EXT:=Axis7;

  • サンプル2の詳細な説明:

    このサンプルを実行すると、ロボットはTCPデータを利用して、MoveJ方式で移動します。2秒以内次の位置へ到達しないと、停止します。また、7軸のデータはAxis7の値と指定されます。

Mech-Visionのカスタマイズされたデータを取得

このコマンドは、Mech-Visionの 出力 ステップからカスタマイズされたデータを受け取るために使用されます。つまり、posesとlabels以外のポートデータを受け取ります(ステップパラメータ「ポートタイプ」を「カスタム」に設定する場合)。

このコマンドを一度呼び出すと、取得したすべてのデータがロボットのメモリに保存されます。

プログラム

MM_GET_DY_DATA job,Pos_Num,MM_Status;

入力パラメータ

job

num型の変数。Mech-Visionプロジェクト番号は、Mech-Visionプロジェクトリストで確認できます。プロジェクト前の数字はプロジェクト番号を表します。

出力パラメータ

Pos_Num

num型の変数で、返されたビジョンポイントの数を保存するために使用されます。

MM_Status

num型の変数で、このコマンドが実行した後に返されたステータスコードを保存するために使用されます。

サンプル

MM_GET_DY_DATA 2,Pos_Num,StatusCode;

Mech-Visionプロジェクト2が実行後、このサンプルを実行すると、すべてのビジョンポイントでの対象物の位置姿勢とラベルデータがグローバル配列MMvis2_Poseに、カスタマイズされたデータがグローバル配列UserDataに、ビジョンポイントの数がPos_Numに保存されます。このコマンドが実行後に返されたステータスコードがStatusCode変数に保存されます。

MM_GET_DY_DATAで取得したカスタマイスされたデータを各変数に割り当てる

このコマンドは最初のカスタマイズされたデータを指定したデータに従って異なる変数に保存するために使用されます。 Mech-Visionのカスタマイズされたデータを取得 コマンドを実行した後に使用する必要があります。

プログラム

MM_Get_DyPose Serial,MM_P,MM_Label;

入力パラメータ

Serial

num型の変数、インデックス値を指定するために使用されます。つまり、どのビジョンポイントでのカスタマイズされたデータを取得するために使用されます(データの順番はMech-Visonの送信順です)。

返されたパラメータ

MM_P

robtarget型の変数で、指定したビジョンポイントの位置姿勢データを保存するために使用されます。

MM_Label

num型の変数で、指定したビジョンポイントのラベルを保存するために使用されます(Mech-Visionでラベルポートが設定されていない場合、0で埋めます)。

MM_UserData

num型の変数。グローバル配列変数で、指定したビジョンポイントでのカスタマイズされたデータを保存するために使用されます。ユーザーはこのパラメータを送信する必要はなく、配列を読み込むだけでいいです。

サンプル

MM_Get_DyPose 2,MM_P_VISION,MM_Label;

MM_Get_DyPoseが実行後、このサンプルを実行すると、2番目のビジョンポイントの位置姿勢データがMM_P_VISION変数に、ラベルデータがMM_Label変数に、カスタマイズされたデータがMM_UserData配列に保存されます。

Mech-Vizから経路点を取得

このコマンドは、Mech-Vizから計画した経路を取得するために使用されます。経路点は、一般的な移動経路点またはビジョン移動経路点であることができます。経路点には、位置姿勢、速度、ツール情報、ワーク情報などが含まれる場合があります。このコマンドを一度呼び出すと、取得したすべてのデータがロボットのメモリに保存されます。

このコマンドを実行して得られる経路点は、次の3つのいずれかになります。

  1. ビジョン処理による移動 以外の移動経路点に加えて、その情報には、運動タイプ(関節運動または直線運動)、ツールID、および速度が含まれます。

  2. ビジョン処理による移動 の経路点です。その情報には、ラベル、把持されたワークの合計数、今回把持されたワークの数、吸盤のエッジコーナー番号、TCPオフセット、ワークの向き、およびワークグループのサイズが含まれます。

  3. カスタマイズされたデータを含む、ビジョン処理による移動 の経路点です。この場合、Mech-Visionプロジェクトのステップ 出力 のポートタイプを「カスタム」に設定する必要があります。

プログラム

MM_GET_PLANDATA Jps_Pos,Pos_Num,VisPos_Num,MM_Status;

入力パラメータ

Jps_Pos

num型の変数で、返されたデータの予期形式です。値の範囲は1-4です。

以下は、4つの返されたデータの予期形式についての説明です。

返されたデータの予期形式 パラメータ

返されたデータの予期形式 説明

1

位置姿勢(JPs形式),運動タイプ, ツールID, 速度,カスタマイズされたデータの数, カスタマイズされたデータ1, ..., カスタマイズされたデータN

2

位置姿勢(TCP形式),運動タイプ, ツールID, 速度,カスタマイズされたデータの数, カスタマイズされたデータ1, ..., カスタマイズされたデータN

3

位置姿勢(JPs形式), 運動タイプ, ツールID, 速度, ビジョン計画結果, カスタマイズされたデータの数, カスタマイズされたデータ1, ..., カスタマイズされたデータN

4

位置姿勢(TCP形式), 運動タイプ, ツールID, 速度, ビジョン計画結果, カスタマイズされたデータの数, カスタマイズされたデータ1, ..., カスタマイズされたデータN

位置姿勢

経路点の位置姿勢は、ロボット関節角度(JPs、単位は度)、ツール位置姿勢(TCP、3次元座標はミリメートル、オイラー角は度)のいずれかであり、その形式は送信するコマンドパラメータに依存します。

運動タイプ

  • 1:関節運動(MOVEJ)

  • 2:直線運動(MOVEL)

ツールID

経路点で使用するツール番号です。 -1は、ツールが使用されていないことを意味します。

速度

経路点での速度のパーセンテージ値(単位は%)、つまり、Mech-Vizプロジェクトでこの経路点に対応する移動ステップのパラメータに設定した速度に、Mech-Vizで設定したグローバル速度を掛けたものです。

視覚計画結果

経路内の計画結果の情報です(経路点が移動ステップ ビジョン処理による移動 に対応する場合)。通常、段ボール箱の複数把持とデパレタイジングなどのシーンに使用されます。情報は次のとおりです。

  • ラベル:10個の正の整数で構成され、デフォルトは10個の0です。

  • 把持されたワークの合計数。

  • 今回把持されたワークの数。

  • 吸盤エッジコーナー番号:ワークが吸盤のどのエッジに近いかを指定するために使用されます。吸盤のエッジコーナー番号は、Mech-Vizのプロジェクトリソースで対応するエンドツール名をダブルクリックし、 制御ロジック設定 をクリックすると表示されるようになります。

  • ツール位置姿勢(TCP)のオフセット(ワークの中心に対応するTCPから実際のTCPまでのオフセットです)。

  • ワークの向き(TCPのX軸に対するワーク座標系のX軸の方向です)。

  • ワークグループのサイズ。

カスタマイズされたデータ項目の数

これは、Mech-Visionプロジェクトの 出力 ステップでポートタイプが「カスタム」に設定された場合に出力された位置姿勢とラベル以外のデータです。

カスタマイズされたデータ項目

これは、Mech-Visionプロジェクトの 出力 ステップでポートタイプが「カスタム」に設定された場合に出力された位置姿勢とラベル以外のデータです。

カスタマイズされたデータは、ポート名のA–Zの順に並べられています。

返されたパラメータ

Pos_Num

num型の変数で、ロボットのグローバル配列に格納されているデータセット数を記録するために使用されます。

VisPos_Num

num型の変数で、最初の「ビジョン処理による移動」が計画した経路における位置の番号を保存するために使用されます。例えば、定点移動_1 -> 定点移動_2 -> ビジョン処理による移動 -> 定点移動_3の経路において、「ビジョン処理による移動」の位置は3です。「ビジョン処理による移動」がない場合、このパラメータ値は0になります。

MM_Status

num型の変数で、このコマンドが実行した後に返されたステータスコードを保存するために使用されます。

サンプル

MM_GET_PLANDATA 4,PosNum,Vis_Index,StatusCode;

このコマンドは、Mech-Vizプロジェクトが実行後に出力されたデータをロボットのグローバル配列に格納するために使用されます。PosNum変数はデータセット数、Vis_Index変数は「ビジョン処理による移動」の位置番号、StatusCode変数はこのコマンドが実行後のステータスコードです。

MM_GET_PLANDATAで取得したデータを各変数に割り当てる

このコマンドは Mech-Vizから経路点を取得 の後に使用されます。Jps_Posパラメータの値に応じて異なるプログラムを選択し、指定したインデックスに対応する最初のデータを異なる変数に格納するために使用されます。

プログラム

  1. MM_Get_PlanPose Serial,Jps_Pos,MM_P,MM_MoveType,MM_ToolNum,MM_Speed; (Jps_Pos=2または4の場合)

  2. MM_Get_PlanJps Serial,Jps_Pos,MM_J,MM_MoveType,MM_ToolNum,MM_Speed; (Jps_Pos=1または3の場合)

入力パラメータ

Serial

num型の変数で、グローバル配列で取得する経路点を指定するために使用されます(データの順番はMech-Vizの出力における経路点の順番に従います)。

Jps_Pos

num型の変数で、MM_GET_PLANDATAのJps_Posの値と一致する必要があります。

返されたパラメータ

MM_P

robtarget型の変数で、指定した経路点が対応するTCPデータ(プログラム1に使用)を保存するために使用されます。

MM_J

Jointtarget型の変数で、指定した経路点が対応する関節角度データ(プログラム2に使用)を保存するために使用されます。

MM_MoveType

num型の変数で、指定した経路点が対応する運動タイプを保存するために使用されます。

MM_ToolNum

num型の変数で、指定した経路点が対応するツールIDを保存するために使用されます。

MM_Speed

num型の変数で、指定した経路点が対応する速度を保存するために使用されます。

MM_UserData

グローバル配列変数で、指定した経路点が対応するカスタマイズされたデータを保存するために使用されます。ユーザーはこのパラメータを送信する必要はなく、配列を読み込むだけでいいです。

MM_Plan_Results

グローバル配列変数で、指定した経路点が対応するビジョン計画結果を保存するために使用されます。ユーザーはこのパラメータを送信する必要はなく、配列を読み込むだけでいいです。

サンプル

  • サンプル1:

    MM_Get_PlanPose 2,4,P10,MoveType,ToolNum,Speed;

  • 詳細な説明:

    MM_GET_PLANDATAが実行後、このサンプルを実行すると、Mech-Vizが計画した2番目の経路点のTCPデータをP10変数に、運動タイプ、ツールID、速度をそれぞれMoveType、ToolNum、Speed変数に保存します。この経路点がビジョン処理による移動の経路点でない場合、もっと情報は提供されません。ビジョン処理による移動の経路点である場合、ビジョン計画結果がMM_Plan_Resultsグローバル配列に保存され、カスタマイズされたデータがMM_UserDataグローバル配列に保存されます。

  • サンプル2:

    MM_Get_PlanJps 1,3,jpose1,MoveType,ToolNum,Speed;

  • 詳細な説明:

    MM_GET_PLANDATAが実行後、このサンプルを実行すると、Mech-Vizが計画した最初の経路点の関節角度データをjpose1変数に、運動タイプ、ツールID、速度をそれぞれMoveType、ToolNum、Speed変数に保存します。この経路点がビジョン処理による移動の経路点でない場合、もっと情報は提供されません。ビジョン処理による移動の経路点である場合、ビジョン計画結果がMM_Plan_Resultsグローバル配列に保存され、カスタマイズされたデータがMM_UserDataグローバル配列に保存されます。

Mech-Visionの「経路計画」ステップの結果を取得

Mech-Visionプロジェクトを実行した後、このコマンドはMech-Visionプロジェクトの「経路計画」ステップから出力された衝突のない把持経路を取得するために使用されます。

このコマンドを使用する時、Mech-Visionの「出力」ステップの ポートタイプ を「事前定義済み(ロボット経路)」に設定する必要があります。

プログラム

MM_Get_VisPath Job,Jps_Pos,Last_Data,Pos_Num,VisPos_Num,MM_Status;

入力パラメータ

Job

num型の変数。Mech-Visionプロジェクト番号は、Mech-Visionプロジェクトリストで確認できます。プロジェクト前の数字はプロジェクト番号を表します。

Jps_Pos

num型の変数で、「経路計画」ステップから返された経路点の位置姿勢タイプを指定するために使用されます。

  • 1:経路点の位置姿勢は、ロボットの関節角度(JPs)の形式で返されます。

  • 2:経路点の位置姿勢は、ロボットのツール位置姿勢(TCP)の形式で返されます。

出力パラメータ

Last_Data

num型の変数で、経路点の送信が完了するかどうかを表します。

  • 0:経路にあるすべての経路点が送信されいないため、このパラメータの値が1になるまでに、このコマンドを繰り返して実行してください。

  • 1:経路にあるすべての経路点が送信されました。

Pos_Num

num型の変数で、このコマンドを実行した後に返された経路点の数を保存するために使用されます。

VisPos_Num

num型の変数で、経路計画設定ツールで設定された「ビジョン処理による移動」が経路全体における位置を保存するために使用されます。例えば、移動_1 -> 移動_2 -> ビジョン処理による移動 -> 移動_3の経路において、「ビジョン処理による移動」の位置は3です。「ビジョン処理による移動」がない場合、このパラメータ値は0になります。

MM_Status

num型の変数で、このコマンドが実行した後に返されたステータスコードを保存するために使用されます。

サンプル

MM_Get_VisPath 2,2,LastData,PosNum,Vis_Index,StatusCode;

このサンプルを実行するとMech-Visionのプロジェクト2から返されたロボット動作経路が取得されます。経路点の位置姿勢形式がTCPです。経路点の数はPosNum変数に保存されます。ビジョン処理による移動の経路点が経路における番号はVis_Indexに保存されます。コマンド実行後のステータスコードはStatusCodeに保存されます。