標準インターフェイスコマンド¶
YASKAWAで標準インターフェイスを用いてロボットプログラミングを行う際は、以下の点にご注意ください。
複数のパラメータはコロンで区切る必要があります。
パラメータは入力パラメータと出力パラメータと定義します。この標準インターフェイスはTCP/IPプロトコルを介して通信を行います。パラメータは文字列である必要があります。
注意
Mech-Center 1.6.1以前のバージョンでは、各インターフェースプログラムコマンドには、通信接続文と通信切断文が含まれています。
Mech-Centerバージョン1.6.1以降については、以下の更新があります。
初期化通信コマンドのみ、テストを容易にするために通信接続と通信切断文を含めます。初期化通信コマンドは、ロボットが1回実行するだけで、設定したIPアドレスがグローバルに有効となります。
通信接続文と通信切断文が別々のコマンド(TCP接続確立コマンドとTCP接続切断コマンド)になるため、ロボットとビジョンシステムの接続・切断を頻繁に行う必要がありません。
インターフェースコマンド一覧
通信の初期化¶
ホストIPアドレス、ポート番号、およびTCP/IPの待機時間を設定するためのコマンドです。
プログラム
MM_INIT_SOCKET ("IP_Address;Server_Port;Time_Out")
パラメータの説明
パラメータ
説明
入力パラメータ
IP_Address
IPCのIPアドレスです。
Server_Port
IPCのポート番号で、デフォルトのポート番号は50000です。
Time_Out
接続の試行を停止するまでの待機時間(分)です。
サンプル
CALL JOB:MM_INIT_SOCKET ("192.168.1.1;50000;5")
詳細な説明
このサンプルを実行すると、IPCのIPアドレスは192.168.1.1、ポート番号は50000、待機時間は5分に設定されます。
TCP接続の構築¶
このコマンドは、TCP 接続を確立するために使用されます。このコマンドを実行する前に、初期化通信コマンドで、通信用のIPアドレスとポート番号を正しく設定してください。
プログラム
MM_OPEN_SOCKET
パラメータの説明
パラメータはありません。
サンプル
CALL JOB: MM_OPEN_SOCKET
TCP接続の切断¶
このコマンドは、TCP 接続を切断するために使用します。ロボットがビジョンシステムとの通信を完了した後、ユーザーはこのコマンドを呼び出して通信接続を切断することができます。
プログラム
MM_CLOSE_SOCKET
パラメータの説明
パラメータはありません。
サンプル
CALL JOB: MM_CLOSE_SOCKET
Mech-Visionをトリガー¶
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:画像撮影姿勢をフランジ位置姿勢で送信します。
サンプル
CALL JOB:MM_START_VIS ("1;1;1")
詳細な説明
このサンプルを実行するとMech-VisionのNo. 1プロジェクトを実行します。結果として1つの位置姿勢を送信します。同時にロボットの画像撮影姿勢を関節角度で送信します。
Mech-Visionの結果取得¶
Mech-Vizを使用せずMech-Visionを使用する場合に使用します。対応するMech-Visionプロジェクトから画像処理結果を取得します。
プログラム
MM_GET_VISDATA ("Job;Last_Data;Pose_Num;MM_Status")
パラメータの説明
パラメータ
説明
入力パラメータ
Job
Mech-VisionプロジェクトID(1~99)です。Mech-Centerで
でプロジェクトのIDを確認、調整を行ってください。出力パラメータ
Last_Data
すべての結果が送信されたかどうかを記録するためのI変数です。0は結果をすべて送信し終わっていないことを意味し、1はすべての結果を送信されたことを意味します。
Pose_Num
取得した出力結果の数を記録するためのI変数です。
MM_Status
Mech-Visionのステータスコードを記録するためのI変数です。詳細については、 標準インターフェイスのステータスコード一覧とトラブルシューティング をご参照ください。
サンプル
CALL JOB:MM_GET_VISDATA ("1;50;51;52")
詳細な説明
このサンプルを実行するとMech-VisionのNo.1プロジェクトから視覚結果を取得します。すべての結果が送信されたかどうかはI[50]に保存されます。受信した結果の数はI [51]に保存されます。ステータスコードはI[52]に保存されます。
Mech-Vizをトリガー¶
Mech-VisionとMech-Vizの両方を使用する場合に使用します。対応するMech-Vizプロジェクトを実行します。この時Mech-Vizのシミュレーション上でロボットの初期関節位置が設定されます。
プログラム
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に設定する必要があります。
サンプル
CALL JOB:MM_START_VIZ ("1")
詳細な説明
対応するMech-Vizプロジェクトを実行し、シミュレーション上のロボット初期関節角度を実際のロボットと同期します。
移動計画を取得¶
このコマンドは、Mech-Vizプロジェクトに計画した把持経路を取得するために使用されます。
プログラム
MM_GET_VIZDATA ("GetPos_Type;Last_Data;Pos_Num;VisPos_Num;MM_Status")
パラメータの説明
パラメータ
説明
入力パラメータ
GetPos_Type
Mech-Vizから送信される移動位置の方式を設定します。
出力パラメータ
Last_Data
すべての結果が送信されたかどうかを記録するためのI変数です。0は結果をすべて送信し終わっていないことを意味し、1はすべての結果を送信されたことを意味します。
Pose_Num
取得した出力結果の数を記録するためのI変数です。
VisPos_Num
最初の視覚移動の順番を記録するためのI変数です。例えば、move-1、move-2、visual_move-3、move-3、visual_move-2の場合、最初の視覚移動の順番は3です。行動計画に視覚移動が含まれていない場合、0に設定します。
MM_Status
Mech-Visionのステータスコードを記録するためのI変数です。詳細については、 標準インターフェイスのステータスコード一覧とトラブルシューティング をご参照ください。
注釈
Mech-Vizから関節角度を送信します。
Mech-VizからTCP位置姿勢を送信します。
サンプル
CALL JOB:MM_GET_VIZDATA ("2;50;51;52;53")
詳細な説明
このサンプルを実行するとMech-Vizから行動計画をTCP位置姿勢で取得します。すべての行動計画が送信されたかどうかをI[50]に保存されます。受信した移動位置の数はI [51]に保存されます。視覚移動の順番はI [52]に保存されます。ステータスコードはI[53]に保存されます。
位置姿勢を取得¶
Mech-VisionまたはMech-Vizによって送信されたTCP位置姿勢を指定した変数に保存します。
プログラム
MM_GET_POSE ("Index;Robtarget;Label;Pose_Speed")
パラメータの説明
パラメータ
説明
入力パラメータ
Index
保存する位置姿勢のインデックスを指定します。
出力パラメータ
Robtarget
指定された位置姿勢を記録するためのP変数です。
Label
指定された位置姿勢に対応するラベルを記録するためのI変数です。
Pose_Speed
指定された位置姿勢に移動する速度を記録するためのI変数です。
サンプル
CALL JOB:MM_GET_POSE ("1;60;61;62")
詳細な説明
このサンプルを実行すると、最初に受信した位置姿勢をP [60]に、対応するラベルをI [61]に、対応する移動速度をI[62]に保存します。
関節角度を取得¶
Mech-Vizによって送信された関節角度を指定した変数に保存します。
プログラム
MM_GET_JPS ("Index;Jointtarget;Label;Pose_Speed")
パラメータの説明
パラメータ
説明
入力パラメータ
Index
保存する位置姿勢のインデックスを指定します。
出力パラメータ
Jointtarget
指定された関節角度を記録するためのP変数です。
Label
指定された位置姿勢に対応するラベルを記録するためのI変数です。
Pose_Speed
指定された位置姿勢に移動する速度を記録するためのI変数です。
サンプル
CALL JOB:MM_GET_JPS ("1;60;61;62")
詳細な説明
このサンプルを実行すると、最初に受信した関節角度をP [60]に、対応するラベルをレジスタI [61]に、対応する移動速度をレジスタI[62]に保存します。
Mech-Visionパラメータレシピの切り替え¶
使用するMech-Visionプロジェクトの保存されたパラメータレシピを指定します。このコマンドは、MM_START_VIZの前に呼び出す必要があります。
プログラム
MM_SET_MODEL ("Job;Model_number")
パラメータの説明
サンプル
CALL JOB:MM_SET_MODEL ("1;1")
詳細な説明
このサンプルを実行すると、Mech-VisionプロジェクトNo.1で使用されているパラメータをパラメータレシピNo.1に切り替えます。
Mech-Vizのブランチを選択¶
Mech-Vizプロジェクトをどのブランチに沿って実行するかを選択する場合に使用されます。このようなブランチは、「メッセージによって異なるブランチを実行」タスクをプロジェクトに追加することで実現可能です。このコマンドの前にmm_start_vizを呼び出す必要があります。Mech-Vizで実行される次のタスクが「メッセージによって異なるブランチを実行」タスクである場合、Mech-Vizは、このコマンドが実行されるまで待機します。
プログラム
MM_SET_BRANCH ("Branch_Num;Exit_Num")
パラメータの説明
パラメータ
説明
入力パラメータ
Branch_Num
このパラメータ、つまり、 消息分支 のタスクIDは正の整数である必要があります。タスクIDは、タスクパラメータで読み取りを行います。
Exit_Num
ブランチの出口、Mech-Vizプログラムは設定されたブランチの出口に沿って実行し続けます。パラメータ範囲は[1-99]です。
サンプル
CALL JOB:MM_SET_BRANCH ("1;3")
詳細な説明
このサンプルを実行すると、Mech-Viz内の1という名前の「メッセージによって異なるブランチを実行」の出口3を通過するようになります。
移動インデックスを設定¶
Mech-Viz内タスクのパラメータ、現在のインデックスの値を設定することができます。このパラメータを設定できるタスクは、「リストによる移動」、「グリッドによる移動」、「カスタムパレットパターン」、「スマートパレットパターン」などがあります。このコマンドを呼び出す前にMM_Start_Vizを実行する必要があります。
プログラム
MM_SET_INDEX ("Skill_Num;Index_Num")
入力パラメータ
Skill_Num
インデックス付きの移動タスクののタスクIDで、正の整数である必要があります。タスクIDは、タスクパラメータで読み取りを行います。
Index_Num
次にこのタスクが実行されたときに設定されるべきインデックス値です。
このコマンドを送信すると、Mech-Vizの現在のインデックス値がこのパラメータの値から1を引いた値に変更されます。
このコマンドで指定したタスクにMech-Vizプロジェクトが実行されると、Mech-Vizの現在のインデックス値が、このパラメータの値まで1つずつ増加します。
サンプル
CALL JOB:MM_SET_INDEX ("2;10")
詳細な説明
このサンプルを実行すると、2という名前のタスクのインデックス値を9に設定します。
ソフトウェアのステータスを取得¶
現在、Mech-Visionのプロジェクトステータスを確認できます。将来的には、このコマンドを使用して、Mech-Vision、Mech-Viz、およびMech-Centerの実行ステータスを取得できるようになります。
プログラム
MM_GET_STATUS ("Status");
パラメータの説明
パラメータ
説明
出力パラメータ
Status
Mech-Visionのステータスコードを記録するためのI変数です。詳細については、 標準インターフェイスのステータスコード一覧とトラブルシューティング をご参照ください。
サンプル
CALL JOB:MM_GET_STATUS ("70")
詳細な説明
このサンプルを実行すると、ステータスコードを取得し、I[70]に格納します。
Mech-Visionへ物体寸法を入力¶
物体の寸法をMech-Visionに入力するコマンドです。このコマンドはMM_Start_Visの前に呼び出す必要があります。
プログラム
MM_SET_BOXSIZE ("Job;Length;Width;Height")
パラメータの説明
パラメータ
説明
入力パラメータ
Job
Mech-VisionプロジェクトID(1~99)です。Mech-Centerで
でプロジェクトのIDを確認、調整を行ってください。Length
物体の長さ(メートル単位)です。
Width
物体の幅(メートル単位)です。
Height
物体の高さ(メートル単位)です。
サンプル
CALL JOB:MM_SET_BOXSIZE ("1;500;300;200")
詳細な説明
このサンプルを実行すると、Mech-VisionプロジェクトNo.1のステップ「対象物の寸法を読み取る」の物体寸法を500×300×200mmに設定されます。
DO信号リストの取得¶
このコマンドで区分化された吸着ハンドを制御するためにDO信号のリストを取得します。このコマンドはMM_Get_VizDataの前に呼び出す必要があります。
ヒント
XXXX/Mech-Center-xxx/tool/viz_project/suction_zone
のサンプルプロジェクトを参考にしてMech-Vizプロジェクトを作成し、Mech-Vizプロジェクトに吸盤のコンフィグファイルを設定する必要があります。また、Mech-Vizにある受信者の名前を現在のロボットモデルと設定する必要があります。
プログラム
MM_GET_DOLIST
サンプル
CALL JOB:MM_GET_DOLIST
詳細な説明
このサンプルを実行すると、Mech-Vizで設定されたDO信号のリストを取得し、setdo[]配列に保存します。配列の最初の要素はsetdo[0]で、最後の要素はsetdo[io_index-1]です。
DOを設定¶
Mech-Vizから送信されたDoListをGo信号に設定します。最大4グループで、各グループは16bitのGo信号を格納します。複数のグループのGo信号を設定する場合は、このコマンドを何度も実行してください。
プログラム
MM_SET_DOLIST 设置 DO 信号
サンプル
CALL JOB:MM_SET_DOLIST
詳細な説明:
このサンプルを実行すると、Mech-Vizで計算されたDoListにある0-15の値が対応するGo16信号と設定されます。
Mech-VizにTCP座標を入力¶
TCPの位置姿勢データをMech-Viz内のタスク「外部移動」に送信することができます。このコマンドはMM_Start_Vizの前に呼び出す必要があります。
XXXX/Mech-Center-xxx/tool/viz_project/outer_move
のサンプルプロジェクトを参考にしてMech-Vizプロジェクトを作成し、Mech-Viz内のタスク「外部移動」をワークフロー内の適切な位置に配置してください。
プログラム
MM_SET_POSE ("Pos")
パラメータの説明
パラメータ
説明
入力パラメータ
Pos
Mech-Vizに送信するTCPデータを格納してあるP変数です。
サンプル
CALL JOB:MM_SET_POSE ("10")
詳細な説明
このサンプルを実行すると、P10に格納されているTCPの位置姿勢をMech-Viz内のタスク「外部移動」に送信します。
キャリブレーション¶
カメラの外部パラメータをキャリブレーションするときに使用します。Mech-Visionのカメラキャリブレーション機能と連動してキャリブレーションを自動的に行います。
プログラム
MM_CALIB ("Move_Type;Pos_Jps;Wait_Time;Rnum;Ext;Pos")
パラメータの説明
パラメータ
説明
入力パラメータ
Move_Type
移動方式を設定します。
Pos_Jps
Mech-Visionから送信される位置姿勢のタイプを設定します。
Wait_Time
ロボットがキャリブレーションポイントに到達した後の待機時間(秒)で、デフォルトでは2秒です。
Rnum
ロボットの軸の数です。
Ext
外部7軸目のデータ(mm)です。オプション機能で、外部軸がない場合は0を入力します。
Pos
キャリブレーションの開始点を格納するためのP変数で、デフォルトではP[99]です。
サンプル
CALL JOB:MM_CALIB ("2;1;2;6;0;99")
詳細な説明
このサンプルを実行すると6軸ロボットを関節運動で動かし、TCP位置姿勢を受信し、2つの位置姿勢間の待機時間を2秒に設定します。また、ロボットには外部7軸を設定していません。P[99]には、キャリブレーション開始点の位置姿勢を保存します。