基于GPRS的雨量观测站数据中心系统
2017-09-28张智
张智
(无锡职业技术学院信息化中心,江苏无锡214121)
基于GPRS的雨量观测站数据中心系统
张智
(无锡职业技术学院信息化中心,江苏无锡214121)
通过基于GPRS的方法,结合软件、硬件、网络、数据库进行了组网实验,分析了整个系统的通信交互过程和各组成子系统,并介绍了该系统实现时需要注意的细节。综合GPRS网络、数据采集设备和数据库实现了雨量数据的远程采集中心系统,提高了雨量数据观测的效率和准确性。
GPRS;雨量观测站;通信模块;数据收集;套接字
1 背景
21世纪以来,世界经济迅猛发展,人民生活水平不断提高的同时,自然气候的变化也深深地影响着人们出行和生活。其中雨对社会生产和人们的幸福生活影响巨大,特别是暴雨、特大暴雨的持续性进展对人们的生命和财产有着重大的威胁。为了研究和监测雨量越来越多的雨量观测站如雨后春笋般地部署在世界各地。
传统的观测方法是人工观测并登记到观测簿中,这种方式费时费力而且容易出错,现在逐渐转变成了自动观测。而自动观测所用到的通信方式也有很多种,如串口通信、无线GPRS通信、北斗卫星通信等[1]。由于雨量观测站一般都需要安装在无遮挡的户外并且传输距离也相对较远,因此选用GPRS通信则是最佳的组网通信方式。
2 系统结构
2.1 GPRS通信传输
GPRS是GSM通信技术的升级,目前广泛地应用于水文、气象、道路交通、工业等各行各业。GPRS主要的特点是在任何有移动网络信号的地方随时可以进行网络连接,网络的通信以传输的字节大小进行计费,速度能够达到100Kbps以上[2]。
安装在户外的设备可以定期或不定期的与远程主机进行通信,在实际的应用中GPRS可以选择UDP方式进行通信,也可以选择TCP方式进行通信。UDP通信的特点是速度快但是不提供可靠的连接和传输,有时会发生丢包的情况。而TCP通信提供可靠的面向连接字节流服务但是速度上较UDP慢。由于GPRS网络的误码和网络时延比较大,因此对于关键的业务应用最好采用TCP的通信方式,而如果对传输的质量和数据不是很苛刻的情况下可以采用UDP通信方式。
对于雨量观测站来说,雨量站每分钟都可以采集到实时的雨量数据,由于网络的原因发生资料传输失败不可避免,而一旦传输失败那么在远程中心处理系统中将得到不连续的数据,对于后期数据的统计和实时雨情评估将造成影响。因此本文基于TCP通信方式来实现远程雨量数据的通信和收集。
2.2 系统结构
图1为基于GPRS通信的数据中心系统的交互结构:
图1 系统部件交互图
整个系统由以下几个部分组成:雨量观测采集设备、GPRS模块+天线、网络运营商提供的网络服务、后端数据处理服务器。其中雨量观测采集设备一般有雨量传感器、电源、嵌入式系统、主板等部件组成,安装在覆盖有GPRS网络信号的地域。地点的选择需要注意避开遮挡,避免外界因素对雨量观测采集设备的观测值造成影响。
GPRS模块通过串口与雨量观测设备进行通信,它是一种实现了TCP/IP协议栈的硬件设备,通过它将采集到的数据经由GPRS网络发送到远程的数据处理机器上,并可以接收数据处理服务器发来的请求命令[3]。目前的GPRS模块基本都是始终在线的,因此数据的交互比较及时。
GPRS网络是现场雨量观测设备与后端数据处理中心的媒介,GPRS网络服务提供商的GGSN服务器会分配给每个现场接入设备一个公网IP地址使得现场设备的数据能够通过Inter⁃net网络与后端数据处理服务器进行交互[4]。
3 系统实现
3.1 系统的功能
1)系统支持基于TCP协议的数据的采集和解析。雨量站会定期将观测数据发送给后端数据应用系统,应用系统接收到数据后会进行解析处理。2)观测数据可以存储到数据库中,可以在后期进行检索。3)数据应用系统的监控,能够实时发现通信中断,当下次恢复正常通信后自动继续数据的采集和处理流程。
4)前端支持数据应用系统发来的命令响应,可以进行观测数据的重传操作。
3.2 系统的组成
数据应用系统由数据采集处理子系统、数据库系统两部分组成,数据采集处理子系统和安装在户外的雨量观测站进行通信,并对返回的观测结果进行分析。数据库系统用于保存前端雨量观测站观测到的历史数据并作为后期数据检索的数据源。
整个系统基于C/S(客户端/服务器端)结构,雨量实时数据的采集以TPC/IP协议为基础使用Socket套接字开发实现,数据处理系统作为中间系统与雨量设备通信,并对数据库进行读写操作。数据库采用SQLServer2005,开发编程工具使用Visual studio 2008中的C#语言。
系统根据流程可划分为以下功能模块:通信收集模块、数据解析模块、数据存储模块、数据展示模块。见图2:
图2 系统功能模块
3.2.1 通信收集模块
本模块与现场的观测站建立TCP通信,将系统收集数据的命令发送给现场的观测站,观测站将存储在本地存储器中对应的观测数据返回给通信收集模块。观测站设备与后端数据中心系统间遵循一套约定俗成的协议,能够让设备“理解”数据中心系统的指令,期间模块充当媒介的作用。在程序设计过程中需要收集发送指令的工作定义为一个独立的线程,不影响数据中心中其他功能的使用。
系统实现了指令的自动发送,并能够自动检测当前与设备的连接状态,当发现与雨量站通信中断后可以自动重新连接,保证数据的实时传输。因此定义两个定时器:
//定时获取观测数据
private void startSendTimer()
{if(sendTimer==null)
{sendTimer=new System.Timers.Timer(1000);
sendTimer.Elapsed+=new System.Timers.ElapsedEventHan⁃dler(autoSendMsg);
……
}}
//定时检查连接状态
public void checkTCPstate(object source,System.Timers.ElapsedEventArgs e)
{if(sockClient.ProtocolType==ProtocolType.Tcp)
{
bool online=
!((sockClient.Poll(1000,SelectMode.SelectRead)&&(sock⁃Client.Available==0))||!sockClient.Connected);
if(!online)
{//sockClient.Disconnect(true);
GlobalContext.ShowMsg(“与设备的TCP连接已断开,程序将重新连接");
……
startCommunicate();
}}}
3.2.2 数据解析模块
本模块主要功能是将观测站返回的数据按照约定的协议进行解析,将正确的数据解析后交由存储模块存储。此模块也需要单独使用一个线程来处理。数据解析流程如图3所示:
图3 数据解析流程
3.2.3 数据存储模块
本模块是将解析正确后的数据存储到SQL Server数据库中,供后期检索用。存储的内容包括观测站的基本参数信息,观测到的每个观测时间点对应的历史数值。
3.2.4 数据展示模块
数据展示能够实时展示当前最新的观测数值,台站的通信情况,以及能够检索到历史的观测数值。当发现有重要降水天气的时候在展示界面上可以看到提醒。
4 结束语
本文描述了基于TCP通信的雨量观测站数据采集和处理系统,利用GPRS网络速度快,信号稳的特点可将该系统应用部署在任何有网络覆盖的地方,实现了雨量观测的自动化并提高了数据录入的准确性。利用GPRS网络和前端采集器就可以实现数据的自动收发,有着很好的市场推广价值。
[1]李达,叶江南.五道库水电站水文自动测报系统方案设计[J].黑龙江水利科技,2015,43(10),49-50.
[2]马庆龙.基于GPRS的机车信号远程实时监控系统[J].铁道通信信号,2007,43(1):53.
[3]伍连明.基于GPRS的远程数据采集模块[J].现代电子技术,2009(3):25-26.
[4]韩东方.基于GPRS/SMS的无线抄表系统的终端机设计[J].工业控制计算机,2007,17(10):28.
TP311
A
1009-3044(2017)24-0216-02
2017-07-06
张智(1986—),男,江苏扬州人,无锡职业技术学院信息化中心,主要从事计算机网络与信息安全研究。