TCP/IP 指令说明

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

■ 如果您想使用最新版本,可以从梅卡曼德下载中心下载。

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

本文介绍基于 TCP/IP 协议的标准接口指令。

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

该指令用于触发 Mech-Vision 工程的运行,执行相机拍照和视觉处理。用于只使用 Mech-Vision 而不使用 Mech-Viz 的场景。

发送的指令参数

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

Mech-Vision 工程编号

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

预期视觉点数量

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

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

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

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

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

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

机器人位姿类型机器人位姿

  • 机器人位姿类型 参数指定真实机器人的位姿将以何种形式传入 Mech-Vision,其取值范围为 0~3。

  • 机器人位姿 参数值取决于 机器人位姿类型 参数值。

下表为两参数取值的关系及说明。

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

0

0, 0, 0, 0, 0, 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 工程中存在“路径规划”步骤,且需要从机器人端设置“路径规划”步骤的起始点。

位姿由位置和姿态组成,其中位置单位为毫米(mm);姿态使用欧拉角表示,单位为度(°)。关节角单位为度(°)。

返回的数据参数

101, 状态码

状态码

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

样例

在 Eye In Hand 场景下,指令发送机器人当前关节角和法兰位姿,执行正常的示例如下所示。

TCP send string = 101, 1, 0, 1, 5.18, 14.52, 4.03, 0.09, 72.44, 5.15, 549.56, 50.0, 647.01, 180.0, -1.0, 180.0
TCP received string = 101, 1102

在 Eye To Hand 场景下,指令发送示教点的关节角,执行正常的示例如下所示。

TCP send string = 101, 1, 0, 3, 5.18, 14.52, 4.03, 0.09, 72.44, 5.15
TCP received string = 101, 1102

下面示例为指令执行异常,表示工程编号为 2 的视觉工程未注册。

TCP send string = 101, 2, 10, 0
TCP received string = 101, 1011

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

该指令用在 101 指令——启动 Mech-Vision 工程 之后,用于获取 Mech-Vision 输出的视觉点,然后自动将视觉点转换为视觉目标点。

具体转换过程如下所示,即将视觉点包含的位姿转换为对应机器人 TCP。

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

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

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

发送的指令参数

102, Mech-Vision 工程编号

Mech-Vision 工程编号

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

返回的数据参数

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

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

状态码

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

调用该指令后,如在 10 秒内未收到来自 Mech-Vision 的视觉结果,则将返回超时错误状态码。

是否发送完成

该参数表明是否已取得所有所需的视觉目标点。值为 0 或 1。

  • 0:未取得所有所需的视觉目标点。请重复执行 102 指令直到该参数值为 1。

  • 1:已取得所有所需的视觉目标点。

如果 101 指令——启动 Mech-Vision 工程 指定的预期视觉点数量大于 20(收发数据长度的默认值),可通过该参数判断是否还有未发送的视觉目标点。若数据未发送完毕,则可以重复调用 102 指令,继续接收。

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

视觉目标点数量

执行该指令获得的视觉目标点数量。

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

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

默认范围:0~20。

保留字段

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

视觉目标点

一个视觉目标点由 8 个数据构成,前 6 个表示 TCP,第 7 个表示标签,第 8 个表示速度。

  • 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

请求视觉目标点的样例

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

  • TCP/IP 发送 101 指令,内容为 101, 1, 0, 1, …,希望获取全部视觉目标点。

  • TCP/IP 发送 102 指令,获取 20 个视觉目标点。

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

  • TCP/IP 再次发送 102 指令,获取剩余视觉目标点。

  • TCP/IP 收到 102 指令返回的数据,内容为 102, 1100, 1, 2, …​。返回的数据包含 2 个视觉目标点,且表明所有视觉目标点已发送完成。

发送 101 指令。

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

第一次发送 102 指令,并获取 20 个视觉目标点。

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 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-Vision 工程编号可在 Mech-Vision 工程列表窗口中查看,工程名称前的数字表示工程编号。

配方编号

Mech-Vision工程中参数配方的编号,为正整数,取值范围为 1~99。在Mech-Vision窗口右下角,单击 工程助手  参数配方,进入参数配方编辑器,查看配方编号。

返回的数据参数

103, 状态码

状态码

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

样例

指令执行正常

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

指令执行异常

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

105 指令——获取 Mech-Vision “路径规划”步骤的结果

在调用 101 指令之后,使用该指令获取 Mech-Vision 中“路径规划”步骤输出的免碰撞抓取路径。

