FANUC标准接口指令

本文介绍FANUC机器人与梅卡曼德在线测量系统之间进行TCP协议通信的标准接口指令。其中,机器人(客户端)发送指令给梅卡曼德在线测量系统(服务端),梅卡曼德在线测量系统将处理后的数据返回给机器人。

指令总览

指令名 是否必须调用 描述

初始化通信

设置与机器人通信的工控机IP地址、端口号,以及通信超时等待时间。

切换工程

机器人告知Mech-Metrics开始切换工程。

设置用户自定义信息

在开始测量任务前,机器人为开始测量指令设置自定义信息。

开始测量任务

机器人告知Mech-Metrics开始测量新工件,并将工件名称,工件SN,以及其他工件信息发送给Mech-Metrics。

运行特征测量

触发对应测量特征的Mech-MSR工程运行。如需进行多次测量,可调用本指令多次。

结束测量任务

机器人告知Mech-Metrics结束测量,询问工件测量结果。

测量中传入工件SN

部分场景中工件SN码无法在测量开始时获得,例如需要在测量过程中扫码获得。本指令用于在工件测量过程中传入工件SN。

查询工件历史数据

通过传入工件SN,将Mech-Metrics软件主界面切换为对应工件的数据视图。

标定

是(自动标定程序)

用于机器人的手眼标定(外参标定)

注意事项

在开始前,请注意以下事项:

  • FANUC机器人指令调用说明:

    • 程序的形参列表中各个参数之间自动以逗号分隔。

    • 每个形参变量直接插入相应类型的值即可。

    • 可以通过R寄存器SR寄存器间接取值。

    • 对于FANUC机器人,除初始化通信)外,其他指令内部已包含建立和断开TCP协议通信连接的逻辑,会在执行前后自动建立和断开连接。

  • 指令的数据单位:

    • 关节角的单位是度(°)。

    • 机器人法兰位姿或机器人工具位姿由位置和姿态组成,位置(XYZ坐标值)单位为毫米(mm);姿态使用欧拉角表示,单位为度(°)。

初始化通信

该指令用于设置与机器人通信的工控机IP地址、端口号,以及通信超时等待时间。

调用时机

在使用该指令后,用户需调用建立TCP协议通信连接才能建立机器人与在线测量系统之间的TCP协议通信连接。初始化仅需要执行一次。

指令格式

MSR_INIT_SKT(C_Tag,Ip_Addr,Svr_Port,Time_Out)

输入参数

C_Tag
Ip_Addr

该参数表示工控机的IP地址。数据类型为string。

Svr_Port

该参数表示工控机与机器人建立通信所使用的端口号。该参数值需与Mech-MSR软件中TCP ASCII服务通信配置(标准通信方式)中设置的主机端口号保持一致。数据类型为num。

若机器人系统版本为V10,则Svr_Port的取值范围为[1~32767]。

Time_Out

该参数表示通信超时等待时间,单位为分钟。

示例

CALL MSR_INIT_SKT ('1', '192.168.1.20', 30000, 5)

上述示例表示,机器人端口号1将要连接的工控机IP地址为192.168.1.20,端口号为30000,超时等待时间为5分钟。

切换工程

机器人告知Mech-Metrics开始切换工程。

调用时机

开始切换工程前。

指令格式

MSR_SW_PROJ(RobotID, Job,MSR_Status)

输入参数

RobotID

该参数表示工件编号。工件编号为1到99之间的整数。指定的工件编号必须已经在配置工件编号界面配置。数据类型为num。

Job

该参数表示工程编号。指定的工程编号必须已经通过工程切换规则配置。数据类型为num。

输出参数

MSR_Status

该参数用于保存指令状态码的R寄存器号。

8105:指令执行成功。

-99:机器人通信异常。

示例

CALL MSR_SW_PROJ(1, 2, 53)

上述示例表示,切换到工件编号为1,工程编号为1的工程,保存指令状态码至数值寄存器R[53]。

设置用户自定义信息

该指令用于为开始测量指令设置自定义信息。

调用时机

在开始测量任务前,需提前调用该指令用于设置开始测量的用户自定义信息。

指令格式

MSR_MEAS_PARM(CustomData[0]; CustomData[1]; CustomData[2]; CustomData[3]; CustomData[4]; CustomData[5]; CustomData[6]; CustomData[7])

输入参数

CustomData[0]-CustomData[7]

该参数表示工件的自定义信息。自定义参数仅在需要为Mech-Metrics提供更多工件信息时使用。本指令最多支持8个自定义参数,每个自定义参数的值为0到8之间的整数,0代表不需要该自定义参数。

