TCP/IP 指令说明

通过基于 TCP/IP 协议的标准接口,梅卡曼德软件系统可以与 ABB、FANUC、Kawasaki、KUKA、YASKAWA 机器人进行通信。

以下为 TCP/IP 指令:

101 指令——启动 Mech-Vision 工程

该指令启动 Mech-Vision 工程,用于执行相机拍照和视觉识别。

如果工程为 Eye In Hand 模式,该指令将把机器人拍照位姿传入工程。

该指令用于仅使用 Mech-Vision 的场景。

发送的指令参数

101, Mech-Vision 工程号, 预期视觉点数量, 机器人位姿类型, 机器人位姿

Mech-Vision 工程号

Mech-Center 中 Mech-Vision 工程编号,即 Mech-Center 中 部署设置 ‣ Mech-Vision 中工程路径左侧显示的数字。可拖拽调整。

../../../../_images/project_no3.png

预期视觉点数量

期望从 Mech-Vision 得到的视觉点数量。视觉点信息包括视觉位姿及对应点云、标签、缩放等。

  • 0:从 Mech-Vision 工程取得识别结果中所有的视觉点。

  • 大于0的整数:从 Mech-Vision 工程取得识别结果中指定数量的视觉点。

    • 如果视觉点总数小于该参数值,则取得识别结果中所有视觉点。

    • 如果视觉点总数大于等于该参数值,则取得该参数指定数量的视觉点。

提示

获取视觉点的指令是 102 指令。在TCP/IP 中,默认每次执行 102 指令最多可以获取 20 个视觉点。在第一次执行 102 指令后,其中一个返回的参数将体现是否已返回所有请求的视觉点;如果没有,请重复执行 102 指令。

机器人位姿类型

该参数指定真实机器人的位姿将以何种形式传入 Mech-Vision。参数范围:0~2。

  • 0:该指令不需向视觉系统传入机器人位姿。 如果工程为 Eye To Hand 模式,则拍照与机器人位姿无关,Mech-Vision 不需要机器人的位姿。

  • 1:机器人位姿以 JPs 关节角形式传入。

  • 2:机器人位姿以法兰位姿形式传入。

机器人位姿

该参数为 Eye In Hand 模式下所需的机器人拍照位姿,机器人位姿为 JPs 关节角形式或法兰位姿形式,位姿形式取决于 机器人位姿类型

返回的数据参数

101, 状态码

状态码

若指令执行正常,返回 1102 状态码;否则返回对应的错误码。

样例

指令执行正常

TCP send string = 101, 1, 10, 1, 0, -20.63239, -107.81205, 0, -92.81818, 0.00307
TCP received string = 101, 1102

指令执行异常

TCP send string = 101, 2, 10, 1, 0, -20.63239, -107.81205, 0, -92.81818, 0.00307
TCP received string = 101, 1011, 1

102 指令——获取视觉目标点

用在 101 指令——启动 Mech-Vision 工程 之后,使用该指令获取 Mech-Vision 的识别结果(视觉点)对应的机器人位姿及标签,机器人位姿形式为工具位姿(TCP)。

Mech-Center 会自动将视觉点信息转换为对应的机器人 TCP,其过程为:

  • 将视觉点包含的位姿绕 Y 轴旋转 180°。

  • 识别对应机器人型号的参考坐标系定义是否涉及机器人基座高度,并相应增加垂直方向的偏置。

提示

102 指令单次接收 TCP 数量上限默认为 20。如需要获取的 TCP 数量大于 20,需多次执行该指令来获取所有所需 TCP。

发送的指令参数

102, Mech-Vision 工程号

Mech-Vision 工程号

Mech-Center 中 Mech-Vision 工程编号,即 Mech-Center 中 部署设置 ‣ Mech-Vision 中工程路径左侧显示的数字。可拖拽调整。

../../../../_images/project_no3.png

返回的数据参数

102, 状态码, 是否发送完成, TCP 数量, 保留字段, 目标点, 目标点, …, 目标点

注解

目标点数据位于返回的数据参数的结尾(单次最多返回 20 个目标点),目标点包含 TCP、标签、速度。但速度值为 0。

状态码

若指令执行正常,则返回 1100 状态码;否则返回对应的错误码。

调用该指令时,若 Mech-Vision 结果还未返回,则 Mech-Center 会等待 Mech-Vision 结果返回后再给机器人返回。默认等待 10 秒超时,若发生超时,返回超时错误状态码。

