APP下载

基于Qt/Embedded的水务数据监测系统

2014-04-29卢爱红

计算机时代 2014年12期
关键词:水平衡

摘  ;要: 为了有效降低水务数据监测的成本,提高水务数据监测系统的实时性、可控性和可预警性,提出一种基于Qt/Embedded的水务数据监测系统的实现方法,并对系统的软、硬件设计进行了详细阐述。以嵌入式Linux为操作系统,以ARM开发板作为核心板,集成无线和有线多种数据传输接口来采集水表数据,采集的数据汇总到核心板后,经后台统计分析,再在基于Qt/Embedded的水平衡框图界面上实时显示出来。测试结果显示,该系统各模块工作正常,满足了用户的需求。

关键词: ARM; 嵌入式Linux; Qt/Embedded; 水平衡

中图分类号:TP368.2  ;  ;  ;  ;  ;文献标志码:A  ;  ; 文章编号:1006-8228(2014)12-22-02

Design of meter data monitoring system based on Qt/Embedded

Lu Aihong

(IT Department, Suzhou Institute of Trade &; Commerce, Suzhou, Jiangsu 215009, China)

Abstract: In order to reduce the cost of meter data monitoring system and improve the functions of the real-time monitoring, control ability and early warning, a kind of realization method of meter data monitoring system based on Qt/Embeddedis put forward.The software and hardware design idea are introduced concretely. The system uses embedded Linux as its operating system and ARM development board as its core board.The core board is integrated with wireless and wired interfaces to record meter data.The meter data will be transformed to the core board. After statistical analysis,it will be displayed on the water balance block diagram in the UI interface based on Qt/Embedded.The experimental result shows that the module can satisfy the design requirements.

Key words: ARM; embedded Linux; Qt/Embedded; water balance

0 引言

企业是城市用水大户,特别是制造型企业,一般会被要求装上一级、二级等多达数百个水表,并要求每年进行水平衡分析,生成水平衡报表,所以抄表人员必须每天将企业的数百个水表数据抄录下来,记载在册,才能根据真实的数据生成水平衡年份报表,这对人力是极大的浪费。本系统针对这一现实问题,提出一种基于Qt/Embedded的水务数据智能统计分析系统,系统通过RS485、网口、GPRS无线传输等多种类型接口,每天定时将数百个水表的数据采集到ARM核心板,并保存到数据库。在Linux嵌入式平台显示屏上部署与应用场景匹配的水平衡框图,并显示实时采集的水表数据,后台对水平衡数据进行分析,对漏水线路提出警示信息。本系统方案适用于嵌入式设备,大大降低了水务统计分析系统的硬件成本,同时该系统的应用也大大降低了抄表的人力成本。

1 系统要求与整体设计

对于水务数据监测,需要设计出一款便携式的监测系统,集成RS485接口、GPRS无线接收器、以太网联网等多种接口,以适应市面上水表的各种数据传输方式,系统定时采集各级水表的数据,保存到本地数据库。系统需要提供基于Qt/Embedded的友好的UI界面支持,能够根据企业内部实际水表分布绘制相应的水平衡框图,并将实时采集的水表数据在水平衡框图上显示出来。UI界面提供框图绘制、框图显示、系统配置等子界面。系统需要提供SQLite数据库支持,以保存各级水表的数据信息,便于后台程序的统计和分析。

系统设计框图如图1所示[3]。

[7寸

LCD显示器][LCD

接口\&;][RTC

时钟模块][网口

eth0][串口

UART0][USB

接口][网口

eth1][RS485

接口] [水务数据监测系统][Ubuntu

虚拟机] [RS485

水表采集器] [GPRS

模块][ModBus

水表采集器] [GPRS

水表采集器]

图1  ;系统逻辑框图

2 硬件设计

在选择硬件平台时,从以下几个方面综合考虑:硬件接口上支持多种数据传输接口的接入;显示屏的选择要考虑到支持复杂水平衡框图的显示,对显示屏的尺寸和精度都有很高的要求。根据硬件的需求,我们选用以S3C2440为CPU的ARM开发平台,配以7寸液晶显示屏,既能够支持种类丰富的接口,也能基本满足显示要求。