在使用该指令时,Mech-Vision “输出”步骤的 端口类型 参数需要设置为“预定义(机器人路径)”。

在调用 105 指令前,请务必将 101 指令的 预期视觉点数量 设置为 0,以减少调用 105 指令的次数。若 101 指令的 预期视觉点数量 设置为 1,则每次调用 105 指令只会返回一个路径点,只有多次调用 105 指令才能接收全部路径点。

发送的指令参数

105, Mech-Vision 工程编号, 路径点位姿类型

Mech-Vision 工程编号

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

路径点位姿类型

该参数用于指定“路径规划”步骤返回的路径点的位姿类型。

  • 1:路径点的位姿将以机器人关节角(JPs)的形式返回。

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

返回的数据参数

105, 状态码, 是否发送完成, 路径点数量, “视觉移动”位置, 路径点, 路径点, …, 路径点

状态码

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

是否发送完成

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

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

路径点数量

该参数用于表示此次执行该指令返回的路径点个数,取值范围为 0~20。若获取的路径点数多于 20,请多次调用该指令。

“视觉移动”位置

路径规划工具中设置的“视觉移动”路径点在整个路径中的位置。

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

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

路径点

一个路径点由 8 个数据构成,前 6 个表示位姿,第 7 个表示标签,第 8 个表示速度。

  • 位姿:三维坐标(单位为毫米)及欧拉角(单位为度),或 JPs 关节角(单位为度)。类型由 105 指令中的 路径点类型 决定。

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

  • 速度:路径规划工具中设置的速度值。

样例

指令执行正常

TCP send string = 105, 1, 2
TCP received string =105,1103,1,5,3,1030.0,0,1260.0,0.0,90.0,-0.0,0,7,1149.114,-298.9656,274.9219,-0.0977,-1.3863,-175.9702,0,7,1149.8416,-296.8585,245.0048,-0.0977,-1.3863,-175.9702,2,7,1149.114,-298.9656,274.9219,-0.0977,-1.3863,-175.9702,0,7,1030.0,0,1260.0,0.0,90.0,-0.0,0,7

指令执行异常

TCP send string = 105, 1,2
TCP received string = 105, 1020

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

该指令用于从 Mech-Vision 中的“输出”步骤接收自定义数据,即除 poses 和 labels 之外其他端口的数据( 输出步骤的“端口类型”参数设置为“自定义”)。

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

发送的指令参数

110, Mech-Vision 工程编号

Mech-Vision 工程编号

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

返回的数据参数

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

状态码

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

调用该指令后,如在 10 秒内未收到来自 Mech-Vision 的视觉结果,则将返回超时错误状态码。

位姿是否传输完成

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

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

自定义数据项个数

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

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

机器人坐标系下的工具位姿(TCP,其中三维坐标单位为毫米,欧拉角单位为度)。Mech-Vision 输出目标物体位姿,然后将该位姿转换为机器人工具位姿。输出步骤必须有一个位姿端口。

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

标签

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

自定义数据项

当 Mech-Vision 工程中输出步骤的端口类型为“自定义”时,除 poses 和 labels 之外其他端口的数据。

各自定义数据按照端口名称的字母顺序(A—Z)排列。

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

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

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

梅卡曼德 软件系统提供了使用标准接口的Mech-Viz示例工程,供用户参考使用标准接口通信时Mech-Viz工程的搭建方式。具体介绍参见 使用标准接口的Mech-Viz示例工程

发送的指令参数

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

机器人位姿类型机器人位姿

  • 机器人位姿类型 参数指定真实机器人的位姿将以何种形式传入 Mech-Viz,其取值范围为 0~2。

  • 机器人位姿 参数值取决于 机器人位姿类型 参数值。

下表为两参数取值的关系及说明。

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

0

0, 0, 0, 0, 0, 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 的原因:

Eye To Hand 模式下,相机可在机器人回到拍照及抓取区域之前拍照,用于提前规划下一轮抓取路径,从而缩短节拍。

若此时将 机器人位姿类型 设为 1,即将机器人当前位姿发送给 Mech-Viz 仿真机器人,可能导致仿真机器人与真实机器人轨迹不一致,发生未预知的碰撞,造成危险。

即仿真机器人将直接从当前位姿移动至 Mech-Viz 中第一个移动步骤中设置的位姿,而真实机器人可能在移动至其他位姿后才移动至上述位姿。

所以应将 机器人位姿类型 参数设为 2。