是否发送完成

该参数表明是否已取得所有所需 TCP。值为 0 或 1。

  • 0:未取得所有所需 TCP。请重复执行 102 指令直到该参数值为 1。

  • 1:已取得所有所需 TCP。

如果 101 指令 指定的预期 TCP 数量大于 20(收发数据长度的默认值),可通过该参数判断是否还有未发送的 TCP。若数据未发送完毕,则可以重复调用 102 指令,继续接收。

提示

如未取得所有 TCP,若此时调用 101 指令重新拍照,则未取得的 TCP 将被清除。

TCP 数量

执行该指令获得的 TCP 数量。

  • 如果请求 TCP 数量大于等于 Mech-Vision 识别的视觉点数量,按照 Mech-Vision 识别的视觉点数量发送。

  • 如果请求 TCP 数量小于 Mech-Vision 识别视觉点数量,按照请求数量发送。

默认范围:0~20。

保留字段

该字段未使用,默认值为 0。

目标点

物体位姿对应的 TCP,
标签,
速度
  • 物体位姿对应的 TCP:TCP 包括三维坐标(XYZ)及欧拉角(ABC)。

  • 标签:位姿对应的整数标签。如果在 Mech-Vision 工程中,标签为字符串,请在输出前用步骤 标签映射 将标签映射为整数。如工程中没有标签,则该参数为默认值 0。

  • 速度:该参数值默认为 0。Mech-Vision 输出的视觉结果中一般不带机器人目标点速度信息。

样例

指令执行正常

TCP send string = 102, 1
TCP received string = 102, 1100, 1, 1, 0, 95.7806085592122, 644.5677779910724, 401.1013614123109, 91.12068316085427, -171.13014981284968, 180.0, 0, 0

指令执行异常,无视觉结果。

TCP send string = 102, 1
TCP received string = 102, 1002, 1

请求视觉点的样例

以下样例为依次发送的指令参数 101、102、102 来获取 22 个视觉点对应的 TCP 的过程。细节如下:

  • TCP/IP 发送 101 指令,内容为 101, 1, 0, 1, ,希望获取全部 TCP。

  • TCP/IP 发送 102 指令,获取视觉目标点中部分视觉点对应的 TCP。

  • TCP/IP 收到 102 指令返回的数据,内容为 102, 1100, 0, 20, ,表示未取得所有所需 TCP。返回的数据包含 20 个 TCP。

  • TCP/IP 再次发送 102 指令,获取剩余 TCP。

  • TCP/IP 收到 102 指令返回的数据,内容为 102, 1100, 1, 2, ...。返回的数据包含 2 个 TCP,且表明所有所需 TCP 已发送完成。

发送 101 指令。

TCP send string = 101, 1, 0, 1, -0, -20.63239, -107.81205, -0, -92.81818, 0.0016
TCP received strins = 101, 1102

第一次发送 102 指令,并获取 20 个 TCP。

TCP send string = 102, 1

TCP received string = 102, 1100, 0, 20, 0, 95.7806085592122, 644.5677779910724, 401.1013614123108, 31.12068316085427, ...
TCP received string = 78549940546, -179.99999999999991.0.0, 329.228345202334.712.7061697180302.400.9702665047771, ...
TCP received string =39546, -83.62567351596952, -170.87955974536686, -179.99999999999937, 0, 0, 223.37118373658322, ...
TCP received string = 005627, 710.1004355953408, 400.82227273918835, -43.89328326393665, -171.30845207792612, ...
TCP received string = 20.86318821742358, 838.7634193547805, 400.79807564314797, -102.03947940869523, -171.149261231 ...
TCP received string = 390299920645, -179.99999999999994, 0, 0, 303.0722145720921, 785.3254917220695, 400.75827437080, ...
TCP received string = 99668287.77.78291612041707, -171.53941633937786, 179.99999999899997, 0.0, 171.47819668864432, ...
TCP received string = 332193785, 400.6472716208158, -94.3418019038759, -171.10001228964776, -179.39999999999994, ...
TCP received string = 92388542936, 807.5641001485708, 400.6021999602664, - 167.9834797197932.-171.39671274951826, ...
TCP received string = 278.3198007132188, 780.5325992145735, 400.4924381003066, -174.72728396633053, -171.422604771 ...
TCP received string = 3.99999999999994, 0, 0, 183.82195326381233, 862.5171519967056.400.422966515846.-154. 17801945 ...
TCP received string = 173.34301974982765, -180.0, 0, 0

