サンプルプログラム14:MM_S14_Vis_GetUserData
プログラム概要
| 機能 | ロボットはビジョン結果と共に、Mech-Visionプロジェクトから出力されたカスタムデータを取得します。 | 
| ファイル場所 | Mech-VisionとMech-Vizソフトウェアのインストールディレクトリにある  | 
| 必要なプロジェクト | Mech-Visionプロジェクト(出力 ステップに カスタムポート を追加する必要があります) | 
| 使用前提 | 
 | 
| このサンプルプログラムは参考用です。ユーザーは実際の状況に応じて、このプログラムを基に変更を加える必要があります。このプログラムをそのまま使用しないでください。 | 
プログラム説明
以下はMM_S14_Vis_GetUserDataサンプルプログラムのコードと関連する説明です。
| このサンプルは、MM_S1_Vis_Basicサンプルに比べて、太字部分のコードのみが追加されています。そのため、MM_S1_Vis_Basicサンプルと同じ部分のコードについては、以下で再度説明することはありません(詳細は MM_S1_Vis_Basicサンプルの説明 をご参照ください)。 | 
NOP
'--------------------------------
'FUNCTION: trigger Mech-Vision
'project and get vision result
'and custom data using
'command 110
'Mech-Mind, 2023-12-25
'--------------------------------
'clear I50 to I69
CLEAR I050 20
'initialize p variables
SUB P070 P070
SUB P071 P071
'set 100mm to z of P070
SETE P070 (3) 100000
'move to robot home position
MOVJ C00000 VJ=50.00
'initialize communication
'parameters (initialization is
'required only once)
CALL JOB:MM_INIT_SOCKET ARGF"192.168.170.22;50000;1"
'move to image-capturing position
MOVJ C00001 VJ=50.00 PL=0
'open socket connection
CALL JOB:MM_OPEN_SOCKET
'trigger NO.1 Mech-Vision project
CALL JOB:MM_START_VIS ARGF"1;0;2;30"
'get vision result from NO.1
'Mech-Vision project
CALL JOB:MM_GET_DYDATA ARGF"1;51;52"
'check whether vision result has
'been got from Mech-Vision
'successfully
IFTHENEXP I052<>1100
	'add error handling logic here
	'according to different error
	'codes
	'e.g.: I052=1003 means no point
	'cloud in ROI
	'e.g.: I052=1002 means no
	'vision result
	 PAUSE
ENDIF
'close socket connection
CALL JOB:MM_CLOSE_SOCKET
'save first vision point data to
'local variables
CALL JOB:MM_GET_DYPOSE ARGF"1;71;61;61"
'received custom data is saved
'from R061
'R061 = offset_x;
'R062 = offset_y;
'R063 = offset_z;
'move to intermediate waypoint of
'picking
MOVJ C00002 VJ=50.00
'move to approach waypoint of
'picking
SFTON P070
MOVL P071 V=166.6 PL=0
SFTOF
'move to picking waypoint
MOVL P071 V=50.0 PL=0
'add object grasping logic here,
'such as DOUT OT#(1) ON
PAUSE
'move to departure waypoint of
'picking
SFTON P070
MOVL P071 V=166.6 PL=0
SFTOF
'move to intermediate waypoint of
'placing
MOVJ C00003 VJ=50.00
'move to approach waypoint of
'placing
MOVL C00004 V=166.6 PL=0
'move to placing waypoint
MOVL C00005 V=50.0 PL=0
'add object releasing logic here,
'such as DOUT OT#(1) OFF
PAUSE
'move to departure waypoint of
'placing
MOVL C00006 V=166.6 PL=0
'move back to robot home position
MOVJ C00007 VJ=50.00
END上記のサンプルプログラムの処理流れは、下図の通りです。
 
下表は太字部分のコードとその説明です。コマンド名のリンクをクリックすることで、その詳細な説明を確認できます。
| 処理流れ | コートと説明 | ||||
|---|---|---|---|---|---|
| ビジョン結果(カスタムデータを含む)を取得 | 
 
 このコマンドは、ロボットがMech-Visionプロジェクト1から返されたビジョン結果(カスタムデータを含む)を取得することを意味します。 
 | ||||
| ビジョン結果(カスタムデータを含む)を保存 | 
 このコマンドは、最初のビジョンポイントのツール位置姿勢、ラベル、およびカスタムデータをそれぞれ指定された変数に保存することを意味します。 上記のコメント部分は擬似コードです。ユーザーは変数R061、R062、R063を使用して、特定のビジョンポイントの3つのカスタムデータを取得できます。 
 |