QT使用MX Component 4.16S控件开发上位机与三菱FX5U通信

注:本文为博主参考书籍和他人文章并加上自己的理解所编,作为学习笔记使用并将其分享出去供大家学习。若涉及到引用您的文章内容请评论区告知!如有错误欢迎指正!

MX Component 4.16S的安装与测试

MX Component 4.16S是三菱PLC官方上位机通讯中间件 ,C#,vb.net,c++.net和三菱PLC通讯时,可以调用该软件DLL和PLC通讯,使用非常方便。
可以去三菱官网下载,需先注册账号。这里上传俩份手册MX Component Version 4 操作手册.pdf这份手册介绍MX Component工具的安装卸载及使用步骤注意事项,错误信息等。通过使用通用的函数,可以使迄今为止麻烦且复杂的串行通信及以太网通信的程序开发变得异常简单。MX Component Version 4编程手册.pdf这份手册介绍MX Component控件函数使用方法及编程步骤。

下载地址 MX Component三菱官方下载

QT使用MX Component 4.16S控件开发上位机与三菱FX5U通信_第1张图片
序列号:117-570766844(测试可用),也可以重新从官网免费获取。

安装

解压后先安装EnvMEL文件夹中的setup QT使用MX Component 4.16S控件开发上位机与三菱FX5U通信_第2张图片 QT使用MX Component 4.16S控件开发上位机与三菱FX5U通信_第3张图片 安装完成后直接运行解压后文件夹中的setup即可:
QT使用MX Component 4.16S控件开发上位机与三菱FX5U通信_第4张图片

之后公司什么的随意设置,在输入注册码:117-570766844
QT使用MX Component 4.16S控件开发上位机与三菱FX5U通信_第5张图片
QT使用MX Component 4.16S控件开发上位机与三菱FX5U通信_第6张图片
如果遇到下面图片显示内容,允许安装即可:
QT使用MX Component 4.16S控件开发上位机与三菱FX5U通信_第7张图片
安装完成后就会显示如下图片:
QT使用MX Component 4.16S控件开发上位机与三菱FX5U通信_第8张图片

运行

首先打开设置程序:
QT使用MX Component 4.16S控件开发上位机与三菱FX5U通信_第9张图片
点击wizard:
QT使用MX Component 4.16S控件开发上位机与三菱FX5U通信_第10张图片
设置站号:
QT使用MX Component 4.16S控件开发上位机与三菱FX5U通信_第11张图片
然后点击next;
PC侧通讯设置:
(1)、选择通讯接口:网卡、串口等
(2)、选择PLC
(3)、设置通讯超时
QT使用MX Component 4.16S控件开发上位机与三菱FX5U通信_第12张图片
然后点击next; PLC侧通讯设置方式1:
(1)、PLC和PC网线直连可以选择选择”以太网端口直连”:
(2)、选择网卡(会带出本机IP地址):
QT使用MX Component 4.16S控件开发上位机与三菱FX5U通信_第13张图片
PLC侧通讯设置方式2:
可以选择人工输入IP地址或者在网络中搜寻CPU:
QT使用MX Component 4.16S控件开发上位机与三菱FX5U通信_第14张图片
QT使用MX Component 4.16S控件开发上位机与三菱FX5U通信_第15张图片
QT使用MX Component 4.16S控件开发上位机与三菱FX5U通信_第16张图片
然后点击next;
网络设置:
站号类型:本站 PLC类型:FX5U
QT使用MX Component 4.16S控件开发上位机与三菱FX5U通信_第17张图片
然后点击next;
输入注释:
QT使用MX Component 4.16S控件开发上位机与三菱FX5U通信_第18张图片
然后点击finish;
设置完成之后就可以在Target Setting界面看到你的设置参数: QT使用MX Component 4.16S控件开发上位机与三菱FX5U通信_第19张图片
在List View界面看到所有的PLC的通讯设置:
QT使用MX Component 4.16S控件开发上位机与三菱FX5U通信_第20张图片
在connection Test界面测试通讯: 点击test:
QT使用MX Component 4.16S控件开发上位机与三菱FX5U通信_第21张图片
测试成功:
QT使用MX Component 4.16S控件开发上位机与三菱FX5U通信_第22张图片

