YASKAWA标准接口指令

您正在查看最新版本(V2.1.0)的文档。如果您想查阅其他版本的文档,可以点击页面右上角“切换版本”按钮进行切换。

■ 如果您不确定当前使用的产品是哪个版本,请随时联系梅卡曼德技术支持。

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

send receive

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

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

    • 指令的参数列表中各个参数间以英文分号分隔。

    • 调用指令时的参数:输入参数默认是字符串常量;输出参数默认是字符串常量,在后台程序中存在与之对应的全局变量。

    • 对于Mech-Vision和Mech-Viz 1.6.1之前的版本,每个指令都包含通信连接和通信断开语句。

    • 对于Mech-Vision和Mech-Viz 1.6.1及以上的版本,通信连接和通信断开语句成为两个独立指令(建立TCP协议通信连接指令和断开TCP协议通信连接指令),从而避免频繁连接和断开机器人与视觉系统之间的通信。

  • 指令的数据单位:

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

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

  • 视觉点或路径点:

    • 视觉点:Mech-Vision识别的目标物体,一个视觉点包括物体位姿、标签、物体尺寸、自定义数据等信息。

    • 路径点:机器人沿着规划路径需逐一到达的点位,一个路径点包括机器人位姿、标签、移动类型等信息。路径点可分为以下两种类型:

      • 视觉移动路径点:“视觉移动”步骤对应的路径点。

      • 非视觉移动路径点:除“视觉移动”步骤外,其他移动类步骤对应的路径点。

通信初始化

功能介绍

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

调用顺序

在使用该指令后,用户需调用建立TCP协议通信连接指令才能建立机器人与视觉系统之间的TCP协议通信连接。

指令格式

MM_INIT_SOCKET("IP_Address;Server_Port;Time_Out")

输入参数

IP_Address

该参数表示工控机的IP地址。

Server_Port

该参数表示工控机与机器人建立通信所使用的端口号。该参数值需与机器人通信配置(在Mech-Vision软件的工具栏中)中设置的主机端口号保持一致。

Time_Out

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

示例

CALL JOB:MM_INIT_SOCKET("192.168.1.20;50000;5")

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

建立TCP协议通信连接

该指令用于建立机器人与视觉系统之间的TCP协议通信连接。

调用顺序

该指令需要在通信初始化指令之后立即被调用。

指令格式

MM_OPEN_SOCKET

示例

CALL JOB:MM_OPEN_SOCKET

断开TCP协议通信连接

该指令用于断开机器人与视觉系统之间的TCP协议通信连接。

调用顺序

在获取到Mech-Vision或Mech-Viz工程的结果后,用户可立即调用该指令断开通信连接,然后再将获取的结果转存至指定变量。如果长时间未断开通信连接,则机器人程序有可能会引发异常断开连接的错误。

指令格式

MM_CLOSE_SOCKET

示例

CALL JOB:MM_CLOSE_SOCKET

运行Mech-Vision工程

功能介绍

该指令用于触发Mech-Vision工程运行。在Mech-Vision工程运行期间,视觉系统会执行相机拍照,并对图像数据进行一系列的视觉算法处理,最终得到一系列视觉点或路径点。

  • 视觉点:Mech-Vision识别的目标物体,一个视觉点包括物体位姿、标签、物体尺寸、自定义数据等信息。

  • 路径点:机器人沿着规划路径需逐一到达的点位,一个路径点包括机器人位姿、标签、移动类型等信息。

调用顺序

指令格式

MM_START_VIS("job;pos_num_need;sendpos_type;prNum")

输入参数

job

该参数表示Mech-Vision工程编号。Mech-Vision工程编号可在Mech-Vision工程列表窗口中查看,工程名称前的数字表示工程编号。

pos_num_need

该参数表示期望从Mech-Vision工程获取的视觉点或路径点数量。取值为0或大于0的整数,具体说明如下。

若Mech-Vision工程中存在“路径规划”步骤,该参数表示预期路径点数量,否则表示预期视觉点数量。
  • 0:从Mech-Vision工程获取所有视觉点或路径点。

  • 大于0的整数:从Mech-Vision工程获取指定数量的视觉点或路径点。

    • 如果Mech-Vision工程输出的视觉点或路径点总数小于指定的参数值,则获取输出的所有视觉点或路径点。

    • 如果Mech-Vision工程输出的视觉点或路径点总数大于或等于指定的参数值,则获取指定数量的视觉点或路径点。

set number

sendpos_type

该参数指定真实机器人的位姿将以何种形式传入Mech-Vision工程。取值为0、1、2或3,具体说明如下表。

sendpos_type 说明 适用场景

0

该指令无需向Mech-Vision工程传入机器人位姿。

相机的安装方式为Eye To Hand。若Mech-Vision工程中使用“路径规划”步骤,则路径规划的起始点为路径规划工具中设置的Home点。

1

该指令需要将机器人的关节角和法兰位姿传入Mech-Vision工程。

相机的安装方式为Eye In Hand。除桁架机器人外,大多数机器人适用该设定。

2

该指令需要将机器人的当前法兰位姿传入Mech-Vision工程。

相机的安装方式为Eye In Hand,机器人无关节角数据,仅有法兰位姿数据(如桁架机器人)。

3

该指令需要将用户自定义的关节角传入Mech-Vision工程。

相机的安装方式为Eye To Hand,并且Mech-Vision工程中存在“路径规划”步骤,且需要从机器人端设置“路径规划”步骤的起始点。

prNum

该参数指定P变量的编号。该编号对应的P变量用于保存用户自定义的关节角数据。仅当sendpos_type参数值为3时,才会指定该参数。

P变量的数据形式需要设置为关节(或者脉冲),否则会提示“MM:PVAR_SET_ERROR”错误。用户可从下图所示的位置进行设置。
interface 2

示例

CALL JOB:MM_START_VIS("1;1;1")

上述示例表示,运行编号为1的Mech-Vision工程,且希望Mech-Vision工程返回1个视觉点,同时机器人将当前关节角和法兰数据传入Mech-Vision工程。

获取视觉结果

功能介绍

