通信配置及示例程序使用¶
西门子 PLC 使用 TIA Portal 软件与 Mech-Mind 系统进行 Modbus TCP 通信包含以下流程:
所需软硬件¶
软件¶
西门子 PLC 编程软件 TIA Portal V15.1。
Mech-Center 1.6.1 及以上,Mech-Vision 1.6.0 及以上,Mech-Viz 1.6.0 及以上。
PLC 例程文件:
MM Modbus TCP.scl(用于建立 Modbus TCP 通信);
MM Modbus TCP Interface Program.scl(用于实现各种接口指令的功能)。
例程文件位于 Mech-Center 安装路径下的
XXXX/Mech-Center-xxx/Robot_Interface/Modbus TCP/Siemens TIA Portal
文件夹下。请将该例程文件复制到已安装 TIA Portal 的计算机中。
注意
工控机或主机需关闭防火墙软件。
工控机配置及启动通信¶
设置工控机或主机 IPv4 地址¶
打开控制面板,单击 查看网络状态和任务 。
在网络和共享中心窗口中,单击 更改适配器设置 。
在网络连接窗口中,双击与 PLC 有网络连接的 以太网 适配器,弹出 以太网状态 窗口,单击 属性 。
在 以太网属性 窗口的 网络 选项卡下,双击 Internet协议版本4(TCP/IPv4) 项目。
在 Internet协议版本4(TCP/IPv4) 属性 窗口中,按下图所示设置固定 IP 地址、子网掩码和默认网关(需与 PLC 在同一网段)。
Mech-Center 配置及启动通信¶
运行 Mech-Center,打开 部署设置 窗口。
单击左侧 Mech-Interface ,依次选择 ,从站 IP 设置为 0.0.0.0(即本地计算机的 IPv4 地址),从站端口号设置为 2000,从站设备地址设为 255,字节序选择 ABCD,最后单击 保存 。
在 Mech-Center 主窗口中,单击 启动接口服务 ,在服务状态栏中会出现 Modbus TCP SLAVE 服务图标。
创建和配置 PLC 工程¶
创建 PLC 工程¶
提示
请根据实际需求,单击 保存项目,保存对工程的更改。
打开 TIA Portal 软件,单击 创建新项目 ,输入项目名称,选择路径,单击 创建 。在弹出新页面后,单击 打开项目视图 。
在 项目树 侧边栏,双击 添加新设备 ,进入添加新设备界面。在 控制器 选项处,选择与实体 PLC 一致的模块,单击 确定 。
在 项目树 侧边栏,单击 设备组态 ,单击 设备视图 ,双击 PLC_1 处网口标识,在 属性/常规 页面单击 以太网网址 ,设置 IP 地址,子网掩码使用默认值。
导入 Mech-Mind 例程文件¶
注意
导入和测试 Mech-Mind 例程文件,请使用新建的 PLC 工程;如需添加到已存在的 PLC 工程中,建议先创建新工程,再进行导入和测试,最后复制到已存在的工程中。
在项目树下,依次双击
,双击 添加新的外部文件 ,在弹出窗口中,选择MM Modbus TCP.scl
、MM Modbus TCP Interface Program.scl
文件后,单击 打开 ,将其导入至 PLC 工程。选中新导入的外部源文件(先选中 MM Modbus TCP.scl ,再选中 MM Modbus TCP Interface Program.scl ,否则在日志窗口将会出现报错信息),右键单击,选择 从源生成块 。
弹出 块可能会覆盖 窗口,单击 确定 。
外部源文件生成的功能函数、数据块如下图所示,其中 ,Camera_User DB 块存放用户数据,MM Modbus TCP Interface DB 块存放通信交互数据,MM Modbus TCP DB 块存放通信配置参数。
双击打开 MM Modbus TCP[FC14] 功能块,依次单击 ToCamera 及 FromCamera No.1~6 程序段,确认所有 MB_DATA_PTR 变量的指针数据块编号与 MM Modbus TCP Interface 数据块编号一致,例如图中两处均为 2。
如果两处不一致,且 MM Modbus TCP Interface 数据块编号不易修改,可使用功能块右侧的 任务 选项卡中的查找和替换功能,将 MB_DATA_PTR 变量的指针数据块编号替换为 MM Modbus TCP Interface 数据块的实际编号。
若 系统块/程序资源 下没有自动生成 MB_CLIENT 功能块、MB_CLIENT_DB 数据块,则需要根据当前 CPU 设备型号,重新引入 MB_CLIENT 功能块,请参考下一步骤;若已自动生成,请跳过下一步骤。
在项目树下,单击 程序块 ,双击打开 Main[OB1] 组织块,选中程序段下梯形图,在右侧指令窗口中,依次选择 确定 。
,双击 MB_CLIENT 功能块,弹出 调用选项 窗口,此时, 系统块/程序资源 下自动生成 MB_CLIENT 功能块、MB_CLIENT_DB 数据块,返回已打开的 MM Modbus TCP 功能块,在工具栏中,单击 编译 图标。
当状态栏的 信息/编译 下提示 “MM Modbus TCP 块已成功编译”,即可删除 Main[OB1] 组织块/程序段1 下的 MB_CLIENT 功能块。
在项目树下,为方便维护 3D_Camera 相关的函数及数据块,右键单击 程序块 ,单击 新增组 ,命名为 3D_Camera 。
将新生成的功能函数、数据块全部选中,移动至 3D_Camera 分组文件夹下。
搭建 PLC 程序并下载¶
在 项目树 侧边栏,双击打开 Main[OB1] 组织块,选中 MM Modbus TCP[FC14] 功能,将其拖拽至程序段 1 下。
双击打开 MM ModbusTCP[DB3] 数据块,单击 扩展模式 图标,确认 RemoteAddress/ADDR 十六进制数值依次对应 Mech-Center 工控机的 IP 地址(192.168.1.20),RemotePort 十进制数值对应 Mech-Center 端口号 (此处为 2000,需与 Mech-Center 部署界面设定的值一致)。
选择
,双击打开 MB_CLIENT_DB[DBB] 数据块,单击 扩展模式 图标,确认 Static/TDIAG_Status/MB_Unit_ID 十六进制数值对应 Mech-Center 从站设备地址设(此处为 255,需与 Mech-Center 部署界面设定的值一致)。在 项目树 侧边栏,右键单击选中 PLC_1[CPU 1211C DC/DC/DC] ,依次单击
。弹出 扩展下载设备 窗口, PG/PC 接口 选择连接 PLC 的网卡驱动, 接口/子网的连接 选择 插槽“1X1”处的方向 , 选择目标设备 选择 显示所有兼容的设备 ,单击 开始搜索 ,选中搜索结果显示的 CPU 设备,单击 下载 。
弹出 下载结果 窗口,下载完成后,单击 完成 。
视觉工程测试¶
本部分介绍如何使用例程功能块实现 Mech-Vision 工程的触发和获取数据,以及 Mech-Viz 工程的触发和获取数据。
准备工作¶
搭建 Mech-Vision 工程,并设置自动加载当前工程。Mech-Vision 工程的搭建,请参考 Mech-Vision 相关教程。
在 Mech-Center 的部署设置中,选择 Mech-Vision ,单击工程路径同步,对已设置自动加载的 Mech-Vision 工程进行编号,最后单击 保存 。
搭建 Mech-Viz 工程,并设置自动加载。Mech-Viz 工程的搭建,请参考 Mech-Viz 相关教程。
测试所使用的 Mech-Viz 工程中需使用一个任务名称为 1 的分支任务,如下图所示。
从 Mech-Vision 获取视觉点¶
参数设置¶
返回 TIA Portal 软件主窗口,在 项目树/程序块 下,双击 Main[OB1] 打开主程序,将 MM_Start_Vis[FC9] 功能函数拖拽至 主程序/程序段2 下。
设置 Mech-Vision 工程编号,即 Mech-Center 部署设置中 Mech-Vision 工程的 ID。将 Vision_Proj_Num 的端口值设为 1 ,则运行 Mech-Center 部署设置中 ID 为 1 的 Mech-Vision 工程。
设置 Mech-Vision 工程返回的位姿数量:将 Req_Pose_Num 的端口值设为 0 ,表示 Mech-Vision 返回全部位姿结果。
设置机器人发送的拍照位姿类型。将 Robot_Pose_Type 的端口值设为 0 ,表示工程是 Eye to Hand 模式,不需要发送拍照位姿。
在 项目树/程序块 下,单击 Camera_User 数据块,将详细视图下的变量根据名称对应拖拽至 “MM_Start_Vis” 输入侧接口(即左侧)。
将 MM_Get_VisData 功能函数拖拽至 主程序/程序段3 下。
设置 Mech-Vision 工程编号,即 Mech-Center 部署设置中 Mech-Vision 工程的 ID。将 Vision_Proj_Num 的端口值设为 1 ,则获取 Mech-Vision 工程 ID 为 1 的视觉识别结果。
在 项目树/程序块 下,单击 Camera_User 数据块,将详细视图下的变量根据名称对应拖拽至 “MM_Get_VisData” 输入侧接口(即左侧)。
在 项目树 侧边栏,右键选中设备 PLC_1,单击 下载到设备/软件(仅更改) 。
弹出 下载预览 窗口,单击 装载 ,将最新程序下载到 PLC。
触发 Mech-Vision 工程运行¶
在 Main[OB1] 主程序窗口,单击 启用/禁用监视 图标。
右键单击 “MM_Start_Vis” 输入侧的变量 “Camera_User”.Start_Vis,依次选择
,触发 Mech-Vision 工程运行,然后将此变量复位。检查 MM Modbus TCP Interface 数据块中 Status Code 变量的返回值变为 1102,则表示工程启动正常。若返回值为 10XX,请参考 《Mech-Mind-标准接口错误码及故障排查手册》 进行错误排查。
获取 Mech-Vision 计算的位姿结果¶
右键单击 “MM_Get_VisData” 输入侧的变量 “Camera_User”.Get_VisData,依次选择
,获取视觉位置,然后将此变量复位。检查 MM Modbus TCP Interface 数据块中 Status Code 变量的返回值变为 1100,则表示成功获取视觉点。若返回值为 10XX,请参考 《Mech-Mind-标准接口错误码及故障排查手册》 进行错误排查。
Number of Pose Sent 值为1,表示获取到 1 个位姿点。位姿保存在 Target Pose 中。
从 Mech-Viz 获取规划路径¶
参数设置¶
将 MM_Empty_Target 功能函数拖拽至 主程序/程序段4 下。
分别单击数据块 Camera_User 和 MM Modbus TCP Interface ,将详细视图下的变量根据名称对应拖拽至 “MM_Empty_Target” 输入侧接口(即左侧)。
分别将 MM_Start_Viz 、 MM_Set_Branch 、 MM_Get_VizData 功能函数分别拖拽至 主程序/程序段5、6、7 下。
设置机器人发送的拍照位姿类型。将 Robot_Pose_Type 的端口值设为 0,表示工程是 Eye to Hand 模式,不需要发送拍照位姿。单击数据块 Camera_User ,将详细视图下的变量根据名称对应拖拽至 “MM_Start_Viz” 输入侧接口(即左侧)。
设置 Mech-Viz 工程中分支参数。将 Branch_Name、Branch_Exit_Port 的端口值分别设为 1,表示控制 Mech-Viz 工程执行到分支 1 时沿出口 1 继续执行。单击数据块 Camera_User ,将详细视图下的变量根据名称对应拖拽至 “MM_Set_Branch” 输入侧接口(即左侧)。
设置要获取的路径上点的位姿类型。将 Request_Pose_Type 的端口值设为 1,表示设置 Mech-Viz 返回的是关节角数据。单击数据块 Camera_User,将详细视图下的变量根据名称对应拖拽至 “MM_Get_VizData” 输入侧接口(即左侧)。
注意
此处 Request_Pose_Type 和功能函数 MM_Start_Vis、MM_Start_Viz 中 Robot_Pose_Type 对应 MM Modbus TCP Interface 数据块同一 Pose Type 变量,若需设定的值不同,则无法同时生效。
在 项目树 侧边栏,右键选中设备 PLC_1,单击 下载到设备/软件(仅更改) 。弹出 下载预览 窗口,将最新程序下载到 PLC。
弹出 下载预览 窗口,单击 装载 ,将最新程序下载到 PLC。
触发 Mech-Viz 工程运行¶
在 Main[OB1] 主程序窗口,单击 启用/禁用监视 图标。
右键单击 “MM_Empty_Target” 输入侧的变量 “Camera_User”.Start_Empty,依次选择
,清除上一次获取的视觉结果,然后将此变量复位。在 MM Modbus TCP Interface 数据块中,Target Pose,Target Label,Speed Percentage 变量值被清空。
右键单击 “MM_Start_Viz” 输入侧的变量 “Camera_User”.Start_Viz,依次选择
,启动 Mech-Viz 工程,然后将此变量复位。检查 MM Modbus TCP Interface 数据块中 Status Code 变量的返回值变为 2103,则表示工程启动正常。若返回值为 20XX,请参考 《Mech-Mind-标准接口错误码及故障排查手册》 进行错误排查。
设置 Mech-Viz 的分支出口¶
右键单击 “MM_Set_Branch” 输入侧的变量 “Camera_User”.Set_Branch,依次选择
,选择 Mech-Viz 分支出口,然后将此变量复位。检查 MM Modbus TCP Interface 数据块中 Status Code 变量的返回值变为 2105,则表示分支设置成功。若返回值为 20XX,请参考 《Mech-Mind-标准接口错误码及故障排查手册》 进行错误排查。
获取 Mech-Viz 规划路径¶
右键单击 “MM_Get_VizData” 输入侧的变量 “Camera_User”.Get_VizData,依次选择
,获取 Mech-Viz 的规划路径,然后将此变量复位。检查 MM Modbus TCP Interface 数据块中 Status Code 变量的返回值变为 2100,则表示获取规划路径成功。若返回值为 20XX,请参考 《Mech-Mind-标准接口错误码及故障排查手册》 进行错误排查。
在上图中,Number of Pose Sent 值为 6,表示获取到 6 组关节角数据,数据保存在 Target Pose 中。Index of Vision Move 值为 3,表示视觉点位(即工程中的视觉移动)在路径中的位置编号为 3。