样例程序7:MM_S7_Viz_SwitchTCP

程序简介

功能说明

机器人触发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:编号为51的I变量,该变量保存视觉系统返回的路径点个数。

  • 52:编号为52的I变量,该变量保存视觉移动路径点(抓取点)在路径中的位置编号。

  • 53:编号为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:编号为81的P变量,该变量将保存第一个路径点的工具位姿。

  • 61:编号为61的I变量,该变量将保存第一个路径点对应的标签。

  • 62:编号为62的I变量,该变量将保存第一个路径点对应的末端工具编号。

因此,“CALL JOB:MM_GET_POSE ARGF"1;81;61;62"”整条指令表示将第一个路径点的工具位姿、标签和末端工具编号分别转存至指定变量。

  • 用户需结合实际Mech-Viz工程转存规划路径。本样例假设Mech-Viz规划的路径包含三个路径点,其中第一个路径点为抓取接近点(P081),第二个路径点为抓取点(P082),第三个路径点为抓取离开点(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时,将抓取路径上三个位置的工具数据设定为0。

    • 当抓取点的末端工具编号为2时,将抓取路径上三个位置的工具数据设定为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

我们重视您的隐私

我们使用 cookie 为您在我们的网站上提供最佳体验。继续使用该网站即表示您同意使用 cookie。如果您拒绝,将使用一个单独的 cookie 来确保您在访问本网站时不会被跟踪或记住。