QT的安装与使用

注意:QT安装时编译器一定要选上32位的,因为MX Component 4.16S提供的控件是32位的,使用64位编译器编译是,会报控件未注册。

双击qt-opensource-windows-x86-5.12.3.exe启动安装包
QT使用MX Component 4.16S控件开发上位机与三菱FX5U通信_第23张图片
接着,会提示你登陆 Qt 账户。这个 Qt 账户对普通人来说没什么必要,所以直接点击下面的“Skip”跳过即可。
QT使用MX Component 4.16S控件开发上位机与三菱FX5U通信_第24张图片
随后,便会弹出真正的开始安装界面,点击“下一步”。
QT使用MX Component 4.16S控件开发上位机与三菱FX5U通信_第25张图片
在安装文件夹的界面,建议大家不要将 Qt 安装在系统盘 C 盘(比如我在此作了更改,将其安装到 D 盘。当然,你安装在 C 盘也是可以的),其他保持默认即可。继续点击“下一步”
QT使用MX Component 4.16S控件开发上位机与三菱FX5U通信_第26张图片
下面,就到了重点了。在选择组件界面,请务必要选对安装 Qt 所需要的组件,否则你安装以后是无法正常运行的。

首先,点击各项前面的 > 箭头展开子项的内容。
QT使用MX Component 4.16S控件开发上位机与三菱FX5U通信_第27张图片
在 Qt5.12.3 一项中,如果你是使用 MinGW 进行编译,请务必选中 MinGW 模块。而如果你希望调用 VS 的编译器进行编译,则需要勾选对应的 VS 模块。当然,如果希望进行安卓开发,则安卓模块是少不了了。

至于其余的一些模块,则可以根据自身需要勾选。这里着重介绍下 Qt WebEngine 和三个后面带TP的模块项。Qt WebEngine是谷歌开源的 Web 浏览器引擎模块,而带 TP 的模块则表示此模块目前是技术预览版。

我的建议是,如果你是初学,这些则可以不选。千万不要以为柿子西瓜一箩筐什么都选上是最好的,这样一来是增大存储空间,二来多多少少会影响 Qt 运行时的速度,增加不必要的内存消耗。
QT使用MX Component 4.16S控件开发上位机与三菱FX5U通信_第28张图片
下面,接着看工具项(Tools)的选择。

第一项是CDB的调试器,如果你仅使用 MinGW进行编译,则此项可以不选。

第二项虽然名字带 MinGW,但只是用于交叉编译的(交叉编译即在某一平台上编译用于其他平台的程序),如果用不到,也可以不选。

至于第三项,那是用于 Perl 的。如果你电脑中本身没有安装 Perl,那是装不上的。

选择完成后,继续点击“下一步”

QT使用MX Component 4.16S控件开发上位机与三菱FX5U通信_第29张图片
接着,在打开的页面中勾选“我已经阅读并同意条款”(原文是英文)。然后,继续一路点击“下一步”,直到安装完成就可以了。
QT使用MX Component 4.16S控件开发上位机与三菱FX5U通信_第30张图片

QT 新建工程

1,运行QT软件,进入欢迎界面,点击“New Project”新建工程。
QT使用MX Component 4.16S控件开发上位机与三菱FX5U通信_第31张图片
选择项目类型,模版后,确认
QT使用MX Component 4.16S控件开发上位机与三菱FX5U通信_第32张图片
指定工程文件存放的路径,及工程名后,点击“下一步”
QT使用MX Component 4.16S控件开发上位机与三菱FX5U通信_第33张图片
选择交叉编译器,因为MX Component控件是使用32位的编译器的,因此我们选用MinGW 32—bit交叉编译器。
QT使用MX Component 4.16S控件开发上位机与三菱FX5U通信_第34张图片

QT使用MX Component 4.16S控件开发上位机与三菱FX5U通信_第35张图片
QT使用MX Component 4.16S控件开发上位机与三菱FX5U通信_第36张图片
到此一个新工程建立完毕。

