基于QT 的蒸汽流量计上位机控制系统设计
2022-07-11尚文斌
尚文斌
(临沂市恒源热力集团有限公司 山东省临沂市 276000)
1 引言
随着近几年政府对改善环境的迫切需求和节能减排的重视,越来越多的企业关闭或拆除自建的小型蒸汽锅炉,改用集中供热管网提供的蒸汽热源,热电厂和热用户在使用蒸汽的过程中,需要蒸汽流量计作为计量、收费的设备。目前使用较为广泛的为涡街流量计和孔板流量计,现场的计量系统和上位机控制系统共同组成蒸汽流量计的远程控制系统。
传统的人工抄表方式不利于及时发现蒸汽计量过程中的问题,给热电厂和热用户造成不必要的麻烦,而基于Microsoft Visual Studio(简称VS)等设计的软件只能在Windows 系统下运行,可修改和移植性较差。本文的针对不同的上位机操作系统,设计一套蒸汽流量计上位机控制系统,实现现场计量和计费数据的远程采集控制、数据库存储、数据备份以及对数据的检索、查询、统计分析等功能,具有易修改、稳定性和跨平台移植等优点。
2 系统的总体设计
2.1 蒸汽流量计远程控制系统的介绍
如图1 所示,蒸汽流量计远程控制系统主要包括现场的计量系统(流量计表体、差压变送器、压力变送器、温度传感器、电动调节阀、积算仪、控制仪、无线数据传输模块(DTU)等设备)和上位机控制系统(服务器监控软件、数据库管理软件、客户端访问软件)。
图1:远程控制系统的结构框图
整个系统的工作过程描述如下:现场的蒸汽流量计表体安装于被测量蒸汽管道上,测量产生的压差信号经过差压变送器转换为电信号,通过现场的积算仪计算得到蒸汽的瞬时流量值和累计值,并给予一定的温度、压力补偿值,配合现场的控制仪实现计量和计费等基本功能。负责运行上位机控制系统的服务器有固定IP 地址,作为通信的主机,无线数据传输单元(DTU)和现场的积算仪和控制仪作为通信的站点从机,主机与从机通过相关通信协议实现无线通信,将积算仪和控制仪的温度、压力、瞬时流量、累计流量、余额费用等实时数据上传至上位机控制系统。服务器通信软件将实时数据经过相关的数据库处理后,存入数据库管理系统,管理员可远程实时访问服务器的数据库,并将单价、累计流量、阀门开度等数据信息远程设置后,下发至现场的控制仪中,控制仪同步更新相关的控制数据,完成计费和调节阀门开度等控制功能。
2.2 系统的功能需求
(1)上位机控制系统实时读取各站点现场积算仪和计费控制仪的信息:蒸汽管道的温度、压力、瞬时流量、累计流量值(包括总、峰、谷3 个值),电动调节阀门的开度值,当前余额,运行状态等实时数据信息。
(2)系统可与多个站点的现场智能仪表同时在线通讯,支持断线后自动重连功能,设置峰谷时间单价,调节控制阀门的开度值等,完成数据的上传和下发功能。
(3)每个站点现场设备的实时数据存储于数据库,数据库管理软件实现数据的查询、分类、报表等功能。
(4)客户端可远程实时访问服务器数据库功能,实现数据的远程管理,查询、报表、统计、控制等操作,实现运行人员的远程监控管理。
2.3 系统总体方案的设计
蒸汽流量计远程控制系统总体方案的设计包括服务器通信软件、数据库管理系统以及客户机访问程序共3 个方面的设计。
笔者选用QT 开发环境编程实现服务器通讯软件。QT是一款基于C++语言的开发图形界面的应用软件,先进的信号与槽、元对象系统、事件模型构成了QT 编程的核心机制。其开发环境具有易修改、稳定性和跨平台移植等优点,不仅可以开发强大的GUI 图形界面,还能用来研究设计其它的应用程序,支持面向对象的编程并且拥有丰富的应用程序编程接口(API)函数。QT 具有强大的跨平台功能,只需选择不同系统平台如嵌入式系统Linux/Unix 等编译后,经过简单的修改就可以跨平台移植,支持几乎所有的操作系统平台稳定运行,扩大了程序的应用范围。
在数据库管理软件选择方面,根据蒸汽流量计数据的特点,考虑到需支持多用户同时访问且用于网页调取非常方便的特点。笔者选用具有体积小、速度快、总体拥有成本低,开源等优点的MySQL 数据库,MySQL 数据库是一种代码开源的关系型数据库管理系统,其支持多种操作系统,提供的接口支持多种语言连接操作,完全能够满足系统对数据的操作要求。
为了方便用户使用计算机和手机等终端设备访问服务器的数据库,同时考虑到系统的升级、维护和管理的便利,笔者以B/S 模型来设计该系统,服务器只需要以网页发布的方式即可满足用户对远程数据的统计和监控的要求。网页发布是基于超文本标记语言(HTML)、层叠样式表(Cascading StyleSheet)、JavaScript 等技术开发,支持对MySQL 数据源的配置,主要实现对各站点数据的时段统计、记录查询、报表打印、图表生成、图表打印等功能。
3 服务器通信软件的设计
服务器通信软件程序主要是对通信、数据处理、数据存储、界面显示等功能模块的分别设计,笔者选择Qt 5.14.2为版本的开发环境对服务器通信软件进行程序的编写。
3.1 通信模块
对于服务器和客户端的通信协议,由于UDP 协议具有快速、不可靠、不稳定的特点,而TCP 协议具有速度慢、可靠、稳定的特点,考虑到控制系统对可靠数据传输的要求,笔者选择TCP 协议作为软件的通信协议。TCP 协议使用Client/Server(C/S)模式,通信模块的实现过程描述如下:在QT 中为服务器(主机)与客户端(从机)通过QTcpsocket类创建Socket(套接字)实现即时通信,Socket 通信原理图如图2 所示。Socket 是Modbus TCP/IP 协议通讯编程接口(API),由于QT 对其进行了封装,大大简化了用户的使用难度。主机和从机都要打开并初始化Socket,绑定IP 地址和端口号,通过调用listen()函数使主机处于监听状态,从机向主机发送建立连接的请求,主机收到请求并同意后,双方建立通信,具体通过调用write()函数和read()函数实现相互收发数据。
图2:TCP Socket 通信原理图
服务器通讯软件与多个站点通信的实现过程是通过多次Socket()+bind()系统调用生成并绑定多个套接字实现的。新建服务器类TcpServer 和TcpSocket,用于分别继承自QTCPServer 和QTCPSocket,完成服务器与套接字的建立与连接,TcpServer 用于接收站点的TCP 请求,存储客户信息,并向主窗口发送信息,使用listTcpClient 管理多个客户端。利用QTcpSocket 对象的readyRead()信号来判断是否有来自服务器端的数据,从而连接信号与槽对数据进行读出,完成主机与多个从机的通信。
3.2 数据处理模块
数据处理模块主要是调用Progressdata()函数完成对服务器通信软件接收到的数据进行验证、转换等处理,如图3 数据处理模块流程图所示。执行Progressdata()函数后,首先对接收到的心跳包数据的起止位和长度进行验证,验证正确后与该站点的智能仪表的建立通信连接,服务器通信软件向该站点发送查询数据,对接收到的数据进行起止位的CRC 校验位判断,确定数据有效后,对获取温度、压力、热量值等数据进行转换,存入对应的数据库管理系统,并与用户设置的报警值比较后进行报警输出,Progressdata()函数运行结束。
图3:数据处理模块流程图
3.3 数据存储模块
数据库存储模块实现对数据的存储管理的相关功能,系统中的所有数据包括现场设备数据、用户信息、报警信息、参数设置等均存储于服务器本地数据库中。QT 开发环境提供QTSql 模块实现对对数据库的访问,QtSql 模块由驱动层,SQL 接口层和用户接口层3 部分组成:驱动层在数据库和SQL 类之间提供了底层的桥梁;QT 中提供了不同的数据库接口,为不同层次的用户提供了丰富的数据库操作类。QT通过调用动态链接库文件libmysql.dll 访问数据库,调用接口函数db.open()打开数据库并检测是否打开成功,通过对QSqlQuery 类对象执行相关的SQL 语句实现用户对数据库的添加、查询、修改和删除等操作。模块实现与MySQL数据库连接功能,数据通过服务器通信软件的分析处理后,实现数据库的存储。管理员可通过网页显示、远程管理等数据库查询方式获取可靠的数据来源。
4 系统的调试与应用
4.1 系统的联合调试
蒸汽流量计上位机控制系统的调试主要包括服务器与数据库、各站点的连接调试。在与数据库连接调试中,本文选用一种被广泛使用的phpMyAdmin 工具软件,实现对MySQL 数据库图形化管理,不需要执行系统命令来管理数据库,用于实时管理服务器通信软件接收的站点数据非常方便。通过phpMyAdmin 找到数据库连接配置config 文件,修改文件中的数据库连接信息,建立我们需要的数据库结构表,创建存储需要的实时数据、参数、报警、用户信息等用户数据表如图4 所示。通过服务器通信软件显示界面的点击“开始监听”按钮启动QT 连接数据库,完成服务器通信软件与数据库的连接调试。
图4:phpMyAdmin 管理数据库的界面图
在与各站点的通信连接调试中,将各站点的无线数据传输模块(DTU)设置为TCP 通讯协议,与服务器一致的IP地址和端口号,心跳包为自定义数据,间隔时间为120s,设置与积算仪、控制仪相一致的串口通信参数。在服务器端打开服务器通信软件后开始监听,显示监听和打开数据库成功,如图5 所示,经测试与服务器通讯软件成功建立连接,完成与多个站点设备的数据的自动下发与上传功能。
图5:服务器通信软件界面图
4.2 系统的应用实例
将本设计应用于某热电公司的集中供热的蒸汽项目,锅炉概况,该蒸汽项目供气管线分为北线、南线、高压3 路支线,使用蒸汽主要用于工业生产,热电厂管理人员使用IE 浏览器远程访问上位机控制系统,目前监控平台的选取部分公司客户端接入本服务器监控系统,运行后的网页发布显示界面如图6 所示。
图6:客户端IE 浏览器访问界面图
经过测试后,基于QT 的蒸汽流量计上位机控制系统在Windows 和Linux 系统中整体运行稳定,支持用户对蒸汽流量计上位机远程控制系统的访问,可实现对现场设备实时监控管理的要求。
5 总结
笔者的主要工作是以TCP 通信协议、数据库存储、C++语言编程、网页编程技术为基础,设计并应用了一套蒸汽流量计的上位机控制系统,其功能为实时采集、存储现场的数据,并对存储到数据库中的各站点流量计数据进行查询、报警、检索、计费、控制及统计分析,为管理人员提供一套跨平台的远程实时控制系统的解决方案。