YASKAWA (安川)接口程序指令说明

YASKAWA 机器人程序调用说明:

  • 程序的参数列表中,各个参数之间以分号分割。

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

注意

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

  • 对于 Mech-Center 1.6.1 及以上的版本,有以下更新说明:

    • 仅有初始化通信指令包含通信连接和通信断开语句,以方便测试。初始化通信指令仅需机器人执行一次即可,设置的 IP 地址将全局有效。

    • 通信连接和通信断开语句成为两个独立指令(建立 TCP 连接指令和断开 TCP 连接指令),从而避免频繁连接和断开机器人与视觉系统之间的通信。

接口程序指令概览

初始化通信指令

该指令用于设置 TCP/IP 通信的主机 IP 地址、端口号,以及通信超时等待时间。

  • 程序

MM_INIT_SOCKET ("IP_Address;Server_Port;Time_Out")
  • 参数说明

    参数

    描述

    输入参数

    IP_Address

    主机的 IP 地址。

    Server_Port

    TCP/IP 通信端口号;端口号默认为 50000 。

    Time_Out

    超时等待时间;单位为 min 。

  • 示例

CALL JOB:MM_INIT_SOCKET ("192.168.1.1;50000;5")
  • 示例说明

    执行该示例程序将需要连接的主机 IP 地址设为 192.168.1.1,端口号为 50000 ,超时时间为 5 分钟。

建立 TCP 连接

该指令用于建立 TCP 连接。在执行该指令之前,请先使用初始化通信指令正确配置通信的 IP 地址和端口号。

  • 程序

MM_OPEN_SOCKET
  • 参数说明

    无参数。

  • 示例

CALL JOB: MM_OPEN_SOCKET

断开 TCP 连接

该指令用于断开 TCP 连接。在机器人与视觉系统通讯任务完成后,用户可调用该指令,以断开通信连接。

  • 程序

MM_CLOSE_SOCKET
  • 参数说明

    无参数。

  • 示例

CALL JOB: MM_CLOSE_SOCKET

启动 Mech-Vision 工程

该指令用于只用到 Mech-Vision 软件,而无需用到 Mech-Viz 软件的场景,用来启动 Mech-Vision 工程的运行,执行相机拍照和视觉处理。

  • 程序

MM_START_VIS ("job;pos_num_need;sendpos_type")
  • 参数说明

    参数

    描述

    输入参数

    job

    Mech-Vision工程在 Mech-Center 软件中的注册序号。可以在 Mech-Center 软件 部署设置 ‣ Mech-Vision 界面查询和调整。序号范围[1-99]。

    pos_num_need

    希望 Mech-Vision 输出的视觉结果数量。可设置范围 [1-20] ,0 表示获取所有。

    sendpos_type

    机器人发送的拍照位姿类型,可设置范围 [0-2] 。 0:不需要拍照位姿,比如 Eye To Hand 方式可设置为 0 ; 1:拍照位姿是关节角形式; 2:拍照位姿是法兰位姿。

  • 示例

CALL JOB:MM_START_VIS ("1;1;1")
  • 示例说明

    该示例触发 Mech-Vision 工程 1 的运行,希望 Mech-Vision 工程 1 返回 1 个视觉结果,机器人将调用此指令时的关节角数据发送给 Mech-Center 软件。

获取视觉目标点

该指令用于只用到 Mech-Vision 软件,无需用到 Mech-Viz 软件的场景,用于运行 Mech-Vision 工程之后,获取视觉识别结果。

  • 程序

MM_GET_VISDATA ("Job;Last_Data;Pose_Num;MM_Status")
  • 参数说明

    参数

    描述

    输入参数

    Job

    Mech-Vision 工程在 Mech-Center 软件中的注册序号。可以在 Mech-Center 软件 部署设置 ‣ Mech-Vision 界面查询和调整。序号范围[1-99]。

    输出参数

    Last_Data

    I 变量,点位是否发送完毕。 0:视觉点未全部发送; 1:视觉点已全部发送。

    Pose_Num

    I 变量,用于保存返回的位姿数量。

    MM_Status

    I 变量,用于保存指令状态码。可参考 标准接口状态码及错误排查

  • 示例

