サンプルプログラム7:MM_S7_Viz_SwitchTCP

現在ご覧いただいているのは未リリースのバージョンです(V2.1.0)。異なるバージョンを参照する場合は、画面右上のボタンから切り替えが可能です。

■ ご利用中のバージョンが分からない場合はお気軽にサポート窓口までご連絡ください。

プログラム概要

機能

ロボットはMech-Vizプロジェクトをトリガーして実行し、計画された経路を取得します。その後、把持点のロボットハンド番号に基づいて対応するロボットハンドを切り替え、把持および配置を実行します。

ファイル場所

Mech-VisionとMech-Vizソフトウェアのインストールディレクトリにある Communication Component/Robot_Interface/YASKAWA/sample/MM_S7_Viz_SwitchTCP

必要なプロジェクト

Mech-VisionとMech-Vizプロジェクト

使用前提

  1. 標準インターフェース通信設定 が完了しました。

  2. 自動キャリブレーション が完了しました。

  • このサンプルプログラムは参考用です。ユーザーは実際の状況に応じて、このプログラムを基に変更を加える必要があります。このプログラムをそのまま使用しないでください。

  • このサンプルでは複数のロボットハンドを使用するため、サンプルプログラムを読み込むまたは実行する前に、事前にティーチペンダント上でマルチツール機能を有効にする必要があります。具体的な操作手順については、Multiple Tool Check をご参照ください。

プログラム説明

以下はMM_S7_Viz_SwitchTCPサンプルプログラムのコードと関連する説明です。

このサンプルは、MM_S2_Viz_Basicサンプルに比べて、ロボットハンド番号に基づいてロボットハンドを切り替える機能(太字部分のコード)のみが追加されています。そのため、MM_S2_Viz_Basicサンプルと同じ部分のコードについては、以下で再度説明することはありません(詳細は MM_S2_Viz_Basicサンプルの説明 をご参照ください)。
NOP
'--------------------------------
'FUNCTION: trigger Mech-Viz
'project and get planned path,
'switch TCP according to the
'toolId
'Mech-Mind, 2023-12-25
'--------------------------------
'clear I50 to I69
CLEAR I050 20
'initialize p variables
SUB P081 P081
SUB P082 P082
SUB P083 P083
'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.10.40;50000;1"
'move to image-capturing position
MOVJ C00001 VJ=50.00 PL=0
'open socket connection
CALL JOB:MM_OPEN_SOCKET
'trigger Mech-Viz project
CALL JOB:MM_START_VIZ ARGF"2;30"
'get planned path, 1st argument
'(2) means getting pose in Pose
CALL JOB:MM_GET_VIZDATA ARGF"2;51;52;53"
'check whether planned path has
'been got from Mech-Viz
'successfully
IFTHENEXP I053<>2100
	'add error handling logic here
	'according to different error
	'codes
	'e.g.: I053=2038 means no
	'point cloud in ROI
	 PAUSE
ENDIF
'close socket connection
CALL JOB:MM_CLOSE_SOCKET
'switch TCP according to the
'toolId
'save waypoints of the planned
'path to local variables one
'by one
CALL JOB:MM_GET_POSE ARGF"1;81;61;62"
CALL JOB:MM_GET_POSE ARGF"2;82;63;64"
CALL JOB:MM_GET_POSE ARGF"3;83;65;66"
'reset tool signals according
'to received toolid
SWITCH I064 CASE 1
	'reset tool signal
	'SETE P081 TL#(0)
	'SETE P082 TL#(0)
	'SETE P083 TL#(0)
	 PAUSE
CASE 2
	'reset tool signal
	'SETE P081 TL#(1)
	'SETE P082 TL#(1)
	'SETE P083 TL#(1)
	 PAUSE
DEFAULT
	'reset tool signal
	 PAUSE
ENDSWITCH
'follow the planned path to pick
'move to approach waypoint of
'picking
MOVL P081 V=166.6 PL=0
'move to picking waypoint
MOVL P082 V=50.0 PL=0
'add object grasping logic here,
'such as DOUT OT#(1) ON
SWITCH I064 CASE 1
	'open tool signal
	 PAUSE
CASE 2
	'open tool signal
	 PAUSE
DEFAULT
	'open tool signal
	 PAUSE
ENDSWITCH
'move to departure waypoint of
'picking
MOVL P083 V=166.6 PL=0
'move to intermediate waypoint of
'placing
MOVJ C00002 VJ=50.00
'move to approach waypoint of
'placing
MOVL C00003 V=166.6 PL=0
'move to placing waypoint
MOVL C00004 V=50.0 PL=0
'add object releasing logic here,
'such as DOUT OT#(1) OFF
'reset tool signals according
'to received toolid
SWITCH I064 CASE 1
	'reset tool signal
	 PAUSE
CASE 2
	'reset tool signal
	 PAUSE
DEFAULT
	'reset tool signal
	 PAUSE
ENDSWITCH
'move to departure waypoint of
'placing
MOVL C00005 V=166.6 PL=0
'move back to robot home position
MOVJ C00006 VJ=50.00
END

上記のサンプルプログラムの処理流れは、下図の通りです。

sample7

下表は追加されたコードとその説明です。

処理流れ コートと説明

計画された経路を取得