该指令用于获取Mech-Vision输出的视觉结果(一系列视觉点)。视觉点的物体位姿(即“输出”步骤的poses端口数据)将会由视觉系统自动转换为对应机器人的工具位姿,具体转换流程如下。

get tcp
  1. 将物体位姿由四元数形式转换为欧拉角形式。

  2. 将物体位姿绕X轴旋转180°,使其Z轴朝下。

    convert tcp

调用顺序

该指令需在运行Mech-Vision工程指令之后被调用。在使用该指令后,用户需调用转存视觉结果或规划路径(位姿为工具位姿)指令才可访问位姿数据。

指令格式

MM_GET_VISDATA("Job;Pose_Num;MM_Status")

输入参数

Job

该参数表示Mech-Vision工程编号。Mech-Vision工程编号可在Mech-Vision工程列表窗口中查看,工程名称前的数字表示工程编号。

输出参数

Pose_Num

该参数指定I变量的编号。该编号对应的I变量用于保存Mech-Vision返回的视觉点数量。

MM_Status

该参数指定I变量的编号。该编号对应的I变量用于保存该指令执行的状态码。若指令执行正常,则状态码为1100。 若指令执行异常,则状态码为对应的错误码,具体可参考《标准接口状态码及错误排查》。

调用该指令后,视觉系统默认在10秒内未返回处理结果,则将返回超时错误状态码。在Mech-Vision工具栏的机器人通信配置  下一步  高级设置 下,可根据需求更改此默认超时时间。

set vis time

示例

CALL JOB:MM_GET_VISDATA("1;51;52")

上述示例表示,获取Mech-Vision工程1的视觉结果,视觉点数量将保存至I51,指令执行的状态码将保存至I52。

转存视觉结果或规划路径(位姿为工具位姿)

功能介绍

该指令用于将某个视觉点或路径点的工具位姿、标签和末端工具编号转存到指定变量中。

指令格式

MM_GET_POSE("Index;Robtarget;Label;Tool_Id")

输入参数

Index

该参数用于指定视觉点或路径点的索引号,即将该索引号对应视觉点或路径点的工具位姿、标签和末端工具编号转存到指定变量中。索引号从1开始。

输出参数

Robtarget

该参数指定P变量的编号。该编号对应的P变量用于保存指定索引号对应视觉点或路径点的工具位姿。

P变量的数据形式需要设置为机器人。用户可从下图所示的位置进行设置。
interface 1

Label

该参数指定I变量的编号。该编号对应的I变量用于保存指定索引号对应视觉点或路径点的标签。

Tool_Id

该参数指定I变量的编号。该编号对应的I变量用于保存指定索引号对应视觉点或路径点的末端工具编号。

示例

CALL JOB:MM_GET_POSE("1;60;61;62")

上述示例表示,第一个视觉点或路径点的工具位姿将保存至P60,标签将保存至I61,末端工具编号将保存至I62。

转存规划路径(位姿为关节角)

功能介绍

该指令用于将某个路径点的关节角、标签和末端工具编号转存到指定变量中。

指令格式

MM_GET_JPS("Index;Jointtarget;Label;Tool_Id")

输入参数

Index

该参数用于指定路径点的索引号,即将该索引号对应路径点的关节角、标签和末端工具编号转存到指定变量中。索引号从1开始。

输出参数

Jointtarget

该参数指定P变量的编号。该编号对应的P变量用于保存指定索引号对应路径点的关节角。

P变量的数据形式需要设置为关节(或者脉冲)。用户可从下图所示的位置进行设置。
interface 2

Label

该参数指定I变量的编号。该编号对应的I变量用于保存指定索引号对应路径点的标签。

Tool_Id

该参数指定I变量的编号。该编号对应的I变量用于保存指定索引号对应路径点的末端工具编号。

示例

CALL JOB:MM_GET_JPS("1;60;61;62")

上述示例表示,第一个路径点的关节角将保存至P60,标签将保存至I61,末端工具编号将保存至I62。

切换Mech-Vision参数配方

功能介绍

该指令用于切换Mech-Vision工程所使用的参数配方。下图表示手动为Mech-Vision工程切换配方A或配方B。参数配方相关的知识,可参考《 参数配方》。

set recipe

调用顺序

该指令需在运行Mech-Vision工程指令之前被调用。

指令格式

MM_SET_MODEL("Job;Model_number")

输入参数

Job

该参数表示Mech-Vision工程编号。Mech-Vision工程编号可在Mech-Vision工程列表窗口中查看,工程名称前的数字表示工程编号。

Model_number

该参数表示Mech-Vision工程中参数配方的编号。如何查看参数配方的编号,可参考《查看参数配方的编号》。

示例

CALL JOB:MM_SET_MODEL("1;1")

上述示例表示,将Mech-Vision工程1的参数配方切换成编号为1的参数配方。

获取Mech-Vision规划路径

功能介绍

该指令用于获取Mech-Vision规划的路径(一系列路径点)。此处的路径由“路径规划工具”(从下图的打开编辑器进入)规划。“路径规划”步骤相关的内容,可参考《路径规划》。

Mech-Vision“输出”步骤的端口类型参数需要设置为“预定义(机器人路径)”。
get plan path step

调用顺序

该指令需在运行Mech-Vision工程指令之后被调用。在使用该指令后,用户需调用转存视觉结果或规划路径(位姿为工具位姿)指令或转存规划路径(位姿为关节角)指令才可访问位姿数据。

指令格式

MM_GET_VISPATH("job;GetPos_Type;Pos_Num;VisPos_Num;MM_Status")

输入参数

job

该参数表示Mech-Vision工程编号。Mech-Vision工程编号可在Mech-Vision工程列表窗口中查看,工程名称前的数字表示工程编号。

GetPos_Type

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

输出参数

Pos_Num

该参数指定I变量的编号。该编号对应的I变量用于保存视觉系统返回的路径点数量。视觉系统默认单次发送路径点的最大数量为20,因此该参数默认最大值为20。 在Mech-Vision工具栏的机器人通信配置  下一步  高级设置下,可根据需求更改默认最大数量,但最大数量的上限为30。