CALL JOB:MM_GET_VISDATA ("1;50;51;52")
  • 示例说明

    该示例用于获取 Mech-Vision 工程 1 的视觉结果。是否发送完毕保存在 I50 里,返回的视觉点数量保存在变量 I51 里,指令执行的状态码保存在变量 I52 里。

启动 Mech-Viz 工程

该指令用于既用到 Mech-Vision 工程又用到 Mech-Viz 工程的场景,用于启动 Mech-Viz 工程,调用相应的 Mech-Vision 工程,并设置 Mech-Viz 中仿真机器人的初始位姿。

  • 程序

MM_START_VIZ ("sendpos_type")
  • 参数说明

    参数

    描述

    输入参数

    sendpos_type

    位姿类型,可选范围[0-1]

    注解

    位姿类型设置为 0 时,Mech-Viz中的仿真机器人的初始位姿为 [0,0,0,0,0,0] ;

    位姿类型设置为 1 时,Mech-Viz中的仿真机器人的初始位姿为当前机器人关节角位姿;

    当场景中存在碰撞模型,干扰机器人从关节角[0,0,0,0,0,0] 位置开始运动到第一个移动点时,则位姿类型必须设置为 1 。

  • 示例

CALL JOB:MM_START_VIZ ("1")
  • 示例说明

    该示例触发 Mech-Viz 工程运行,并将当前机器人的关节角发送给 Mech-Center 软件。

获取 Mech-Viz 数据

该指令用于获取 Mech-Viz 工程规划的抓取路径。

  • 程序

MM_GET_VIZDATA ("GetPos_Type;Last_Data;Pos_Num;VisPos_Num;MM_Status")
  • 参数说明

    参数

    描述

    输入参数

    GetPos_Type

    要获取的路径上点的位姿类型。

    输出参数

    Last_Data

    I 变量,点位是否发送完毕。 0:视觉点未全部发送; 1:视觉点已全部发送。

    Pose_Num

    I 变量,用于保存返回的位姿数量。

    VisPos_Num

    I 变量,用于保存第一个视觉移动在路径中的位置编号。例如路径是:移动-1,移动-2,视觉移动-1,移动-3,则视觉移动的位置是3。若路径中无视觉移动,则返回值为零。

    MM_Status

    I 变量,用于保存指令状态码。可参考 标准接口状态码及错误排查

    注解

    • Mech-Viz 返回的位姿类型为机器人关节角。

    • Mech-Viz 返回的位姿类型为机器人工具中心点位姿。

  • 示例

CALL JOB:MM_GET_VIZDATA ("2;50;51;52;53")
  • 示例说明

    该示例用于接收 Mech-Viz 软件返回的机器人移动路径,移动点数据类型为工具中心点位姿,是否发送完毕保存在 I50 中,位姿的数量保存在I51中,视觉移动点在路径中的编号保存在变量 I52中,指令执行的状态码保存在变量 I53中。

获取视觉点坐标值

该指令用于将 Mech-Vision 软件返回的视觉结果或 Mech-Viz 软件返回的移动路径里的某个工具中心点位姿数据转存到指定位姿变量中。

  • 程序

MM_GET_POSE ("Index;Robtarget;Label;Pose_Speed")
  • 参数说明

    参数

    描述

    输入参数

    Index

    指定要转存的是第几个位姿。

    输出参数

    Robtarget

    P 变量,用于保存指定的位姿数据。

    Label

    I 变量,用于保存和指定位姿数据相对应的标签数据。

    Pose_Speed

    I 变量,用于保存和指定位姿数据相对应的移动速度。

  • 示例

CALL JOB:MM_GET_POSE ("1;60;61;62")
  • 示例说明

    该示例用于将收到的第一个位姿保存到位姿变量 P60 中,将标签保存到变量 I61 中,将移动速度保存到变量 I62 中。

获取视觉点关节角(使用 Mech-Viz 软件规划时有效)

该指令用于将 Mech-Viz 软件返回的移动路径里的某个关节角数据转存到指定位置变量中。

  • 程序

