標準インターフェイスコマンド¶
ABBで標準インターフェイスを用いてロボットプログラミングを行う際は、以下の点にご注意ください。
複数の パラメータ はコロンで区切る必要があります。
全てのパラメータは ローカル変数 と定義します。
パラメータは 入力パラメータ あるいは 出力パラメータ と定義することが可能です。
入力引数は定数、グローバル変数、ローカル変数を指定することができます。出力引数はグローバル変数、ローカル変数を指定することができます。
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をトリガー(MM_Start_Vis)¶
Mech-Visionを使用し、Mech-Vizを使用しないで実行する場合に使用します。対応するMech-Visionプロジェクトを実行して、データの取得および処理を行います。
プログラム:
MM_Start_Vis Job,Pos_Num_Need,SendPos_Type;
パラメータの説明:
パラメータ
説明
入力パラメータ
Job
Mech-VisionプロジェクトID(1~99)です。Mech-Centerで
でプロジェクトのIDを確認、調整を行ってください。Pos_Num_Need
Mech-Visionが送信する結果の数(0~20)です。0はすべて送信することを意味します。
SendPos_Type
送信されるロボットの画像撮像姿勢(0~2)を設定します。
0:画像撮像姿勢を送信しないことを意味します。
1:画像撮影姿勢を関節角度で送信します。
2:画像撮影姿勢をフランジ位置姿勢で送信します。
サンプル:
MM_Start_Vis 1,1,1
詳細な説明:
このサンプルを実行するとMech-VisionのNo. 1プロジェクトを実行します。結果としてMech-VisionのNo. 1プロジェクトから1つの視覚結果を送信します。同時にロボットから画像撮影姿勢を関節角度で1つの位置姿勢をMech-Centerへ送信します。
Mech-Visionの結果取得(MM_Get_VisData)¶
Mech-Vizを使用せずMech-Visionを使用する場合に使用します。対応するMech-Visionプロジェクトから画像処理結果を取得します。
プログラム:
MM_Get_VisData Job,Last_Data,Pos_Num,MM_Status;
パラメータの説明:
パラメータ
説明
入力パラメータ
Job
Mech-VisionプロジェクトID(1~99)です。Mech-Centerで
でプロジェクトのIDを確認、調整を行ってください。出力パラメータ
Last_Data
すべての結果が送信されたかどうかを記録するための変数です。返された値は0である場合、結果をすべて送信し終わっていないことを意味します。返された値は1である場合、すべての結果を送信されたことを意味します。
Pos_Num
取得した出力結果の数を記録するための変数です。
MM_Status
Mech-Visionのステータスコードを記録するための変数です。詳細については、 標準インターフェイスのステータスコード一覧とトラブルシューティング をご参照ください。
サンプル:
MM_Get_VisData 1,LastData,PoseNum,MMStatus;
詳細な説明:
このサンプルを実行するとMech-VisionのNo.1プロジェクトから視覚結果を取得します。すべての結果が送信されたかどうかはLastDataに保存されます。受信した視覚結果の数はPoseNumに保存されます。ステータスコードはMMStatusに保存されます。
Mech-Vizをトリガー(MM_Start_Viz)¶
Mech-VisionとMech-Vizの両方を使用する場合に使用します。Mech-Vizプロジェクトを実行し、それに対応するMech-Visionプロジェクトも実行されます。
プログラム:
MM_Start_Viz SendPos_Type;
パラメータの説明:
入力パラメータ:
パラメータ
説明
入力パラメータ
SendPos_Type
Mech-Vizのシミュレーション上でのロボット初期位置 [0-1]を設定します。
0:ロボットの初期関節角度を[0,0,0,0,0,0]に設定します。
1:ロボットの初期関節位置を実際のロボットの関節角度に設定します。*
ロボットの初期関節角度を[0,0,0,0,0,0]に設定し、最初の位置姿勢に移動するまでの間で移動を妨げる物体がある場合、このパラメータを1に設定する必要があります。
* 現時点で、Mech-Vizに送信されるロボットの位置姿勢はJPs(関節角度)とフランジ位置姿勢です。
サンプル:
MM_Start_Viz 1;
詳細な説明:
対応するMech-Vizプロジェクトを実行し、シミュレーション上のロボット初期関節角度を実際のロボットと同期します。
移動計画を取得(MM_Get_VizData)¶
Mech-Vizから移動計画を取得するために使用されます。
プログラム:
MM_Get_VizData GetPos_Type,Last_Data,Pos_Num,VisPos_Num,MM_Status;
パラメータの説明:
パラメータ
説明
入力パラメータ
GetPos_Type
Mech-Vizから送信される移動位置の方式を設定します。
1:関節角度を送信します。
2:TCP位置姿勢を送信します。
出力パラメータ
Last_Data
すべての移動位置が送信されたかどうかを記録するための変数です。返された値は0である場合、結果をすべて送信し終わっていないことを意味します。返された値は1である場合、すべての結果を送信されたことを意味します。
Pos_Num
取得した位置姿勢の数を記録するための変数です。
VisPos_Num
最初の視覚移動の順番を記録するための変数です。例えば、move-1、move-2、visual_move-3、move-3、visual_move-2の場合、最初の視覚移動の順番は3です。行動計画に視覚移動が含まれていない場合、0に設定します。
MM_Status
Mech-Visionのステータスコードを記録するための変数です。詳細については、 標準インターフェイスのステータスコード一覧とトラブルシューティング をご参照ください。
サンプル:
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から送信されたTCP位置姿勢データを指定した位置姿勢変数に保存します。
プログラム:
MM_Get_Pose Index,P90,Label,Pose_Speed;
パラメータの説明:
パラメータ
説明
入力パラメータ
Index
保存する位置姿勢のインデックスを指定します。
出力パラメータ
P90
指定された位置姿勢を記録するための変数です。
Label
指定された位置姿勢に対応するラベルを記録するための変数です。
Pose_Speed
指定された位置姿勢に移動する速度を記録するための変数です。
サンプル:
MM_Get_Pose 1,P90,Label,PoseSpeed1;
詳細な説明:
このサンプルを実行すると、最初に受信した位置姿勢をP90に、対応するラベルをLabelに、対応する移動速度をPoseSpeed1に保存します。
関節角度を取得(MM_Get_Jps)¶
Mech-Vizによって送信された関節角度を指定した変数に保存します。
プログラム:
MM_Get_Jps Index,Jointtarget,Label,Pose_Speed;
パラメータの説明:
パラメータ
説明
入力パラメータ
Index
保存する位置姿勢のインデックスを指定します。
出力パラメータ
Jointtarget
指定された関節角度を記録するための変数です。
Label
指定された位置姿勢に対応するラベルを記録するための変数です。
Pose_Speed
指定された位置姿勢に移動する速度を記録するための変数です。
サンプル:
MM_Get_Jps 1,jpose1,Label1,PoseSpeed1;
詳細な説明:
このサンプルを実行すると、最初に受信した関節角度をjpose1に、対応するラベルをLabel1に、対応する移動速度をPoseSpeed1に保存します。
Mech-Visionパラメータレシピの切り替え(MM_Switch_Model)¶
使用するMech-Visionプロジェクトの保存されたパラメータレシピを指定します。パラメータレシピの詳細については、パラメータレシピの設定をご参照ください。このコマンドは、MM_Start_Visの前に呼び出す必要があります。
プログラム:
MM_Switch_Model Job,Model_Number;
パラメータ説明:
パラメータ
説明
入力パラメータ
Job
Mech-VisionプロジェクトID(1~99)です。Mech-Centerで
でプロジェクトのIDを確認、調整を行ってください。Model_Number
Mech-Visionプロジェクトのパラメータレシピ番号(1~99)です。
サンプル:
MM_Switch_Model 1,1;
詳細な説明:
このサンプルを実行すると、Mech-VisionプロジェクトNo.1で使用されているパラメータをパラメータレシピNo.1に切り替えます。
Mech-Vizのブランチを選択(MM_Set_Branch)¶
Mech-Vizプロジェクトをどのブランチに沿って実行するかを選択する場合に使用されます。このようなブランチは、「メッセージによって異なるブランチを実行」タスクをプロジェクトに追加することで実現可能です。このコマンドの前にMM_Start_Vizを呼び出す必要があります。Mech-Vizで実行される次のタスクが「メッセージによって異なるブランチを実行」タスクである場合、Mech-Vizは、このコマンドが実行されるまで待機します。
プログラム:
MM_Set_Branch Branch_Num,Exit_Num;
パラメータの説明:
パラメータ
説明
入力パラメータ
Branch_Num
ブランチの名前です。Mech-Vizプロジェクトのすべての「メッセージによって異なるブランチを実行」タスクの名前は、1から99までの数字に変更する必要があり、名前はプロジェクト内で異なったものに設定する必要があります。
Exit_Num
ブランチの出口番号[1-99]です。
サンプル:
MM_Set_Branch 1,3;
詳細な説明:
このサンプルを実行すると、Mech-Viz内の1という名前の「メッセージによって異なるブランチを実行」の出口3を通過するようになります。
移動インデックスを設定(MM_Set_Index)¶
Mech-Viz内タスクのパラメータ、現在のインデックスの値を設定することができます。このパラメータを設定できるタスクは、「リストによる移動」、「グリッドによる移動」、「カスタムパレットパターン」、「スマートパレットパターン」などがあります。このコマンドはMM_Start_Vizの前に呼び出す必要があります。
プログラム:
MM_Set_Index Skill_Num,Index_Num;
パラメータの説明:
パラメータ
説明
入力パラメータ
Skill_Num
インデックス機能を持つタスクの名前です。タスク名は正の整数[1-99]である必要があり、名前はプロジェクト内で異なったものに設定する必要があります。
Index_Num
タスク実行時の現在のインデックス値です。
サンプル:
MM_Set_Index (2,10);
詳細な説明:
このサンプルを実行すると、2という名前のタスクのインデックス値を9に設定します。タスクが実行されると、現在のインデックス値が1加算され、10になります。
ソフトウェアのステータスを取得(MM_Get_Status)¶
現在、Mech-Visionのプロジェクトステータスを確認できます。将来的には、このコマンドを使用して、Mech-Vision、Mech-Viz、およびMech-Centerの実行ステータスを取得できるようになります。
プログラム:
MM_Get_Status MM_Status;
パラメータの説明:
パラメータ
説明
出力パラメータ
MM_Status
Mech-Visionのステータスコードを記録するための変数です。詳細については、 標準インターフェイスのステータスコード一覧とトラブルシューティング をご参照ください。
サンプル:
MM_Get_Status StatusCode;
詳細な説明:
このサンプルを実行すると、ステータスコードを取得し、StatusCodeに格納します。
Mech-Visionへ物体寸法を入力(MM_Set_BoxSize)¶
物体の寸法をMech-Visionに入力するコマンドです。このコマンドはMM_START_VISの前に呼び出す必要があります。
プログラム:
MM_Set_BoxSize Job,Lenght,Width,Height;
パラメータ説明:
パラメータ
説明
入力パラメータ
Job
Mech-VisionプロジェクトID(1~99)です。Mech-Centerで
でプロジェクトのIDを確認、調整を行ってください。Lenght
物体の長さ(メートル単位)です。
Width
物体の幅(メートル単位)です。
Height
物体の高さ(メートル単位)です。
サンプル:
MM_Set_BoxSize(1,500,300,200)
詳細な説明:
このサンプルを実行すると、Mech-VisionプロジェクトNo.1のステップ「対象物の寸法を読み取る」の物体寸法を500×300×200mmに設定されます。
DO信号リストの取得(MM_Get_DoList)¶
このコマンドで区分化された吸着ハンドを制御するためにDO信号のリストを取得します。このコマンドはMM_Get_VizDataの前に呼び出す必要があります。 XXXX/Mech-Center-xxx/tool/viz_project/suction_zone
のサンプルプロジェクトを参考にしてMech-Vizプロジェクトを作成し、Mech-Vizプロジェクトに吸盤のコンフィグファイルを設定する必要があります。また、Mech-Vizにある受信者の名前を現在のロボットモデルと設定する必要があります。
プログラム:
MM_Get_DoList Status;
パラメータの説明:
パラメータ
説明
出力パラメータ
Status
ステータスコードを保存するための変数です。詳細については、 標準インターフェイスのステータスコード一覧とトラブルシューティング をご参照ください。
サンプル:
MM_Get_DoList Status;
詳細な説明:
このサンプルを実行すると、Mech-Vizで設定されたDO信号のリストを取得し、Statusに保存します。
DO信号リストの設定(MM_Set_DoList)¶
Mech-Vizから送信されたDoListをGo信号に設定します。最大4グループで、各グループは16bitのGo信号を格納します。複数のグループのGo信号を設定する場合は、このコマンドを何度も実行してください。
注意
このコマンドはMM_Get_DoListの後で呼び出す必要があります。
プログラム:
MM_Set_DoList Serial,GO16;
パラメータの説明:
パラメータ
説明
入力パラメータ
Serial
ステータスコードを保存するための変数です。詳細については、 標準インターフェイスのステータスコード一覧とトラブルシューティング をご参照ください。
GO16
Go信号を設定するためのグループアウトプットです。
サンプル:
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座標を入力(MM_Set_Pos)¶
TCPの位置姿勢データをMech-Viz内のタスク「外部移動」に送信することができます。このコマンドはMM_Start_Vizの前に呼び出す必要があります。 XXXX/Mech-Center-xxx/tool/viz_project/outer_move
のサンプルプロジェクトを参考にしてMech-Vizプロジェクトを作成し、Mech-Viz内のタスク「外部移動」をワークフロー内の適切な位置に配置してください。
プログラム:
MM_Set_Pos Pos;
パラメータの説明:
パラメータ
説明
入力パラメータ
Pos
Mech-Vizに送信するTCPデータを格納してある変数です。
サンプル:
MM_Set_Pos P10;
詳細な説明:
このサンプルを実行すると、P10に格納されているTCPの位置姿勢をMech-Viz内のタスク「外部移動」に送信します。
キャリブレーション¶
カメラの外部パラメータをキャリブレーションするときに使用します。Mech-Visionのカメラキャリブレーション機能と連動してキャリブレーションを自動的に行います。
プログラム:
MM_Calib Move_Type,Pos_Jps,Wait_time,\num Ext;
パラメータの説明:
パラメータ
説明
入力パラメータ
Move_Type
移動方式を設定します。1はMoveLであり、2はMoveJです。
Pos_Jps
Mech-Visionから送信される位置姿勢のタイプを設定します。1はTCP位置姿勢であり、2は関節角度です。
Wait_Time
待ち時間(秒単位)です。
Ext
外部軸のデータ(必要な場合)です。
サンプル1:
MM_Calib 2,1,300;
サンプル1の詳細な説明:
このサンプルを実行すると、ロボットはTCP位置姿勢を利用して、MoveJタイプで移動します。300秒以内次の位置へ到達しないと、停止します。
サンプル2:
MM_Calib 2,1,300,\EXT:=Axis7;
サンプル2の詳細な説明:
このサンプルを実行すると、ロボットはTCP位置姿勢を利用して、MoveJタイプで移動します。300秒以内次の位置へ到達しないと、停止します。また、7軸のデータはAxis7の値と指定されます。