操作系统选用嵌入式Linux,能根据用户需求进行裁剪,简化对各种通信接口的硬件驱动配置要求。搭建Linux开发环境时,交叉编译的虚拟机开发环境是Ubuntu10.10版本,交叉编译工具是arm-linux-4.3.2版本。S3C2440开发板的Linux内核版本是linux2.6.30.4,需要根据硬件接口和器件如LCD显示屏、UART串口、eth0网口、USB等接口的原理图,按需对Linux2.6.30.4内核进行裁剪。

3 软件设计

在选择软件平台时[2],考虑到整个系统的复杂的界面设计需求,以及对SQLite轻巧数据库的支持,选用基于Qt4.7类库的QT嵌入式界面,能友好地支持Linux平台,并提供丰富的复杂的界面设计效果。在基于Qt4.7类库的Qt/Embedded环境下进行UI设计,首先需要在Linux的文件系统下,部署Qt/Embedded环境;然后在虚拟机开发环境Ubuntu10.10中调用Qt Creator软件进行UI界面的设计和仿真;最后下载到ARM开发板中,并在7寸显示屏上正常显示,界面同时能够实现与用户的交互操作。

3.1 QT软件开发环境

QT是一个跨平台的C++类库,在Linux下使用操作系统原生的C++编译器g++,QT的一大特色是带了大量的配套开发工具,如用于绘制窗口的QTDesigner。QT界面设计程序在各个平台上是一样的,只是跨平台时需要加上各个平台的库重新编译生成可执行文件。QT目前已经发展到第三代,是通过升级类库来更新发展,目前最高版本的类库是Qt4.7。QT平台主要是面向嵌入式界面设计的,QT界面程序不是一个桌面系统,而是可以直接运行在嵌入式环境下的程序。

QT界面程序的设计环境是Qt Creator,这是QT的集成开发环境(IDE),用于开发源代码、编译链接源代码、调试源代码,大大简化了设计环境的配置。Qt Creator环境配置成交叉编译的环境之后,用Qt Creator设计出的界面可执行文件能够在S3C2440开发板上运行。

3.2 在ARM开发板的文件系统中配置QT嵌入式运行环境[4]

配置QT嵌入式运行环境,需要对S3C2440开发板的文件系统进行修改。

⑴ 用arm-linux-4.3.2交叉编译工具编译生成Qt4.7类库,添加到ARM开发板的文件系统中/opt文件夹。

⑵ 用arm-linux-4.3.2交叉编译生成ts触摸屏校准库tslib,添加到文件系统的/usr/local目录下。

⑶ 修改/etc/profile配置文件,配置文件主要用于指定环境变量的具体路径,其中QTDIR是Qt4.7类库路径,QWS_MOUSE_PROTO用于指明触摸屏或鼠标的设备名,具体配置脚本如下:

export set QTDIR=/opt/Qt4.7

export set TSLIB_TSDEVICE=/dev/event1

export set QWS_MOUSE_PROTO="TSLIB:/dev/event1

USB:/dev/mouse0"

3.3 人机界面设计

水务数据监测系统的人机界面是多级界面。主界面提供框图显示、系统设置、框图绘制三个子界面给用户选择。

框图绘制界面,针对不同企业复杂的水平衡环境,能够根据实际环境的要求进行个性化定制水平衡框图。绘制界面提供直线、方框、按钮、Label等多种绘图元素,用户可以根据本企业水平衡框图的要求,在ARM开发板上直接绘制相应的框图,并可以设置框图中水管对应的水表地址、水管的进水出水属性、多层水平衡框图的级联关系等。绘制完成框图后,绘制界面提供保存功能,将用户定制的框图以图元的形式保存到本地数据库,在下次启动开发板时,系统自动调用图元,将水平衡框图显示出来。

框图显示界面是主要的功能界面,分为前台、后台两部分程序。系统后台从RS485、GPRS接口、网口等多种接口定时获取水表读数并保存到数据库。系统前台在单板启动时,根据数据库中保存的框图图元信息,显示出水平衡框图。根据厂区的水表级别,水平衡图可以分成一级、二级等不同级别,不同级别的水平衡图可以通过界面的按键跳转和返回。水平衡图中进水管线为绿色、出水管线为蓝色。系统前台读取数据库中各个水表的读数信息,并在框图中相应的水表位置将水表读数显示出来。系统对水表读数进行统计分析,对漏水的水管线路标以红色,起到报警作用。