MM_GET_JPS ("Index;Jointtarget;Label;Pose_Speed")
  • 参数说明

    参数

    描述

    输入参数

    Index

    指定要转存的是第几个位姿。

    输出参数

    Jointtarget

    P 变量,用于保存指定的关节角数据。

    Label

    I 变量,用于保存和指定位姿数据相对应的标签数据。

    Pose_Speed

    I 变量,用于保存和指定位姿数据相对应的移动速度。

  • 示例

CALL JOB:MM_GET_JPS ("1;60;61;62")
  • 示例说明

    该示例用于将收到的第一个位姿保存到位置变量 P60 中,将标签保存到变量 I61 中,将移动速度保存到变量 I62 中。

切换 Mech-Vision 配方

配置参数配方 ,需要在 Mech-Vision 中已配置并保存了参数配方。该指令需要在 MM_Start_Vis 程序之前使用。

  • 程序

MM_SET_MODEL ("Job;Model_number")
  • 参数说明

    输入参数:

    参数

    描述

    输入参数

    Job

    Mech-Vision 工程在 Mech-Center 软件中的注册序号,可以在 Mech-Center 软件 部署设置 ‣ Mech-Vision 界面查询和调整。序号范围 [1-99] 。

    Model_number

    Mech-Vision 工程中配方模板的编号。编号范围 [1-99] 。

    ../../../../_images/parameters_of_the_formula1.png
  • 示例

CALL JOB:MM_SET_MODEL ("1;1")
  • 示例说明

    该示例会将 Mech-Vision 工程 1 的配方切换成配方 1 。

选择 Mech-Viz 分支

该指令用于 Mech-Viz 工程中有 分支(根据服务消息)模块 时,控制 Mech-Viz 工程中的分支(根据服务消息)任务走指定的出口。 在调用该指令之前,需要先调用 mm_start_viz。Mech-Viz 软件运行到分支(根据服务消息)任务时会等待 203 指令发送分支(根据服务消息)任务的分支出口。

../../../../_images/choose_branch1.png
  • 程序

MM_SET_BRANCH ("Branch_Num;Exit_Num")
  • 参数说明

    参数

    描述

    输入参数

    Branch_Num

    分支任务编号,该参数应为正整数,即 消息分支 的任务编号。任务编号可在任务参数中读取。

    Exit_Num

    给定分支的出口号,Mech-Viz 程序将沿该出口继续执行。参数范围[1-99] 。

  • 示例

CALL JOB:MM_SET_BRANCH ("1;3")
  • 示例说明

    该示例是用来设置当 Mech-Viz 工程执行到名字是 1 的分支(根据服务消息)任务时走任务的第 3 出口。

设置移动索引

对于属性中带有索引的移动类任务,比如按序列移动、按阵列移动、自定义垛型、预设垛型等,可以调用该指令设置属性中的当前索引。 在调用该指令之前,需要先执行 MM_Start_Viz 程序。

../../../../_images/set_index5.png
  • 程序

MM_SET_INDEX ("Skill_Num;Index_Num")
  • 输入参数说明

    Skill_Num

    移动索引所在的任务编号,该参数应为正整数。任务编号可在任务参数中读取。

    Index_Num

    下次执行此任务时应设置的索引值。

    发送该指令时,Mech-Viz 中的当前索引值将变为该参数值减 1。

    当 Mech-Viz 项目运行到该指令指定的任务时,Mech-Viz 中的当前索引值将增加 1,成为该参数的值。

  • 示例

CALL JOB:MM_SET_INDEX ("2;10")
  • 示例说明

    该示例设置 Mech-Viz 工程中的任务名称 “2” 的当前索引值为 9。

获取软件状态

该指令用于获取 Mech-Vision,Mech-Viz,Mech-Center 的软件运行状态,目前只支持检测 Mech-Vision 软件是否就绪。

  • 程序

MM_GET_STATUS ("Status");
CALL JOB:MM_GET_STATUS ("70")
  • 示例说明

    该示例将检查系统状态的状态码保存到变量 I70 中。

向 Mech-Vision 传入物体尺寸

该指令用于在 Mech-vision 工程中动态传入物体尺寸。需要在执行 MM_Start_Vis 之前调用。

../../../../_images/set_size_of_box1.png
  • 程序

