通信配置及示例程序使用¶
三菱 Q 系列 PLC(内置以太网)与 Mech-Mind 系统进行 Modbus TCP 通信包含以下流程:
所需软硬件¶
硬件¶
PLC:MITSUBISHI QCPU(Q mode)Q03UDV。
三菱电源模块:Q61P;三菱基板:Q33B。
Mech-Mind 工控机或主机。
USB Type-A 转 USB Mini-B 数据线。
网线。
软件¶
三菱 PLC 编程软件:GX Works2。
Mech-Center 1.6.1 及以上,Mech-Vision 1.6.0 及以上,Mech-Viz 1.6.0 及以上。
PLC 例程文件:
MODBUS_TCP_Protocol Configuration.tpc(用于建立 Modbus TCP 通信);
MODBUS TCP_Q_Simple_Label.GXW(用于实现各种接口指令的功能)。
例程文件位于 Mech-Center 安装路径下的
XXXX/Mech-Center-xxx/Robot_Interface/Modbus TCP/MITSUBISHI Q serial
文件夹下。请将该例程文件复制到已安装 GX Works2 的计算机中。
注意
工控机或主机需关闭防火墙软件。
工控机配置及启动通信¶
设置工控机或主机 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,字节序选择 CDAB,最后单击 保存 。
在 Mech-Center 主窗口中,单击 启动接口服务 ,在服务状态栏中会出现 Modbus TCP SLAVE 服务图标。
创建和配置 PLC 工程¶
创建 PLC 工程¶
打开 GX Works2 软件,左键单击工具栏中的 新建项目 。在新建窗口中,系列选择 QCPU(Q 模式) ,机型选择 Q03UDV ,工程类型选择 简单工程 ,勾选 使用标签 ,程序语言选择 梯形图 ,最后单击 确定 。
在
下,双击 Connection1 。弹出 连接目标设置 Connection1 窗口,计算机侧选择 Serial USB ,可编程控制器侧的 CPU 模式选择 QCPU(Q模式) ,单击 可编程控制器直接连接设置 。在弹出窗口中,选择 USB ,单击 是 。返回 连接目标设置 Connection1 窗口,单击 通信测试 ,若弹窗提示 已成功与 Q03UDVCPU 连接 ,则表示计算机中 GX Works2 软件与硬件 PLC 通信成功。单击连接目标设置 Connection1 窗口的 确定 ,返回 GX Works2 软件窗口。
在 GX Works2 软件窗口,单击菜单栏中的 在线 ,选择 远程操作 。
弹出 远程操作 窗口,操作区域选择 stop ,单击 执行 ,提示 “是否执行STOP操作” ,单击 是 ,提示 “已完成STOP操作” ,单击 确定 。最后,单击远程操作窗口的 关闭 ,返回 GX Works2 软件窗口。
配置 Modbus TCP 通信参数¶
在
下,双击 PLC 参数 。弹出 Q参数设置 窗口,单击 内置以太网端口设置 选项卡,在 IP 地址设置区域内,设置 PLC 的 IP 地址,例如 192.168.1.21(需与工控机的 IP 地址在同一网段),子网掩码为 255.255.255.0,默认路由器 IP 地址为 192.168.1.0;单击 打开设置 ,弹出 内置以太网端口打开设置 窗口。
在 内置以太网端口打开设置 窗口中,将第一行参数设置为下图中所示的参数,单击 设置结束 ,返回 Q参数设置 窗口,最后单击该窗口的 设置结束 ,返回 GX Works2 软件窗口。
在 GX Works2 软件 窗口中,单击菜单栏中 工具 ,依次选择
,打开 通信协议支持功能-内置以太网 窗口。在 通信协议支持功能-内置以太网 窗口中,单击 打开 图标,查找本地
MODBUS_TCP_Protocol Configuration.tpc
Modbus TCP 通信配置文件,单击 打开 。在 通信协议支持功能-内置以太网 窗口中,单击 模块写入 图标。
弹出 模块写入 窗口,单击 执行 。若提示 “对象存储其中已存在协议设置文件。是否覆盖?” ,单击 是 。
最后,提示 “对对象存储器的写入已完成” ,单击 确定 。
导入 Mech-Mind 例程文件¶
注意
导入和测试 Mech-Mind 例程文件,请使用新建的 PLC 工程;如需添加到已存在的 PLC 工程中,建议先创建新工程,再进行导入和测试,最后复制到已存在的工程中。
返回 GX Works2 软件窗口,在菜单栏中,依次单击
。弹出 在工程中获取库 窗口,库一览选择 选择库(工程) ,单击 浏览 ,查找本地
MODBUS TCP_Q_Simple_Label.GXW
文件,单击 打开 。在 在工程中获取库 窗口中,单击 FB一览更新 。在 选择要获取的 FB 区域,选中全部选项,单击 确定 。
弹出 “是否覆盖” 提示,单击 是 ,返回 GX Works2 软件窗口。
在 GX Works2 软件窗口,单击菜单栏
。弹出 自动分配软元件设置 窗口,修改字软元件 D 和位软元件 M 的分配选择,单击 确定 。
在提示窗口中,单击 是 ,返回 GX Works2 软件窗口。
搭建 PLC 程序并下载¶
在 GX Works2 软件窗口,展开左侧导航中的程序设置,将 无执行类型指定 下的 MAIN 拖拽至 扫描程序 下并展开,双击 程序本体 。
展开 程序部件/FB管理 ,将 MM_MBTCP 拖拽至 MAIN/0行 处。弹出 FB实例名输入 窗口,使用默认值,单击 确定 。
单击工具栏 横线输入 ,出现如下窗口,单击 确定 ,便将左侧母线和功能块输入 EN1 端口连接。
单击工具栏 转换+全部编译 。
提示 是否执行全部编译 窗口,单击 是 。
单击工具栏 PLC写入 。
弹出 在线数据操作 窗口,选择 写入 ,单击 参数+程序 ,然后单击 执行 。
弹出如下提示窗口,单击 是 。
弹出 “是否覆盖原有参数” 提示,单击 全部是 。
待进度条下文本框提示 “PLC写入:结束” ,单击 关闭 。
弹出如下提示,确认安全后,单击 是 ,返回 在线数据操作 窗口,单击 关闭 。最后,关闭 PLC 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 获取视觉点¶
参数设置¶
返回 GX Works2 软件窗口,在 导航/工程 下,单击工具栏中 监视(写入模式) 。
弹出如下窗口,单击 确定 。
展开 程序部件/FB管理 ,将 MM_Start_Vis 拖拽至 MAIN/8行 处。弹出如下窗口,此处使用默认值,单击 确定 。
单击工具栏 横线输入 ,出现如下弹窗,单击 确定 ,将左侧母线和功能块输入 EN1 端口连接。
设置 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 模式,不需要发送拍照位姿。
双击 MM_Start_Vis 功能块输入侧 Start_Vision 端口同行的最左侧,选择常开触点,输入全局标签 Camera_User.Start_Vis ,单击 确定 ,将左侧母线连接至 Start_Vision 端口。
将 MM_Get_VisData 拖拽至 MAIN/8行 处,弹出如下窗口,此处使用默认值,单击 确定 。单击工具栏 横线输入 ,单击 确定 ,将左侧母线和功能块输入 EN1 端口连接。
设置 Mech-Vision 工程编号,即 Mech-Center 部署设置中 Mech-Vision 工程的 ID。将 Vision_Proj_Num 的端口值设为 1 ,则获取 Mech-Vision 工程 ID 为 1 的视觉识别结果。
双击 MM_Get_VisData 功能块输入侧 Get_VisData 端口同行的最左侧,选择常开触点,输入全局标签 Camera_User.Get_VisData ,单击 确定 ,连接至 Get_VisData 端口。
单击工具栏中的 转换+编辑+RUN中写入 图标。
弹出 转换+编辑+RUN中写入执行确认 窗口,单击 确定 。
弹出如下窗口,单击 是 。
最后,单击 确定 ,完成将最新程序下载到 PLC。
触发 Mech-Vision 工程运行¶
在 MAIN 主程序窗口,右键单击 MM_Start_Vis 功能块输入侧 Camera_User.Start_Vis 变量,依次选择
。弹出如下窗口,将其修改为 ON(此窗口可以不关闭,继续往下操作),触发 Mech-Vision 工程运行,然后将此变量复位。
右键单击程序空白处,选择 登录至监看窗口 ,输入全局标签 MM_Camera.Status_Code ,检查其返回值变为 1102 ,则表示工程启动正常。若返回值为 10XX,请参考 《Mech-Mind-标准接口错误码及故障排查手册》 进行错误排查。
获取 Mech-Vision 计算的位姿结果¶
选中 MM_Get_VisData 功能块输入侧 Camera_User.Get_VisData 变量,将其修改为 ON,表示获取视觉点,然后将此变量复位。
在 监看 窗口,输入全局标签 MM_Camera.Status_Code,观察到其返回值为 1100 ;若返回值为 10XX,请参考 《Mech-Mind-标准接口错误码及故障排查手册》 进行错误排查。输入全局标签 MM_Camera.Target_Pose ,其返回值为视觉点位姿数据。
从 Mech-Viz 获取规划路径¶
参数设置¶
将 MM_Start_Empty 拖拽至 MAIN/54行 处,弹出 FB实例名输入 窗口,使用默认值,单击 确定 。单击工具栏 横线输入 ,将左侧母线和功能块输入 EN1 端口连接。
双击 MM_Start_Vis 功能块输入侧 Start_Empty 端口同行的最左侧,选择常开触点,输入全局标签 Camera_User.Start_Empty,单击 确定 ,连接至 Start_Empty 端口。
分别将 MM_Start_Viz、MM_Set_Branch、MM_Get_VizData 拖拽至 MAIN/54行 处,弹出 FB实例名输入 窗口,使用默认值,单击 确定 。单击工具栏 横线输入 ,将左侧母线和功能块输入 EN1 端口连接。
设置机器人发送的拍照位姿类型。将 Robot_Pose_Type 的端口值设为 0,表示工程是 Eye to Hand 模式,不需要发送拍照位姿。
双击 MM_Start_Viz 功能块输入侧 EN1 端口同行的最左侧,输入全局标签 Camera_User.Get_VizData ,选择常闭触点,单击 确定 ,将左侧母线连接至 EN1 端口。
双击 MM_Start_Viz 功能块输入侧 Start_Viz 端口同行的最左侧,输入全局标签 Camera_User.Start_Viz ,选择常开触点,单击 确定 ,将左侧母线连接至 Start_Viz 端口。
设置 Mech-Viz 工程中分支参数。将 Branch_Name、Branch_Exit_Port 的端口值分别设为 1,表示控制 Mech-Viz 工程执行到分支 1 时沿出口 1 继续执行。输入全局标签 Camera_User.Set_Branch ,选择常开触点,单击 确定 ,连接至 Set_Branch 端口。
设置要获取的路径上点的位姿类型。将 Request_Pose_Type 的端口值设为 1,表示设置 Mech-Viz 返回的是关节角数据。
注意
此处 Request_Pose_Type 和功能函数 MM_Start_Vis、MM_Start_Viz 中 Robot_Pose_Type 对应 全局标签 MM_Camera 数据块同一 Pose Type 变量,若需设定的值不同,则无法同时生效。
双击 MM_Get_VizData 功能块输入侧 EN1 端口同行的最左侧,输入全局标签 Camera_User.Start_Viz ,选择常闭触点,单击 确定 ,将左侧母线连接至 EN1 端口。
双击 MM_Get_VizData 功能块输入侧 Get_VizData 端口同行的最左侧,输入全局标签 Camera_User.Get_VizData ,选择常开触点,单击 确定 ,将左侧母线连接至 Get_VizData 端口。
单击工具栏中的 转换+编辑+RUN中写入 图标。
弹出 转换+编辑+RUN中写入执行确认 窗口,单击 确定 。
弹出如下窗口,单击 是 。
最后,单击 确定 ,完成将最新程序下载到 PLC。
触发 Mech-Viz 工程运行¶
在 MAIN 主程序窗口,右键单击 MM_Start_Empty 功能块输入侧 Camera_User.Start_Empty 端口,选择
,将其修改为 ON,清除上一次获取的视觉结果,然后将此变量复位。在 监看 窗口,输入全局标签 MM_Camera.Status_Code,观察到其返回值为 3103 ;全局标签 Camera_User.Target Pose、Camera_User.Target Label、Camera_User.Speed Percentage 变量值被清空。
选中 MM_Start_Viz 功能块输入侧 Camera_User.Start_Viz 变量,将其修改为 ON,启动 Mech-Viz 工程,然后将此变量复位。
在 监看 窗口,输入全局标签 MM_Camera.Status_Code,观察到其返回值为 2103 ,则表示工程启动正常。若返回值为 20XX,请参考 《Mech-Mind-标准接口错误码及故障排查手册》 进行错误排查。
设置 Mech-Viz 的分支出口¶
选中 MM_Set_Branch 输入侧 Camera_User.Set_Branch 变量,将其修改为 ON,选择 Mech-Viz 分支出口,然后将此变量复位。
在 监看 窗口,输入全局标签 MM_Camera.Status_Code,观察到其返回值为 2105 ,则表示分支设置成功。若返回值为 20XX,请参考 《Mech-Mind-标准接口错误码及故障排查手册》 进行错误排查。
获取 Mech-Viz 规划路径¶
选中 MM_Get_VizData 功能块输入侧 Camera_User.Get_VizData 变量,将其修改为 ON,获取 Mech-Viz 的规划路径,然后将此变量复位。
在 监看 窗口,输入全局标签 MM_Camera.Status_Code,观察到其返回值为 2100 ,则表示获取规划路径成功;若返回值为 20XX,请参考 《Mech-Mind-标准接口错误码及故障排查手册》 进行错误排查。输入全局标签 MM_Camera.Target_Pose,其返回值为 Mech-Viz 规划轨迹的关节角数据。