QT中Activex控件的使用

  1. 要在Qt下使用ActiveX控件,势必会失去跨平台的优势,但是有时候又不得不如此做。譬如我现在用MX控件开发与PLC通信的软件。当然也可以根据MC协议去编写与plc的通信软件,这个不在当前文章的阐述范围内。
    2.这里采用的是用Qt工具dumpcpp生成源文件,来操作相应的ActiveX控件。
    (1)dumpcpp.exe在Qt安装文件夹的bin目录下:
    QT使用MX Component 4.16S控件开发上位机与三菱FX5U通信_第37张图片
    (2)打开控制台
    QT使用MX Component 4.16S控件开发上位机与三菱FX5U通信_第38张图片
    (3)输入dumpcpp -help 获取函数使用帮助
    QT使用MX Component 4.16S控件开发上位机与三菱FX5U通信_第39张图片
    (4)查看active控件UUID,网上有多种方法,这里不一一叙述,我是通过Qt Designer查看的。
    QT使用MX Component 4.16S控件开发上位机与三菱FX5U通信_第40张图片
    在编辑栏中选中QAxWidget这个控件,并拖拉到右侧界面中,右键点击->设置控件。
    QT使用MX Component 4.16S控件开发上位机与三菱FX5U通信_第41张图片
    选中要使用的控件,在com对象的文本编辑框中显示的是当前控件的UUID,{63885648-1785-41A4-82D5-C578D29E4DA8}。
    (5)输入 dumppcpp {63885648-1785-41A4-82D5-C578D29E4DA8}并回车。
    QT使用MX Component 4.16S控件开发上位机与三菱FX5U通信_第42张图片
    生成俩个文件

QT使用MX Component 4.16S控件开发上位机与三菱FX5U通信_第43张图片

(6)将dicomax.h 和dicomax.cpp导入项目,创建对象就行了。

在项目栏中TEST 工程文件夹中右击,在弹出的窗口中点击“Add Existing Directory…”
QT使用MX Component 4.16S控件开发上位机与三菱FX5U通信_第44张图片
选中 actutltypelib.cpp,actutltypelib.h 点击OK.文件添加成功如图:

QT使用MX Component 4.16S控件开发上位机与三菱FX5U通信_第45张图片
在工程文件 TEST.pro 中加入:
QT +=axcontainer

部分程序

登录界面的设计

在项目栏中,右击->”Add New…”
在页面中选择QT->QT 设计师界面类->Choose…
QT使用MX Component 4.16S控件开发上位机与三菱FX5U通信_第46张图片

选择窗口模版后执行下一步
QT使用MX Component 4.16S控件开发上位机与三菱FX5U通信_第47张图片
QT使用MX Component 4.16S控件开发上位机与三菱FX5U通信_第48张图片
QT使用MX Component 4.16S控件开发上位机与三菱FX5U通信_第49张图片
设计好的登录界面如下:
QT使用MX Component 4.16S控件开发上位机与三菱FX5U通信_第50张图片
login_form.h文件内容如下:

#ifndef LOGIN_FORM_H
#define LOGIN_FORM_H

#include 

namespace Ui {
class login_form;
}

class login_form : public QDialog
{
    Q_OBJECT

public:
    explicit login_form(QWidget *parent = nullptr);
    ~login_form();
signals:

public slots:
    void login();//点击登录按钮是执行的槽函数

private:
    Ui::login_form *ui;

};

#endif // LOGIN_FORM_H

login_form.cpp文件内容如下:

#include "login_form.h"
#include "ui_login_form.h"

#include
#include

login_form::login_form(QWidget *parent) :
    QDialog(parent),
    ui(new Ui::login_form)
{
    ui->setupUi(this);

    //设置窗体标题
    this->setWindowTitle(tr("登录界面"));
    ui->user_name->setPlaceholderText(tr("输入用户名"));
    ui->user_password->setPlaceholderText(tr("输入密码"));
    ui->user_password->setEchoMode(QLineEdit::Password);
    //单击登录按钮时 执行 LoginForm::login 槽函数(自定义);
    //单击退出按钮时 执行 LoginForm::close 槽函数(窗体的关闭函数,不用自己写)
    connect(ui->enter_Button,&QPushButton::clicked,this,&login_form::login);
    connect(ui->exit_Button,&QPushButton::clicked,this,&login_form::close);



}