如需使用自定义参数:

  1. 在Mech-Metrics软件配置界面上方功能区选择 通信  配置通信指令,为指定自定义参数(例如自定义参数1)配置其参数值(1到8)的含义。

  2. 在该指令中设置指定自定义参数。

示例

CALL MSR_MEAS_PARM(1,1,1,1,1,1,1,1)

该示例表示,提前设置工件的8个自定义信息,且自定义数值均为整数1。

开始测量任务

机器人告知Mech-Metrics开始测量新工件,并将工件名称,工件SN,以及其他工件信息发送给Mech-Metrics。

调用时机

新工件测量开始时。

指令格式

MSR_ST_MEAS(RobotID, SReg_Num1, SReg_Num2, Qc_Mode, Reg_Num, MSR_Status)

输入参数

RobotID

该参数表示工件编号。工件编号为1到99之间的整数。

SReg_Num1

该参数表示需测量的工件名(Piece_Name)的字符串寄存器编号。工件名可包括字母和数字,长度不超过20字符。

SReg_Num2

该参数表示工件SN(Piece_Sn)的字符串寄存器编号。工件SN又称工件序列号或工件ID,是该工件的唯一标识。工件SN可包括字母和数字,长度不超过30字符。

Qc_Mode

该参数表示工件的质量检测模式。QC全称为Quality Control。各参数值含义如下:

  • 1:全检。

  • 2:半检。

  • 其他:使用现有设置。

Reg_Num

该参数表示数值寄存器编号,用于保存软件返回的此次运行是连续运行还是单次运行。

0:单次运行。

1:连续运行。

如指定的是单次运行,机器人端单次执行如下指令:开始测量任务运行特征测量结束测量任务。如需测量多个特征,请运行多次运行特征测量指令。例如,用户需测量两个特征,则单次运行时,需在机器人端单次执行如下指令:程序开始→开始测量任务运行特征测量运行特征测量结束测量任务→程序结束。

若指定的是连续运行,机器人端单次执行一轮指令后,会返回到开始测量任务处重复执行。若某轮中的开始测量任务返回单次运行,机器人程序会在本轮指令执行完成后停止。

  • 默认情况下,Mech-Metrics会给机器人返回 0,告知机器人此次运行为单次运行。

  • 在半动态重复性测试中,Mech-Metrics会给机器人返回 1,告知机器人此次运行为连续运行。由于半动态重复性测试过程中无需手动移动机器人或手动装夹工件,机器人可连续执行多轮指令。

MSR_Status

用于保存指令状态码的R寄存器号。

8100:表示执行成功。

-99:表示机器人通信异常。

示例

CALL MSR_ST_MEAS(1,1,2,1,10,53)

该示例表示机器人告知Mech-Metrics开始测量新工件,并将工件编号1、字符串寄存器编号1的工件名、字符串寄存器编号2的工件SN和质量检测全检模式1发给软件,同时将Mech-Metrics软件此次运行模式保存在编号10的数值寄存器地址,保存状态码至数值寄存器R[53]。

运行特征测量

触发对应测量特征的Mech-MSR工程运行。

调用时机

机器人到达测量特征拍照位置。

指令格式

MSR_MEAS_FEA(RobotID, Measure_Index,MSR_Status)

输入参数

RobotID

该参数表示工件编号。工件编号为1到99之间的整数。指定的工件编号必须已经在配置工件编号界面配置。数据类型为num。

Measure_Index

该参数表示待测量特征的测量编号。数据类型为num。测量编号为该特征的唯一标识。测量特征编号为1到999之间的整数。

输出参数

MSR_Status

该参数用于保存指令状态码的R寄存器号。

8101:指令执行成功。

-99:机器人通信异常。

示例

CALL MSR_MEAS_FEAT(1, 3, 53)

该示例表示,机器人侧将触发工件编号1、测量特征的测量编号为3的Mech-MSR工程运行,保存状态码至数值寄存器R[53]。

结束测量任务

机器人告知Mech-Metrics结束测量,询问工件测量结果。

调用时机

最后一个测量特征拍照完成,工件测量完成。

指令格式

MSR_END_MEAS(RobotID,Reg_Judge,Reg_Num1,Reg_Num2,Reg_Num3,MSR_Status)

输入参数

RobotID

该参数表示工件编号。工件编号为1到99之间的整数。指定的工件编号必须已经在配置工件编号界面配置。数据类型为num。

输出参数

Reg_Judge

该参数表示数值寄存器编号,用于保存工件判定结果。1表示OK,0表示NG。

Reg_Num1, Reg_Num2, Reg_Num3

该参数表示数值寄存器编号,用于保存工件的测量项数量。数据类型为num。具体如下:

  • Reg_Num1保存工件超出一级公差带的测量项数量。

  • Reg_Num2保存工件超出二级公差带的测量项数量。

  • Reg_Num3保存工件超出三级公差带的测量项数量。