set number
在调用获取Mech-Vision规划路径指令前,请务必将运行Mech-Vision工程指令的pos_num_need设置为0,以减少调用获取Mech-Vision规划路径指令的次数。若运行Mech-Vision工程指令的pos_num_need设置为1,则每次调用获取Mech-Vision规划路径指令只会获取一个路径点,只有多次调用才能获取全部路径点。

VisPos_Num

该参数指定I变量的编号。该编号对应的I变量用于保存路径规划工具中“视觉移动”步骤对应的路径点(视觉移动路径点)在路径中的位置编号。如果路径中无视觉移动路径点,则该参数值为0。

例如,如果规划路径由以下路径点组成:“定点移动_1”,“定点移动_2”,“视觉移动”,“定点移动_3”,则视觉移动路径点的位置编号为3。

MM_Status

该参数指定I变量的编号。该编号对应的I变量用于保存该指令执行的状态码。若指令执行正常,则状态码为1103。 若指令执行异常,则状态码为对应的错误码,具体可参考《标准接口状态码及错误排查》。

调用该指令后,视觉系统默认在10秒内未返回处理结果,则将返回超时错误状态码。在Mech-Vision工具栏的机器人通信配置  下一步  高级设置 下,可根据需求更改此默认超时时间。

set vis time

示例

CALL JOB:MM_GET_VISPATH("2;2;51;52;53")

上述示例表示,获取Mech-Vision工程2返回的规划路径,路径点的位姿形式为工具位姿,路径点的数量将保存至I51,视觉移动路径点在路径中的位置编号将保存至I52,指令执行的状态码将保存至I53。

获取Mech-Vision自定义数据

功能介绍

该指令用于从Mech-Vision“输出”步骤获取自定义端口的数据。该指令调用一次便可将“输出”步骤的所有端口数据存放到机器人内存中。

自定义端口的设置可从“输出”步骤参数的打开编辑器处进入,其中自定义通信键名就是自定义端口名称,例如下图中customeData1和customeData2端口就是自定义端口。

  1. 预设通信键(下图中的poses、labels、sizes、offsets等)所代表的端口数据不属于自定义数据。

  2. Mech-Vision “输出”步骤的端口类型参数需要设置为“自定义”,且必须存在poses端口。

custom data

调用顺序

该指令需在运行Mech-Vision工程指令之后被调用。在使用该指令后,用户需调用转存Mech-Vision自定义数据指令才可访问自定义数据。

指令格式

MM_GET_DYDATA("job;regPosNum;regStatus")

输入参数

job

该参数表示Mech-Vision工程编号。Mech-Vision工程编号可在Mech-Vision工程列表窗口中查看,工程名称前的数字表示工程编号。

输出参数

regPosNum

该参数指定I变量的编号。该编号对应的I变量用于保存Mech-Vision返回的视觉点数量。

regStatus

该参数指定I变量的编号。该编号对应的I变量用于保存该指令执行的状态码。若指令执行正常,则状态码为1100。 若指令执行异常,则状态码为对应的错误码,具体可参考《标准接口状态码及错误排查》。

示例

CALL JOB:MM_GET_DYDATA("2;60;61")

上述示例表示,获取Mech-Vision工程2的自定义数据,视觉点数量将保存至I60,指令执行的状态码将保存至I61。

转存Mech-Vision自定义数据

功能介绍

该指令用于将获取的Mech-Vision自定义数据转存到指定变量中。

调用顺序

该指令需在获取Mech-Vision自定义数据指令之后被调用。

指令格式

MM_GET_DYPOSE("serial;prNum;regLabel;rrNum")

输入参数

serial

该参数用于指定视觉点的索引号,即将该索引号对应视觉点的自定义数据转存到指定变量中。索引号从1开始。

输出参数

prNum

该参数指定P变量的编号。该编号对应的P变量用于保存指定索引号对应视觉点的工具位姿(使用前需要将该P变量的类型选择为“机器人”)。

regLabel

该参数指定I变量的编号。该编号对应的I变量用于保存指定索引号对应视觉点的标签。若Mech-Vision未设置标签端口,则会用0填充。

rrNum

该参数指定R变量的起始编号。从该起始编号开始,将指定索引号对应视觉点的自定义数据依次存储至对应R变量。在指定该参数时,注意自定义数据的数量,保证有足够的R变量用于保存自定义数据。

示例

CALL JOB:MM_GET_DYPOSE("2;60;60;60")

上述示例表示,第二个视觉点的工具位姿将保存至P60,对应的标签将保存至I60,对应的自定义数据将从R60开始依次进行保存。

获取吸盘DO信号

功能介绍

该指令用于获取Mech-Vision或Mech-Viz工程规划的多分区吸盘的控制信号。机器人通过设置吸盘DO信号指令将获取到的DO信号作用于末端工具。

在使用该指令前,用户需提前在Mech-Vision或Mech-Viz软件中进行如下配置。

  • 配置Mech-Vision工程

    • 在“路径规划”步骤参数中,单击配置向导。在全局配置中,将箱子拆垛开关置于打开状态。

      vision move vis
    • 在“路径规划”步骤参数中,单击配置向导,双击末端工具名称,工具类型选择拆垛吸盘,单击拆垛吸盘配置,根据需求配置DO信号。

      sucker vis
  • 配置Mech-Viz工程

    • 在Mech-Viz软件中,“视觉移动”步骤的 抓取工艺 选择 箱子拆垛

      vision move viz
    • 在Mech-Viz软件中,双击末端工具名称,工具类型选择拆垛吸盘,单击拆垛吸盘配置,根据需求配置DO信号。

      sucker viz

调用顺序

指令格式

MM_GET_DOLIST("Resource;blockNum")

输入参数

Resource

该参数指定DO信号列表的来源。取值为0或正整数,具体说明如下。

  • 0:从Mech-Viz获取DO信号列表。

  • 正整数:从Mech-Vision获取DO信号列表。此处设置的正整数就是Mech-Vision工程编号。

blockNum

该参数为吸盘配置器中设置的吸盘分区数量。例如,上图中的吸盘分区数量为3。

