Siemens PLC Snap7 标准指令说明

本文介绍基于 Siemens Snap7 协议(简称 S7 协议)的标准接口指令。

指令总览

RVS 2.0 S7 协议支持以下标准指令:

寄存器使用说明

字段名

类型

偏移/地址

描述

Command Trigger

Bool

0.0

触发信号

Command

Int

2.0

指令码

Pose Type

Int

4.0

位姿类型

Pose Number

Int

6.0

预期视觉点或路径点数量

Vision Project No.

Int

8.0

工程编号

Recipe No.

Int

10.0

参数配方编号

Flange Pose

Array[0..5] of Real

36.0

法兰位姿数据

External Input Box Dimension

Array[0..2] of Real

68.0

传入 RVS 2.0 工程的物体尺寸

Index Counter

Int

108.0

索引个数

Index Name

Int

110.0

索引编号

字段名

类型

偏移/地址

描述

Trigger Acknowledge

Bool

194.0

触发确认

Status Code

Int

200.0

状态码

Status of Pose Sent

Bool

202.0

是否已获取所有视觉点

Number of Pose Sent

Int

204.0

视觉点的数量

Target Pose

Array[0..39, 0..5] of Real

208.0

此次获取的所有视觉点的位姿

Target Label

Array[0..39] of Int

1168.0

此次获取的所有视觉点的标签

Target Tool ID

Array[0..39] of Int

1248.0

此次获取的所有视觉点的末端工具编号

Custom Vision Output

Array[0..39, 0..9] of Real

1456.0

此次获取的所有视觉点的自定义数据

指令的收发

机器人或上位机(服务端)向 RVS 2.0 视觉系统(客户端)发送指令,视觉系统处理完成后将结果返回给机器人或上位机。

注意

当前版本仅支持本软件作为 S7 客户端运行。

指令的数据单位

  • RVS 2.0 软件内部使用四元数表示位姿,但指令通信时会自动转换为欧拉角形式。

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

101 指令:运行 RVS 2.0 工程

功能介绍

该指令用于触发指定的 RVS 2.0 工程运行。工程运行期间,视觉系统将依次执行拍照、图像处理与算法分析,并最终输出一系列视觉点。

注意

视觉点:指系统识别出的目标物体信息单元,每个视觉点包含物体的位姿、标签、尺寸及用户自定义数据等。

调用顺序

输入参数

名称

数据类型

偏移量

注释

Command

Int

2.0

指令码为 101

Vision Project No.

Int

8.0

RVS 2.0 工程编号

Pose Number

Int

6.0

预期视觉点数量

Pose Type

Int

4.0

机器人位姿类型

Flange Pose

Array[0..5] of Real

36.0

机器人位姿,Flange Pose 为法兰位姿数据

参数说明

参数

说明

RVS 2.0 工程编号

在工程列表窗口中查看,工程名称前的数字即为编号。

预期视觉点数量

期望获取的视觉点数量:
0:获取工程输出的全部视觉点。
正整数:获取指定数量的视觉点。
若实际输出数量少于该值,则全部返回;若大于或等于该值,则返回指定数量。

机器人位姿类型

指定机器人位姿的传入形式:
0:不传入机器人位姿。
2:传入机器人当前法兰位姿。

机器人位姿

根据“机器人位姿类型”传入对应数据,详见下表。

机器人位姿类型与位姿数据说明

机器人位姿类型

机器人位姿格式

说明

适用场景

0

0,0,0,0,0,0(占位参数,实际无效)

不向视觉系统传入机器人位姿。

相机为 Eye To Hand(眼在手外)安装,且项目无需提前拍照时使用。

2

机器人当前法兰位姿

传入机器人当前法兰位姿,用于视觉系统计算相机位置。

适用于绝大多数场景,尤其是 Eye In Hand(眼在手上)安装方式。

输出参数

字段名

类型

偏移/地址

描述

Status Code

Int

200.0

状态码

其中,若指令执行成功,状态码为 1102;若指令执行异常,则状态码为对应的错误码,具体参见 RVS 2.0 错误状态码

102 指令:获取视觉结果

功能介绍