第二次发送 102 指令并接收剩下的两个 TCP。

TCP send string = 102, 1

TCP received string = 102, 1100, 1, 2, 0, 315.2017788478321, 592.1261793743445, 399.60526335590957, 126.19602189220371, ...
TCP received string = 686127, -171.44430002882129, -1.3381805753922965e-15, 0, 0

103 指令——切换 Mech-Vision 配方

切换 Mech-Vision 工程内的参数配方。

Mech-Vision 中步骤的参数设定可通过切换参数配方调整。

参数配方调整涉及的参数通常包括点云匹配模板、图像匹配模板、感兴趣区域、置信度阈值等。

注意

需要在执行 101 指令——启动 Mech-Vision 工程 之前使用该指令。

发送的指令参数

103, Mech-Vision 工程号, 配方编号

Mech-Vision 工程号

Mech-Center 中 Mech-Vision 工程编号,即 Mech-Center 中 部署设置 ‣ Mech-Vision 中工程路径左侧显示的数字。可拖拽调整。

../../../../_images/project_no3.png

配方编号

Mech-Vision 工程中配方模板的编号,为正整数。单击 工程助手 ‣ 参数配方,进入参数配方编辑器。编号范围:1~99。

../../../../_images/part_number2.png

返回的数据参数

103, 状态码

状态码

若指令执行正常,则返回 1107 状态码;否则返回对应的错误码。

样例

指令执行正常

TCP send string = 103, 1, 2
TCP received string = 103, 1107

指令执行异常

TCP send string = 103, 1, 2
TCP received string = 103, 1102

110 指令——从 Mech-Vision 获取自定义输出数据

该指令用于从 Mech-Vision 中的 输出 步骤接收自定义类型数据,即位姿及标签外的数据(步骤参数“端口类型”设置为“动态”)。

每次执行该指令只会从视觉结果中获取一个位姿及其对应的标签、分数等(如有)。 如果需要接收多个位姿,请多次执行该指令。

发送的指令参数

110, Mech-Vision 工程号

Mech-Vision 工程号

Mech-Center 中 Mech-Vision 工程编号,即 Mech-Center 中 部署设置 ‣ Mech-Vision 中工程路径左侧显示的数字。可拖拽调整。

返回的数据参数

110, 状态码, 位姿是否传输完成, 自定义数据项个数, 目标物体位姿对应的机器人工具位姿(TCP), 标签, 自定义数据项, …, 自定义数据项

状态码

如果没有错误,将返回状态码 1100。 否则,将返回相应的错误码。

执行该指令后,如果 Mech-Vision 没有返回结果,Mech-Center 将等待,然后将结果发送给机器人。默认等待时间为 10 秒。 如果发生超时,将返回超时错误状态码。

位姿是否传输完成

  • 0:视觉结果中仍有位姿未传输。

  • 1:视觉结果中的所有位姿都已传输。

自定义数据项个数

位姿和标签以外的数据类型的自定义数据项的总数。

比如,若 aaa 是 3 个项的列表,bbb 是 3 个项的列表,执行该指令从每个列表取一个项时,该参数值为 1+1=2; 如果 aaa 和 bbb 都是单项数据,参数值仍然是 1+1=2。

../../../../_images/procedure_out_example.png

目标物体位姿对应的机器人工具位姿(TCP)

机器人坐标系下的工具位姿(TCP)。Mech-Vision 输出目标物体位姿,Mech-Center 将该位姿转换为机器人工具位姿。步骤 输出 必须有一个位姿端口。

目标物体位姿对应的工具位姿通常是通过将目标物体位姿的 Z 轴进行翻转来生成的。

标签

与位姿对应的物体信息标签。标签应该是一个正整数,否则应在 Mech-Vision 工程中使用 标签映射 步骤将其映射为正整数。 如果步骤 输出 上没有标签端口,则该字段填充为 0。

自定义数据项

步骤 输出 上自定义数据类型对应端口的自定义数据。

自定义数据参数按端口名称的字母顺序 A–Z 排列。

201 指令——启动 Mech-Viz 工程

用于既使用 Mech-Vision 又使用 Mech-Viz 的场景。该指令用于运行 Mech-Viz 工程,启动对应的 Mech-Vision 工程,Mech-Viz 基于 Mech-Vision 的视觉结果规划机器人的运动路径。