robot example
位姿由位置和姿态组成,其中位置单位为毫米(mm);姿态使用欧拉角表示,单位为度(°)。关节角单位为度(°)。

返回的数据参数

201, 状态码

状态码

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

样例

在 Eye In Hand 场景下,指令发送机器人当前关节角和法兰位姿,执行正常的示例如下所示。

TCP send string = 201, 1, 5.18, 14.52, 4.03, 0.09, 72.44, 5.15, 549.56, 50.0, 647.01, 180.0, -1.0, 180.0
TCP received string = 201, 2103

在 Eye To Hand 场景下,指令发送示教点的关节角,执行正常的示例如下所示。

TCP send string = 201, 2, 5.18, 14.52, 4.03, 0.09, 72.44, 5.15
TCP received string = 201, 2103

在下面示例中,指令未发送所需的位姿数据,因此执行异常。

TCP send string = 201, 1
TCP received string = 201, 2013

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

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

发送的指令参数

202

返回的数据参数

202, 状态码

状态码

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

样例

指令执行正常

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

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

当 Mech-Viz 工程中有分支步骤时,该指令可控制 Mech-Viz 工程中的分支步骤走指定的出口。

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

Mech-Viz 工程运行至分支步骤时,将等待该指令指定出口。

发送的指令参数

203, 分支步骤编号, 出口号

分支步骤编号

该参数用于指定分支的步骤编号,取值为正整数。步骤编号可在步骤参数中获取。

出口号

该参数用于指定分支的出口号,Mech-Viz 工程将沿该出口继续执行,取值为正整数,范围为1~99。

出口号为分支步骤显示的输出端口号加 1。例如,分支的端口号为 0,则出口号为 1。

返回的数据参数

203, 状态码

状态码

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

样例

指令执行正常

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

指令执行异常

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

204 指令——设置移动索引

该指令用于设定Mech-Viz步骤的当前索引参数值。带有该参数的步骤包括“按序列移动”、“按阵列移动”、“自定义垛型”、“预设垛型”等。

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

发送的指令参数

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

205 指令——获取规划路径

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

在使用默认设置时,该指令每次最多只能获取 20 个规划的路径点,因此,若获取的路径点数多于 20,则可以多次调用该指令。

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

发送的指令参数

205, 路径点类型

路径点类型

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

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

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

返回的数据参数

205, 状态码, 是否发送完成, 路径点数量, “视觉移动”步骤位置, 路径点, 路径点, …, 路径点

状态码

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

调用该指令后,如在 10 秒内未收到来自 Mech-Viz 的视觉结果,则将返回超时错误状态码。

是否发送完成

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

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

路径点数量

该参数表示返回的路径点个数,取值范围为 0~20。 在使用默认设置时,该指令每次最多只能获取 20 个规划的路径点,因此,若获取的路径点数多于 20,则可以多次调用该指令。

“视觉移动”位置

“视觉移动”路径点在整个路径中的位置。

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

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

路径点

一个路径点由 8 个数据构成,前 6 个表示位姿,第 7 个表示标签,第 8 个表示速度。

  • 位姿:三维坐标(单位为毫米)及欧拉角(单位为度),或 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 string = 205, 2008

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

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

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

请根据模板工程来部署 Mech-Viz 工程,并在工程中设置对应的吸盘配置文件。模板工程位于 梅卡曼德 软件安装目录下 Mech-Center\tool\viz_project\suction_zone 文件夹。

在Mech-Viz“设置多个DO”步骤的参数中:

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

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

  • 在“选择视觉移动”后的下拉框中,选择需要DO信号列表的视觉移动步骤。

发送的指令参数

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 顶部菜单栏设置  步骤参数设置,打开以下窗口。

parameter key name

配置文件内容样例

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。

样例

指令执行正常,成功读取参数值。

TCP send string = 207, 1
TCP received string = 207, 2109, 10

指令执行异常,无法找到对应的参数名称。

TCP send string = 207, 1
TCP received string = 207, 2041

208 指令——设置 Mech-Viz 步骤参数

该指令设置指定步骤的指定参数的值。

请在 Mech-Center 中部署设置  Mech-Interface  高级设置  属性配置的配置文件中指定步骤编号、参数名和参数值。

发送的指令格式

208, 配置编号(config ID)

配置文件内容格式

write, config ID, 步骤编号, 参数键名, 值

write

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

config ID

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

步骤编号

设置的参数所属于的步骤的编号。

步骤编号可以在步骤参数中找到并设置。

参数键名