根据所搭建工程的不同,该指令返回的DO信号会有所不同,具体如下。

  • Mech-Vision工程规划的吸盘DO信号

    • 在路径规划的全局配置中,若规划全部视觉结果开关处于关闭状态,则该指令返回64个DO信号,表示本轮规划的吸盘DO信号,其中有效的DO信号为非负整数,范围为 0~999;无效的DO信号为-1(作为占位值)。

      plan all vis off

      例如,在下表中,返回的有效DO信号为1、3、5、6,即表示机器人需将上述DO信号对应的值设为ON。

      第1个

      第2个

      第3个

      第4个

      第5个

      第6个

      第7个

      第8个

      第63个

      第64个

      1

      3

      5

      6

      -1

      -1

      -1

      -1

      -1

      -1

    • 在路径规划的全局配置中,若规划全部视觉结果开关处于打开状态,则Mech-Vision可以根据同一视觉结果进行多轮规划。该指令返回的64个DO信号是所有轮规划的吸盘DO信号。此时使用吸盘分区数量,即可区分每轮规划的吸盘DO信号。

      plan all vis on

      例如,吸盘分区数量为4,该指令共返回64个DO信号,其中,每4个DO信号为一轮规划的多分区吸盘控制信号。

      第1轮规划

      第2轮规划

      第16轮规划

      第1个

      第2个

      第3个

      第4个

      第5个

      第6个

      第7个

      第8个

      第61个

      第62个

      第63个

      第64个

      1

      3

      4

      -1

      1

      4

      -1

      -1

      -1

      -1

      -1

      -1

  • Mech-Viz工程规划的吸盘DO信号

    • 若“视觉移动”步骤未勾选“复用视觉结果”,则该指令返回64个DO信号,表示本轮规划的吸盘DO信号,其中有效的DO信号为非负整数,范围为 0~999;无效的DO信号为-1(作为占位值)。

      vision move off

      例如,在下表中,返回的有效DO信号为1、3、5、6,即表示机器人需将上述DO信号对应的值设为ON。

      第1个

      第2个

      第3个

      第4个

      第5个

      第6个

      第7个

      第8个

      第63个

      第64个

      1

      3

      5

      6

      -1

      -1

      -1

      -1

      -1

      -1

    • 若“视觉移动”步骤勾选“复用视觉结果”,且“视觉移动”步骤在循环流程中,则Mech-Viz可以根据同一视觉结果进行多轮规划。该指令返回的64个DO信号是所有轮规划的吸盘DO信号。此时使用吸盘分区数量,即可区分每轮规划的吸盘DO信号。

      vision move on

      例如,吸盘分区数量为4,该指令共返回64个DO信号,其中,每4个DO信号为一轮规划的多分区吸盘控制信号。

      第1轮规划

      第2轮规划

      第16轮规划

      第1个

      第2个

      第3个

      第4个

      第5个

      第6个

      第7个

      第8个

      第61个

      第62个

      第63个

      第64个

      1

      3

      4

      -1

      1

      4

      -1

      -1

      -1

      -1

      -1

      -1

示例

CALL JOB:MM_GET_DOLIST("0;1")

上述示例表示,将从Mech-Viz获取的DO信号列表保存至setdo[]数组,其中有效DO信号为setdo[0]~setdo[io_index-1]。

设置吸盘DO信号

功能介绍

该指令用于将机器人获取的吸盘DO信号作用于末端工具。

调用顺序

该指令需在获取吸盘DO信号指令之后被调用。

指令格式

MM_SET_DOLIST("loop_index")

输入参数

loop_index

该参数指定轮次,即表示设置该轮规划的吸盘DO信号。

示例

CALL JOB:MM_GET_DOLIST("0;1")
CALL JOB:MM_SET_DOLIST("1")

上述示例表示,将从Mech-Viz获取的DO信号列表写入到通用输出信号OT1~OT64。

运行Mech-Viz工程

功能介绍

该指令用于触发Mech-Viz工程运行。Mech-Viz是基于Mech-Vision输出的视觉结果规划机器人的移动路径。

在Mech-Viz工程资源面板中,右键单击工程名称,勾选设为自动加载

调用顺序

工程中的步骤参数需要在触发Mech-Viz工程运行之前被设置,因此读取Mech-Viz步骤参数值指令或设置Mech-Viz步骤参数值指令需先于运行Mech-Viz工程指令被调用。

指令格式

MM_START_VIZ("sendpos_type;prNum")

输入参数

sendpos_type

该参数指定真实机器人的位姿将以何种形式传入Mech-Viz工程,取值为0、1或2,具体说明如下表。

机器人位姿类型 说明 适用场景

0

该指令无需向Mech-Viz工程传入机器人位姿,Mech-Viz工程中仿真机器人将从初始位姿JPs=[0,0,0,0,0,0]开始移动到第一个路径点。

相机的安装方式为Eye To Hand。

1

该指令需要将机器人的当前关节角和法兰位姿传入Mech-Viz工程,Mech-Viz工程中仿真机器人将从传入的关节角开始移动到第一个路径点。

相机的安装方式为Eye In Hand,推荐使用该设定。

2

该指令需要将机器人的一个示教点(非当前关节角,而是自定义关节角)传入Mech-Viz工程,用于在机器人处于拍照区域外时,提前触发Mech-Viz工程规划下一轮路径(如下图),Mech-Viz工程中仿真机器人将从传入的示教点开始运动到第一个路径点。

相机的安装方式为Eye To Hand,推荐使用该设定。

相机的安装方式为Eye To Hand,为何机器人位姿类型推荐使用2?

在下图中,机器人正在放置区进行作业。

若在此种场景中,将sendpos_type设置为1,表示将机器人当前位姿发送给Mech-Viz,真实机器人可能在移动至其他位置后才移动至第一个路径点。仿真机器人将直接从当前位置移动至Mech-Viz工程中的第一个路径点,在这段移动过程中可能会检测到碰撞而发出警告。

若在此种场景中,将sendpos_type设置为2,表示将机器人端设置的示教拍照点发送给Mech-Viz,这样真实机器人在放置区即可提前触发Mech-Viz规划下一轮路径,从而缩短节拍。