系统设置界面提供本系统时间的获取和配置。S3C2440开发板板载RTC实时时钟硬件电路,在系统断电时,RTC时钟自带的电池能够保证时钟正常工作。使用QT的QDataTime类获取当前系统的实时时间,通过date和hwclock命令对系统时钟和硬件时间进行同步修改。

设计QT数据库时,由于Qt creator的安装环境默认自带SQLite,Qt4.7,也默认安装了SQLite,所以选择SQLite,降低开发难度和成本。

系统流程图如图2所示。

[系统启动及初始化] [框图显示界面][系统设置界面][框图绘制界面][后台数据采集][后台数据通信]

图2  ;人机界面程序基本框架

4 实验结果

水务数据监测系统集成时,操作流程如下:

⑴ 将ARM开发板和周边器件的硬件环境连线准备好;

⑵ 用下载线向ARM开发板下载交叉编译好的U-boot、Linux内核和文件系统,ARM开发板能够正常启动,并能够进入文件系统;

⑶ 移植ARM开发板文件系统中Qt/E界面程序运行的环境,拷贝交叉编译的Qt4.7库文件和校准程序的库文件到文件系统中,修改文件系统中配置文件profile;

⑷ 在Qt Creator中编写人机界面程序,仿真调试完成后,设置Qt Creator的交叉编译环境,生成人机界面可执行程序,并拷贝到ARM开发板的文件系统中;

⑸ ARM开发板上电,运行人机界面程序,验证水务数据监测系统设计的结果。

水务数据监测系统联调实验结果表明:系统能正确采集多种接口水表数据并保存到本地数据库,能够使用提供的UI界面定制水平衡框图,并能在水平衡框图中将数据库中水表信息正确显示出来。

5 结束语

本水务数据监测系统综合考虑了技术可行性和现场应用环境的需求,设计和实现了基于ARM处理器和嵌入式Linux操作系统的水务数据监测系统,采用广泛应用于嵌入式系统界面的QT封装的C++类来进行界面设计,尽可能实现分层以保证业务跟数据分离,设计出人机交互流畅稳定的工控机界面。实际运行结果表明,该系统的整体性能稳定,较好地满足了客户的需求,具有广阔的应用前景。但本系统仍需要进一步完善,特别是对最优水平衡分析法还需要做进一步的实验研究。

参考文献:

[1] 田磊.嵌入式Linux系统中基于QT库的应用程序设计[J].实验室研

究与探索,2013.33(5):84

[2] 刘钟情.基于Qt/Embedded的机房环境监控系统[J].现代电子技术,

2014.37(8):38

[3] 卢爱红,刘中原,冯蓉珍.基于ARM的自助出票机便携式终端设计[J].

计算机时代,2013.9:28

[4] 陈敬,向伟.基于嵌入式Linux的QT/Embedded移植与应用开发[J].

电脑与信息技术,2013.21(1):57

[5] 李怀峰,曲仕茹,陈俊强.基于ARM的Qt/E应用程序开发的改进与

实现[J].测控技术,2013.32(9):115

[6] 吴燕燕,贺锋涛.基于ARM9平台上Qt/Embedded的移植与开发[J].

液晶与显示,2013.28(2):261

[7] 尤晋元.UNIX环境高级编程(第2版)[M].人民邮电出版社,2006.

[8] MICHAEL Owens.The Definitive Guide to SQLite[M].US: Apress,

2006.

[9] Jasmin Blanchette,Mark Summerfield.C++ CUI Qt3 Programming[M].

Beihang University,2006.3.

猜你喜欢

水平衡
改进的可变模糊集模型在区域水平衡测试计算中的应用研究
超声波流量计在水平衡测试中的误差分析
新形势下完善上海市水平衡测试管理制度的研究
离子膜烧碱水平衡系统简化计算方法研究
更正
我国水平衡测试现状分析