请在需要启动 Mech-Viz 工程中勾选 自动加载

../../../../_images/autoload_current_project2.png

Mech-Center 安装目录 (tool/viz_project) 文件夹内保存有一些典型应用工程模板,用户可以在模板的基础上进行修改。

用于标准接口的 Mech-Viz 样例工程描述请见 标准接口用 Mech-Viz 样例工程

发送的指令参数

201, 位姿类型, 机器人位姿

位姿类型

机器人的位姿类型。参数范围:0~1。

0

  • Mech-Viz 不需要读取当前真实机器人的位姿,该指令将不发送位姿。即如果工程为 Eye To Hand 模式,则拍照与机器人位姿无关,工程不需要读取机器人的拍照位姿。

  • 位姿类型设置为 0 时,Mech-Viz 中仿真机器人会从初始位姿 JPs = [0, 0, 0, 0, 0, 0] 开始移动到第一个目标点。

1

  • 传入 Mech-Viz 的位姿为 JPs 关节角及法兰位姿形式。Mech-Viz 中,仿真机器人将从初始位姿(即本指令传输的位姿)移动到规划的路径的第一个目标点。

  • 位姿类型设置为 1 时,Mech-Viz 中仿真机器人会从初始位姿 JPs = 输入的 JPs 开始运动到第一个目标点。

提示

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

机器人位姿

机器人的当前 JPs 关节角及法兰位姿(如果参数“位姿类型”为 1)。

返回的数据参数

201, 状态码

状态码

若指令执行正常,则返回 2103 状态码;否则返回对应的错误码。

样例

指令执行正常

TCP send string = 201, 1, 0, -20.63239, -107.81205, 0, -92.81818, 0.00307
TCP received string = 201, 2103

指令执行异常(Mech-Viz 不支持 TCP 类型)

TCP send string = 201, 2, -0, 682.70355, 665.22266, 90, 179.99785, -89.99693
TCP received string = 201, 2015, 1

202 指令——停止 Mech-Viz 工程

停止 Mech-Viz 工程的运行。若 Mech-Viz 工程未陷入无限循环或可正常停止,则不需要使用此指令。

发送的指令参数

202

返回的数据参数

202, 状态码

状态码

若指令执行正常,返回 2104 状态码;否则返回对应的错误码。

样例

指令执行正常

TCP send string = 202
TCP received string = 202, 2104

203 指令——选择 Mech-Viz 分支

该指令用于指定工程将沿哪个分支运行。分支机制通过 消息分支 任务建立,该指令则通过指定该任务的出口来指定分支。

在执行该指令前请先执行 201 指令——启动 Mech-Viz 工程

Mech-Viz 工程运行至 消息分支 任务时,将等待该指令指定出口。

发送的指令参数

203, 分支任务编号, 出口号

分支任务编号

该参数用于指定分支选择将在哪个 消息分支 任务上进行。

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

出口号

该参数用于指定工程将沿 消息分支 任务的哪个出口运行,Mech-Viz 程序将沿该出口继续执行。参数为正整数。

提示

  • 出口号为 Mech-Viz 显示的端口号 + 1。如端口号为 0,则出口号为 1。

  • 出口号为从 1 开始的端口索引号。比如指定的出口为从左往右数第二个端口,那么出口号为 2。

返回的数据参数

203, 状态码

状态码

若指令执行正常,则返回 2105 状态码;否则返回对应的错误码。

样例

指令执行正常

TOP send string = 203, 1, 1
TCP received string = 203, 2105

指令执行异常

TCP send string = 203, 1, 3
TCP received string = 203, 2018, 1

204 指令——设置移动索引

该指令用于设定任务的索引参数值。该类任务一般用于连续或单独指定的移动或其他操作。

带有索引参数的任务包括“序列移动”、“阵列移动”、“自定义垛型”、“预设垛型”等。

在执行该指令前,请先执行 201 指令——启动 Mech-Viz 工程

../../../../_images/set_index3.png

发送的指令参数

204, 任务编号, 索引值

任务编号

该参数指定哪个任务需要索引参数设定。

该参数值应为正整数,即待索引任务的任务编号。任务编号可在任务参数中读取。

索引值

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

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

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

返回的数据参数

204, 状态码

状态码

若指令执行正常,则返回 2106 状态码;否则返回对应的错误码。

样例

指令执行正常

TCP send string = 204, 2, 6
TCP received string = 204, 2106

指令执行异常

