YASKAWA标准接口指令
本文介绍YASKAWA机器人与梅卡曼德在线测量系统之间进行TCP协议通信的标准接口指令。其中,机器人(客户端)发送指令给梅卡曼德在线测量系统(服务端),梅卡曼德在线测量系统将处理后的数据返回给机器人。
指令总览
| 指令名 | 是否必须调用 | 描述 |
|---|---|---|
是 |
设置与机器人通信的工控机IP地址、端口号,以及通信超时等待时间。 |
|
是 |
建立机器人与在线测量系统之间的TCP协议通信连接。 |
|
是 |
断开机器人与在线测量系统之间的TCP协议通信连接。 |
|
否 |
机器人告知Mech-Metrics开始切换工程。 |
|
是 |
机器人告知Mech-Metrics开始测量新工件,并将工件名称,工件SN,以及其他工件信息发送给Mech-Metrics。 |
|
是 |
触发对应测量特征的Mech-MSR工程运行。如需进行多次测量,可调用本指令多次。 |
|
是 |
机器人告知Mech-Metrics结束测量,询问工件测量结果。 |
|
否 |
部分场景中工件SN码无法在测量开始时获得,例如需要在测量过程中扫码获得。本指令用于在工件测量过程中传入工件SN。 |
|
否 |
通过传入工件SN,将Mech-Metrics软件主界面切换为对应工件的数据视图。 |
|
是(自动标定程序) |
用于机器人的手眼标定(外参标定) |
注意事项
在开始前,请注意以下事项:
-
YASKAWA机器人指令调用说明:
-
指令的参数列表中各个参数间以英文分号分隔。
-
调用指令时的参数:输入参数默认是字符串常量;输出参数默认是字符串常量,在后台程序中存在与之对应的全局变量。
-
通信连接和通信断开语句为两个独立指令(建立TCP协议通信连接和断开TCP协议通信连接),从而避免频繁连接和断开机器人与视觉系统之间的通信。
-
-
指令的数据单位:
-
关节角的单位是度(°)。
-
机器人法兰位姿或机器人工具位姿由位置和姿态组成,位置(XYZ坐标值)单位为毫米(mm);姿态使用欧拉角表示,单位为度(°)。
-
初始化通信
该指令用于设置与机器人通信的工控机IP地址、端口号,以及通信超时等待时间。
调用时机
在使用该指令后,用户需调用建立TCP协议通信连接才能建立机器人与在线测量系统之间的TCP协议通信连接。初始化仅需要执行一次。
指令格式
MSR_INIT_SOCKET("IP_Address;Server_Port;Time_Out")
输入参数
IP_Address
该参数表示工控机的IP地址。数据类型为string。
Server_Port
该参数表示工控机与机器人建立通信所使用的端口号。该参数值需与Mech-MSR软件中TCP ASCII服务通信配置(标准通信方式)中设置的主机端口号保持一致。数据类型为num。
Time_Out
该参数表示通信超时等待时间,单位为分钟。
示例
CALL JOB:MSR_INIT_SOCKET("192.168.1.20;50000;5")
上述示例表示,机器人将要连接的工控机IP地址为192.168.1.20,端口号为50000,超时等待时间为5分钟。
建立TCP协议通信连接
该指令用于建立机器人与在线测量系统之间的TCP协议通信连接。
调用时机
该指令需要在初始化通信之后立即被调用。
指令格式
MSR_OPEN_SOCKET
示例
CALL JOB:MSR_OPEN_SOCKET
上述示例表示,建立机器人与在线测量系统之间的TCP协议通信。
断开TCP协议通信连接
该指令用于断开机器人与在线测量系统之间的TCP协议通信连接。
调用顺序
在获取到Mech-MSR工程的结果后,用户可立即调用该指令断开通信连接,然后再将获取的结果转存至指定变量。如果长时间未断开通信连接,则机器人程序有可能会引发异常断开连接的错误。
指令格式
MSR_CLOSE_SOCKET
切换工程
机器人告知Mech-Metrics开始切换工程。
调用时机
开始切换工程前。
指令格式
MSR_SWITCH_PROJECT ARGF"RobotID;Job; regStatus"
输入参数
RobotID
该参数表示工件编号。工件编号为1到99之间的整数。指定的工件编号必须已经在配置工件编号界面配置。数据类型为num。
Job
该参数表示工程编号。指定的工程编号必须已经通过工程切换规则配置。数据类型为num。
输出参数
regStatus
该参数为I变量,接收指令返回状态码。
8105:指令执行成功。
-99:机器人通信异常。
示例
CALL JOB:MSR_SWITCH_PROJECT ARGF"1;1;80"
上述示例表示,切换到工件编号为1,工程编号为1的工程,保存指令状态码至I变量80。
开始测量任务
机器人告知Mech-Metrics开始测量新工件,并将工件名称,工件SN,以及其他工件信息发送给Mech-Metrics。
调用时机
新工件测量开始时。
指令格式
MSR_START_MEASURE("RobotID; Qc_Mode; CustomData[0]; CustomData[1]; CustomData[2]; CustomData[3]; CustomData[4]; CustomData[5]; CustomData[6]; CustomData[7]; Reg_Num", "Piece_Name", "Piece_SN;regStatus")
输入参数
RobotID
该参数表示工件编号。工件编号为1到99之间的整数。指定的工件编号必须已经在配置工件编号界面配置。数据类型为num。
Piece_Name
该参数表示需测量的工件的名称。工件名可包括字母和数字,长度不超过20字符。数据类型为string。
Piece_SN
该参数表示工件SN。工件SN又称工件序列号或工件ID,是该工件的唯一标识。工件SN可包括字母和数字,长度不超过30字符。数据类型为string。
Qc_Mode
该参数表示工件的质量检测模式。数据类型为num。各参数值含义如下:
-
1:全检。
-
2:半检。
-
其他:使用现有设置。
CustomData[0]-CustomData[7]
该参数为可选参数,用于提供工件的自定义信息。数据类型为num。自定义参数仅在需要为Mech-Metrics提供更多工件信息时使用。本指令最多支持8个自定义参数,每个自定义参数的值为1到8之间的整数。
如需使用自定义参数:
-
在Mech-Metrics软件配置界面上方功能区选择,为指定自定义参数(例如自定义参数1)配置其参数值(1到8)的含义。
-
在该指令中设置指定自定义参数。
输出参数
Reg_Num
该参数表示I寄存器编号,该寄存器用于保存软件返回的此次运行是连续运行还是单次运行。
0:单次运行。
1:连续运行。
如指定的是单次运行,机器人端单次执行如下指令:开始测量任务→运行特征测量→结束测量任务。如需测量多个特征,请运行多次运行特征测量指令。例如,用户需测量两个特征,则单次运行时,需在机器人端单次执行如下指令:程序开始→开始测量任务→运行特征测量→运行特征测量→结束测量任务→程序结束。
|
regStatus
该参数为I变量,接收指令返回状态码。
8100:指令运行成功。
-99:机器人通信异常。
示例
CALL JOB:MSR_START_MEASURE ARGF"1;2;3;1;1;1;1;1;1;10;80" ARGF"Piece01" ARGF"STRING"
上述示例表示,机器人告知Mech-Metrics开始测量新工件,并将工件编号1、半检模式(2)、8位自定义参数(3;1;1;1;1;1;1;10)、工件名和工件SN发给软件。
运行特征测量
触发对应测量特征的Mech-MSR工程运行。
调用时机
机器人到达测量特征拍照位置。
指令格式
MSR_MEASURE_FEASURE("RobotID; Measure_Index; regStatus")
输入参数
RobotID
该参数表示工件编号。工件编号为1到99之间的整数。指定的工件编号必须已经在配置工件编号界面配置。数据类型为num。
Measure_Index
该参数表示待测量特征的测量编号。数据类型为num。测量编号为该特征的唯一标识。测量特征编号为1到999之间的整数。
输出参数
regStatus
该参数为I变量,接收指令返回状态码。
8101:指令执行成功。
-99:机器人通信异常。
示例
CALL JOB:MSR_MEASURE_FEASURE ARGF"1;1;80"
该示例表示,机器人侧将触发工件编号1、测量特征的测量编号为1的Mech-MSR工程运行,保存状态码至I变量80。
结束测量任务
机器人告知Mech-Metrics结束测量,询问工件测量结果。
调用时机
最后一个测量特征拍照完成,工件测量完成。
指令格式
MSR_END_MEASURE("RobotID; Reg_Judge; Reg_Num1; Reg_Num2; Reg_Num3; regStatus")
输入参数
RobotID
该参数表示工件编号。工件编号为1到99之间的整数。指定的工件编号必须已经在配置工件编号界面配置。数据类型为num。
输出参数
Reg_Judge
该参数表示I寄存器编号,该寄存器用于保存工件判定结果。1表示OK,0表示NG。
Reg_Num1, Reg_Num2, Reg_Num3
该参数表示I寄存器编号,用于保存工件的测量项数量。数据类型为num。具体如下:
-
Reg_Num1保存工件超出一级公差带的测量项数量。
-
Reg_Num2保存工件超出二级公差带的测量项数量。
-
Reg_Num3保存工件超出三级公差带的测量项数量。
regStatus
该参数为I变量,接收指令返回状态码。
8102:指令执行成功。
-99:机器人通信异常。
示例
CALL JOB:MSR_END_MEASURE ARGF"1;11;31;32;33;80"
上述示例表示,机器人告知Mech-Metrics结束测量(工件编号为1),同时Mech-Metrics返回测量结果,工件判定结果保存在编号11的数值寄存器中,工件超出一级、二级、三级公差带的测量项数量分别保存在编号31、32、33的数值寄存器中,保存指令状态码至编号80的数值寄存器。
测量中传入工件SN
部分场景中工件SN码无法在测量开始时获得,例如需要在测量过程中扫码获得。本指令用于在工件测量过程中传入工件SN。
调用时机
当前工件测量过程中任意时机。
指令格式
MSR_SET_PIECE_INFO("RobotID;regStatus", "Piece_SN")
输入参数
RobotID
该参数表示工件编号。工件编号为1到99之间的整数。指定的工件编号必须已经在配置工件编号界面配置。数据类型为num。
Piece_SN
该参数表示工件SN。工件SN又称工件序列号或工件ID,是该工件的唯一标识。工件SN可包括字母和数字,长度不超过30字符。数据类型为string。
输出参数
regStatus
该参数为I变量,接收指令返回状态码。
8103:指令执行成功。
-99:机器人通信异常。
示例
CALL JOB:MSR_SET_PIECE_INFO ARGF"1;80" ARGF"STRING"
该示例表示,机器人向Mech-Metrics传入工件SN(工件编号为1)。
查询工件历史数据
通过外部传入工件SN,将Mech-Metrics软件主界面切换为传入编号的工件。
调用时机
非测量中任意时刻。
指令格式
MSR_VIEW_PIECE_DATA("RobotID;regStatus", "Piece_SN")
输入参数
RobotID
该参数表示工件编号。工件编号为1到99之间的整数。数据类型为num。
Piece_SN
该参数表示工件SN。工件SN又称工件序列号或工件ID,是该工件的唯一标识。工件SN可包括字母和数字,长度不超过30字符。数据类型为string。
输出参数
regStatus
该参数为I变量,接收指令返回状态码。
8104:指令执行成功。
-99:机器人通信异常。
示例
CALL JOB:MSR_VIEW_PIECE_DATA ARGF"1;80" ARGF"STRING"
上述示例表示,机器人将工件SN传入Mech-Metrics(工件编号为1),并将Mech-Metrics软件主界面切换至该工件的数据视图,保存指令状态码至编号80的数值寄存器。
标定
该指令用于机器人的手眼标定(外参标定)。该指令需要与Mech-MSR相机菜单栏中的3D相机标定工具结合使用。
调用顺序
在正式测量前,需要调用该指令进行机器人的手眼标定。
指令格式
MSR_CALIB("Move_Type;Pos_Jps;Wait_Time;Rnum;Ext;Pos")
输入参数
{Move_Type}
该参数表示机器人移动类型,取值为1或2。
-
1:直线移动。
-
2:关节移动。
{Pos_Jps}
该参数用于指定标定点的位姿形式,取值为1或2。
-
1:工具位姿。
-
2:关节角。
{Wait_time}
该参数表示机器人移动到标定点后的等待时间(防止机器人发生抖动),单位为秒,默认为2秒。数据类型为num。
{Ext}
该参数表示外部轴数据,单位为毫米。若现场有第7轴导轨,且机器人控制导轨运动,则该参数需设置为具体外部轴数据,否则该参数需设置为0。
输出参数
TOP_Status
用于保存指令状态码。
示例
CALL JOB:MSR_CALIB("2;1;2;6;0;99")
上述示例表示,标定点的位姿形式为工具位姿,机器人按关节角形式移动到标定点后的等待时间为2秒,且没有外部轴,使用P99存储标定点的位姿数据。