Qt使用 MX Component 插件与三菱PLC通信

作者:billy
版权声明:著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处

MX Component 简介

MX Component 是三菱PLC官方上位机通讯中间件,通过使用该工具,可以在无需具备通信协议及模块知识的状况下实现从计算机至可编程控制器的通信。通过使用 MX Component 提供的一些属性和方法,可以使复杂的串行通信和以太网通信的协议程序开发变得简单方便。

MX Component 的功能

  • 不用考虑通信协议即能与指定的PLC通信;
  • 支持计算机与PLC的所有通信路径;
  • 可实现软元件监视功能,访问特殊功能模块的缓冲存储器;
  • 根据通信设置向导进行配置并能保存为一个逻辑站编号;
  • 支持 Visual Basic、Visual C++、VB Script 和 VBA 编程语言;
  • 可由ASP功能通过 Internet/intranet 监视;

MX Component 支持的路径

  • CPU编程口(COM或USB);
  • GX Simulator PLC仿真程序;
  • 串行通信;
  • 总线连接;
  • 电话线路;
  • MELSECNET/H,10,II;
  • Ethernet;
  • CC-Link;

软件与文档下载

  • MX Component 官网下载地址
    Qt使用 MX Component 插件与三菱PLC通信_第1张图片
    这里博主使用的是 MX Component 4.16S 版本,目前官方最新版本为 4.19L;

  • MX Componet 4.16S 下载:
    链接:https://pan.baidu.com/s/1tCHFfTUiGJ7elOCc-UwNMg
    提取码:nn9e

  • MX Componet编程手册-中文.pdf 下载:
    链接:https://pan.baidu.com/s/11f2UyMHbG_abWRuH5e_v9Q
    提取码:rv7p

  • MX Componet操作手册-中文.pdf 下载:
    链接:https://pan.baidu.com/s/1pOouiotJhg588TWBU-mh2Q
    提取码:xuez

安装 MX Component

  1. 安装 .NET Framework 3.5
    MX Componet 依赖于 .NET Framework 3.5,如果没有安装 .NET Framework 3.5 则会报如下警告,并且退出安装;
    Qt使用 MX Component 插件与三菱PLC通信_第2张图片
    .NET Framework 3.5 下载:
    链接:https://pan.baidu.com/s/1sCpFW1uo0-Qu5jPK_Az4UA
    提取码:m5xj

  2. 执行位于本产品 CD-ROM 的 “EnvMEL” 文件夹内的 SETUP.EXE
    本产品的安装开始时,会显示 “This package is not in proper operating environment”(未处于本软件包可运行的环境)这一信息,导致安装未能正常完成。需要先执行 MX Componet 4.16S\EnvMEL\setup.exe
    Qt使用 MX Component 插件与三菱PLC通信_第3张图片

  3. 开始安装 MX Componet
    Qt使用 MX Component 插件与三菱PLC通信_第4张图片
    一路 next 之后会需要输入一个产品 ID,下图为博主使用的ID:998-598638072
    Qt使用 MX Component 插件与三菱PLC通信_第5张图片
    最后安装完成之后需要重启电脑!

安装完成之后的目录解析

  1. 在Windows上安装 MX Component 完成之后会在菜单栏生成如下3个程序:
  • Communication Setup Utility(通讯设置)
  • Label Utility(标签管理)
  • PLC Monitor Utility(可编程控制器监视)
  1. 安装目录下有如下文件:
    Qt使用 MX Component 插件与三菱PLC通信_第6张图片
    Qt使用 MX Component 插件与三菱PLC通信_第7张图片

通过 Communication Setup Utility 进行通信路径设置

注意:需要以管理员身份运行 Communication Setup Utility
Qt使用 MX Component 插件与三菱PLC通信_第8张图片
Qt使用 MX Component 插件与三菱PLC通信_第9张图片
Qt使用 MX Component 插件与三菱PLC通信_第10张图片
Qt使用 MX Component 插件与三菱PLC通信_第11张图片
Qt使用 MX Component 插件与三菱PLC通信_第12张图片Qt使用 MX Component 插件与三菱PLC通信_第13张图片
Qt使用 MX Component 插件与三菱PLC通信_第14张图片
Qt使用 MX Component 插件与三菱PLC通信_第15张图片

Using ActiveX controls and COM in Qt

  1. 注意 MX Component 4.16S 提供的控件是32位的,所以QT的编译器也要是32位的才行,如果使用64位编译器编译,会报控件未注册;
CoCreateInstance failure (没有注册类)
QAxBase::setControl: requested control {78703D55-4042-4046-845D-7BBE83FB2F44} could not be instantiated
  1. 添加模块
    QT += axcontainer

  2. 查看COM控件的UUID
    Qt使用 MX Component 插件与三菱PLC通信_第16张图片

  3. 使用 dumpcpp 工具生成相关的c++头文件和cpp文件
    dumpcpp工具是ActiveQt模块的命令行工具,主要的功能就是利用二进制库文件或者tlb文件生成相关的c++头文件和cpp文件,并利用QAxObject类重新封装了原来的组件,从而简化原来组件的复杂接口,并借此能够利用qt的meta系统,也就能进一步实现信号与槽的功能,与qt完美结合;

  • ActProgType的UUID为 {78703D55-4042-4046-845D-7BBE83FB2F44}
  • 命令行执行 dumpcpp {78703D55-4042-4046-845D-7BBE83FB2F44} 生成 actprogtypelib.h 和 actprogtypelib.cpp;
    Qt使用 MX Component 插件与三菱PLC通信_第17张图片
  1. 把 actprogtypelib.h 和 actprogtypelib.cpp 导入到项目中直接使用
    Qt使用 MX Component 插件与三菱PLC通信_第18张图片

你可能感兴趣的:(Qt)