TCP send string = 204, 3, 6
TCP received string = 204, 2028, 1

205 指令——获取规划路径

该指令用于获取 Mech-Viz 规划的路径。应在执行 201 指令——启动 Mech-Viz 工程 后获取规划路径。

限制:TCP/IP 中,默认设置下,该指令每次最多只能获取 20 个规划路径的目标点,所以该指令可能需要调用多次。

注解

如果工程中某个移动类任务的目标点不应发给机器人,请取消勾选该任务参数中的“发送移动目标”选项。

发送的指令参数

205, 目标点类型

目标点类型

该参数用于指定 Mech-Viz 将返回何种形式的目标点。

  • 1:目标点将以机器人关节角(JPs)的形式返回。

  • 2:目标点将以机器人工具位姿(TCP)的形式返回。

返回的数据参数

205, 状态码, 是否发送完成, 目标点数量, “视觉移动”任务位置, 目标点, 目标点, …, 目标点

状态码

若指令执行正常,则返回 2100 状态码;否则返回对应的错误码。

提示

调用该指令时,若 Mech-Viz 结果还未返回(正在运行中),Mech-Center 会等待 Mech-Viz 结果返回后再给机器人返回,默认等待 10s 超时,若发生超时,则给机器人返回超时错误。

是否发送完成

  • 0:未发送完路径中的全部目标点。请重复执行该指令,直到该参数值为 1。

  • 1:已发送完路径中全部目标点。

目标点数量

该参数用于显示此次执行该指令返回了多少路径目标点([位姿、标签、速度])。

如果路径中含有 20 个以上目标点,请多次执行该指令。

默认范围:0~20。

“视觉移动”任务位置

“视觉移动”任务目标点在整个路径中的位置。“视觉移动”任务即移动至视觉点(抓取物体的点)的移动任务。

比如,如果规划路径由以下任务组成:“移动_1”,“移动_2”,“视觉移动”,“移动_3”,则“视觉移动”任务位置为3。

如果路径中无“视觉移动”任务,则该参数值为 0。

目标点

[位姿, 标签, 速度]

  • 位姿:三维坐标及欧拉角,或 JPs 关节角。类型由 205 指令中的位姿类型决定。

  • 标签:位姿对应的整数标签。如果在 Mech-Vision 工程中,标签为字符串,请在输出前使用步骤 标签映射 将标签映射为整数。如果工程中没有标签,则该参数为默认值 0。

  • 速度:移动类任务参数中的非零速度参数百分数值。

样例

指令执行正常

TCP send string = 205, 1

TCP received string =205, 2100, 1, 2, 2, 8.307755332057372, 15.163476541700463, -142.1778810972881, -2.7756047848536745, -31.44046012182799, -96.94907235126934, 0, 64, 8.2 42574265592342, 12.130080796661591, -141.75872288706663-2.513533225987894, -34.8905853 039525, -97.19108378871277, 0, 32

指令执行异常

TCP send string = 205, 1
TCP received strins = 205, 2008, 1

206 指令——获取 DO 信号列表

该指令用于获取规划的 DO 信号列表。DO 信号列表用于控制多个工具或吸盘分区。

执行该指令前,需要先执行 205 指令 获取 Mech-Viz 规划路径。

请根据模板工程来部署 Mech-Viz 工程,并在工程中设置对应的吸盘配置文件。模板工程为 Mech-Center 安装目录 (tool/viz_project) 下的 suction_zone 工程。

在工程的 设置多个 DO 任务的参数中:

  • 在“接收对象”下勾选“标准接口”

  • 勾选“从视觉移动中获取DO列表”

  • 在参数栏底部选择需要DO信号列表的视觉移动任务

../../../../_images/set_do_list3.png

发送的指令参数

206

返回的数据参数

206, 状态码, DO信号值, DO信号值, …, DO信号值

状态码

若指令执行正常,则返回 2102 状态码;否则返回对应的错误码。

DO信号值

返回的数据参数末尾共有 64 个 DO 信号值,为整数。

DO 信号值范围:0~999。

占位值:-1。

样例

指令执行正常,获得 DO 信号值为 11 和 12。

TCP send string: 206
TCP receive string: 206, 2102, 11, 12, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1

指令执行异常,未获得任何 DO 信号。

TCP send string: 206
TCP receive string: 206, 2011, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1

207 指令——读取 Mech-Viz 任务参数

该指令读取指定任务的指定参数的值。

