基于嵌入式和Qt的屏蔽泵远程监控系统设计
2021-09-15李增亮闫立强
李增亮,徐 崧,闫立强,胡 朋
(1.航空结构件成型制造与装备安徽省重点实验室,合肥 230009;2.合肥工业大学 工业与装备技术研究院,合肥 230009;3.安徽天富泵阀有限公司,安徽 天长 239300)
0 引言
屏蔽泵是一种结构精密、安全性高和绝对无泄漏的新型无密封泵[1]。它主要应用于工业输送流体介质领域,尤其是在核工业、石油和易燃易爆物品以及有毒有害气体的输送中[2]。因此,屏蔽泵运行的健康状况对于安全的输送这些危险物品起到了至关重要的作用,及时准确地发现屏蔽泵的运行故障,及早地进行恰当的处理,避免因为发现屏蔽泵故障不及时导致危险品的泄漏,从而对人和环境造成极大的伤害[3,4]。
屏蔽泵性能和运行状况监测的传统方法是依赖于监控中心固定的定点PC监测模式和TRG表等监测模式,前者的不足之处在于占地面积大、维护和开发成本较高,并且监测方式笨重、不灵活,受地理位置的影响较大。发现屏蔽泵故障也需要去工作现场进行断电处理,不能远程控制屏蔽泵。后者则是采用离线的方式来评估屏蔽泵性能状况,不具备发送数据到监测终端的能力。
目前,随着物联网技术和无线通信技术的发展,万物互联和万物智联已经成为发展潮流。物联网技术的发展离不开云平台的支持,越来越多的设备接入云平台,真正地实现了各设备在广域网下进行数据传输的需求,使得数据交互不在受到地理位置的约束。因此,本文基于嵌入式和Qt技术对目前屏蔽泵运行状况的监控模式提出了改进方案。该方案主要分为采集控制端和远程监控终端,两者分别以ESP8266和4G模块通过MQTT协议接入到OneNET云平台。两个终端互相订阅对方的主题,则可实现在广域网下的数据交互,不仅可以实时监测屏蔽泵的运行状况,还能根据现实需求进行远程控制[5]。因此,本方案为远程监控屏蔽泵运行状态提供了切实可行的思路,很好地解决了目前监控屏蔽泵的痛点问题。
1 系统整体方案设计
本文针对上述监控屏蔽泵运行状态的痛点问题,将物联网技术引用到屏蔽泵监控领域,实现了远程监控屏蔽泵状态的需求。本系统主要由采集控制端、云服务平台和远程监控终端这3部分组成,系统原理框图如图1所示。采集控制端以STM32为微控制器并将其安装在屏蔽泵的弱电控制箱中,现场实时监测屏蔽泵的运行状态,采用ESP8266无线通信模块将现场监测到屏蔽泵运行状况的数据,通过MQTT协议将数据上传到OneNET物联网云平台,数据以JSON格式进行传输。OneNET云平台相当于数据中转站,将数据推送给远程监控终端。远程监控终端运行在Linux系统之上,在Linux系统上进行Qt界面开发,将接收到的数据经过解析之后实时显示在远程监控终端的Qt界面,设置各项指标的阈值,对于超出阈值的数据进行上报处理,通过Qt界面远程发送控制指令给身处各地的屏蔽泵,实现了远程监控屏蔽泵的目的。
图1 系统原理框图Fig.1 System principle block diagram
2 采集控制端设计
2.1 采集控制端硬件图
屏蔽泵运行时的健康状况,主要由进出口压力、流量、定子温度和屏蔽套湿度等参数决定。这些参数的异常会导致屏蔽泵不能正常工作,严重的情况下可能会导致传输液体的泄漏,必须要采取停机操作。因此,采集控制端主要负责现场实时采集屏蔽泵相关参数,并根据从云平台接收到的指令对屏蔽泵进行启停等控制操作。采集控制端主要由主控模块、采集模块、通信模块、控制模块和供电模块5部分组成。主控模块负责采集控制端的整体协调配合;供电模块负责采集控制端的电源供给;采集模块主要负责采集屏蔽泵运行状况参数;通信模块负责将采集的数据上传至OneNET云平台;控制模块负责控制屏蔽泵的运行状态。采集控制端的硬件架构如图2所示。
图2 采集控制端硬件图Fig.2 Acquisition control terminal hardware diagram
2.2 采集控制端程序流程图
屏蔽泵运行时各项参数需要及时采集并上传,所以STM32在上电以后需要持续向云平台发送采集到的各项数据。具体的工作流程:系统上电以后,首先需要初始化资源,如串口、定时器、GPIO和其它外设资源等。若没有接入云平台,则需要对ESP8266无线模块进行联网配置。先执行WIFI复位模块,然后通过USART3发送相关配置指令,设置为STA模式并连接路由器,连接路由器成功后就完成了无线模块的配网,并将ESP8266工作模式设置为透传,最后连接OneNET云平台的MQTT服务器并订阅相关主题。通过配置定时器2来定时上报采集到的数据,配置定时器3来定时发送心跳包给云平台,配置定时器4来接收从云平台返回的数据。程序流程图如图3所示。
图3 程序流程图Fig.3 Program flow chart
3 远程监控终端设计
随着嵌入式和物联网技术的发展,目前远程监控终端已经趋向于微型化、智能化、网络化和便携式等方向。由于屏蔽泵在工业领域的重要地位,所以对于屏蔽泵运行状况的实时监控开发一款远程监控终端有重要的研究意义。该终端基于嵌入式Linux和Qt技术并结合4G模块真正地实现了广域网下远程监控屏蔽泵的目的。通过LCD触摸屏不仅可以远程监测屏蔽泵的运行状况,而且还能根据实际情况的需要对屏蔽泵进行远程控制。该终端以Cortex-A7为核心模块,4G模块选用移远公司的EC20,采用4.3寸LCD触摸屏,硬件结构如图4所示。
图4 硬件结构图Fig.4 Hardware structure diagram
3.1 远程监控终端开发流程
对于开发嵌入式远程监控终端来说,既涉及到硬件环境搭建也有软件编程,从Linux底层驱动到应用层Qt界面开发,硬件环境搭建和软件开发两者互相依赖。硬件环境搭建是开发的基础,需要移植上层应用所需要的各种依赖库;软件的开发主要负责人机交互界面,将人的意愿传输到底层进行相应的操作。两者互相配合才能发挥嵌入式远程监控终端的优势,在开发调试过程中需要对硬件环境和软件编程进行全方位的考量。为了更好更快地进行软硬件调试,根据模块化设计流程分为硬件环境搭建和软件开发。具体的模块设计流程如图5所示。
图5 模块设计流程图Fig.5 Module design flow chart
3.2 搭建硬件平台
3.2.1 Linux操作系统移植
该终端运行在Linux系统之上,Qt软件安装在文件系统的/opt目录下。一个完整的Linux系统包括BootLoader、Linux内核和文件系统。
BootLoader主要负责初始化硬件,为系统运行部署环境,负责将内核读取到内存当中,并给内核传递参数。当内核运行起来之后,它的使命也就完成了。
Linux内核选取的版本为Linux-4.1.15,进入内核目录后,修改Makefile,在Makefile文件中修改ARCH和CROSS_COMPILE这两个变量,修改完成以后就指定了交叉编译工具,然后添加相应的配置文件和设备树文件并交叉编译内核,最终生成内核镜像文件和设备树文件。
文件系统选取开源的BusyBox来构建最小文件系统,最小文件系统占用资源少,可以移植第三方软件Qt进行界面开发。首先,获取BusyBox源码,选取版本为BusyBox 1.29.0;然后,进入源码目录,修改配置文件使其可以支持中文显示,配置交叉编译器;接着,使用make命令交叉编译,并在最小文件系统中添加配置信息,将最小系统各个文件压缩打包文件系统;最后,使用官方烧写软件将BootLoader、内核镜像、文件系统和设备树烧写进开发板,至此Linux系统搭建完毕。
3.2.2 Qt开发环境移植
该终端界面开发选取Qt软件,Qt具有跨平台的优势,因此在嵌入式中广泛应用。选用qt-everywhere-opensourcesrc-5.7.0版本,进入Qt源码目录,修改配置文件,配置交叉编译器,该交叉编译器与编译文件系统一致。最后,通过执行命令脚本生成Qt5.7.0。在开发板上部署Qt的运行环境。
3.3 软件功能分析
3.3.1 Qt移植MQTT
MQTT是一种低开销、低带宽占用和为远程设备提供实时可靠消息服务的即时通讯协议。它最大的优点就是基于订阅/发布机制,在物联网和嵌入式移动设备中广泛应用。MQTT可以扮演3种不同的角色:发布者、订阅者和服务器。在远程监控系统中需要一台固定IP的云主机,作为设备间通讯的中转,OneNET云平台支持MQTT协议的接入。因此,OneNET云平台提供了有固定的IP和端口的MQTT服务器作为数据转发中转站。MQTT协议实现方式如图6所示。
图6 MQTT协议实现方式Fig.6 MQTT Protocol implementation
Qt中移植MQTT库,选用开源的第三方库qmqtt进行移植,将qmqtt源码直接包含到开发工程目录下,在.pro中添加路径,然后一起进行编译。
3.3.2 Qt软件编程
远程监控终端的Qt界面主要由用户登录、实时监测、报警控制和系统设置4部分组成,如图7所示。用户登录主要设置了登录账号与密码,验证身份合格以后才可以进入远程监控系统。实时监测主要包含各个屏蔽泵运行状况的各项数据,从云平台读取数据后需要进行JSON解析,并将数据的变化以折线图的形式展现。报警控制主要负责解析后的数据与阈值进行比较,若某项数据超出阈值则进行报警。通过界面按钮发送控制停机指令,将停机指令进行JSON封装处理发送到云平台。系统设置包括管理员增加用户登录人员和退出系统等操作。
图7 Qt界面Fig.7 Qt Interface
4 实验测试与结果
远程监控终端上电开启后,Qt程序会开机自启动。首先会进入到登录界面,输入正确的账号和密码后点击登录,进入监控终端的主界面,选择要监控的屏蔽泵,点击连接云服务器按钮,成功连接到OneNET云平台。折线图实时显示参数的变化,如图8所示。
图8 实时监测界面Fig.8 Real-time monitoring interface
若监测的某项数据超过阈值则触发报警,进入报警控制界面,如图9所示,进行相应的操作后点击消除报警。
图9 报警控制界面Fig.9 Alarm control interface
5 结语
本文设计了一套基于嵌入式和Qt的屏蔽泵远程监控系统,该系统解决了目前监控屏蔽泵的痛点问题。从实验结果来看,该系统性能稳定,实时性好,可靠性强,很好地实现了对屏蔽泵的远程监测和控制,满足了预期的目标并具有良好的应用价值,为屏蔽泵的远程监控系统提供了可行性方案。