張智
(無錫職業(yè)技術(shù)學(xué)院信息化中心,江蘇無錫214121)
基于GPRS的雨量觀測站數(shù)據(jù)中心系統(tǒng)
張智
(無錫職業(yè)技術(shù)學(xué)院信息化中心,江蘇無錫214121)
通過基于GPRS的方法,結(jié)合軟件、硬件、網(wǎng)絡(luò)、數(shù)據(jù)庫進行了組網(wǎng)實驗,分析了整個系統(tǒng)的通信交互過程和各組成子系統(tǒng),并介紹了該系統(tǒng)實現(xiàn)時需要注意的細節(jié)。綜合GPRS網(wǎng)絡(luò)、數(shù)據(jù)采集設(shè)備和數(shù)據(jù)庫實現(xiàn)了雨量數(shù)據(jù)的遠程采集中心系統(tǒng),提高了雨量數(shù)據(jù)觀測的效率和準確性。
GPRS;雨量觀測站;通信模塊;數(shù)據(jù)收集;套接字
21世紀以來,世界經(jīng)濟迅猛發(fā)展,人民生活水平不斷提高的同時,自然氣候的變化也深深地影響著人們出行和生活。其中雨對社會生產(chǎn)和人們的幸福生活影響巨大,特別是暴雨、特大暴雨的持續(xù)性進展對人們的生命和財產(chǎn)有著重大的威脅。為了研究和監(jiān)測雨量越來越多的雨量觀測站如雨后春筍般地部署在世界各地。
傳統(tǒng)的觀測方法是人工觀測并登記到觀測簿中,這種方式費時費力而且容易出錯,現(xiàn)在逐漸轉(zhuǎn)變成了自動觀測。而自動觀測所用到的通信方式也有很多種,如串口通信、無線GPRS通信、北斗衛(wèi)星通信等[1]。由于雨量觀測站一般都需要安裝在無遮擋的戶外并且傳輸距離也相對較遠,因此選用GPRS通信則是最佳的組網(wǎng)通信方式。
GPRS是GSM通信技術(shù)的升級,目前廣泛地應(yīng)用于水文、氣象、道路交通、工業(yè)等各行各業(yè)。GPRS主要的特點是在任何有移動網(wǎng)絡(luò)信號的地方隨時可以進行網(wǎng)絡(luò)連接,網(wǎng)絡(luò)的通信以傳輸?shù)淖止?jié)大小進行計費,速度能夠達到100Kbps以上[2]。
安裝在戶外的設(shè)備可以定期或不定期的與遠程主機進行通信,在實際的應(yīng)用中GPRS可以選擇UDP方式進行通信,也可以選擇TCP方式進行通信。UDP通信的特點是速度快但是不提供可靠的連接和傳輸,有時會發(fā)生丟包的情況。而TCP通信提供可靠的面向連接字節(jié)流服務(wù)但是速度上較UDP慢。由于GPRS網(wǎng)絡(luò)的誤碼和網(wǎng)絡(luò)時延比較大,因此對于關(guān)鍵的業(yè)務(wù)應(yīng)用最好采用TCP的通信方式,而如果對傳輸?shù)馁|(zhì)量和數(shù)據(jù)不是很苛刻的情況下可以采用UDP通信方式。
對于雨量觀測站來說,雨量站每分鐘都可以采集到實時的雨量數(shù)據(jù),由于網(wǎng)絡(luò)的原因發(fā)生資料傳輸失敗不可避免,而一旦傳輸失敗那么在遠程中心處理系統(tǒng)中將得到不連續(xù)的數(shù)據(jù),對于后期數(shù)據(jù)的統(tǒng)計和實時雨情評估將造成影響。因此本文基于TCP通信方式來實現(xiàn)遠程雨量數(shù)據(jù)的通信和收集。
圖1為基于GPRS通信的數(shù)據(jù)中心系統(tǒng)的交互結(jié)構(gòu):
圖1 系統(tǒng)部件交互圖
整個系統(tǒng)由以下幾個部分組成:雨量觀測采集設(shè)備、GPRS模塊+天線、網(wǎng)絡(luò)運營商提供的網(wǎng)絡(luò)服務(wù)、后端數(shù)據(jù)處理服務(wù)器。其中雨量觀測采集設(shè)備一般有雨量傳感器、電源、嵌入式系統(tǒng)、主板等部件組成,安裝在覆蓋有GPRS網(wǎng)絡(luò)信號的地域。地點的選擇需要注意避開遮擋,避免外界因素對雨量觀測采集設(shè)備的觀測值造成影響。
GPRS模塊通過串口與雨量觀測設(shè)備進行通信,它是一種實現(xiàn)了TCP/IP協(xié)議棧的硬件設(shè)備,通過它將采集到的數(shù)據(jù)經(jīng)由GPRS網(wǎng)絡(luò)發(fā)送到遠程的數(shù)據(jù)處理機器上,并可以接收數(shù)據(jù)處理服務(wù)器發(fā)來的請求命令[3]。目前的GPRS模塊基本都是始終在線的,因此數(shù)據(jù)的交互比較及時。
GPRS網(wǎng)絡(luò)是現(xiàn)場雨量觀測設(shè)備與后端數(shù)據(jù)處理中心的媒介,GPRS網(wǎng)絡(luò)服務(wù)提供商的GGSN服務(wù)器會分配給每個現(xiàn)場接入設(shè)備一個公網(wǎng)IP地址使得現(xiàn)場設(shè)備的數(shù)據(jù)能夠通過Inter?net網(wǎng)絡(luò)與后端數(shù)據(jù)處理服務(wù)器進行交互[4]。
1)系統(tǒng)支持基于TCP協(xié)議的數(shù)據(jù)的采集和解析。雨量站會定期將觀測數(shù)據(jù)發(fā)送給后端數(shù)據(jù)應(yīng)用系統(tǒng),應(yīng)用系統(tǒng)接收到數(shù)據(jù)后會進行解析處理。2)觀測數(shù)據(jù)可以存儲到數(shù)據(jù)庫中,可以在后期進行檢索。3)數(shù)據(jù)應(yīng)用系統(tǒng)的監(jiān)控,能夠?qū)崟r發(fā)現(xiàn)通信中斷,當下次恢復(fù)正常通信后自動繼續(xù)數(shù)據(jù)的采集和處理流程。
4)前端支持數(shù)據(jù)應(yīng)用系統(tǒng)發(fā)來的命令響應(yīng),可以進行觀測數(shù)據(jù)的重傳操作。
數(shù)據(jù)應(yīng)用系統(tǒng)由數(shù)據(jù)采集處理子系統(tǒng)、數(shù)據(jù)庫系統(tǒng)兩部分組成,數(shù)據(jù)采集處理子系統(tǒng)和安裝在戶外的雨量觀測站進行通信,并對返回的觀測結(jié)果進行分析。數(shù)據(jù)庫系統(tǒng)用于保存前端雨量觀測站觀測到的歷史數(shù)據(jù)并作為后期數(shù)據(jù)檢索的數(shù)據(jù)源。
整個系統(tǒng)基于C/S(客戶端/服務(wù)器端)結(jié)構(gòu),雨量實時數(shù)據(jù)的采集以TPC/IP協(xié)議為基礎(chǔ)使用Socket套接字開發(fā)實現(xiàn),數(shù)據(jù)處理系統(tǒng)作為中間系統(tǒng)與雨量設(shè)備通信,并對數(shù)據(jù)庫進行讀寫操作。數(shù)據(jù)庫采用SQLServer2005,開發(fā)編程工具使用Visual studio 2008中的C#語言。
系統(tǒng)根據(jù)流程可劃分為以下功能模塊:通信收集模塊、數(shù)據(jù)解析模塊、數(shù)據(jù)存儲模塊、數(shù)據(jù)展示模塊。見圖2:
圖2 系統(tǒng)功能模塊
3.2.1 通信收集模塊
本模塊與現(xiàn)場的觀測站建立TCP通信,將系統(tǒng)收集數(shù)據(jù)的命令發(fā)送給現(xiàn)場的觀測站,觀測站將存儲在本地存儲器中對應(yīng)的觀測數(shù)據(jù)返回給通信收集模塊。觀測站設(shè)備與后端數(shù)據(jù)中心系統(tǒng)間遵循一套約定俗成的協(xié)議,能夠讓設(shè)備“理解”數(shù)據(jù)中心系統(tǒng)的指令,期間模塊充當媒介的作用。在程序設(shè)計過程中需要收集發(fā)送指令的工作定義為一個獨立的線程,不影響數(shù)據(jù)中心中其他功能的使用。
系統(tǒng)實現(xiàn)了指令的自動發(fā)送,并能夠自動檢測當前與設(shè)備的連接狀態(tài),當發(fā)現(xiàn)與雨量站通信中斷后可以自動重新連接,保證數(shù)據(jù)的實時傳輸。因此定義兩個定時器:
//定時獲取觀測數(shù)據(jù)
private void startSendTimer()
{if(sendTimer==null)
{sendTimer=new System.Timers.Timer(1000);
sendTimer.Elapsed+=new System.Timers.ElapsedEventHan?dler(autoSendMsg);
……
}}
//定時檢查連接狀態(tài)
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(“與設(shè)備的TCP連接已斷開,程序?qū)⒅匦逻B接");
……
startCommunicate();
}}}
3.2.2 數(shù)據(jù)解析模塊
本模塊主要功能是將觀測站返回的數(shù)據(jù)按照約定的協(xié)議進行解析,將正確的數(shù)據(jù)解析后交由存儲模塊存儲。此模塊也需要單獨使用一個線程來處理。數(shù)據(jù)解析流程如圖3所示:
圖3 數(shù)據(jù)解析流程
3.2.3 數(shù)據(jù)存儲模塊
本模塊是將解析正確后的數(shù)據(jù)存儲到SQL Server數(shù)據(jù)庫中,供后期檢索用。存儲的內(nèi)容包括觀測站的基本參數(shù)信息,觀測到的每個觀測時間點對應(yīng)的歷史數(shù)值。
3.2.4 數(shù)據(jù)展示模塊
數(shù)據(jù)展示能夠?qū)崟r展示當前最新的觀測數(shù)值,臺站的通信情況,以及能夠檢索到歷史的觀測數(shù)值。當發(fā)現(xiàn)有重要降水天氣的時候在展示界面上可以看到提醒。
本文描述了基于TCP通信的雨量觀測站數(shù)據(jù)采集和處理系統(tǒng),利用GPRS網(wǎng)絡(luò)速度快,信號穩(wěn)的特點可將該系統(tǒng)應(yīng)用部署在任何有網(wǎng)絡(luò)覆蓋的地方,實現(xiàn)了雨量觀測的自動化并提高了數(shù)據(jù)錄入的準確性。利用GPRS網(wǎng)絡(luò)和前端采集器就可以實現(xiàn)數(shù)據(jù)的自動收發(fā),有著很好的市場推廣價值。
[1]李達,葉江南.五道庫水電站水文自動測報系統(tǒng)方案設(shè)計[J].黑龍江水利科技,2015,43(10),49-50.
[2]馬慶龍.基于GPRS的機車信號遠程實時監(jiān)控系統(tǒng)[J].鐵道通信信號,2007,43(1):53.
[3]伍連明.基于GPRS的遠程數(shù)據(jù)采集模塊[J].現(xiàn)代電子技術(shù),2009(3):25-26.
[4]韓東方.基于GPRS/SMS的無線抄表系統(tǒng)的終端機設(shè)計[J].工業(yè)控制計算機,2007,17(10):28.
TP311
A
1009-3044(2017)24-0216-02
2017-07-06
張智(1986—),男,江蘇揚州人,無錫職業(yè)技術(shù)學(xué)院信息化中心,主要從事計算機網(wǎng)絡(luò)與信息安全研究。