login_form::~login_form()
{
    delete ui;
}


void login_form::login()
{
    //获得userNameLEd输入框的文本:userNameLEd->text();
    //trimmed()去掉前后空格
    //tr()函数,防止设置中文时乱码
    if(ui->user_name->text() == tr("") && ui->user_password->text() == tr(""))
    {
        accept();//关闭窗体,并设置返回值为Accepted
    }
    else
    {
        //标题              内容                OK按钮
        QMessageBox::warning(this, tr("警告!"),tr("用户名或密码错误!"),QMessageBox::Yes);

        //清空输入框内容
        ui->user_name->clear();
        ui->user_password->clear();

        //光标定位
        ui->user_name->setFocus();
    }
}

main.cpp内容如下:

#include "mainwindow.h"
#include 
#include 
#include "login_form.h"

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    MainWindow w;

    w.setWindowTitle("主界面");//设置窗体标题
    w.move((QApplication::desktop()->width() - w.width()) / 2,
           (QApplication::desktop()->height() - w.height()) / 2);

    login_form login;
    login.move((QApplication::desktop()->width() - w.width()) / 2,
                (QApplication::desktop()->height() - w.height()) / 2);

    if (login.exec() == QDialog::Accepted)//调用login.exec(),阻塞主控制流,直到完成返回,继续执行主控制流
    {
        w.show();
        return a.exec();
    }
    else
        return 0;


}

实际效果:
登录界面
QT使用MX Component 4.16S控件开发上位机与三菱FX5U通信_第51张图片
主界面:
QT使用MX Component 4.16S控件开发上位机与三菱FX5U通信_第52张图片

通信指令

Open 通信线路、电话线路的打开
Close 通信线路的关闭
SetDevice 软元件1 点的设置(4 字节数据) 
GetDevice 软元件1 点的数据获取(4 字节数据)
GetCpuType 可编程控制器CPU 型号读取
SetCpuStatus 可编程控制器CPU 的远程RUN/STOP/PAUSE

上位机界面设计

通过网线将PLC与电脑连接在一起,当打开上位机时,点击打开,plc与上位机将建立通信,run,stop可以远程控制PLC的运行与停止。界面可以实时显示各轴的运行状态,也可以通过上位机更改PLC的参数设置。
在设计三轴伺服移动平台控制系统中,我们用上位机代替按钮或开关来操作,上位机的主要作用是从用户窗口上接收信息,并将它转换成读写指令,再送给PLC,它同时能接收PLC发来的命令并加以执行。
在这个系统中,工作时的上位机界面包括主界面如下图所示。主界面分为三个页面,分别是通信页面,调试页面,监控页面。
上位机操作步骤如下:
(1)在系统调试之前先打开上位机应用程序,以实现控制系统的调节;
(2)进入通信页面,点击打开按键,将会建立与PLC的通信通道。点击RUN或者STOP进行PLC远程运行或停止。
(3)在通信页面可以读取PLC任意软元件中储存的值,右侧是进行软元件单个读写与连续读写的画面。
(4)在调试页面可以指定相应轴的各种参数,控制各个轴的运行状态。例:在与PLC通信正常的情况下,先进行复位操作,复位完成后,点击停止退出复位状态。点击测试进入调试状态。此时在调试界面中,点击指令速度编辑框,输入相应轴的移动速度,点击相应轴的使能按键,当值为正值是相应使能的轴正转,当值为负值时相应轴反向移动,即反转。
(5)左侧的状态指示,实时显示三轴移动平台的运行情况,可以点击相应的按键,进行运行状态的切换。
(6)点击监视页面,进入监视状态,在此页面可以形象的查看相应轴的移动状态。

QT使用MX Component 4.16S控件开发上位机与三菱FX5U通信_第53张图片
通信页面

QT使用MX Component 4.16S控件开发上位机与三菱FX5U通信_第54张图片
调试页面
QT使用MX Component 4.16S控件开发上位机与三菱FX5U通信_第55张图片监视页面

程序下载地址:

https://download.csdn.net/download/qq_41868529/11390517

本文完。

你可能感兴趣的:(PLC,QT,MX)