该指令用于获取 RVS 2.0 工程运行后输出的视觉结果(即一系列视觉点)。视觉点中的物体位姿(对应“视觉输出”步骤的 Any 端口数据)已由视觉系统转换为对应机器人的工具位姿。

调用顺序

该指令需在 101 指令:运行 RVS 2.0 工程 成功运行工程、且已调用 109 指令:获取用户标签数据 之后调用。调用该指令获取数据后,“视觉输出”步骤的数据将被清空。

输入参数

名称

数据类型

偏移量

注释

Command

Int

2.0

指令码为 102

Vision Project No.

Int

8.0

RVS 2.0 工程编号

Index Counter

Int

108.0

索引个数

Index Name

Int

110.0

索引编号

RVS 2.0 工程编号

需与 101 指令中运行的工程编号一致。

索引个数及索引编号(可选项)

指定要获取的视觉点索引个数及编号,索引编号从 0 开始。 例如,当前共有 3 个视觉点,本次要获取 2 个,可通过索引编号指定具体组合(如 0,1、0,2 或 1,2)。

输出参数

名称

数据类型

偏移量

注释

Status Code

Int

200.0

状态码

Status of Pose Sent

Bool

202.0

是否已获取所有视觉点

Number of Pose Sent

Int

204.0

视觉点数量

Target Pose

Array[0..39, 0..5] of Real

208.0

此次获取的所有视觉点的位姿

Target Label

Array[0..39] of Int

1168.0

此次获取的所有视觉点的标签

Target Tool ID

Array[0..39] of Int

1248.0

此次获取的所有视觉点的末端工具编号

参数说明

参数

说明

状态码

1100:执行成功;其他为错误码,具体参见 RVS 2.0 错误状态码

是否已获取所有视觉点

False:未获取全部视觉点。
True:已获取全部视觉点。

视觉点数量

本次返回的视觉点个数。

此次获取的所有视觉点的位姿

此次获取的所有视觉点的位姿,且位姿类型为机器人工具位姿。视觉系统会将视觉点的物体位姿(即“视觉输出”步骤的 Any 端口数据)自动转换为对应的机器人工具位姿。

此次获取的所有视觉点的标签

此次获取的所有视觉点的标签。若无标签信息,则标签值默认为 0。

此次获取的所有视觉点的末端工具编号

此次获取的所有视觉点的末端工具编号。若无,则默认为 0。

103 指令:切换参数配方

功能介绍

该指令用于切换 RVS 2.0 工程所使用的参数配方。

调用顺序

该指令需在 101 指令:运行 RVS 2.0 工程 之前调用。

输入参数

名称

数据类型

偏移量

注释

Command

Int

2.0

指令码为 103

Vision Project No.

Int

8.0

RVS 2.0 工程编号

Recipe No.

Int

10.0

参数配方编号

其中,

  • RVS 2.0 工程编号

    在工程列表窗口中查看,工程名称前的数字即为编号。

  • 参数配方编号

    查看参数配方序号

输出参数

字段名

类型

偏移/地址

描述

Status Code

Int

200.0

状态码

其中,若指令执行正常,则状态码为 1107;若指令执行异常,则状态码为对应的错误码,具体参见 RVS 2.0 错误状态码

109 指令:获取用户标签数据

功能介绍

该指令用于获取 RVS 2.0 工程定义的用户标签数据(对应视觉输出步骤“用户标签”引脚的输入)。

调用顺序

该指令需在 101 指令:运行 RVS 2.0 工程 成功运行工程之后调用,并在 102 指令:获取视觉结果 之前调用。

输入参数

名称

数据类型

偏移量

注释

Command

Int

2.0

指令码为 109

Vision Project No.

Int

8.0

RVS 2.0 工程编号

RVS 2.0 工程编号

需与 101 指令中运行的工程编号一致。

输出参数

名称

数据类型

偏移量

注释

Status Code

Int

200.0

状态码

Target Label

Array[0..39] of Int

1168.0

此次获取的用户标签数据

Status of Pose Sent

Bool

202.0

是否已获取所有用户标签数据

其中,若指令执行正常,则状态码为 1100;若指令执行异常,则状态码为对应的错误码,具体参见 RVS 2.0 错误状态码