要设置的参数的键名。请通过 Mech-Viz 顶部菜单栏 设置  步骤参数设置,打开以下窗口。

Unnamed image

指定参数应设置为的值。

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

配置文件内容样例

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

样例

指令执行正常,成功设置参数。

TCP send string = 208, 1
TCP received string = 208, 2108

指令执行异常,无法找到对应的配置编号。

TCP send string = 208, 10
TCP received string = 208, 3008

210 指令——获取单个路径点和视觉规划结果

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

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

  1. 除了视觉移动之外的一般移动路径点,其信息包括运动类型(关节运动或直线运动)、工具编号、速度。

  2. 视觉移动路径点,其信息包括标签、已抓取的工件总数、本次抓取的工件数量、吸盘边角号、TCP 偏移量、工件朝向、工件组尺寸。

  3. 包含自定义数据的视觉移动路径点,此时 Mech-Vision 工程输出步骤的端口类型需设置为“自定义”。

  • 如需获取 Mech-Vision 中设置的自定义规划数据,或需要获取拆垛规划数据,请使用该指令。

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

发送的指令参数

210, 预期的返回数据格式

预期的返回数据格式

以下是四种预期的返回数据格式说明。

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

1

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

2

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

3

位姿(JPs 形式), 运动类型, 工具编号, 速度, 视觉规划结果, 自定义数据项个数, 自定义数据项 1, …, 自定义数据项 N

4

位姿(TCP 形式), 运动类型, 工具编号, 速度, 视觉规划结果, 自定义数据项个数, 自定义数据项 1, …, 自定义数据项 N

返回的数据参数

210, 状态码, 路径点传输完成状态, 路径点类型, 位姿, 运动类型, 工具编号, 速度, 视觉规划结果, 自定义数据项个数, 自定义数据项

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

状态码

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

路径点传输完成状态

  • 0:仍有路径点未传输。

  • 1:所有路径点都已传输。

路径点类型

  • 0:不是视觉移动路径点。

  • 1:是视觉移动路径点。

位姿

路径点的位姿可以是机器人关节角(JPs,单位为度)或工具位姿(TCP,其中三维坐标单位为毫米,欧拉角单位为度),其形式取决于发送的指令参数。

运动类型

  • 1:关节运动,MOVEJ

  • 2:直线运动,MOVEL

工具编号

路径点的工具编号。 -1 表示不使用工具。

速度

路径点的速度百分比值,其值为 Mech-Viz 工程中该路径点对应移动类步骤的参数中设置的速度乘以 Mech-Viz 中设置的全局速度,单位为 %。

视觉规划结果

路径中的规划结果信息(如果路径点对应移动步骤为视觉移动),通常用于纸箱多拣、卸垛等。信息包括:

  • 标签:由 10 个正整数组成,默认为 10 个 0。

  • 已抓取的工件总数。

  • 本次抓取的工件数量。

  • 吸盘边角号:用于指定工件靠近吸盘的哪个边角。在 Mech-Viz 的“工程资源”中双击对应的末端工具名称,然后单击 控制逻辑配置窗口 ,便可查看吸盘边角号。

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

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

  • 工件组尺寸。

自定义数据项个数

当 Mech-Vision 工程中输出步骤的端口类型为“自定义”时,除 poses 和 labels 之外其他端口输出的数据个数。

自定义数据项

当 Mech-Vision 工程中输出步骤的端口类型为“自定义”时,除 poses 和 labels 之外其他端口的数据。

各自定义数据项按照端口名称的字母顺序(A—Z)排列。

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

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

Mech-Vision 工程中应有“读取物体尺寸”步骤,且应勾选该步骤的从参数读取物体尺寸参数。

发送的指令参数

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

Mech-Vision 工程编号

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

长,宽,高

传入 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 工程动态传入位姿数据,配合 Mech-Viz 软件中的“外部移动”步骤使用。

请基于模板工程部署 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:上一标定点接收失败。

法兰位姿

机器人当前法兰位姿。位姿由位置和姿态组成,其中位置单位为毫米(mm);姿态使用欧拉角表示,单位为度(°)。

JPs 关节角

机器人当前关节角,单位为度(°)。

法兰位姿JPs 关节角 只需指定其中一个参数值即可,另一个参数值使用 6 个 0 填充。

返回的数据参数

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, -74.3374, 1334.34094, -3128.422, 179.2412, -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
执行该指令前,请确认已 自动加载当前方案自动加载当前工程

我们重视您的隐私

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