以上就是Eye To Hand模式下,机器人位姿类型推荐使用2的原因。

robot example

prNum

该参数指定P变量的编号。该编号对应的P变量用于保存用户自定义的关节角数据。仅当sendpos_type参数值为2时,才会指定该参数。

P变量的数据形式需要设置为关节(或者脉冲),否则会提示“MM:PVAR_SET_ERROR”错误。用户可从下图所示的位置进行设置。
interface 2

示例

CALL JOB:MM_START_VIZ("1")

上述示例表示,将当前机器人的关节角和法兰位姿传入Mech-Viz工程,然后运行Mech-Viz工程。

设置Mech-Viz消息分支出口

功能介绍

该指令用于设定“消息分支”步骤的出口。Mech-Viz工程运行至“消息分支”步骤时,将等待该指令指定出口。

set branch

调用顺序

该指令需在运行Mech-Viz工程指令之后被调用。

指令格式

MM_SET_BRANCH("Branch_Num;Exit_Num")

输入参数

Branch_Num

该参数用于指定消息分支的步骤编号。取值为正整数。步骤编号可在步骤参数中获取,例如上图中的步骤编号为1。

Exit_Num

该参数用于指定“消息分支”步骤的出口号。取值为正整数。若将该参数值设置为N,则Mech-Viz工程将沿“消息分支”步骤的N-1出口继续执行。

示例

CALL JOB:MM_SET_BRANCH("1;3")

上述示例表示,Mech-Viz工程在编号为1的“消息分支”步骤处将沿出口2继续执行。

设置Mech-Viz当前索引

功能介绍

该指令用于设定索引类步骤的当前索引值。索引类步骤是指包含“索引”参数的步骤,例如“按阵列移动”、“按序列移动”、“自定义垛型”、“预设垛型”等步骤。

set index

调用顺序

通常在索引类步骤前存在一个“消息分支”步骤,机器人端首先调用运行Mech-Viz工程指令,然后调用设置Mech-Viz当前索引指令,最后调用设置Mech-Viz消息分支出口指令。如此,Mech-Viz将有充足时间设置当前索引值。

指令格式

MM_SET_INDEX("Skill_Num;Index_Num")

输入参数

Skill_Num

该参数用于指定索引类步骤的步骤编号。取值为正整数。步骤编号可在步骤参数中获取,例如上图中的步骤编号为3。

Index_Num

该参数用于指定索引类步骤的当前索引值。取值为正整数。若将该参数值设置为N,则相应步骤的当前索引值为N-1。

示例

CALL JOB:MM_SET_INDEX("2;10")

上述示例表示,设置Mech-Viz工程中编号为2的步骤的当前索引值为9。

获取Mech-Viz规划路径

功能介绍

该指令用于获取Mech-Viz工程规划的移动路径(一系列路径点)。

路径点:机器人沿着规划路径需逐一到达的点位,一个路径点包括机器人位姿、标签、移动类型等信息。路径点可分为以下两种类型:

  • 视觉移动路径点:“视觉移动”步骤对应的路径点。

  • 非视觉移动路径点:除“视觉移动”步骤外,其他移动类步骤对应的路径点。

调用顺序

该指令需在运行Mech-Viz工程之后被调用。在使用该指令后,用户需调用转存视觉结果或规划路径(位姿为工具位姿)指令或转存规划路径(位姿为关节角)指令才可访问位姿数据。

指令格式

MM_GET_VIZDATA("GetPos_Type;Pos_Num;VisPos_Num;MM_Status")

输入参数

GetPos_Type

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

输出参数

Pos_Num

该参数指定I变量的编号。该编号对应的I变量用于保存视觉系统返回的路径点数量。视觉系统默认单次发送路径点的最大数量为20,因此该参数默认最大值为20。 在Mech-Vision工具栏的机器人通信配置  下一步  高级设置下,可根据需求更改默认最大数量,但最大数量的上限为30。

set number

VisPos_Num

该参数指定I变量的编号。该编号对应的I变量用于保存Mech-Viz工程中“视觉移动”步骤对应的路径点(视觉移动路径点)在路径中的位置编号。如果路径中无视觉移动路径点,则该参数值为0。

例如,如果规划路径由以下路径点组成:“定点移动_1”,“定点移动_2”,“视觉移动”,“定点移动_3”,则视觉移动路径点的位置编号为3。

MM_Status

该参数指定I变量的编号。该编号对应的I变量用于保存该指令执行的状态码。若指令执行正常,则状态码为2100。 若指令执行异常,则状态码为对应的错误码,具体可参考《标准接口状态码及错误排查》。

调用该指令后,视觉系统默认在10秒内未返回处理结果,则将返回超时错误状态码。在Mech-Vision工具栏的机器人通信配置  下一步  高级设置 下,可根据需求更改此默认超时时间。

set viz time

示例

CALL JOB:MM_GET_VIZDATA("2;51;52;53")

上述示例表示,获取Mech-Viz工程规划的路径,路径点的位姿形式为工具位姿,路径点的数量将保存至I51,视觉移动路径点在路径中的位置编号将保存至I52,指令执行的状态码将保存至I53。

获取视觉移动规划数据或自定义数据

功能介绍

该指令用于获取Mech-Vision工程的视觉移动规划数据,或者获取Mech-Viz工程的视觉移动规划数据或自定义数据。该指令调用一次便可将所有数据存放至机器人内存中。

对于Mech-Viz 2.0版本软件,该指令暂时不支持获取自定义数据,仅支持获取视觉移动规划数据。
  • 对于Mech-Vision工程:此处的“视觉移动规划数据”是指路径规划工具(从“路径规划”步骤处进入)中“视觉移动”步骤规划的数据,包括被抓取工件的标签、已抓取的工件总数、本次抓取的工件数量、吸盘边角号、TCP偏移量、工件组朝向、单个工件朝向、工件组尺寸。

  • 对于Mech-Viz工程:

    • 视觉移动规划数据:Mech-Viz中“视觉移动”步骤规划的数据,包括被抓取工件的标签、已抓取的工件总数、本次抓取的工件数量、吸盘边角号、TCP偏移量、工件组朝向、单个工件朝向、工件组尺寸。

    • 自定义数据:Mech-Vision自定义端口输出的数据,再经Mech-Viz转发后得到的数据。

      自定义端口的设置可从“输出”步骤参数的打开编辑器处进入,其中自定义通信键名就是自定义端口名称,例如下图中customeData1和customeData2端口就是自定义端口。

      1. 预设通信键(下图中的poses、labels、sizes、offsets等)所代表的端口数据不属于自定义数据。

      2. Mech-Vision “输出”步骤的端口类型参数需要设置为“自定义”,且必须存在poses端口。

      custom data