MSR_Status

该参数用于保存指令状态码的R寄存器号。

8102:指令执行成功。

-99:机器人通信异常。

示例

CALL MSR_END_MEAS(1,11,12,13,14,53)

上述示例表示,机器人告知Mech-Metrics结束测量(工件编号为1),同时Mech-Metrics返回测量结果,工件判定结果保存在编号11的数值寄存器中,工件超出一级、二级、三级公差带的测量项数量分别保存在编号12、13、14的数值寄存器中,保存状态码至数值寄存器R[53]。

测量中传入工件SN

部分场景中工件SN码无法在测量开始时获得,例如需要在测量过程中扫码获得。本指令用于在工件测量过程中传入工件SN。

调用时机

当前工件测量过程中任意时机。

指令格式

MSR_SET_WP(RobotID, SReg_Num2, MSR_Status)

输入参数

RobotID

该参数表示工件编号。工件编号为1到99之间的整数。指定的工件编号必须已经在配置工件编号界面配置。数据类型为num。

PieceSN

该参数表示工件SN的字符串寄存器编号。工件SN又称工件序列号或工件ID,是该工件的唯一标识。工件SN可包括字母和数字,长度不超过30字符。

输出参数

MSR_Status

该参数用于保存指令状态码的R寄存器号。

8103:指令执行成功。

-99:机器人通信异常。

示例

CALL MSR_SET_WP(1, 2, 53)

该示例表示,机器人向Mech-Metrics中传入记录在字符串寄存器编号2中的工件SN(工件编号为1),保存状态码至数值寄存器R[53]。

查询工件历史数据

通过外部传入工件SN,将Mech-Metrics软件主界面切换为传入编号的工件。

调用时机

非测量中任意时刻。

指令格式

MSR_VIEW_WP(RobotID, SReg_Num2, MSR_Status)

输入参数

RobotId

该参数表示工件编号。工件编号为1到99之间的整数。数据类型为num。

PieceSn

该参数表示工件SN的字符串寄存器编号。工件SN又称工件序列号或工件ID,是该工件的唯一标识。工件SN可包括字母和数字,长度不超过30字符。

输出参数

MSR_Status

该参数用于保存指令状态码的R寄存器号。

8104:指令执行成功。

-99:机器人通信异常。

示例

CALL MSR_VIEW_WP(1, 2, 53)

上述示例表示,机器人在未进行测量时,将字符串寄存器地址编号2中的工件SN传入Mech-Metrics(工件编号为1),并将Mech-Metrics软件主界面切换至该工件的数据视图,保存状态码至数值寄存器R[53]。

标定

该指令用于机器人的手眼标定(外参标定)。该指令需要与Mech-MSR相机菜单栏中的3D相机标定工具结合使用。

调用顺序

在正式测量前,需要调用该指令进行机器人的手眼标定。

指令格式

MSR_CALIB(Move_Type,PosJps,WaitTime,AxisNum,AxisVal,Reg_CalibPos,Reg_CalibMov)

输入参数

{Move_Type}

该参数表示机器人移动类型,取值为1或2。

  • 1:直线移动。

  • 2:关节移动。

{Pos_Jps}

该参数用于指定标定点的位姿形式,取值为1或2。

  • 1:工具位姿。

  • 2:关节角。

{Wait_time}

该参数表示机器人移动到标定点后的等待时间(防止机器人发生抖动),单位为秒,默认为2秒。数据类型为num。

AxisNum

该参数表示机器人轴数。

{Ext}

该参数表示外部轴数据,单位为毫米。若现场有第7轴导轨,且机器人控制导轨运动,则该参数需设置为具体外部轴数据,否则该参数需设置为0。

机器人外部轴类型必须配置为Auxiliary Linear Axis。该指令暂不适用于其他类型的外部轴。

Reg_CalibPos

该参数表示MSR_AUTO_CALIB中标定起始点所使用的位置寄存器号码。

Reg_CalibMov

该参数表示Mech-MSR计算的标定点位姿所使用的位置寄存器号码。该参数仅在MSR_CALIB指令内部供MSR_MOVEJ和MSR_MOVEL使用。

输出参数

TOP_Status

用于保存指令状态码。

示例

CALL MSR_CALIB(2,1,2,6,0,100,99)

上述示例表示,标定点的位姿形式为工具位姿,机器人按关节角形式移动到标定点后的等待时间为2秒,且没有外部轴,标定起始点使用寄存器PR[100]进行存储。

该页面是否有帮助?

可以通过以下方式反馈意见:

我们重视您的隐私

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