请在 Mech-Center 中 部署设置 ‣ Mech-Interface ‣ 高级设置属性配置 配置文件指定读取哪些任务的哪些参数。

发送的指令格式

207, 配置编号(config ID)

配置文件内容格式

read, config ID, 任务编号, 参数键名

配置文件中以“#”为开头的内容为批注行,在执行该指令时不起作用。

read

字符串“read”表示该指令用于 读取 参数值。

config ID

用于指定读取操作 ID 的正整数。 一个 config ID 只能用于读取一个参数。 如果读取多个参数,请使用不同的 config ID。

任务编号

要读取的参数所属于的任务的编号。

可以在任务参数中找到任务编号并设置。

参数键名

要读取的参数的键名,如下图所示。请通过 Mech-Viz 顶部菜单栏 设置 ‣ 组件属性设置 打开以下窗口。

../../../../_images/parameter_key_name.png

配置文件内容样例

read, 1, 10, digitalOutValue
read, 2, 2, xCount
read, 3, 2, yCount
read, 4, 5, allowVisionResultUnused
write, 1, 3, xOffset, 0.000000
write, 1, 3, yOffset, 0.000000
write, 1, 3, zOffset, 0.000030
write, 2, 7, delayTime, 0.1

返回的数据参数

207, 状态码, 任务参数值

状态码

如果未发生错误,则返回状态码 2109。 否则,将返回相应的错误码。

任务参数值

Mech-Viz 工程中指定任务的指定参数的值。

支持的数据类型:INT、FLOAT、STRING。

208 指令——设置 Mech-Viz 任务参数

该指令设置指定任务的指定参数的值。

请在 Mech-Center 中 部署设置 ‣ Mech-Interface ‣ 高级设置属性配置 配置文件指定设置哪些任务的哪些参数,以及设置成什么值。

发送的指令格式

208, 配置编号(config ID)

配置文件内容格式

write, config ID, 任务编号, 参数键名, 值

write

字符串“write”表示该指令用于 设置 参数值。

config ID

操作 ID。 一个 config ID 可用于设置多个参数。

任务编号

要参数的参数所属于的任务的编号。

可以在任务参数中找到任务编号并设置。

参数键名

要设置的参数的键名,如下图所示。请通过 Mech-Viz 顶部菜单栏 设置 ‣ 组件属性设置 打开以下窗口。

../../../../_images/parameter_key_name.png

指定参数应设置为的值。

除了数字,还支持字符串值。

配置文件内容样例

read, 1, 10, digitalOutValue
read, 2, 2, xCount
read, 3, 2, yCount
read, 4, 5, allowVisionResultUnused
write, 1, 3, xOffset, 0.000000
write, 1, 3, yOffset, 0.000000
write, 1, 3, zOffset, 0.000030
write, 2, 7, delayTime, 0.1

210 指令——获取移动目标和视觉规划结果

该指令用于从 Mech-Viz 获取规划的单个目标点。目标点可以是移动目标点,也可以是视觉目标点。目标点可能包含位姿、速度、工具信息、工件信息等。

执行该指令得到的目标点可以是以下三种之一。

  1. 除了 视觉移动 之外的移动类任务的目标,其信息包括运动类型(关节运动或直线运动)、工具编号、速度。

  2. 视觉移动 任务的目标点,其信息包括标签、已抓取的工件总数、计划下一次多抓的工件数量、吸盘边角号、TCP 偏移、工件方向、工件组合尺寸。

  3. 视觉移动 任务的目标点,包含 Mech-Vision 工程中步骤 输出 的输出。 如果步骤的端口类型设置为“Dynamic”,则目标点也将包含自定义数据类型。

注意

通常该指令用于工件为箱子的项目。

注意

执行该指令一次只能得到一个目标点。如果希望获取多个目标点,请多次执行该指令。

发送的指令参数

210, 预期的返回数据格式

预期的返回数据格式

以下是移动目标和视觉规划结果的四种预期的返回数据格式。

  1. JPs, 运动类型, 工具编号, 速度, 自定义视觉输出 1, …, 自定义视觉输出 N

  2. TCP, 运动类型, 工具编号, 速度, 自定义视觉输出 1, …, 自定义视觉输出 N

  3. JPs, 运动类型, 工具编号, 速度, 视觉计划结果, 自定义视觉输出 1, …, 自定义视觉输出 N

  4. TCP, 运动类型, 工具编号, 速度, 视觉计划结果, 自定义视觉输出 1, …, 自定义视觉输出 N

