潘浩达,郑 鹏,郑 梁,秦会斌,秦惠民
(1.杭州电子科技大学 电子信息学院,浙江 杭州 310018;2.嘉善福尼电子有限公司,浙江 嘉善 314100)
基于Qt和Web的工业远程控制系统
潘浩达1,郑 鹏1,郑 梁1,秦会斌1,秦惠民2
(1.杭州电子科技大学 电子信息学院,浙江 杭州 310018;2.嘉善福尼电子有限公司,浙江 嘉善 314100)
为解决基于Web的工业远程控制中的无线传输短连接问题,设计了一种基于Qt和Web的工业远程控制系统。该系统利用Qt中的信号和槽机制及socket通信套接字,使Qt后台软件与工业主控制器的WiFi通信模块建立长连接数据收发功能;采用Web编程技术编写网页,以Ajax技术实现网页的动态无刷新功能;将MySQL数据库作为数据中转站,为Web网页提供数据显示和控制功能。经测试,整个远程控制系统运行正常,能够在无线传输中适应频繁的数据收发操作并保持长连接通信,实现了用户通过浏览器对工业现场的远程控制。
远程控制;Qt后台;长连接;Web网页;MySQL数据库
随着现代生产力的快速发展,企业规模不断壮大,简单的现场控制已经远远满足不了工业自动化控制,企业对信息数据的需求量越来越大。为了解决企业在工业生产过程中的地域限制,方便企业管理控制和提高企业生产工艺水平,高效的远程控制技术[1,2]成为当今企业的普遍要求。
基于Web的工业远程控制是较常用的远程控制技术。该远程控制中工业设备和服务器大部分是通过有线连接的方式来通信的[3]。但是,由于有线连接方式往往会受到现场环境限制,基于无线网络的Web远程控制越来越受到人们的关注。然而,当前基于无线网络[4]的Web远程控制在稳定性和实时性方面还面临着一些问题。因为,在单纯的Web网页控制中,客户端浏览器访问的服务器Web页面只会执行当前页面和其相关页面程序,每个页面执行的是短连接过程,因此跳转到其他页面时都需重新连接无线通信模块。此外,无线模块的连接需要一定的时间,因此每次跳转到其他Web页面时都会产生连接延时,影响实时数据的收发。
为了保证无线网络下Web远程控制的稳定性和实时性,本文在原有的工业生产系统下,在服务器端开发一个可以和工业设备保持长连接的Qt后台软件,以实现其与工业设备的实时数据交换。再结合Web编程技术[5]编写Web页面,实现远程客户端对工业设备的控制,设计一个基于Qt和Web的工业远程控制系统。
本系统采用LT232/485WiFi透传模块[6]来代替有线传输方式。远程控制系统结构如图1所示。
图1 远程控制系统结构图
工业设备控制器经WiFi透传模块与远程控制系统通信,用户通过Internet访问远程控制系统,进而控制工业设备,实现远程控制现场工业生产。
为了使工业设备控制器和外界进行数据交互,适应频繁的数据收发,本系统通过WiFi模块和服务器后台软件建立TCP长连接模式,以网络通信套接字socket实现数据收发功能[7]。并将后台软件接收过来的数据存入MySQL数据库,方便网页数据的读取和显示。客户端浏览器将网页的控制命令通过socket套接字写入后台软件,经后台软件将数据传送到工业设备控制器,如图2所示。
图2 远程控制系统软件模块
本系统选择能够跨平台、易升级、支持多系统下的Qt开发环境开发后台软件,Qt以其特有的信号和槽机制方便了函数的中断调用,而且拥有大量的库函数,方便开发人员逻辑代码编写[8]。由于远程控制系统软件模块和服务器都是安装在同一台计算机上,为了减轻服务器压力,选择功能强大的轻量级MySQL数据库[9]。网页部分采用html(超文本标记语言)嵌入php开源脚本语言的方式编写,以Ajax技术实现网页页面的无刷新动态显示[10]。
2.1 Qt后台软件
该软件主要包括客户端通信模块、数据库通信模块、服务端通信模块和自动连接WiFi模块[11]。客户端模块和工业设备控制器连接通信,两者通过WiFi透传模块接收和发送命令,控制设备的开机、关机,读取现场数据到后台界面软件,然后存储到数据库;数据库通信模块是接收设备的数据信息去改变数据表中数据,为Web网页提供数据;服务端通信模块是接收来自网页的消息,接收来自网页的命令:如设备的开机、关机,连接、断开网络,参数设置等,去控制现场工作;自动连接WiFi模块是用来保证无线信号的长连接工作状态。
2.1.1 客户端通信模块
作为WiFi模块的客户端,首先要和WiFi模块建立TCP连接,利用Qt库函数与WiFi连接后,使用tcpsocket与设备控制器进行通信。
以显示现场数据为例,函数执行顺序如图3所示。
图3 客户端通信过程图
①首先为客户端套接字tcpsocket写入成批读出软元件命令
其中,Read_Command(ReadType type,QString str,int n)是读取寄存器数据函数,参数分别表示读取类型、寄存器名和读取的个数。
②待写入命令后,再执行函数
将之前读取的数据放到字符串str中,其中handleStr函数表示将寄存器读取出来的数据去除帧头和帧尾;
③通过函数display(QString str)将数据显示在Qt界面上。
2.1.2 数据库通信模块
在与数据库通信之前,首先要和数据库建立连接,Qt中的连接函数如下:
代码的主要意思依次为连接MySQL数据库,配置好主机名、数据库名、用户名和登录密码,最后打开数据库,就可以实现对数据库的操作。
2.1.3 服务器通信模块
作为Web网页的服务端,服务端对象tcpserver监听网页连接,并接收网页传输过来的数据,经客户端对象tcpsocket发送到设备控制器中,实现Web网页控制工业设备。部分代码如下:
以接收Web页面控制命令为例,通信流程如图4所示。
图4 后台软件服务器模块
当接收到网页的socket消息时,Qt后台软件执行tcpserver信号所绑定的receiveFromWeb函数,进而控制设备。
2.1.4 自动连接WiFi模块
由于现场工作环境恶劣,大功率设备上电瞬间会产生电流干扰和磁场干扰,WiFi模块可能因此和后台软件断开连接。就以上原因,利用Qt中的信号和槽机制,将tcpsocket的断开连接信号绑定到连接WiFi模块函数上,主要代码如下:
在tcpsocket和WiFi模块断开瞬间执行link()函数,重新连接WiFi模块。
2.2 MySQL数据库
根据所要设计的数据表字段名的不同类型来设计数据表,不同数据类型所占的字节和空间是不同的,尽量以高效分配存储空间的原则来设计[12]。由工业控制系统现场工作需求,在数据库中设计数据表,用来存储设备数据。主要的数据表分别为:工艺曲线表(cruve)、温度设定表(temset)、压力设定表(preset)、开关表(switch)、控制表(onoff)和数据显示表(display)。
例如对工艺曲线表(cruve)的创建如下:
create table cruve(date Time,microsecond Mediu-mint,data Float(M,D));//时间,毫秒数,数据其中字段Time表示当前时间,字段Mediumint表示存取的毫秒数,字段Float(M,D)表示一共显示M位整数,D表示小数点后面的位数。这样即保证了精确度,又节省了存储空间,减轻服务器压力。
2.3 Web网页
2.3.1 安全登录页面
为了保证登录数据信息的安全性,同时为防止用户在没有经过登录系统的情况下非法登录系统而采用session技术[13]。
在每个网页页面中加入session判断语句,检查服务器保存文件中有没有客户端相对应的session记录,若有则通过身份认证,若没有,则将网页跳到登录首页面,需要客户端重新登录。部分代码如下:
2.3.2 数据采集页面
现场数据采集页面采用Ajax技术实现页面数据的无闪烁更新显示,执行代码为:
其中,display()函数的执行过程为:采用Ajax技术将数据命令以POST的形式提交到后台处理页面showprocess.php,该页面从数据库中取出数据,返回到显示页面show.php,实现无刷新显示。其工作模式如图5所示。
图5 Ajax工作模式
用户发送请求给Ajax引擎,Ajax引擎向服务器发送HTTP请求,此时Web服务器运算操作Ajax引擎发送过来的请求。由于Ajax的异步操作特性,在此期间客户端可以对其他逻辑事物进行操作,等到服务器端运算结束后,服务器将数据以Json格式响应到Ajax引擎,Ajax引擎将响应的结果返回给用户。
2.3.3 控制页面
控制页面以下拉列表的方式实现现场设备的开和关,在html代码中嵌入onchange事件,当下拉列表改变状态时触发onchange事件,执行javascript代码,将命令传到Qt后台软件,同图5。
2.3.4 工艺设定页面
工艺设定页面首先读取设备控制器原始设定数据,将数据显示在表格中。若生产中需要更改参数设定,经更改按回车后触发onchange事件,跳转到后台process.php执行代码,经socket将数据传送到Qt后台软件为设备控制器提供数据,如图5所示。
在网页短连接方式和Qt长连接方式下操作网页,程序中分别以1 s、100 ms和10 ms的采样周期采集时间,对采集时间的连续性作对比。图6、图7和图8中的纵坐标0代表无采集点,1代表有采集点,在不同的采样周期下,可以表明采集点是否具有连续性。
采样周期为1 s时得出的时间对比如图6所示,从图中看出短连接和长连接得到的时间都具有良好的连续性。
图6 采样周期1s的采集对比图
采样周期为100 ms时得出的时间对比如图7所示,从图中看出长连接得到的时间具有连续性,短连接下丢失了1个时间数据,并且丢失点后面的时间数据有一定的延时。
图7 采样周期100 ms的采集对比图
采样周期为10 ms时得出的时间对比如图8所示,从图中看出长连接得到的时间具有连续性,短连接下丢失了7个时间数据,丢失点后面的时间数据有一定的延时。
图8 采样周期10 ms的采集对比图
经Comm View测试,本系统服务器与WiFi模块连接的平均时间为70 ms。在短连接情况下,从图7和图8可以看出,跳转到其他页面时,需重新连接WiFi通信模块(即经过70 ms)后才能取得数据,而且取得的数据有一定的延时,采样周期为10 ms时丢失的数据多于100 ms下丢失的数据;在长连接情况下,从图6、图7和图8可以看出,服务器端的Qt后台软件与WiFi模块处于长时间连接状态,操作其他页面时没有数据丢失。从中可以看出,当采样周期远远大于WiFi模块的连接时间时,在相同情况下短连接和长连接得到的数据都具有良好的连续性,采样周期会忽略WiFi模块的毫秒级连接时间,不会影响数据的采集。
当采样周期与WiFi模块连接时间在同一数量级时,短连接情况下会丢失采集点,并且会随着采样周期的减小而丢失更多数据,而长连接情况下不会丢失采集点。因此Qt长连接方式不会因为采集周期的长短而失去采集点,能使服务器和工业设备建立长连接数据收发功能。
基于Qt和Web的工业远程控制系统中的Qt后台软件实现了与工业设备的频繁数据收发功能,并与数据中转站MySQL数据库协同操作,为网页模块提供数据显示功能,最后通过网页模块与Qt后台软件通信,实现远程控制系统人机交互功能。总体来说,该系统解决了基于Web的工业远程控制中服务器与工业设备短连接的问题,测试数据体现了良好的数据连续性和长连接功能,表明Qt后台长连接数据收发和Web网页操作的可行性。
[1]ZHANG Teng-fei,LI Qin-xiao,MA Fumin.Remote Control System of Smart Appliances based on Wireless Sensor Network[C]∥Control and Decision Conference,2013(25):3704-3709.
[2]LIU Wen-sheng,YU Guo.The Development of Web Service-Based Remote Control and Monitoring System[C]∥Computational Intelligence and Software Engineer- ing,2009:1-4.
[3]李 瑾.有线通信与无线通信对比分析[J].信息通信,2014(6):191-191.
[4]ZHENG Ze-yu,WANG Jian-ping,WANG Jin.A Study of Network Throughput Gain in Optical-Wireless Networks Subject to Peer-to-Peer Communications[C]∥Communi-cations,2009:1-6.
[5]Turto T.Building Blocks for a Web Programming Language[C]∥Software Engineering and Advanced Applications,2008:310-317.
[6]马 捷.基于近场通信的WiFi传输连接方案[J].计算机工程,2013(6):1-6.
[7]王云亮,王光林.基于Socket的Linux与Windows下WiFi模块间通信的实现[J].微型机与应用,2014(2):57-59.
[8]殷立峰.Qt C++跨平台图形界面程序设计基础[M].北京:清华大学出版社,2014.
[9]Yu Xiao-sheng,Yi Cai.Design and Implementation of the Website based on PHP&MYSQL[C]∥E-Product E-service and E-entertainment,2010:1-4.
[10]唐四薪.PHP Web程序设计与Ajax技术[M].北京:清华大学出版社,2014.
[11]倪红波,周兴社,谷建华.基于QT/E的嵌入式图形支持系统[J].计算机工程,2007(20):256-258.
[12]赵鹤芹.设计动态网站的最佳方案:Apache+PHP+MySQL[J].计算机工程与设计,2007(4):933-938.
[13]Li Yue,Zhou Meng,Chen De-hua.Automatically Identify the Website′s Key-cookies for Merging Sessions[C]∥Natural Computation,2013(9):782-786.
Industrial Remote Control System Based on Qt and Web
PAN Hao-da1,ZHENG Peng1,ZHENG Liang1,QIN Hui-bin1,QIN Hui-min2
(1.School of Electronic&Information,Hangzhou Dianzi University,Hangzhou Zhejiang 310018,China;2.Jiashan Funi Electronics Co.,Ltd.,Jiashan Zhejiang 314100,China)
In order to solve the problem of short connection of wireless transmission in industrial remote control based on Web,an industrial remote control system based on Qt and Web is designed.The system uses the mechanism of signal and slot in Qt and socket communication to make the Qt software and the WiFi module of the main controller establish a long connection of data transmitting and receiving;the system uses Web programming to write the Web page and uses Ajax to achieve the dynamic function without refreshing;It uses MySQL database as the data transfer station for the function of data display and control in Web page.It is indicated by test that the remote control system is in normal operation.It can adapt to the frequent operations of data transfer and maintain long connection communication in wireless transmission,and it allows users to control the industrial site by a browser.
remote control;Qt backstage;long connection;Web page;MySQL database
TN108.4
A
1003-3114(2015)06-88-4
10.3969/j.issn.1003-3114.2015.06.23
潘浩达,郑 鹏,郑 梁,等.基于Qt和Web的工业远程控制系统[J].无线电通信技术,2015,41(6):88-91,96.
2015-06-04
浙江省科技计划公益性项目(2013C31064)
潘浩达(1988—),男,硕士研究生,主要研究方向:网络通信。秦会斌(1961—),男,教授,主要研究方向:新型电子器件设计与系统应用。