指令说明¶
TIA Portal 软件使用 Mech-Center 标准接口 Siemens PLC Client 与 Mech-Mind 软件系统进行通信的指令说明包含以下内容:
前言¶
Mech-Center 标准接口 Siemens PLC Client¶
Mech-Center 提供了标准接口选项 Siemens PLC Client ,与 PLC 内 Mech-Mind interface.db 数据块进行数据通信。
Mech-Center 软件部署设置内,Siemens PLC Client 标准接口的设置如下图所示:
PLC 博图软件内, Mech-Mind Interface 数据块的内容如下图所示:
Mech-Mind - Siemens TIA S7 接口¶
Siemens Tia Portal 软件与 Mech-Mind 软件系统进行 S7 通信的接口文件:
MM Interface.db(用于实现数据通信);
MM Interface Program.scl(用于实现各种接口指令的功能)。
提示
文件存放路径:Mech-Mind 视觉系统的工控机或主机中 Mech-Center 软件安装路径下 XXXX/Mech-Center-xxx/Robot_Interface/Siemens Snap7/TIA Portal
,请将文件拷贝至安装有博图软件的电脑上。
指令说明¶
启动 Mech-Vision 工程¶
该指令用于只用到 Mech-Vision 工程,而无需用到 Mech-Viz 工程的场景。使用该指令可以启动 Mech-Vision 工程,执行相机拍照和视觉处理。
参数说明
输入参数:
Vision_Proj_Num:Mech-Vision 工程在 Mech-Center 中的注册序号。可以在 Mech-Center 软件
处查询和调整。序号范围[1-99];Req_Pose_Num: 希望 Mech-Vision 输出的视觉结果数量,可设置范围[1-20],0 表示获取所有结果;
Robot_Pose_Type:机器人发送的拍照位姿类型,可设置范围[0-2] (0 表示不需要拍照位姿,比如该工程在 Eye to Hand 模式下位姿类型可为 0;1 表示拍照位姿是 JPS 形式;2 表示拍照位姿是法兰位姿)。
Robot_Pose:机器人发送的拍照位姿,数据类型 Array[0..5] of Real;
Start_Vision:触发 Mech-Vision 工程的运行,上升沿有效;
Set_Edge:保存 触发动作 上一扫描周期的状态。
Mech-Mind Interface 数据块返回数据:
Status code:若无错误,则返回 1102 触发成功 状态码,否则返回对应的错误码。
示例
示例说明
在该示例中,当变量 “Camera_User”.Start_Vis 出现上升沿时,会触发 Mech-Vision 工程 1 的运行,并希望 Mech-Vision 工程 1 返回视觉结果,同时 PLC 将启动 Mech-Vision 工程时的 JPS 数据发送给 Mech-Center 。
获取视觉目标点¶
该指令用于只用到 Mech-Vision 工程,无需用到 Mech-Viz 工程的场景。该指令用于启动 Mech-Vision 工程之后,获取视觉识别结果。
参数说明
输入参数:
Vision_Proj_Num:Mech-Vision 工程在 Mech-Center 中的注册序号。可以在 Mech-Center 软件
处查询和调整。序号范围[1-99];Get_VisData:获取 Mech-Vision 工程的视觉识别结果,上升沿有效;
Set_Edge:保存 触发动作 上一扫描周期的状态。
Mech-Mind Interface 数据块返回数据:
Status code:若无错误,则返回 1100 成功获取视觉点 状态码;否则返回对应的错误码;
Status of Pose Sent:1 表示写入的位姿数据为新数据。 PLC 读取位姿数据之后请将此寄存器复位;
Number of Pose Sent:视觉返回的识别结果个数。范围[1-20];
Target Pose:Mech-Vision 返回的机器人位置数据,类型为 TCP;
Target Label:标签是 Mech-Vision 识别的该物体标签信息。返回标签值为整数。
示例
示例说明
在该示例中,当变量 “Camera_User”.Get_VisData 出现上升沿时,用于获取 Mech-Vision 工程 1 的视觉结果。
切换 Mech-Vision 配方¶
Mech-Vision 软件的配方功能,用于不同工件识别时,修改 Mech-Vision 工程各模块的参数,包括图像匹配模板、ROI、置信阈值等。该指令需要在 MM_Start_Vis 程序之前使用。
参数说明
输入参数:
Vision_Proj_Num:Mech-Vision 工程在 Mech-Center 中的注册序号,可以在 Mech-Center 软件
处查询和调整。序号范围[1-99];Vision_Recipe_Num:Mech-Vision 工程中配方的编号。编号范围[1-99];
Switch_Recipe:切换 Mech-Vision 工程的配方,上升沿有效;
Set_Edge:保存 触发动作 上一扫描周期的状态。
Mech-Mind Interface 数据块返回数据:
Status code:若无错误,则返回 1107 配方切换成功 ;否则返回对应的错误码。
示例
示例说明
在该示例中,当变量 “Camera_User”.Switch_Recipe 出现上升沿时,会将 Mech-Vision 工程 1 的配方切换成配方 2 。
启动 Mech-Viz 工程¶
该指令用于既用到 Mech-Vision 工程又用到 Mech-Viz 工程的场景,用于启动 Mech-Viz 工程,调用相应的 Mech-Vision 工程,并规划抓取路径。
参数说明
输入参数:
Robot_Pose_Type: 机器人位姿类型,可选范围[0-1];
位姿类型设置为 0 时,Mech-Viz 中仿真机器人会从 JPS [0,0,0,0,0,0] 位置开始,运动到第一个移动点;
位姿类型设置为 1 时,Mech-Viz 中仿真机器人会从当前机器人 JPS 位置开始,运动到第一个移动点;
当场景中存在碰撞模型,干扰机器人从 JPS [0,0,0,0,0,0] 位置开始运动到第一个移动点时,则位姿类型必须设置为 1 。
Robot_Pose:机器人的当前 JPS 数据,数据类型 Array[0..5] of Real ;
Start_Viz:触发 Mech-Viz 工程的运行,上升沿有效;
Set_Edge:保存 触发动作 上一扫描周期的状态。
Mech-Mind Interface 数据块返回数据:
Status code:若无错误,则返回 2103 viz 启动成功;否则返回对应的错误码。
示例
示例说明
在该示例中,当变量 “Camera_User”.Start_Viz 出现上升沿时,触发 Mech-Viz 工程运行,并将当前机器人的 JPS 发送给 Mech-Center 。
停止 Mech-Viz 工程¶
停止运行 Mech-Viz 工程。
参数说明
输入参数:
Stop_Viz:停止 Mech-Viz 工程的运行,上升沿有效;
Set_Edge:保存 触发动作 上一扫描周期的状态。
Mech-Mind Interface 数据块返回数据:
Status code:若无错误,则返回 2104 viz 停止成功 ;否则返回对应的错误码。
示例
示例说明
在该示例中,当变量 “Camera_User”.Stop_Viz 出现上升沿时,停止运行 Mech-Viz 工程。
选择 Mech-Viz 分支¶
当 Mech-Viz 工程中有分支(按服务消息)模块时,该指令可控制 Mech-Viz 工程中的分支模块走指定的出口。在调用该指令之前,需要先调用 MM_Start_Viz 。 Mech-Viz 运行到分支模块时会等待 203 指令发送该分支的分支出口。
参数说明
输入参数:
Branch_Name:分支任务编号,该参数为正整数,即 消息分支 的任务编号。
Branch_Exit_Port:给定分支的出口号,Mech-Viz 程序将沿该出口继续执行,参数范围[1-99] 。
Set_Branch:设置某分支的某分支出口;
Set_Edge:保存 触发动作 上一扫描周期的状态。
Mech-Mind Interface 数据块返回数据:
Status code:若无错误,则返回 2105 分支设置成功 ;否则返回对应的错误码。
示例
示例说明
在该示例中,当变量 “Camera_User”.Set_Branch 出现上升沿时,会指定 Mech-Viz 工程执行到分支名称为 1 的任务时,走第 1 出口。
设置移动索引¶
索引类的移动任务,比如按序列移动、按阵列移动、自定义垛型、预设垛型等,可调用该指令设置索引类移动任务属性中的索引序号。在调用该指令之前,需要先执行 MM_Start_Viz 。
参数说明
输入参数:
Index_Name: 移动索引任务编号,该参数为正整数。
Index_Counte:
下次执行此任务时应设置的索引值。
发送该指令时,Mech-Viz 中的当前索引值将变为该参数值减 1。
当 Mech-Viz 项目运行到该指令指定的任务时,Mech-Viz 中的当前索引值将增加 1,成为该参数的值。
Set_Index:触发信号,用于设置索引。
Set_Edge:保存 触发动作 上一扫描周期的状态。
Mech-Mind Interface 数据块返回数据:
Status code:若无错误,则返回 2106 索引设置成功 ;否则返回对应的错误码。
示例
示例说明
在该示例中,当变量 “Camera_User”.Set_Index 出现上升沿时,设置 Mech-Viz 工程中的任务名称 “5” 的当前索引值为 “3” 。
获取规划路径¶
用于获取 Mech-Viz 工程规划的抓取路径。
参数说明
输入参数:
Request_Pose_Type: 要获取的路径上点的位姿类型;
Mech-Viz 返回的位姿类型为机器人 JPS ;
Mech-Viz 返回的位姿类型为机器人TCP。
Get_VizData:获取 Mech-Viz 工程规划的抓取路径,上升沿有效;
Set_Edge:保存 触发动作 上一扫描周期的状态。
Mech-Mind Interface 数据块返回数据:
Status code:若无错误,则返回 2100 获取成功 状态码;否则返回对应的错误码;
Status of Pose Sent:1 表示写入的位姿数据为新数据。 PLC 读取位姿数据之后请将此寄存器复位;
Number of Pose Sent:Mech-Viz 规划路径上目标点的个数。范围[1-20];
Index of Vision Move:视觉点位(即工程中的 visual move-视觉移动)在路径中的位置;
Target Pose:数据格式 JPS 或者 XYZ 欧拉角,取决于 205 发送指令中设置的位姿类型;
Target Label:Mech-Vision 识别的该物体标签信息。返回标签值为整数;
Speed Percentage:Mech-Viz 中该移动任务设置的非零速度参数。
示例
示例说明
在该示例中,当变量 “Camera_User”.Get_VizData 出现上升沿时,用于接收 Mech-Viz 返回的机器人移动路径,移动点数据类型为 TCP。
获取 DO 信号列表¶
当需要使用 Mech-Viz 中的吸盘分区/多抓功能时,可通过该指令来获取规划的分区 DO 信号列表。调用该指令之前需要先运行 MM_Get_VizData 。
提示
请参考 XXXX/Mech-Center-xxx/tool/viz_project
中的 Mech-Viz 模板工程使用,并在运行之前在工程中设置对应的吸盘配置文件。
参数说明
输入参数:
Get_DoList:获取 Mech-Viz 工程规划的分区 DO 信号列表,上升沿有效;
Set_Edge:保存 触发动作 上一扫描周期的状态。
Mech-Mind Interface 数据块返回数据:
Status code:若无错误,则返回 2102 获取 DO 列表正常 ;否则返回对应的错误码。
DO :该指令返回 64 个 DO 端口值,其中有效 DO 值为[0-999],-1 为无效的占位值。
示例
示例说明
在该示例中,当变量 “Camera_User”.Get_DoList 出现上升沿时,会将 Mech-Viz 计算得到的 DO 列表保存到 DO 数组内。
向 Mech-Vision 传入物体尺寸¶
向 Mech-Vision 工程中动态传入物体尺寸。需要在执行 MM_Start_Vis 之前调用。
参数说明
输入参数:
Vision_Proj_Num: Mech-Vision 工程在 Mech-Center 中的注册序号,可以在 Mech-Center 软件
处查询和调整。序号范围[1-99];External_Input_Box_Dimension:比如箱子尺寸为长宽高,单位为毫米,数据类型为 Array[0..2] of Real ;
Set_Box_Dimension:动态传入 Mech-Vision 工程中的物体尺寸,上升沿有效;
Set_Edge:保存 触发动作 上一扫描周期的状态。
Mech-Mind Interface 数据块返回数据:
Status code:若无错误,则返回 1108 箱子尺寸设置成功 ;否则返回对应的错误码。
示例
示例说明
在该示例中,当变量 “Camera_User”.Set_Box_Dimension 出现上升沿时,将设置 Mech-Vision 工程中读取物体尺寸步骤中的的物体尺寸为 External_Input_Box_Dimension 变量值。
向 Mech-Viz 传入 TCP¶
动态传入位姿点数据。配合 Mech-Viz 中的外部移动任务使用。
提示
该功能需要配合 XXXX/Mech-Center-xxx/tool/viz_project/outer_move
中的工程使用,并在运行之前把其中的 outer_move 放到合适的位置,并且该指令需要在调用 MM_Start_Viz 程序之前调用。
参数说明
输入参数:
External_Input_Pose:位姿变量,保存需要发送给 Mech-Viz 的 TCP 数据,数据类型为 Array[0..5] of Real ;
Set_Input_Pose:动态传入位姿数据,上升沿有效;
Set_Edge:保存 触发动作 上一扫描周期的状态。
Mech-Mind Interface 数据块返回数据:
Status code:若无错误,则返回 2107 外部传入位姿设置成功 ;否则返回对应的错误码。
示例
示例说明
在该示例中,当变量 “Camera_User”.Set_Input_Pose 出现上升沿时,将位姿变量 External_Input_Pose 代表的位姿数据发送给 Mech-Viz 的外部移动任务。
获取软件状态¶
用于获取 Mech-Vision、Mech-Viz、Mech-Center 的软件运行状态(目前该指令仅支持检测 Mech-Vision 软件是否可以开始运行工程)。
参数说明
输入参数:
Get_Status:检测 Mech-Vision 是否注册就绪,上升沿有效;
Set_Edge:保存 触发动作 上一扫描周期的状态。
Mech-Mind Interface 数据块返回数据:
Status code:系统自检状态。
示例
示例说明
在该示例中,当变量 “Camera_User”.Get_Status 出现上升沿时,将检查系统状态的状态码,并保存到变量 Status code 中。
清空目标数据¶
用于清空已经获取的 Target Pose、Target Label、Speed Percentage 变量的数据。
参数说明
输入参数:
Start_Empty:触发清空已经获取的 Target Pose、Target Label、Speed Percentage 的数据,置位有效;
Target_Pose:已获取的目标位姿数据;
Target_Label:已获取的目标标签;
Speed_Percentage:已获取的非零速度参数;
示例
示例说明
在该示例中,当变量 “Camera_User”.Start_Empty 置位时,将清空已经获取的 Target Pose、Target Label、Speed Percentage 变量的数据。