自定义视觉输出

自定义视觉输出指 Mech-Vision 工程中步骤 输出 的除位姿及标签外的数据。

视觉规划结果

视觉移动 任务的规划结果,包括以下信息:

  • 标签:10 个整数的字段。

  • 已抓取的工件总数。

  • 本次多抓的工件数量。

  • 边角号:吸盘边角号可在 视觉移动 任务的 吸盘配置器 中查看。

  • 工具位姿(TCP)偏移量。

  • 工件朝向。

  • 工件组尺寸。

返回的数据参数

210, 状态码, 目标点传输完成状态, 目标点类型, 位姿, 运动类型, 工具编号, 速度, 视觉规划结果 *, 自定义视觉输出 *

* 是否有视觉规划结果和/或自定义视觉输出取决于执行指令时发送的预期数据格式。

状态码

如未发生错误,将返回状态码 2100。否则,将返回相应的错误码。

目标点传输完成状态

  • 0:仍有目标点未传输。

  • 1:所有目标都已传输。

目标点类型

位姿

机器人关节角(JPs)或工具位姿(TCP)形式的的目标点的位姿,形式取决于发送的指令参数。

运动类型

  • 1:关节运动,MOVEJ

  • 2:直线运动,MOVEL

工具编号

在目标点使用的工具编号。 -1 表示不使用工具。

速度

目标点处速度的百分比值,即 Mech-Viz 工程中目标点对应移动类任务的参数中设置的速度。

视觉规划结果

目标中的规划结果信息(如果目标点对应移动任务为 视觉移动)。 通常用于纸箱多拣、卸垛等。信息包括:

  • 标签:最多支持 10 个正整数标签,默认值为零。

  • 已抓取的工件总数。

  • 本次多抓的工件数量。

  • 边角号:用于指定工件靠近吸盘的哪个边角,吸盘边角号可在 视觉移动 任务的 吸盘配置器 中查看。

  • 工具位姿(TCP)偏移量:从对应工件中心的 TCP 到 实际 TCP 的偏移量。

  • 工件朝向:工件坐标系 X 轴相对于 TCP X 轴的方向。

  • 工件组尺寸。

自定义视觉输出

步骤 输出 上自定义数据类型对应端口的自定义数据。

各自定义视觉输出参数按端口名称的字母顺序 A—Z 排列。

除了位姿和标签,所有其他端口的数据都视为自定义数据。

501 指令——向 Mech-Vision 中传入物体尺寸

该参数用于往 Mech-Vision 工程中动态传入物体尺寸。启动 Mech-Vision 工程前请先确认物体尺寸。

Mech-Vision 工程中应有 读取物体尺寸 步骤。该步骤参数 从参数读取物体尺寸 应设定为 True

../../../../_images/read_size3.png

发送的指令参数

501, Mech-Vision 工程号, 长, 宽, 高

Mech-Vision 工程号

Mech-Center 中 Mech-Vision 工程编号,即 Mech-Center 中 部署设置 ‣ Mech-Vision 中工程路径左侧显示的数字。可拖拽调整。

../../../../_images/project_no3.png

长,宽,高

传入 Mech-Vision 工程的物体尺寸。尺寸值将被 读取物体尺寸 步骤读取。

单位:毫米(mm)

返回的数据参数

501, 状态码

状态码

若指令执行正常,则返回 1108 状态码;否则返回对应的错误码。

样例

指令执行正常

TCP send string: 501, 1, 100, 200, 300
TCP receive string: 501, 1108

指令执行异常,错误码 3002, 缺少“高”的值。

TCP send string: 501, 1, 100, 200
TCP receive string: 501, 3002

502 指令——向 Mech-Viz 中传入 TCP

该指令用于往 Mech-Viz 工程中动态传入机器人 TCP。读取机器人 TCP 的任务为 外部移动

请基于模板工程部署 Mech-Viz 工程。模板工程路径为 Mech-Center 安装目录下 tool/viz_project/outer_move

请将 外部移动 任务放在工作流程中合适的位置。

该指令需在执行 201 指令——启动 Mech-Viz 工程 之前执行。

发送的指令参数

502, 机器人 TCP

机器人 TCP

用于设定 外部移动 任务目标点的机器人 TCP 数据。

返回的数据参数

502,状态码

状态码

若指令执行正常,则返回 2107 状态码;否则返回对应的错误码。