110 指令:获取自定义数据

功能介绍

该指令用于获取“视觉输出”步骤的自定义端口数据,输入端口可根据需求自定义配置。

注意

  1. 图中上方的 poseslabelssizesoffsets 等预设端口数据不属于自定义数据。

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

调用顺序

该指令需在 101 指令:运行 RVS 2.0 工程 成功运行工程之后调用。

输入参数

名称

数据类型

偏移量

注释

Command

Int

2.0

指令码为 110

Vision Project No.

Int

8.0

RVS 2.0 工程编号

RVS 2.0 工程编号

在工程列表窗口中查看,工程名称前的数字即为编号。需与 101 指令中运行的工程编号一致。

输出参数

名称

数据类型

偏移量

注释

Status Code

Int

200.0

状态码

Status of Pose Sent

Bool

202.0

是否已获取所有视觉点

Target Pose

Array[0..39, 0..5] of Real

208.0

此次获取的所有视觉点的位姿

Target Label

Array[0..39] of Int

1168.0

此次获取的所有视觉点的标签

Custom Vision Output

Array[0..39, 0..9] of Real

1456.0

此次获取的所有视觉点的自定义数据

Status Code

若指令执行正常,则状态码为 1100;若指令执行异常,则状态码为对应的错误码,具体参见 RVS 2.0 错误状态码

Status of Pose Sent

该参数表示是否已获取所有视觉点,其值为 False 或 True。

  • False:未获取所有视觉点。

  • True:已获取所有视觉点。

Target Pose

该参数表示此次获取的所有视觉点的位姿。 视觉系统会自动将视觉点的物体位姿(即“视觉输出”步骤的 poses 端口数据)转换为对应的机器人工具位姿,转换流程如下:

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

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

Target Label

该参数表示此次获取的所有视觉点的标签。

备注

  • 标签必须是一个整数形式的字符串。

  • 若无标签信息,则标签值默认为 0。

Custom Vision Output

此次获取的所有视觉点的自定义数据。自定义数据项按自定义端口名称的字母顺序(A—Z)排列。

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

端口名称

poses

labels

自定义数据项1

自定义数据项2

端口数据

[

[

[

[

[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]

]

]

]

]

第一个视觉点

[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]

501 指令:向 RVS 2.0 工程传入物体尺寸

功能介绍

该指令用于向 RVS 2.0 工程传入物体尺寸。传入的物体尺寸即“读取物体尺寸”步骤的 箱子尺寸设置 参数值,如下图所示。

注意

使用该指令时,RVS 2.0 工程中只能存在一个“读取物体尺寸”步骤,否则视觉系统将返回错误。

调用顺序

该指令需在 101 指令:运行 RVS 2.0 工程 之前调用。

输入参数

名称

数据类型

偏移量

注释

Command

Int

2.0

指令码为 501

Vision Project No.

Int

8.0

RVS 2.0 工程编号

External Input Box Dimension

Array[0..2] of Real

68.0

传入 RVS 2.0 工程的物体尺寸

Vision Project No.

在工程列表窗口中查看,工程名称前的数字即为编号。需与 101 指令中运行的工程编号一致。

External Input Box Dimension

物体尺寸的长宽高,单位为毫米(mm)。尺寸值将被“读取物体尺寸”步骤读取,并分别写入 X轴上的长度Y轴上的长度Z轴上的长度

输出参数

名称

数据类型

偏移量

注释

Status Code

Int

200.0

状态码

Status Code

若指令执行正常,则状态码为 1108;若指令执行异常,则状态码为对应的错误码,具体参见 RVS 2.0 错误状态码

901 指令:获取系统状态

功能介绍

该指令用于检测 RVS 2.0 视觉系统是否就绪,检测内容包括 RVS 2.0 状态和相机状态。

输入参数

名称

数据类型

偏移量

注释

Command

Int

2.0

指令码为 901

输出参数

名称

数据类型

偏移量

注释

Status Code

Int

200.0

状态码

状态码

若指令执行正常,则状态码为 1101。若指令执行异常,则状态码为对应的错误码,具体参见 RVS 2.0 错误状态码