调用顺序

该指令需在运行Mech-Vision工程指令或运行Mech-Viz工程之后被调用。在使用该指令后,用户需调用转存视觉移动规划数据或自定义数据指令才可访问视觉移动规划数据或自定义数据。

指令格式

MM_GET_PLANDATA("Resource;jpsPos;regPosNum;visPosNum;regStatus")

输入参数

Resource

该参数指定视觉移动规划数据的来源。取值为0或正整数,具体说明如下。

  • 0:从Mech-Viz获取视觉移动规划数据。

  • 正整数:从Mech-Vision获取视觉移动规划数据。此处设置的正整数就是Mech-Vision工程编号。

jpsPos

该参数表示预期的返回数据格式。

  • 当Resource为0时,jpsPos参数取值范围为1~4,具体说明如下。

    jpsPos参数值 预期的返回数据说明(每个字段的具体解释参见下文;若Mech-Vision工程无自定义端口,则无自定义数据项

    1

    位姿(关节角形式),移动类型,末端工具编号,速度,自定义数据项1,…,自定义数据项N

    2

    位姿(工具位姿形式),移动类型,末端工具编号,速度,自定义数据项1,…,自定义数据项N

    3

    位姿(关节角形式),移动类型,末端工具编号,速度,Mech-Viz视觉移动规划数据,自定义数据项1,…,自定义数据项N

    4

    位姿(工具位姿形式),移动类型,末端工具编号,速度,Mech-Viz视觉移动规划数据,自定义数据项1,…,自定义数据项N

  • 当Resource为正整数时,jpsPos参数取值范围为1~2,具体说明如下。

    jpsPos参数值 预期的返回数据说明(每个字段的具体解释参见下文)

    1

    位姿(关节角形式),移动类型,末端工具编号,速度,Mech-Vision视觉移动规划数据

    2

    位姿(工具位姿形式),移动类型,末端工具编号,速度,Mech-Vision视觉移动规划数据

位姿

路径点的位姿可以是机器人关节角(单位为度)或工具位姿(其中三维坐标单位为毫米,欧拉角单位为度)。

移动类型

机器人移动类型,取值为1或2。

  • 1:关节移动。

  • 2:直线移动。

末端工具编号

路径点的末端工具编号。若值为-1,表示不使用末端工具。

速度

根据不同的工程,速度的含义也有所不同,具体如下。

  • 对于Mech-Vision工程:速度指路径规划工具中设置的仿真速度值,使用百分数表示。

  • 对于Mech-Viz工程:速度指移动类步骤参数中设置的速度参数值乘以Mech-Viz中设置的全局速度,使用百分数表示。

视觉移动规划数据

Mech-Vision或Mech-Viz中“视觉移动”步骤规划的数据,包括被抓取工件的标签、已抓取的工件总数、本次抓取的工件数量、吸盘边角号、TCP偏移量、工件组朝向、单个工件朝向、工件组尺寸。

名称 说明 维数

被抓取工件的标签

由10个整数组成,默认为10个0

10

已抓取的工件总数

累计已抓取的工件数量

1

本次抓取的工件数量

本次抓取的工件数量

1

吸盘边角号

本次吸盘所使用的边角号

1

TCP偏移量

工件组中心相对于末端工具中心的XYZ偏移量

3

工件组朝向

工件组与吸盘长边的朝向关系,0表示平行,1表示垂直

1

单个工件朝向

单个工件长边与吸盘长边的朝向关系,0表示平行,1表示垂直

1

工件组尺寸

本次抓取的工件组的长宽高

3

自定义数据项

单个视觉点的所有自定义端口的数据。例如,“输出”步骤各端口的数据如下表所示,则机器人获取第一个视觉点的自定义数据项为 [0,0,1]与[0,0], 机器人获取第二个视觉点的自定义数据项为[1,0,0]与[1,1]。

端口名称

poses

labels

customData1

customData2

端口数据

[

[0, 0, 0, 1, 0, 0, 0],
[0, 0, 0, 1, 0, 0, 0]

]

[

"0",
"1"

]

[

[0, 0, 1],
[1, 0, 0]

]

[

[0, 0],
[1, 1]

]

第一个视觉点

[0, 0, 0, 1, 0, 0, 0]

0

[0, 0, 1]

[0, 0]

第二个视觉点

[0, 0, 0, 1, 0, 0, 0]

1

[1, 0, 0]

[1, 1]

输出参数

regPosNum

该参数指定I变量的编号。该编号对应的I变量用于保存视觉系统返回的路径点数量。

visPosNum

该参数指定I变量的编号。该编号对应的I变量用于保存Mech-Viz工程中“视觉移动”步骤对应的路径点(视觉移动路径点)在路径中的位置编号。如果路径中无视觉移动路径点,则该参数值为0。

例如,如果规划路径由以下路径点组成:“定点移动_1”,“定点移动_2”,“视觉移动”,“定点移动_3”,则视觉移动路径点的位置编号为3。

regStatus

该参数指定I变量的编号。该编号对应的I变量用于保存该指令执行的状态码。若指令成功获取Mech-Vision工程的视觉移动规划数据,则状态码为1103。若指令成功获取Mech-Viz工程的视觉移动规划数据或自定义数据,则状态码为2100。 若指令执行异常,则状态码为对应的错误码,具体可参考《标准接口状态码及错误排查》。

示例

CALL JOB:MM_GET_PLANDATA("0;4;60;61;62")

上述示例表示,获取Mech-Viz工程的视觉移动规划数据或自定义数据,路径点数量将保存至I60,视觉移动路径点在路径中的位置编号将保存至I61,指令执行的状态码将保存至I62。

转存视觉移动规划数据或自定义数据

功能介绍

该指令用于将获取的视觉移动规划数据或自定义数据转存到指定变量中。

调用顺序

该指令需在获取视觉移动规划数据或自定义数据指令之后被调用。

指令格式

MM_GET_PLANPOSE("serial;prNum;brNum;rrNum")

输入参数

Serial

该参数用于指定路径点的索引号,即将该索引号对应路径点的视觉移动规划数据或自定义数据转存到指定变量中。索引号从1开始。

输出参数

prNum

该参数指定P变量的编号。该编号对应的P变量用于保存指定索引号对应路径点的位姿。

  1. 如果MM_GET_PLANDATA中jpsPos参数值为1或3,则使用前需要将该P变量类型选择为“脉冲”(标准接口程序会将关节角转化成机器人脉冲)。

  2. 如果MM_GET_PLANDATA中jpsPos参数值为2或4,则使用前需要将该P变量类型选择为“机器人”。

brNum

该参数指定B变量的起始编号。从该起始编号开始,将指定索引号对应路径点的移动类型、末端工具编号和速度依次存储至对应B变量。在指定该参数时,请确保从起始编号开始的连续三个变量不受其他因素影响。

rrNum

该参数指定R变量的起始编号。从该起始号码开始,将指定索引号对应路径点的视觉移动规划数据和自定义数据依次存储至对应R变量。

当路径点不是视觉移动路径点时,无需指定该参数。另外,在指定该参数时,注意变量总数量(视觉移动规划数据固定占用21个变量,自定义数据需根据具体情况计算变量个数),请确保有足够的R变量用于保存数据。

视觉移动规划数据的具体内容如下表所示。

数据 说明 占用的变量数

被抓取工件的标签

由10个整数组成,默认为10个0

10

已抓取的工件总数

累计已抓取的工件数量

1

本次抓取的工件数量

本次抓取的工件数量

1

吸盘边角号

本次吸盘所使用的边角号

1

TCP偏移量

工件组中心相对于末端工具中心的XYZ偏移量

3

工件组朝向

工件组与吸盘长边的朝向关系,0表示平行,1表示垂直

1

单个工件朝向

单个工件长边与吸盘长边的朝向关系,0表示平行,1表示垂直

1

工件组尺寸

本次抓取的工件组的长宽高

3

示例

CALL JOB:MM_GET_PLANPOSE("2;60;60;60")

上述示例表示,将第二个路径点的位姿、移动类型、末端工具编号、速度分别保存至P60、B60、B61、B62。如果该路径点不是视觉移动路径点,则无后续信息;如果该路径点是视觉移动路径点,则将视觉移动规划数据和自定义数据从R60开始依次进行保存。

读取Mech-Viz步骤参数值

功能介绍

该指令用于读取Mech-Viz工程中指定的步骤参数值。

调用顺序

该指令需在运行Mech-Viz工程指令之前被调用。

指令格式

MM_GET_PROPERTY("Read_id;Status;Viz_Prop")

输入参数

Read_id

该参数为property_config文件中指定的配置编号字段。

在Mech-Vision工具栏的 机器人通信配置  下一步  高级设置 下,单击 属性配置,即可打开property_config文件。

get property config

在使用该指令前,用户需提前在property_config文件中指定步骤编号和参数名称对应的key名称,具体格式如下所示。

read, 配置编号, 步骤编号, key名称

read

指定该行用于读取步骤参数值。

配置编号

指定一个唯一的编号,为正整数。一个配置编号只能用于读取一个步骤参数值。如果读取多个步骤参数值,请使用不同的配置编号。

步骤编号

指定将要读取的参数所属步骤的编号。

key名称

指定将要读取的参数名称对应的key名称。

  • key名称 可通过 Keys查询工具 获取。在Mech-Viz软件中,单击菜单栏中的 文件,在左下角处,单击 选项,勾选 开发者模式,单击 确定,关闭软件并重启;然后单击菜单栏中的 工具  Keys查询工具,即可打开该工具。单击具体步骤图标,中间区域就是选中步骤的所有参数名称对应的key名称。设置的key名称必须是下图区域中出现的名称。

    parameter key name
  • property_config文件中以“#”为开头的内容为注释行,指令在执行代码时会忽略注释,不做任何处理。

  • 对property_config文件编辑完后,注意保存文件,并重启Mech-Vision工具栏中的接口服务。

property_config文件中可以设置多条read指令,但每条read指令的配置编号必须唯一。

输出参数

Status

该参数指定I变量的编号。该编号对应的I变量用于保存该指令执行的状态码。若指令执行正常,则状态码为2109。 若指令执行异常,则状态码为对应的错误码,具体可参考《标准接口状态码及错误排查》。

Viz_Prop

该参数指定I变量的编号。该编号对应的I变量用于保存返回的指定步骤的参数值。

示例

例如,在property_config文件中添加如下内容,5表示配置编号,3表示步骤编号,xCount表示key名称。

read,5,3,xCount

机器人发送如下指令后,将会获取到xCount对应的参数值。

CALL JOB:MM_GET_PROPERTY("5;10;11")

上述示例表示,Mech-Viz工程中步骤编号3的xCount对应参数值将保存至I11,指令执行的状态码将保存至I10。

设置Mech-Viz步骤参数值

功能介绍

该指令用于设置Mech-Viz工程中指定步骤的步骤参数值。

调用顺序

该指令需在运行Mech-Viz工程指令之前被调用。

指令格式

MM_SET_PROPERTY("Write_id;Status")

输入参数

Write_id

该参数为property_config文件中指定的配置编号字段。

在Mech-Vision工具栏的 机器人通信配置  下一步  高级设置 下,单击 属性配置,即可打开property_config文件。

get property config

在使用该指令前,用户需提前在property_config文件中指定步骤编号、参数名称对应的key名称和参数值,具体格式如下所示。

write, 配置编号, 步骤编号, key名称, 参数值

write

指定该行用于设置步骤参数值。

配置编号

指定一个编号(非唯一),为正整数。

步骤编号

指定将要设置的参数所属步骤的编号。

key名称

指定将要设置的参数名称对应的key名称。

参数值

指定将要设置的参数值。

  • property_config文件中可以设置多条write指令,且配置编号允许重复,即使用一个配置编号设置多个参数值。

  • key名称 可通过 Keys查询工具 获取。在Mech-Viz软件中,单击菜单栏中的 文件,在左下角处,单击 选项,勾选 开发者模式,单击 确定,关闭软件并重启;然后单击菜单栏中的 工具  Keys查询工具,即可打开该工具。单击具体步骤图标,中间区域就是选中步骤的所有参数名称对应的key名称。设置的key名称必须是下图区域中出现的名称。

    parameter key name
  • property_config文件中以“#”为开头的内容为注释行,指令在执行代码时会忽略注释,不做任何处理。

  • 对property_config文件编辑完后,注意保存文件,并重启Mech-Vision工具栏中的接口服务。

输出参数

Status

该参数指定I变量的编号。该编号对应的I变量用于保存该指令执行的状态码。若指令执行正常,则状态码为2108。 若指令执行异常,则状态码为对应的错误码,具体可参考《标准接口状态码及错误排查》。

示例

例如,property_config文件内容如下,1表示配置编号,3表示步骤编号,xOffset、yOffset和zOffset表示key名称,10表示xOffset对应的参数值,20表示yOffset对应的参数值,30表示zOffset对应的参数值。

write,1,3,xOffset,10
write,1,3,yOffset,20
write,1,3,zOffset,30

机器人发送如下指令后,Mech-Viz会将xOffset、yOffset和zOffset对应的参数值分别设置为10、20和30。

CALL JOB:MM_SET_PROPERTY("1;10")

上述示例表示,xOffset、yOffset和zOffset对应的参数值将分别设置为10、20和30,指令执行的状态码将保存至I10。

向Mech-Vision工程传入物体尺寸

功能介绍

该指令用于向Mech-Vision工程中传入物体尺寸。传入的物体尺寸就是“读取物体尺寸”步骤的箱子尺寸设置参数值,如下图所示。

read object dimensions

调用顺序

该指令需在运行Mech-Vision工程指令之前被调用。

指令格式

MM_SET_BOXSIZE("Job;Length;Width;Height")

输入参数

Job

该参数表示Mech-Vision工程编号。Mech-Vision工程编号可在Mech-Vision工程列表窗口中查看,工程名称前的数字表示工程编号。

LengthWidthHeight

上述三个参数表示传入Mech-Vision工程的物体尺寸(依次为长、宽、高,单位为毫米)。尺寸值将被“读取物体尺寸”步骤读取并分别写入X轴上的长度Y轴上的长度Z轴上的长度

示例

CALL JOB:MM_SET_BOXSIZE("1;500;300;200")

上述示例表示,设置Mech-Vision工程中“读取物体尺寸”步骤的物体尺寸为500×300×200 mm。

获取通知的消息

功能介绍

当Mech-Vision工程或Mech-Viz工程运行至“通知”步骤时,视觉系统会返回“通知”步骤中预先设置的消息。

在使用该指令前,“通知”步骤需满足以下设置。

  • Mech-Vision工程中的“通知”步骤

    1. 将“通知”步骤连接在其他步骤的右侧(此处以“输出”步骤为例)。

      notify 1
    2. 在“输出”的步骤参数处,勾选有输出时触发控制流

      notify 5
    3. 在“通知”的步骤参数处,服务名称填写Standard Interface Notify(不可更改),消息填写1001(根据需求填写,但必须为正整数)。

      notify 2
  • Mech-Viz工程中的“通知”步骤

    1. 将“通知”步骤连接在工作流程中的合适位置。

      notify 3
    2. 在“通知”的步骤参数处,勾选标准接口,消息填写1000(根据需求填写,但必须为正整数)。

      notify 4

调用顺序

该指令需在运行Mech-Vision工程指令或运行Mech-Viz工程指令之后立即被调用。

指令格式

MM_GET_NOTIFY("NotifyMsg")

输出参数

NotifyMsg

该参数指定I变量的编号。该编号对应的I变量用于保存通知的消息(暂时只支持整数)。

示例

CALL JOB:MM_GET_NOTIFY("60")

上述示例表示,从“通知”步骤获取的消息将保存至I60。

标定

功能介绍

该指令用于机器人的手眼标定(外参标定)。该指令需要与Mech-Vision工具栏中的相机标定结合使用,从而实现自动标定,具体参见YASKAWA自动标定

指令格式

MM_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秒。

Rnum

该参数表示机器人轴数。

Ext

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

Pos

该参数指定P变量的编号。该号码对应的P变量用于保存标定点的位姿数据。默认为99,即默认使用P99保存标定点的位姿数据。

示例

CALL JOB:MM_CALIB("2;1;2;6;0;99")

上述示例表示,标定点的位姿形式为工具位姿,机器人按关节角形式移动到标定点后的等待时间为2秒,且没有外部轴,使用P99存储标定点的位姿数据。

停止Mech-Viz工程

功能介绍

该指令用于停止正在运行的Mech-Viz工程。

调用顺序

该指令需在运行Mech-Viz工程指令之后被调用。

指令格式

MM_Stop_Viz

示例

CALL JOB:MM_Stop_Viz

上述示例表示,停止正在运行的Mech-Viz工程。

获取工程状态

功能介绍

该指令用于检测Mech-Vision工程是否已就绪。

指令格式

MM_GET_STATUS("Status")

输出参数

Status

该参数指定I变量的编号。该编号对应的I变量用于保存该指令执行的状态码。若指令执行正常,则状态码为1101,表示Mech-Vision工程已就绪。 若指令执行异常,则状态码为对应的错误码,具体可参考《标准接口状态码及错误排查》。

示例

CALL JOB:MM_GET_STATUS("70")

上述示例表示,检测Mech-Vision工程是否已就绪,指令执行的状态码将保存至I70。

我们重视您的隐私

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