样例

指令执行正常

TCP send string: 502, 0, 10, 10, 20, 0, 0
TCP received string: 502, 2107

601 指令——通知

用户不需要发起该指令。

当 Mech-Viz / Mech-Vision 工程运行至 通知 任务/ 通知 步骤时,Mech-Center 会把“通知”中定义的消息发给客户端。

在 Mech-Vision 中,通知 步骤需命名为“Standard Interface Notify”。

在 Mech-Viz 中,在 通知 任务的参数中,请勾选“接收对象”下的“标准接口”。

发送的指令参数

无。

返回的数据参数

601, 自定义通知内容

自定义通知内容

通知 任务/ 通知 步骤中定义的通知消息。该消息需为整数。

样例

通知 任务/ 通知 步骤定义的通知消息为 “1000”,工程运行至该任务/步骤时会发出该通知。

TCP receive string = 601, 1000

701 指令——标定

该指令用于手眼标定(相机外参标定)。

该指令会与 Mech-Vision 同步标定状态,并从 Mech-Vision 处获得机器人需要到达的标定点。

该指令需要运行多次以完成标定。

发送的指令参数

701, 标定状态, 法兰位姿, JPs 关节角

标定状态

参数范围:0~2。

  • 0:通知 Mech-Vision 开始标定流程。

  • 1:上一标定点已接收,并发给机器人。

  • 2:上一标定点接收失败。

法兰位姿

机器人当前法兰位姿。

JPs 关节角

机器人当前关节角。

提示

JPs 关节角与法兰位姿选其一即可。

返回的数据参数

701, 状态码, 标定状态, 下一标定点法兰位姿, 下一标定点 JPs

状态码

若指令执行正常,返回 7101 状态码,否则返回对应的错误码。

标定状态

  • 0:标定进行中。

  • 1:标定完成。

下一标定点法兰位姿

机器人移动的目标点位姿数据。机器人程序端可以选择使用法兰位姿或者 JPs 位姿。

下一标定点关节角

机器人需移动至的下一标定点 JPs。

提示

JPs 与法兰位姿选其一即可。

样例

开始标定流程

TCP send string = 701, 0, 1371.62147, 25.6, 1334.3529, 148.58471, -179.24347, 88.75702, 88.86102, -7.11107, -28.82309, -0.44014, -67.6509, 31.4764
TCP received string = 701, 7101, 0, 1271.6969, -743374, 1334.34094, -3128422, 1792412, -91.11236, 93.28109, -12.0273, -32.8811, -0.37183, -68.41364, 27.02411

从 Mech-Vision 获取标定点(该过程需重复多次以获得所有标定点)

TCP send string = 701, 1, 1271.6969, -74.3374, 1334.34094, -3128422, 1792412, -91.11236, 93.28109, -12.0273, -32.8811, -0.37183, -68.41364, 27.02411
TCP received string = 701, 7101, 0, 1471.62226, -74.40452, 1334.34235, 148.56924, -179.24432, 88.74148, 92.8367, -2.14999, -24.25433, -0.39222, -67.23261, 27.485225

提示

该过程需重复多次以获得多个标定点。

结束标定

TCP send string = 701, 1, 1371.60876, 25.53615, 1384.45532, -20.82704, 179.22026, -72.77879, 88.88467, -7.42242, -26.68142, -0.2991, -69.95593, 39.26262
TCP received string = 701, 7101, 1, 1371.62147, 25.6, 1334.3529, 148.58471, -179 24347, 88.75702, 88.86102, -7.11107, -28.82309, -0.44014, -67.6509, 31.4764

901 指令——获取软件状态

该指令用于检查软件运行状态(Mech-Vision、Mech-Viz、Mech-Center)。

目前该指令只支持检查 Mech-Vision 是否可以开始运行工程。

发送的指令参数

901

返回的数据参数

901, 状态码

状态码

系统自检状态。 1101 状态码为“Mech-Vision 工程已就绪”;其他状态码为 “Mech-Vision 工程未就绪”。目前该指令只能用于检查 Mech-Vision 工程是否已就绪。

样例

Mech-Vision 工程已就绪

TCP send string = 901
TCP received string = 901, 1101

Mech-Vision 工程未就绪

TCP send string = 901
TCP received string = 901, 1001, 1

提示

请打开 Mech-Vision,打开工程,右键点击左侧工程列表中的工程,并勾选 自动加载当前工程