通信配置及示例程序使用¶
三菱 Q 系列 PLC(内置以太网)与梅卡曼德软件系统进行 Modbus TCP 通信包含以下流程:
所需软硬件¶
配置工控机及启动通信¶
设置工控机或主机 IPv4 地址¶
打开控制面板,单击 查看网络状态和任务 。
在网络和共享中心窗口中,单击 更改适配器设置 。
在网络连接窗口中,双击与 PLC 有网络连接的 以太网 适配器,弹出 以太网状态 窗口,单击 属性 。
在 以太网属性 窗口的 网络 选项卡下,双击 Internet协议版本4(TCP/IPv4) 项目。
在 Internet协议版本4(TCP/IPv4) 属性 窗口中,按下图所示设置固定 IP 地址、子网掩码和默认网关(需与 PLC 在同一网段)。
设置 Mech-Vision 中“机器人与通信配置”¶
单击 Mech-Vision 工具栏中 机器人与接口配置 。
单击 选择机器人 下拉框,选择 品牌机器人 ,然后单击 选择机器人型号 ,选择具体机器人型号,单击 下一步 。
在 通信方式 下,进行如下操作:
“接口类型”选择 标准接口 ;
“协议” 选择 Modbus TCP SLAVE ;
主机(从站)端口号设置为 2000;
字节序选择 CDAB;
从站设备地址设为 255;
单击 应用 。
在 Mech-Vision 主界面,确认工具栏中的接口服务已开启。
创建和配置 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 单元电源,并重新上电启动。
检查通信是否成功¶
返回 GX Works2 软件窗口,单击工具栏的 监视开始(全窗口) 。
弹出如下窗口,单击 是 。
双击 MAIN/0行 处 MM_MBTCP 功能块,滚动程序至 423 行,若连接成功,则可以观察到 Heartbeat 心跳信号监视值在不断变化。
在 Mech-Vision 主窗口中,若连接成功,则在日志窗口的 Console 标签页下会显示 client connected 。
若无该日志,请检查以下是否正常:
硬件网络连接是否正常;
Mech-Vision 的接口服务是否开启;
PLC 程序是否成功下载到 PLC 硬件。
视觉工程测试¶
本部分介绍如何使用例程功能块触发 Mech-Vision 工程并获取视觉点,以及触发 Mech-Viz 工程并获取规划路径。
准备工作¶
搭建 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-Vision 工程列表中工程名称前的数字编号。将 Vision_Proj_Num 的端口值设为 1 ,则运行工程编号为 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-Vision 工程列表中工程名称前的数字编号。将 Vision_Proj_Num 的端口值设为 1 ,则获取 Mech-Vision 工程编号为 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 规划轨迹的关节角数据。