王建国 王晓阳
(西安工业大学计算机科学与工程学院 西安 710021)
水文监测系统的设计与实现*
王建国王晓阳
(西安工业大学计算机科学与工程学院西安710021)
摘要论文分析了水文监测的主要特点,构建了一种基于GPRS通信的水文监测硬件系统组成,提高了水文监测系统的时效性以及在偏远山区的适用性;设计和开发一套应用于水文监测的软件系统。该软件系统采用三层架构模式,相比于传统的两层C/S结构,提高了系统的灵活性和可扩展性。实际应用结果表明,该系统可以较好地满足水文监测系统的应用需求。
关键词水文; 三层架构; 自动监测
Class NumberTP391
1引言
水文监测技术是水文水利信息化的重要基础,它是水文传感器技术与采集、存储、传输、处理技术的集成[1]。近四十年来,我国水文自动监测系统的建设和应用技术有了巨大进步,所建系统采集的数据,为防汛和水利调度的决策提供了依据和参考,但整体水平与西方发达国家相比较还存在着很大的差距,其中信息采集、传输手段和技术比较落后,信息时效性差,不能满足对水文数据实时、快速、准确监测的要求[3]。
目前我国水文监测系统的建设中,有些地区还在使用传统的拨号和专线的固定网络接入等方式进行数据传输,时效性较差。在这种情况下,使用GPRS无线通信是一种很好的选择。
而且传统水文监测软件系统大多采用传统的两层C/S结构,当系统版本迭代,新增功能模块时,可扩展性较差,时间周期长。
2水文监测的主要特点
要开发一套实用且有效的水文监测系统,首先要对水文监测的特点有深入的理解。由于水文监测关乎流域的防汛抗洪,水资源管理,生态环境的保护以及人民群众的生命安全[2]。所以水文监测系统有如下特点:
1) 水文监测系统的实时性非常强
水文监测系统可以进行在线数据传输,并且还能够满足系统对数据采集和传输实时性的要求。
2) 水文监测系统的可靠性非常高
水文监测系统应该可以避免数据包的丢失,能够保证数据进行安全的传输。即使由于设备或网络原因丢失部分数据,也应该有相应的召测功能。
3) 水文监测系统的监控范围很广
由于监测对象是河流,所以监控点的分布相对较广泛,测点会分布在山区或乡镇等。
3水文监测系统的概要设计
3.1硬件系统设计方案
根据水文监测的三大特点,将水文监测硬件部分分为监测中心和前端监测设备。其中监测中心放置服务器并连接公网或专线;前端监测设备则以RTU为核心,在RTU上连接如雨量计,水位计,流速计等监测设备。水文监测系统的物理架构如图1所示。
图1 物理架构图
1) 前端监测设备
前端监测设备由RTU和传感器设备组成。RTU中文名称为远程测控终端,用于监视、控制与数据采集的应用。具有遥测、遥信、遥调、遥控功能。RTU集数据采集、传输、存储功能于一体,采用低功耗设计,具有通讯距离较长、适用于各种环境恶劣的工业现场、模块结构化设计、便于扩展等优点。
传感器主要包括水位传感器,雨量传感器和流速传感器。
2) 传输网络
水文监测系统的传输网络由GPRS/短消息,Internet公网组成。RTU通过GPRS或者短信的方式将监测数据发送给服务器或负责人,客户端通过公网从服务器获取数据。
3) 监测中心
监测中心由服务器和客户端组成,服务器有一固定公网IP,同时接收采集到的水文数据并保存在数据库中。客户端可以通过固定的公网IP访问服务器,获得水文数据,进行一定的统计分析计算在界面上呈献给客户。
3.2系统功能概述
水文监测系统软件是对水文监测点数据进行接收、汇总、统计、分析的一个平台,该软件具备动态实时监测、历史数据查询、报警数据查询、时段统计、曲线分析、用户管理、测站管理、历史数据召测等多项功能。
水文监测系统软件采用C/S结构设计,具有操作权限的管理人员,只要安装访问客户端即可登入该系统,保证了系统的安全性。该软件给用户提供了一个直观、简单的信息化操作平台。水文监测系统的主要功能模块如图2所示。
图2 水文监测系统的功能模块图
1) 全局显示:可显示所有监测站当前信息及现场设备运行状态。
2) 采集功能:采集或者接收RTU设备上报的监测点水位,降雨量等水文数据。
3) 数据处理:将采集到的数据根据要求进行运算处理后,存入数据库并发送到前端显示。
4) 数据查询:用户可任意设定查询条件,对测站历史数据、测站报警数据进行查询。
5) 统计分析:用户可设定统计时间段,系统可按日、月、年生成监测站的时段汇总报表和时段趋势曲线。
6) 用户管理:系统管理员可更改系统密码,添加或删除系统用户,并可对其他系统用户分配相应的操作权限。各系统用户可在自己权限下对系统进行相应操作。
7) 测站管理:具备权限的系统用户可添加、删除测站信息或对测站信息进行编辑,当现场监测站或监测设备变更时可方便地在监控系统软件上对测站信息做相应的修改。
8) 历史数据召测:系统支持手动召测历史记录功能。当测站设备发生故障未能及时上报水文数据时,可通过该功能进行某一时段数据的召测,保障水文监测数据的连贯性和完整性。
9) 设备配置:可以对RTU设备以及雨量计,水位计等监测设备的参数进行远程配置,并将配置信息存库。
10) 告警功能:水位、降雨量、流量、电压等数据超过告警阈值时,进行告警处理。
4水文监测系统的详细设计
系统采用三层架构设计,把系统的界面、业务、数据分离,各个层次各司其职。这样做的优点是使项目结构更清楚。系统能够高效、灵活地修改业务逻辑,添加新的设备类型、修改界面等。即实现了“高内聚,低耦合”的思想[4]。图3为三层架构图。
图3 系统三层架构图
4.1UI表示层
表示层也就是用户界面,承担着向用户显示问题模型、接受用户操作、I/O交互的作用。图4为水文监测系统主界面截图。
图4 系统主界面图
用户界面层应该尽可能地与业务逻辑分离、与数据模型分离。也就是说比较好的UI层在更换业务逻辑以及数据模型时不用做过多的修改就可以使用。
图5 MVP模式结构图
基于这种理念,参考MVP设计模式(结构图如图5)将UI层通过WPF框架再次划分为View层和Presenter层两个部分,分别对应MVP模式中的V和P(M其实就是三层结构中的BLL层和Model实体类)。其中View层通过xaml语言实现仅仅负责实现界面布局及美工,Presenter层则实现显示逻辑[5]。这样做的优点是在UI层把美工界面和显示逻辑分离,从而可以以最小的代价来更换一套系统的UI,并且在开发过程中便于美工人员和开发人员合作。
4.2BLL业务逻辑层
业务逻辑层在体系架构中的位置很关键,它处于数据访问层与表示层中间,起到了数据交换中承上启下的作用[8]。
业务逻辑层负责对用户界面层输入的数据进行有效性的验证,处理数据,根据业务逻辑生调用数据访问层相应的方法。或者从UI层接收数据,处理后再送回UI层。
在水文监测系统中,考虑到系统的可扩展性,易维护性,将一些功能相似的算法单独抽取出来使用策略模式进行封装。这样做也有利于在开发过程中分工合作。BLL层的主要结构如图6所示。
图6 业务逻辑层类图
基类BllBase中定义了通用的数据验证方法,来处理数据合法性的业务逻辑,例如判断输入是否为数字,是否为站号,是否为中文等。
用户类Uses和测站类Station类继承基类,并且分别拥有自己的业务逻辑处理方法,例如用户信息的增删改查,用户权限及登录的控制。
从测站类继承出五个设备类,它们分别有自己的对相应数据的操作方法,在数据分析和处理时可以方便的对某种设备的数据进行操作。
同时测站类中定义了一个类型为Count的接口countflow来进行流量计算,而接口Count不实现任何功能,只定义了方法名CountFlow,具体的计算过程由一个具体的算法类继承该接口实现,例如在GLSCount类和LadderCount类中的CountFlow方法中实现了具体的计算过程。
例如计算显示流量时,首先实例化一个Flow类的对象flow,flow可以通过父类获取和操作站信息(站址,所属区域等)当需要使用算法时,可以通过父类的Set_Count()实例化某一个特定的算法接口,并且通过Get_Count()得到接口的返回值。
这样将算法封装起来,并且使他们可以互相替换。实现了一种替代继承的方法,既保持了继承的优点(代码重用),还比继承更灵活(算法独立,可以任意扩展)。而且避免程序中使用多重条件转移语句,使系统更灵活,并易于扩展。
4.3DAL数据库访问层
数据访问层主要是定义、维护数据的完整性、安全性,它影响逻辑层的请求,负责对所有数据库访问的操作。
DAL层主要分为两部分,一部分是屏蔽数不同数据库操作差异,另一部分就是数据库访问。在这里通过简单工厂的方法来实现不同数据库连接的操作。其类图如图7所示。
图7 数据访问层类图
首先,定义一个接口AbstractDbFactory,其中定义了各种数据库操作的方法,但不实现。
具体的实现过程在继承自此接口的具体的数据库类中。例如SqlFactory中就实现了对SqlServer数据库专用的建立连接,增删改查等方法。
最后通过一个工厂类dbFactory的CreatConnect方法根据不同的数据库类型返回不同的对象。
5结语
本文针对水文监测系统的特点及需求,构建了一种灵活、高实时性和方便工程部署的基于GPRS的水文监测硬件系统物理架构,并且设计和实现了一个基于三层架构的水文监测软件系统。该系统已经在陕西省多个流域安装使用,使用效果良好,能够很好地满足水文监测的需要。
参 考 文 献
[1] 李正明,侯佳佳,潘天红,等.基于ZigBee与GPRS的无线水文监测系统设计[J].排灌机械,2009,27(3):184-189.
LI Zhengming, HOU Jiajia, PAN Tianhong, et al. Design of wireless hydrological monitoring system based on ZigBee[J]. Drainage and Irrigation Machinery,2009,27(3):184-189.
[2] 张洋洋,赵建平,徐娟娟.基于物联网技术的水文监测系统研究[J].通信技术,2012,45(4):108-111.
ZHANG Yangyang, ZHAO Jianping, XU Juanjuan. Research of IoT-based Hydrology Monitoring System[J]. Communications Technology,2012,45(4):108-111.
[3] 马祖长,孙怡宁,梅涛.无线传感器网络综述[J].通信学报,2004,25(4):114-124.
MA Zuchang, SUN Yining, MEI Tao. Survey on wireless sensors network[J]. Journal of China Institute of Communications,2004,25(4):114-124.
[4] 赵静,喻晓红,黄波,等.物联网的机构体系与发展[J].通信技术,2010,43(9):106-108.
ZHAO Jing, YU Xiaohong, HUANG Bo, et al. Architecture and Development of IOT[J]. Communications Technology,2010,43(9):106-108.
[5] 许春红,张杰,周彤.基于无线通信网络的水文监测系统的设计与实现[J].水利水文自动化,2008(4):34-37.XU Chunhong, ZHANG Jie, ZHOU Tong. design and implementation on hydrological monitoring system based on wireless communication network[J]. Automation in Water Resources and Hydrology,2008(4):23-38.
[6] SL 323-2005. 实时雨水情数据库表结构与标识符标准[S].
SL 323-2005. Standard for Structure and Identifier in Real-time Hydrological Information Database[S].
[7] SL 324-2005. 基础水文数据库表结构及标识符标准[S].
SL 324-2005. Standard for Structure and Identifier in Fundamental Hydrological Database[S].
[8] 谢新民,蒋云钟,闫继军,等.流域水资源实时监控管理系统研究[J].水科学进展,2003,14(3):255-259.
XIE Xinmin, JIANG Yunzhong, YAN Jijun, et al. Study on real-time monitoring and management system for water resources in river basin[J]. Advances in Water Science,2003,14(3):255-259.
[9] 曹卫,董航飞,李宗宝.GPRS技术在水利监测系统中的应用[J].排灌机械,2007,25(5):39-42.
CAO Wei, DONG Hangfei, LI Zongbao. Application of GPRS technology in hydraulic monitoring system[J]. Drainage and Irrigation Machinery,2007,25(5):39-42.
[10] 李丽娜,石高涛,廖明宏.传感器网络操作系统Tiny-OS关键技术分析[J].哈尔滨商业大学学报:自然科学版,2005,12(6):724-727.
LI Lina, SHI Gaotao, LIAO Minghong. Analysis of key techniques for Tiny-OS in sensor network[J]. Journal of Harbin University of Commerce: Natural Science Edition,2005,12(6):724-727.
收稿日期:2016年1月15日,修回日期:2016年2月18日
作者简介:王建国,男,博士,教授,硕士生导师,研究方向:无线传感器网络、智能检测与控制。王晓阳,男,硕士研究生,研究方向:无线传感器网络。
中图分类号TP391
DOI:10.3969/j.issn.1672-9722.2016.07.019
Design and Implementation of Hydrological Monitoring System
WANG JianguoWANG Xiaoyang
(School of Computer Science and Engineering, Xi’an University of Technology, Xi’an710021)
AbstractThis paper analyzes the main features of hydrological monitoring, and constructs a hardware system of hydrological monitoring based on GPRS communication, which can improve the timeliness and applicability of the hydrological monitoring system in the remote mountainous areas, develops and designs a software system for hydrological monitoring. The software system uses 3-tier architecture pattern. Compared with the traditional 2-tier C/S structure, it can improve the flexibility and extensibility of the system. The practical application shows that the system can meet the needs of the application of hydrological monitoring system.
Key Wordshydrological, 3-tier architecture, automatic monitoring