'get planned path, 1st argument
'(2) means getting pose in Pose
CALL JOB:MM_GET_VIZDATA ARGF"2;51;52;53"
  • MM_GET_VIZDATA:Mech-Vizが計画された経路を取得するためのコマンド。

  • 2:取得した経路点の位置姿勢をツール位置姿勢の形式として指定します。

  • 51:変数Iの番号。この変数はビジョンシステムが返す経路点の数を保存します。

  • 52:変数Iの番号。この変数は、「ビジョン処理による移動」の経路点(把持点)が経路全体における位置番号を保存します。

  • 53:変数Iの番号。この変数はコマンド実行のステータスコードを保存します。

このコマンドは、ロボットがMech-Vizプロジェクトから返された計画経路を取得することを意味します。

返された計画経路はロボットのメモリに保存されるため、この時点ではユーザーが計画経路を直接取得することはできません。その後の「計画された経路を保存」コマンドを実行することで、経路を取得することができます。

計画された経路を保存

'save waypoints of the planned
'path to local variables one
'by one
CALL JOB:MM_GET_POSE ARGF"1;81;61;62"
CALL JOB:MM_GET_POSE ARGF"2;82;63;64"
CALL JOB:MM_GET_POSE ARGF"3;83;65;66"
  • MM_GET_POSE:計画された経路を保存するためのコマンド。

  • 1:最初の経路点を保存します。

  • 81:変数Iの番号。この変数は最初の経路点のツール位置姿勢を保存します。

  • 61:変数Iの番号。この変数は最初の経路点に対応するラベルを保存します。

  • 62:変数Iの番号。この変数は最初の経路点に対応するロボットハンド番号を保存します。

「CALL JOB:MM_GET_POSE ARGF"1;81;61;62」コマンドは、最初の経路点のツール位置姿勢、ラベル、およびロボットハンド番号をそれぞれ指定された変数に保存することを意味します。

  • Mech-Vizプロジェクトで作成されたワークフローに応じて、プログラムを適切に変更し、経路を保存する必要があります。このサンプルでは、Mech-Vizで計画された経路に3つの経路点が含まれていると仮定しています。最初の経路点は「把持のアプローチ点(P081)」、2番目の経路点は「把持点(P082)」、3番目の経路点は「把持の離れる点(P083)」です。したがって、I064はロボットが把持点(P082)に移動する際に使用するロボットハンドの番号を示します。

  • このサンプルでは、後続でI064の値に基づいてロボットハンドを切り替えるため、ユーザーが作成したMech-Vizプロジェクトには「ロボットハンドを切り替え」ステップが含まれ、そのステップパラメータが正しく設定されている必要があります。

    • 「ロボットハンドを切り替え」ステップは、「ビジョン処理の結果をチェック」ステップの 結果あり 出口の後に接続する必要があります。

    • 「ロボットハンドを切り替え」ステップの 実行モード パラメータを 適切なロボットハンドに自動的に切り替える に設定する必要があります。

ロボットハンド番号に基づいてロボットハンドを切り替える

'reset tool signals according
'to received toolid
SWITCH I064 CASE 1
	'reset tool signal
	'SETE P081 TL#(0)
	'SETE P082 TL#(0)
	'SETE P083 TL#(0)
	 PAUSE
CASE 2
	'reset tool signal
	'SETE P081 TL#(1)
	'SETE P082 TL#(1)
	'SETE P083 TL#(1)
	 PAUSE
DEFAULT
	'reset tool signal
	 PAUSE
ENDSWITCH
  • I064:把持点のロボットハンド番号。

  • SETE P081 TL#(0):P081のツールデータを0に設定します。

  • SWITCH~CASE~DEFAULT~ENDSWITCH:I064の値に基づいて異なる分岐を実行します。具体的な処理ロジックは次の通りです。

    このコードはすべてコメントであり、ユーザーにコードの書き方の参考を提供するためのものです。実際のプロジェクトの状況に応じて、具体的な処理ロジックを記述する必要があります。
    • 把持点のロボットハンド番号が1の場合、把持経路上の3つの位置のツールデータを0に設定します。

    • 把持点のロボットハンド番号が2の場合、把持経路上の3つの位置のツールデータを1に設定します。

    • 把持点のロボットハンド番号が他の値の場合、ロボットは動作を一時停止します。

上記のコードは、I064の値に基づいて、ロボットが対応する姿勢(把持点)に移動する際に使用するロボットハンドを決定できることを意味します。つまり、ロボットハンド番号に基づいてロボットハンドを切り替えることができます。

ロボットが把持点に移動する際、ロボットハンド番号に基づき、対応するロボットハンドのDO信号をオンにすることができます。例えば、以下はサンプルコードの一例です。

'add object grasping logic here,
'such as DOUT OT#(1) ON
SWITCH I064 CASE 1
	'open tool signal
	 PAUSE
CASE 2
	'open tool signal
	 PAUSE
DEFAULT
	'open tool signal
	 PAUSE
ENDSWITCH

ロボットが配置点に移動する際、ロボットハンド番号に基づき、対応するロボットハンド番号のDO信号をオフにし、リセットすることができます。例えば、以下はサンプルコードの一例です。

'reset tool signals according
'to received toolid
SWITCH I064 CASE 1
	'reset tool signal
	 PAUSE
CASE 2
	'reset tool signal
	 PAUSE
DEFAULT
	'reset tool signal
	 PAUSE
ENDSWITCH

Mech-Mindは、お客様のプライバシーを重視しています

このサイトでは最高の体験を提供するために Cookie を使用しています。サイトの閲覧を続ける場合、Cookie の使用に同意したことになります。「拒否する」を選択すると、このサイトを訪れた際に追跡や記憶が行われないように単独の Cookie が使用されます。