MM_SET_BOXSIZE ("Job;Length;Width;Height")
  • 参数说明

    参数

    描述

    输入参数

    Job

    Mech-Vision工程在 Mech-Center 软件中的注册序号,可以在 Mech-Center 软件 部署设置 ‣ Mech-Vision 界面查询和调整。序号范围 [1-99] 。

    Length

    箱子长度,单位 mm 。

    Width

    箱子宽度,单位 mm 。

    Height

    箱子高度,单位 mm 。

  • 示例

CALL JOB:MM_SET_BOXSIZE ("1;500;300;200")
  • 示例说明

    该示例将设置 Mech-Vision 工程中的读取物体尺寸步骤的物体尺寸为 500*300*200 mm 。

获取 DO 信号列表

当需要使用 Mech-Viz 软件中的吸盘分区/多抓功能时,可通过该指令来获取规划的分区 DO 信号列表。调用该指令之前需要先执行 MM_Get_VizData 。

提示

请参考 XXXX/Mech-Center-xxx/tool/viz_project/suction_zone 目录下的 Mech-Viz 模板工程使用,并在运行之前在工程中设置对应的吸盘配置文件, 并在 Mech-Viz 软件中设置接受者名称为当前机器人型号。

../../../../_images/get_do_lists.png
  • 程序

MM_GET_DOLIST
  • 示例

CALL JOB:MM_GET_DOLIST
  • 示例说明

    执行该程序会将 Mech-Viz 软件计算的 DO 列表保存到 setdo[] 数组内。有效数据从 setdo[0] 开始,到 setdo[io_index-1] 。

设置 DO

该指令用于将 Mech-Viz 软件返回的 DoList 设置到通用输出信号中,最多支持 4 组 GO 信号,一组 GO 信号为 16 位,如需设置多组 GO 信号,请使用多次该指令。 该指令需在 MM_Get_DoLis 之后使用。

  • 程序

MM_SET_DOLIST  设置 DO 信号
  • 示例

CALL JOB:MM_SET_DOLIST
  • 示例说明:

    执行该程序会将 Mech-Viz 计算的 DO 列表 0-15 的值写入到通用输出信号 0T1-OT16 里。

设置外部位姿

该指令用于向 Mech-Viz 工程动态传入位姿点数据,配合 Mech-Viz 软件中的 外部移动 使用。 该功能需要配合 XXXX/Mech-Center-xxx/tool/viz_project/outer_move 路径下的工程使用,并在运行之前把其中的 外部移动 放到合适的位置。 该指令需要在调用 MM_Get_VizData 程序之前调用。

  • 程序

MM_SET_POSE ("Pos")
  • 参数说明

    参数

    描述

    输入参数

    Pos

    P 变量,保存需要发送给 Mech-Viz 的工具中心点位姿数据。

  • 示例

CALL JOB:MM_SET_POSE ("10")
  • 示例说明

    该示例将位姿变量 P10 代表的位姿数据发送为 Mech-Viz 软件的外部移动任务。

标定

该指令用于相机外参的自动标定。该指令如需使用请在 MM_Calibration() 程序中修改运行即可,该程序需配合 Mech-Vision 软件的相机标定工具,可以实现全自动标定,具体可以参见 标定操作流程

  • 程序

MM_CALIB ("Move_Type;Pos_Jps;Wait_Time;Rnum;Ext;Pos")
  • 参数说明

    参数

    描述

    输入参数

    Move_Type

    移动方式。

    Pos_Jps

    使用工具坐标中心点位或关节角数据。

    Wait_Time

    机器人移动到标定点后的等待时间(防止机器人发生抖动);默认为 2 秒;单位为 s(秒)

    Rnum

    机器人轴数量。

    Ext

    可选变量,外部轴数据(当有 7 轴导轨时使用),单位为 mm 。

    Pos

    默认占用 P 变量 99 。

  • 示例

CALL JOB:MM_CALIB ("2;1;2;6;0;99")
  • 示例说明

    该示例设置机器人使用使用工具坐标中心点按照 MoveJ 方式来移动,机器人移动到标定点后的等待时间为 2 秒;机器人轴数为 6 ,不含外部轴,默认将标定起始位置放在 P99 里。