Siemens PLC Snap7 指令说明
本文介绍基于Siemens PLC Snap7协议(简称S7协议)的标准接口指令。
寄存器使用说明
在PLC和视觉系统进行Siemens PLC Snap7协议通信时,各变量的寄存器信息如下表所示。
名称 | 数据类型 | 偏移量 | 注释 | |
---|---|---|---|---|
ToCamera |
Struct |
0.0 |
PLC输出,即从PLC到视觉系统 |
|
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 |
Mech-Vision工程编号 |
|
Recipe No. |
Int |
10.0 |
参数配方编号 |
|
Joint Position |
Array[0..5] of Real |
12.0 |
关节角数据 |
|
Flange Pose |
Array[0..5] of Real |
36.0 |
法兰位姿数据 |
|
Branch Name |
Int |
60.0 |
消息分支的步骤编号 |
|
Branch Exit Port |
Int |
62.0 |
“消息分支”步骤的出口号 |
|
Index Name |
Int |
64.0 |
索引类步骤的步骤编号 |
|
Index Counter |
Int |
66.0 |
索引类步骤的当前索引值 |
|
External Input Box Dimension |
Array[0..2] of Real |
68.0 |
传入Mech-Vision工程的物体尺寸 |
|
External Input Pose |
Array[0..5] of Real |
80.0 |
传入Mech-Viz工程的外部机器人工具位姿 |
|
Robot Move Status |
Int |
104.0 |
机器人移动状态 |
|
Depalletize Tool Section Count |
Int |
106.0 |
吸盘分区数量 |
|
FromCamera |
Struct |
108.0 |
PLC输入,即从视觉系统到PLC |
|
Reserved |
Array[0..42] of Int |
108.0 |
预留 |
|
Trigger Acknowledge |
Bool |
194.0 |
触发确认 |
|
Notify |
Int |
196.0 |
“通知”步骤的消息 |
|
Heartbeat |
Bool |
198.0 |
心跳值 |
|
Status Code |
Int |
200.0 |
状态码 |
|
Status of Pose Sent |
Bool |
202.0 |
数据传输状态 |
|
Number of Pose Sent |
Int |
204.0 |
视觉点或路径点的数量 |
|
Index of Vision Picking Point |
Int |
206.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 |
此次获取的所有路径点的末端工具编号 |
|
Digital Output |
Array[0..63] of Int |
1328.0 |
视觉系统返回的64个DO信号 |
|
Custom Vision Output |
Array[0..39, 0..9] of Real |
1456.0 |
此次获取的所有视觉点或路径点的自定义数据 |
|
Target IsVisualMove |
Array[0..39] of Int |
3056.0 |
是否是视觉移动路径点 |
|
Target Move Type |
Array[0..39] of Int |
3136.0 |
机器人移动类型 |
|
Speed Percentage |
Array[0..39] of Int |
3216.0 |
路径点的速度 |
|
VisualMove Planning Result |
Array[0..39, 0..39] of Real |
3296.0 |
视觉移动规划数据 |
101指令——运行Mech-Vision工程
功能介绍
该指令用于触发Mech-Vision工程运行。在Mech-Vision工程运行期间,视觉系统会执行相机拍照,并对图像数据进行一系列的视觉算法处理,最终得到一系列视觉点或路径点。
|
调用顺序
-
工程中的步骤参数需要在运行Mech-Vision工程之前被设置,因此103指令——切换Mech-Vision参数配方或501指令——向Mech-Vision工程传入物体尺寸需先于101指令——运行Mech-Vision工程被调用。
-
只有运行Mech-Vision工程后,视觉系统才得到视觉点或路径点,因此101指令——运行Mech-Vision工程需先于102指令——获取视觉结果、105指令——获取Mech-Vision规划路径或110指令——获取Mech-Vision自定义数据被调用。
所有指令的调用顺序可参考《标准接口指令调用时序》。
输入参数
名称 | 数据类型 | 偏移量 | 注释 |
---|---|---|---|
Command |
Int |
2.0 |
指令码为101 |
Vision Project No. |
Int |
8.0 |
Mech-Vision工程编号 |
Pose Number |
Int |
6.0 |
预期视觉点或路径点数量 |
Pose Type |
Int |
4.0 |
机器人位姿类型 |
Joint Position、Flange Pose |
Array[0..5] of Real |
12.0、36.0 |
机器人位姿,Joint Position为关节角数据,Flange Pose为法兰位姿数据 |
Vision Project No.
Mech-Vision工程编号可在Mech-Vision工程列表窗口中查看,工程名称前的数字表示工程编号。
Pose Number
该参数表示期望从Mech-Vision工程获取的视觉点或路径点数量。
若Mech-Vision工程中存在“路径规划”步骤,该参数表示预期路径点数量,否则表示预期视觉点数量。 |
-
0:从Mech-Vision工程获取所有视觉点或路径点。
-
大于0的整数:从Mech-Vision工程获取指定数量的视觉点或路径点。
-
如果Mech-Vision工程输出的视觉点或路径点总数小于指定的参数值,则获取输出的所有视觉点或路径点。
-
如果Mech-Vision工程输出的视觉点或路径点总数大于或等于指定的参数值,则获取指定数量的视觉点或路径点。
-
|
Pose Type 、 Joint Position/Flange Pose
-
机器人位姿类型 指定真实机器人的位姿将以何种形式传入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工程中存在“路径规划”步骤,且需要从机器人端设置“路径规划”步骤的起始点。 |
输出参数
名称 | 数据类型 | 偏移量 | 注释 |
---|---|---|---|
Status Code |
Int |
200.0 |
状态码 |
Status Code
若指令执行正常,则状态码为 1102。 若指令执行异常,则状态码为对应的错误码,具体可参考《标准接口状态码及错误排查》。
102指令——获取视觉结果
功能介绍
该指令用于获取Mech-Vision输出的视觉结果(一系列视觉点)。视觉点的物体位姿(即“输出”步骤的poses端口数据)将会由视觉系统自动转换为对应机器人的工具位姿,具体转换流程如下。
-
将物体位姿由四元数形式转换为欧拉角形式。
-
将物体位姿绕X轴旋转180°,使其Z轴朝下。
输入参数
名称 | 数据类型 | 偏移量 | 注释 |
---|---|---|---|
Command |
Int |
2.0 |
指令码为102 |
Vision Project No. |
Int |
8.0 |
Mech-Vision工程编号 |
Vision Project No.
Mech-Vision工程编号可在Mech-Vision工程列表窗口中查看,工程名称前的数字表示工程编号。
输出参数
名称 | 数据类型 | 偏移量 | 注释 |
---|---|---|---|
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 |
此次获取的所有视觉点的标签 |
Status Code
若指令执行正常,则状态码为 1100。 若指令执行异常,则状态码为对应的错误码,具体可参考《标准接口状态码及错误排查》。
Status of Pose Sent
该参数表示数据传输状态。1表示从视觉系统获取的数据是新数据。在PLC读取新数据后,请将该寄存器复位。
Number of Pose Sent
该参数表示获取的视觉点数量。视觉系统默认单次发送视觉点的最大数量为20,因此该参数默认最大值为20。
Target Pose
该参数表示此次获取的所有视觉点的位姿,且位姿类型为机器人工具位姿。
视觉系统会将视觉点的物体位姿(即“输出”步骤的poses端口数据)自动转换为对应的机器人工具位姿。
-
将物体位姿由四元数形式转换为欧拉角形式。
-
将物体位姿绕X轴旋转180°,使其Z轴朝下。
Target Label
该参数表示此次获取的所有视觉点的标签(“输出”步骤中labels端口数据)。
|
103指令——切换Mech-Vision参数配方
输入参数
名称 | 数据类型 | 偏移量 | 注释 |
---|---|---|---|
Command |
Int |
2.0 |
指令码为103 |
Vision Project No. |
Int |
8.0 |
Mech-Vision工程编号 |
Recipe No. |
Int |
10.0 |
参数配方编号 |
Vision Project No.
Mech-Vision工程编号可在Mech-Vision工程列表窗口中查看,工程名称前的数字表示工程编号。
Recipe No.
Mech-Vision工程中参数配方的编号,为正整数,取值范围为1~99。如何查看参数配方的编号,可参考《查看参数配方的编号》。
输出参数
名称 | 数据类型 | 偏移量 | 注释 |
---|---|---|---|
Status Code |
Int |
200.0 |
状态码 |
Status Code
若指令执行正常,则状态码为 1107。 若指令执行异常,则状态码为对应的错误码,具体可参考《标准接口状态码及错误排查》。
105指令——获取Mech-Vision规划路径
功能介绍
该指令用于获取Mech-Vision规划的路径(一系列路径点)。此处的路径由“路径规划工具”(从下图的 打开编辑器 进入)规划。“路径规划”步骤相关的内容,可参考《路径规划》。
Mech-Vision “输出”步骤的 端口类型 参数需要设置为“预定义(机器人路径)”。 |
输入参数
名称 | 数据类型 | 偏移量 | 注释 |
---|---|---|---|
Command |
Int |
2.0 |
指令码为105 |
Vision Project No. |
Int |
8.0 |
Mech-Vision工程编号 |
Pose Type |
Int |
4.0 |
路径点的位姿类型 |
Vision Project No.
Mech-Vision工程编号可在Mech-Vision工程列表窗口中查看,工程名称前的数字表示工程编号。
Pose Type
该参数用于指定获取路径点的位姿类型。
-
1:机器人关节角(JPs)。
-
2:机器人工具位姿。
输出参数
名称 | 数据类型 | 偏移量 | 注释 |
---|---|---|---|
Status Code |
Int |
200.0 |
状态码 |
Status of Pose Sent |
Bool |
202.0 |
数据传输状态 |
Number of Pose Sent |
Int |
204.0 |
路径点数量 |
Index of Vision Picking Point |
Int |
206.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 |
此次获取的所有路径点的末端工具编号 |
Status Code
若指令执行正常,则状态码为 1103。 若指令执行异常,则状态码为对应的错误码,具体可参考《标准接口状态码及错误排查》。
Status of Pose Sent
该参数表示数据传输状态。1表示从视觉系统获取的数据是新数据。在PLC读取新数据后,请将该寄存器复位。
Number of Pose Sent
该参数表示获取的路径点数量。视觉系统默认单次发送路径点的最大数量为20,因此该参数默认最大值为20。
在调用105指令——获取Mech-Vision规划路径前,请务必将101指令——运行Mech-Vision工程的 预期视觉点或路径点数量 设置为0,以减少调用105指令——获取Mech-Vision规划路径的次数。若101指令——运行Mech-Vision工程指令的 预期视觉点或路径点数量 设置为1,则每次调用105指令——获取Mech-Vision规划路径只会获取一个路径点,只有多次调用才能获取全部路径点。 |
Index of Vision Picking Point
该参数表示路径规划工具中“视觉移动”步骤对应的路径点(视觉移动路径点)在路径中的位置。如果路径中无视觉移动路径点,则该参数值为0。
例如,如果规划路径由以下路径点组成:“定点移动_1”,“定点移动_2”,“视觉移动”,“定点移动_3”,则视觉移动路径点的位置为3。
若需多次发送该指令才可接收整条路径,则该参数在第一次返回结果中表示视觉移动路径点在整条规划路径中的位置,在后续返回结果中表示视觉移动路径点在剩余路径点中的位置。 |
Target Pose
该参数表示此次获取的所有路径点的位姿。位姿类型可以为机器人工具位姿或关节角。位姿类型由发送该指令时指定的 Pose Type 参数决定。
Target Label
该参数表示此次获取的所有路径点的标签(“输出”步骤中labels端口数据)。
|
Target Tool ID
该参数表示此次获取的所有路径点的末端工具编号(路径规划工具中设置的末端工具编号)。
110指令——获取Mech-Vision自定义数据
功能介绍
该指令用于从Mech-Vision“输出”步骤获取自定义端口的数据。 自定义端口的设置可从“输出”步骤参数的 打开编辑器 处进入,其中自定义通信键名就是自定义端口名称,例如下图中customeData1和customeData2端口就是自定义端口。
|
输入参数
名称 | 数据类型 | 偏移量 | 注释 |
---|---|---|---|
Command |
Int |
2.0 |
指令码为110 |
Vision Project No. |
Int |
8.0 |
Mech-Vision工程编号 |
Mech-Vision工程编号
Mech-Vision工程编号可在Mech-Vision工程列表窗口中查看,工程名称前的数字表示工程编号。
输出参数
名称 | 数据类型 | 偏移量 | 注释 |
---|---|---|---|
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。 若指令执行异常,则状态码为对应的错误码,具体可参考《标准接口状态码及错误排查》。
Status of Pose Sent
该参数表示数据传输状态。1表示从视觉系统获取的数据是新数据。在PLC读取新数据后,请将该寄存器复位。
Target Pose
该参数表示此次获取的所有视觉点的位姿,且位姿类型为机器人工具位姿。
视觉系统会将视觉点的物体位姿(即“输出”步骤的poses端口数据)自动转换为对应的机器人工具位姿。
-
将物体位姿由四元数形式转换为欧拉角形式。
-
将物体位姿绕X轴旋转180°,使其Z轴朝下。
Target Label
该参数表示此次获取的所有视觉点的标签(“输出”步骤中labels端口数据)。
|
Custom Vision Output
此次获取的所有视觉点的自定义数据。例如,“输出”步骤各端口的数据如下表所示,则第一个视觉点的 自定义数据 为 [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] |
自定义数据按照自定义端口名称的字母顺序(A—Z)排列。 |
201指令——运行Mech-Viz工程
功能介绍
该指令用于触发Mech-Viz工程运行。Mech-Viz是基于Mech-Vision输出的视觉结果规划机器人的移动路径。
在Mech-Viz工程资源面板中,右键单击工程名称,勾选 设为自动加载。 |
调用顺序
所有指令的调用顺序可参考《标准接口指令调用时序》。
输入参数
名称 | 数据类型 | 偏移量 | 注释 |
---|---|---|---|
Command |
Int |
2.0 |
指令码为201 |
Pose Type |
Int |
4.0 |
机器人位姿类型 |
Joint Position、Flange Pose |
Array[0..5] of Real |
12.0、36.0 |
机器人位姿,Joint Position为关节角数据,Flange Pose为法兰位姿数据 |
Pose Type 、 Joint Position/Flange Pose
-
机器人位姿类型 指定真实机器人的位姿将以何种形式传入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?
在下图中,机器人正在放置区进行作业。
若在此种场景中,将 机器人位姿类型 设置为 1,表示将机器人当前位姿发送给Mech-Viz,真实机器人可能在移动至其他位置后才移动至第一个路径点。仿真机器人将直接从当前位置移动至Mech-Viz工程中的第一个路径点,在这段移动过程中可能会检测到碰撞而发出警告。
若在此种场景中,将 机器人位姿类型 设置为 2,表示将机器人端设置的示教拍照点发送给Mech-Viz,这样真实机器人在放置区即可提前触发Mech-Viz规划下一轮路径,从而缩短节拍。
以上就是Eye To Hand模式下,机器人位姿类型 推荐使用2的原因。
输出参数
名称 | 数据类型 | 偏移量 | 注释 |
---|---|---|---|
Status Code |
Int |
200.0 |
状态码 |
Status Code
若指令执行正常,则状态码为 2103。 若指令执行异常,则状态码为对应的错误码,具体可参考《标准接口状态码及错误排查》。
202指令——停止Mech-Viz工程
输出参数
名称 | 数据类型 | 偏移量 | 注释 |
---|---|---|---|
Status Code |
Int |
200.0 |
状态码 |
Status Code
若指令执行正常,则状态码为 2104。 若指令执行异常,则状态码为对应的错误码,具体可参考《标准接口状态码及错误排查》。
203指令——设置Mech-Viz消息分支出口
输入参数
名称 | 数据类型 | 偏移量 | 注释 |
---|---|---|---|
Command |
Int |
2.0 |
指令码为203 |
Branch Name |
Int |
60.0 |
消息分支的步骤编号 |
Branch Exit Port |
Int |
62.0 |
“消息分支”步骤的出口号 |
Branch Name
该参数用于指定消息分支的步骤编号,取值为正整数。步骤编号可在步骤参数中获取,例如上图中的步骤编号为1。
Branch Exit Port
该参数用于指定“消息分支”步骤的出口号,其值为正整数。若将该参数值设置为N,则Mech-Viz工程将沿“消息分支”步骤的N-1出口继续执行。 例如,将Branch Name设置为2,Branch Exit Port设置为1,在PLC向视觉系统发送该指令后,Mech-Viz工程运行至步骤编号为2的消息分支时,将沿出口0继续执行。
输出参数
名称 | 数据类型 | 偏移量 | 注释 |
---|---|---|---|
Status Code |
Int |
200.0 |
状态码 |
Status Code
若指令执行正常,则状态码为 2105。 若指令执行异常,则状态码为对应的错误码,具体可参考《标准接口状态码及错误排查》。
204指令——设置Mech-Viz当前索引
调用顺序
通常在索引类步骤前存在一个“消息分支”步骤,机器人端首先调用201指令——运行Mech-Viz工程,然后调用204指令——设置Mech-Viz当前索引,最后调用203指令——设置Mech-Viz消息分支出口。如此,Mech-Viz将有充足时间设置当前索引值。
所有指令的调用顺序可参考《标准接口指令调用时序》。
输入参数
名称 | 数据类型 | 偏移量 | 注释 |
---|---|---|---|
Command |
Int |
2.0 |
指令码为204 |
Index Name |
Int |
64.0 |
索引类步骤的步骤编号 |
Index Counter |
Int |
66.0 |
索引类步骤的当前索引值 |
Index Name
该参数用于指定索引类步骤的步骤编号,取值为正整数。步骤编号可在步骤参数中获取,例如上图中的步骤编号为3。
Index Counter
该参数用于指定索引类步骤的当前索引值,其值为正整数。若将该参数值设置为N,则相应步骤的当前索引值为N-1。例如,将Index Name设置为2,Index Counter设置为1,在PLC向视觉系统发送该指令后,步骤编号为2的步骤的当前索引值为0。
输出参数
名称 | 数据类型 | 偏移量 | 注释 |
---|---|---|---|
Status Code |
Int |
200.0 |
状态码 |
Status Code
若指令执行正常,则状态码为 2106。 若指令执行异常,则状态码为对应的错误码,具体可参考《标准接口状态码及错误排查》。
205指令——获取Mech-Viz规划路径
功能介绍
该指令用于获取Mech-Viz工程规划的移动路径(一系列路径点)。
路径点:机器人沿着规划路径需逐一到达的点位,一个路径点包括机器人位姿、标签、移动类型等信息。路径点可分为以下两种类型:
|
输入参数
名称 | 数据类型 | 偏移量 | 注释 |
---|---|---|---|
Command |
Int |
2.0 |
指令码为205 |
Pose Type |
Int |
4.0 |
路径点的位姿类型 |
Pose Type
该参数用于指定获取路径点的位姿类型。
-
1:机器人关节角(JPs)。
-
2:机器人工具位姿。
输出参数
名称 | 数据类型 | 偏移量 | 注释 |
---|---|---|---|
Status Code |
Int |
200.0 |
状态码 |
Status of Pose Sent |
Bool |
202.0 |
数据传输状态 |
Number of Pose Sent |
Int |
204.0 |
路径点数量 |
Index of Vision Picking Point |
Int |
206.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 |
此次获取的所有路径点的末端工具编号 |
Status Code
若指令执行正常,则状态码为 2100。 若指令执行异常,则状态码为对应的错误码,具体可参考《标准接口状态码及错误排查》。
Status of Pose Sent
该参数表示数据传输状态。1表示从视觉系统获取的数据是新数据。在PLC读取新数据后,请将该寄存器复位。
Number of Pose Sent
该参数表示获取的路径点数量。视觉系统默认单次发送路径点的最大数量为20,因此该参数默认最大值为20。
Index of Vision Picking Point
该参数表示Mech-Viz工程中“视觉移动”步骤对应的路径点(视觉移动路径点)在路径中的位置。如果路径中无视觉移动路径点,则该参数值为0。
例如,如果规划路径由以下路径点组成:“定点移动_1”,“定点移动_2”,“视觉移动”,“定点移动_3”,则视觉移动路径点的位置为3。
若需多次发送该指令才可接收整条路径,则该参数在第一次返回结果中表示视觉移动路径点在整条规划路径中的位置,在后续返回结果中表示视觉移动路径点在剩余路径点中的位置。 |
Target Pose
该参数表示此次获取的所有路径点的位姿。位姿类型可以为机器人工具位姿或关节角。位姿类型由发送该指令时指定的 Pose Type 参数决定。
Target Label
该参数表示此次获取的所有路径点的标签(“输出”步骤中labels端口数据)。
|
Target Tool ID
该参数表示此次获取的所有路径点的末端工具编号(Mech-Viz工程中设置的末端工具编号)。
206指令——获取吸盘DO信号
功能介绍
该指令用于获取Mech-Vision或Mech-Viz规划的吸盘DO信号。在使用该指令前,用户需提前在Mech-Vision或Mech-Viz软件中进行如下配置。
-
配置Mech-Vision工程
-
在“路径规划”步骤参数中,单击配置向导。在全局配置中,将箱子拆垛开关置于打开状态。
-
在“路径规划”步骤参数中,单击配置向导,双击末端工具名称,工具类型选择拆垛吸盘,单击拆垛吸盘配置,根据需求配置DO信号。
-
-
配置Mech-Viz工程
-
在Mech-Viz软件中,“视觉移动”步骤的 抓取工艺 选择 箱子拆垛。
-
在Mech-Viz软件中,双击末端工具名称,工具类型选择拆垛吸盘,单击拆垛吸盘配置,根据需求配置DO信号。
-
调用顺序
该指令需在105指令——获取Mech-Vision规划路径或205指令——获取Mech-Viz规划路径指令之后被调用,即PLC先获取规划路径,再获取视觉移动路径点对应的吸盘DO信号。
输入参数
名称 | 数据类型 | 偏移量 | 注释 |
---|---|---|---|
Command |
Int |
2.0 |
指令码为206 |
Vision Project No. |
Int |
8.0 |
吸盘DO信号的来源 |
Depalletize Tool Section Count |
Int |
106.0 |
吸盘分区数量 |
Vision Project No.
该参数指定吸盘DO信号的来源,可以为以下取值:
-
0:从Mech-Viz获取吸盘DO信号;
-
正整数:从Mech-Vision获取吸盘DO信号,此处设置的正整数就是Mech-Vision工程编号。
Depalletize Tool Section Count
该参数表示吸盘分区数量。例如,上图中的吸盘分区数量为3。
输出参数
名称 | 数据类型 | 偏移量 | 注释 |
---|---|---|---|
Status Code |
Int |
200.0 |
状态码 |
Digital Output |
Array[0..63] of Int |
1328.0 |
视觉系统返回的64个DO信号 |
Status Code
若指令执行正常,则状态码为 2102(成功从Mech-Viz获取吸盘DO信号)或 1106(成功从Mech-Vision获取吸盘DO信号)。 若指令执行异常,则状态码为对应的错误码,具体可参考《标准接口状态码及错误排查》。
Digital Output
该参数表示视觉系统返回的64个DO信号。根据所搭建工程的不同,该指令返回的DO信号会有所不同,具体如下。
-
Mech-Vision工程规划的吸盘DO信号
-
在路径规划的全局配置中,若规划全部视觉结果开关处于关闭状态,则该指令返回64个DO信号,表示本轮规划的吸盘DO信号,其中有效的DO信号为非负整数,范围为 0~999;无效的DO信号为-1(作为占位值)。
例如,在下表中,返回的有效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信号。
例如,吸盘分区数量为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(作为占位值)。
例如,在下表中,返回的有效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信号。
例如,吸盘分区数量为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
-
210指令——获取视觉移动规划数据或自定义数据
该指令用于获取Mech-Vision工程的视觉移动规划数据,或者获取Mech-Viz工程的视觉移动规划数据或自定义数据。该指令调用一次便可将所有数据存放至机器人内存中。
对于Mech-Viz 2.0版本软件,该指令暂时不支持获取自定义数据,仅支持获取视觉移动规划数据。 |
-
对于Mech-Vision工程:此处的“视觉移动规划数据”是指路径规划工具(从“路径规划”步骤处进入)中“视觉移动”步骤规划的数据,包括被抓取工件的标签、已抓取的工件总数、本次抓取的工件数量、吸盘边角号、TCP偏移量、工件组朝向、单个工件朝向、工件组尺寸。
-
对于Mech-Viz工程:
-
视觉移动规划数据:Mech-Viz中“视觉移动”步骤规划的数据,包括被抓取工件的标签、已抓取的工件总数、本次抓取的工件数量、吸盘边角号、TCP偏移量、工件组朝向、单个工件朝向、工件组尺寸。
-
自定义数据:Mech-Vision自定义端口输出的数据,再经Mech-Viz转发后得到的数据。
自定义端口的设置可从“输出”步骤参数的 打开编辑器 处进入,其中自定义通信键名就是自定义端口名称,例如下图中customeData1和customeData2端口就是自定义端口。
-
预设通信键(下图中的poses、labels、sizes、offsets等)所代表的端口数据不属于自定义数据。
-
Mech-Vision “输出”步骤的 端口类型 参数需要设置为“自定义”,且必须存在poses端口。
-
-
调用顺序
该指令需在101指令——运行Mech-Vision工程指令或201指令——运行Mech-Viz工程之后被调用。
输入参数
名称 | 数据类型 | 偏移量 | 注释 |
---|---|---|---|
Command |
Int |
2.0 |
指令码为210 |
Vision Project No. |
Int |
8.0 |
视觉移动规划数据的来源 |
Pose Type |
Int |
4.0 |
预期返回的数据格式 |
Vision Project No.
该参数指定视觉移动规划数据的来源,可以为以下取值:
-
0:从Mech-Viz获取视觉移动规划数据;
-
正整数:从Mech-Vision获取视觉移动规划数据。此处设置的正整数就是Mech-Vision工程编号。
Pose Type
该参数表示预期返回的数据格式,取值范围为1~4。
-
当Vision Project No.为0时,Pose Type 参数取值范围为 1~4,具体说明如下。
Pose Type 参数值 预期的返回数据 说明(每个字段的具体解释参见下文) 1
位姿(JPs 形式), 移动类型, 末端工具编号, 速度, 自定义数据项 1, …, 自定义数据项 N
2
位姿(TCP 形式), 移动类型, 末端工具编号, 速度, 自定义数据项 1, …, 自定义数据项 N
3
位姿(JPs 形式), 移动类型, 末端工具编号, 速度, Mech-Viz视觉移动规划数据, 自定义数据项 1, …, 自定义数据项 N
4
位姿(TCP 形式), 移动类型, 末端工具编号, 速度, Mech-Viz视觉移动规划数据, 自定义数据项 1, …, 自定义数据项 N
-
当Vision Project No.为正整数时,Pose Type 参数取值范围为 1~2,具体说明如下。
Pose Type 参数值 预期的返回数据 说明(每个字段的具体解释参见下文) 1
位姿(JPs 形式), 移动类型, 末端工具编号, 速度, Mech-Vision视觉移动规划数据
2
位姿(TCP 形式), 移动类型, 末端工具编号, 速度, Mech-Vision视觉移动规划数据
输出参数
名称 | 数据类型 | 偏移量 | 注释 |
---|---|---|---|
Status Code |
Int |
200.0 |
状态码 |
Status of Pose Sent |
Bool |
202.0 |
数据传输状态 |
Number of Pose Sent |
Int |
204.0 |
路径点数量 |
Index of Vision Picking Point |
Int |
206.0 |
“视觉移动”在路径中的位置 |
Target Pose |
Array[0..39, 0..5] of Real |
208.0 |
此次获取的所有路径点的位姿 |
Target Label |
Array[0..39] of Int |
1168.0 |
此次获取的所有路径点的标签 |
Speed Percentage |
Array[0..39] of Int |
3216.0 |
路径点的速度 |
Custom Vision Output |
Array[0..39, 0..9] of Real |
1456.0 |
此次获取的所有路径点的自定义数据 |
Target IsVisualMove |
Array[0..39] of Int |
3056.0 |
是否是视觉移动路径点 |
Target Move Type |
Array[0..39] of Int |
3136.0 |
机器人移动类型 |
Target Tool ID |
Array[0..39] of Int |
1248.0 |
此次获取的所有路径点的末端工具编号 |
VisualMove Planning Result |
Array[0..39, 0..39] of Real |
3296.0 |
视觉移动规划数据 |
Status Code
若指令执行正常,则状态码为 2100(成功获取Mech-Viz工程的视觉移动规划数据或自定义数据)或 1103(成功获取Mech-Vision工程的视觉移动规划数据)。 若指令执行异常,则状态码为对应的错误码,具体可参考《标准接口状态码及错误排查》。
Status of Pose Sent
该参数表示数据传输状态。1表示从视觉系统获取的数据是新数据。在PLC读取新数据后,请将该寄存器复位。
Number of Pose Sent
该参数表示获取的路径点数量。视觉系统默认单次发送路径点的最大数量为20,因此该参数默认最大值为20。
Index of Vision Picking Point
该参数表示Mech-Viz工程中“视觉移动”步骤对应的路径点(视觉移动路径点)在路径中的位置。如果路径中无视觉移动路径点,则该参数值为0。
例如,如果规划路径由以下路径点组成:“定点移动_1”,“定点移动_2”,“视觉移动”,“定点移动_3”,则视觉移动路径点的位置为3。
若需多次发送该指令才可接收整条路径,则该参数在第一次返回结果中表示视觉移动路径点在整条规划路径中的位置,在后续返回结果中表示视觉移动路径点在剩余路径点中的位置。 |
Target Pose
该参数表示此次获取的所有路径点的位姿。位姿类型可以为机器人工具位姿或关节角。位姿类型由发送该指令时指定的 Pose Type 参数决定。
Target Label
该参数表示此次获取的所有路径点的标签(“输出”步骤中labels端口数据)。
|
Speed Percentage
根据不同的工程,速度的含义也有所不同,具体如下。
-
对于Mech-Vision工程:速度指路径规划工具中设置的仿真速度值,使用百分数表示。
-
对于Mech-Viz工程:速度指移动类步骤参数中设置的速度参数值乘以Mech-Viz中设置的全局速度,使用百分数表示。
Custom Vision Output
该参数表示此次获取的所有路径点的自定义数据。例如,“输出”步骤各端口的数据如下表所示,则第一个路径点的 自定义数据 为 [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] |
Target IsVisualMove
该参数表示路径点是否是视觉移动路径点,0表示该点不是视觉移动路径点,1表示该点是视觉移动路径点,只有视觉移动路径点才会携带视觉移动规划数据或自定义数据。
Target Move Type
该参数表示机器人移动类型,取值为1或2。
-
1:关节移动。
-
2:直线移动。
Target Tool ID
该参数表示此次获取的所有路径点的末端工具编号。
-
对于Mech-Vision工程,此处末端工具编号指路径规划工具中设置的末端工具编号。
-
对于Mech-Viz工程,此处末端工具编号指Mech-Viz工程中设置的末端工具编号
VisualMove Planning Result
Mech-Vision或Mech-Viz中“视觉移动”步骤规划的数据,包括被抓取工件的标签、已抓取的工件总数、本次抓取的工件数量、吸盘边角号、TCP偏移量、工件组朝向、单个工件朝向、工件组尺寸。
名称 | 说明 | 维数 |
---|---|---|
被抓取工件的标签 |
由10个整数组成,默认为10个0 |
10 |
已抓取的工件总数 |
累计已抓取的工件数量 |
1 |
本次抓取的工件数量 |
本次抓取的工件数量 |
1 |
吸盘边角号 |
本次吸盘所使用的边角号 |
1 |
TCP偏移量 |
工件组中心相对于末端工具中心的XYZ偏移量 |
3 |
工件组朝向 |
工件组与吸盘长边的朝向关系,0表示平行,1表示垂直 |
1 |
单个工件朝向 |
单个工件长边与吸盘长边的朝向关系,0表示平行,1表示垂直 |
1 |
工件组尺寸 |
本次抓取的工件组的长宽高 |
3 |
501指令——向Mech-Vision工程传入物体尺寸
输入参数
名称 | 数据类型 | 偏移量 | 注释 |
---|---|---|---|
Command |
Int |
2.0 |
指令码为501 |
Vision Project No. |
Int |
8.0 |
Mech-Vision工程编号 |
External Input Box Dimension |
Array[0..2] of Real |
68.0 |
传入Mech-Vision工程的物体尺寸 |
Vision Project No.
Mech-Vision工程编号可在Mech-Vision工程列表窗口中查看,工程名称前的数字表示工程编号。
External Input Box Dimension
该参数表示传入Mech-Vision工程的物体尺寸,单位为毫米(mm)。尺寸值将被“读取物体尺寸”步骤读取并分别写入 X轴上的长度、Y轴上的长度、Z轴上的长度。
输出参数
名称 | 数据类型 | 偏移量 | 注释 |
---|---|---|---|
Status Code |
Int |
200.0 |
状态码 |
Status Code
若指令执行正常,则状态码为 1108。 若指令执行异常,则状态码为对应的错误码,具体可参考《标准接口状态码及错误排查》。
601指令——获取通知的消息
功能介绍
当Mech-Vision工程或Mech-Viz工程运行至“通知”步骤时,视觉系统会返回“通知”步骤中预先设置的消息。
在使用该指令前,“通知”步骤需满足以下设置。
-
Mech-Vision工程中的“通知”步骤
-
将“通知”步骤连接在其他步骤的右侧(此处以“输出”步骤为例)。
-
在“输出”的步骤参数处,勾选 有输出时触发控制流。
-
在“通知”的步骤参数处,服务名称填写 Standard Interface Notify(不可更改),消息填写 1001(根据需求填写,但必须为正整数)。
-
-
Mech-Viz工程中的“通知”步骤
-
将“通知”步骤连接在工作流程中的合适位置。
-
在“通知”的步骤参数处,勾选 标准接口,消息填写 1000(根据需求填写,但必须为正整数)。
-
901指令——获取软件状态
输出参数
名称 | 数据类型 | 偏移量 | 注释 |
---|---|---|---|
Status Code |
Int |
200.0 |
状态码 |
Status Code
若指令执行正常,则状态码为 1101。 若指令执行异常,则状态码为对应的错误码,具体可参考《标准接口状态码及错误排查》。