(江蘇省駱運水利工程管理處 宿遷 223800)
在水利的水文管理系統(tǒng)中,水文數(shù)據(jù)的測量、報告屬于工作的重點。本設計旨在提供一整套水文數(shù)據(jù)采集物聯(lián)網(wǎng),將傳統(tǒng)的主要依賴人工采集、報告的方式改為利用物聯(lián)網(wǎng)的方式,實現(xiàn)將系統(tǒng)內(nèi)的各個聯(lián)網(wǎng)節(jié)點的水文數(shù)據(jù)首先實時傳輸?shù)焦芾硖幖刂行?,然后通過移動數(shù)據(jù)專網(wǎng)接入全省統(tǒng)一的水文自動測報系統(tǒng)平臺。
水文自動測報系統(tǒng)平臺將原來比較分散的采集方式,通過網(wǎng)絡進行連接,并且采用統(tǒng)一的后臺服務器,將各個數(shù)據(jù)采集器上面的數(shù)據(jù)進行集中處理,見圖1。
水文自動測報系統(tǒng)平臺屬于智慧水利的重要組成部分,為水利的精準管理提供了重要的數(shù)據(jù)支撐。本系統(tǒng)設計包括以下兩個重要的組成部分:水文數(shù)據(jù)采集器、水文數(shù)據(jù)后臺管理。
2.1.1 硬件設計
水文數(shù)據(jù)采集器(DAQ Box,下稱采集器)包括:傳感器、采集器、傳輸模塊等。采用NXP 公司的工業(yè)級32 位Cortex-A7 處理器i.MX6ul 作為主控芯片,主頻高達528MHz,無論在穩(wěn)定性、可靠性還是處理速度,都能完全滿足系統(tǒng)需求。外圍配備256MB DDR3、512MB NandFlash/4G eMMC,在滿足系統(tǒng)穩(wěn)定運行的同時,留有足夠的擴展空間。具有10/100Mbps 自適應網(wǎng)絡,方便和本地以太網(wǎng)連接。內(nèi)置北斗導航模塊,采集位置信息以及和后臺管理系統(tǒng)保持時間同步。通過4G 通信模塊保證數(shù)據(jù)能實時傳輸?shù)郊刂行牡臄?shù)據(jù)服務器。采用WIFI/BT模塊方便手機等設備的本地連接,實現(xiàn)在現(xiàn)場使用手機APP 軟件上報數(shù)據(jù)。使用ZigBee 通信模塊,實現(xiàn)同一采集器下多個測控點的數(shù)據(jù)無線采集功能。水文數(shù)據(jù)采集器硬件框圖見圖2。
圖 1 水文數(shù)據(jù)采集物聯(lián)網(wǎng)系統(tǒng)示意圖
2.1.2 軟件設計
數(shù)據(jù)采集器使用的是Linux 3.14 系統(tǒng),文件系統(tǒng)部分采用了Busybox1.4, ubifs 的文件格式,應用軟件使用QT4.8.5 來設計。
應用軟件的模塊主要包括:水文傳感器數(shù)據(jù)采集上報、網(wǎng)絡管理、軟件版本升級等。
DAQ Box 采集通道設計分為模擬、數(shù)字采集方式。通過這些采集通道,能連接包括雨量、水位、流量、風向、風速、溫度、濕度等各類型水文數(shù)據(jù)傳感器。將這些數(shù)據(jù)采集后,統(tǒng)一量化,采用相關(guān)的通信協(xié)議,將具體的數(shù)據(jù)發(fā)送到數(shù)據(jù)處理服務器(DPS 服務器)。
網(wǎng)路管理模塊主要用來管理當前DAQ Box 設備的網(wǎng)絡連接狀態(tài)。它需要保證設備在有多種連接方式的情況下,至少有一種網(wǎng)絡連接方式是穩(wěn)定、可靠的。如果發(fā)生斷網(wǎng)情況,需將網(wǎng)絡狀態(tài)通知到負載均衡服務器(LBS 服務器)。
由于DAQ Box 的軟件版本在使用過程中,可能存在升級的要求,所以在DAQ Box端設計了遠程升級。DAQ Box 端的遠程升級是由管理后臺主動發(fā)起,DAQ Box 端響應,可以分為自動升級和手動升級:自動升級是在后臺管理中存放最新版本的DAQ Box 的固件,然后系統(tǒng)自動輪詢當前所有在系統(tǒng)中注冊的DAQ Box的版本,低于最新版本的則開始升級;手動升級為后臺管理者主動點擊DAQ Box 的升級選項。
水文數(shù)據(jù)物聯(lián)網(wǎng)的管理系統(tǒng)運行在Windows Server 操作系統(tǒng)之上,支持Windows Server 2008 及以上版本,需要Oracle 11g 版本的數(shù)據(jù)庫客戶端運行時環(huán)境支持。管理系統(tǒng)是水文物聯(lián)網(wǎng)系統(tǒng)的重要結(jié)點,也是整個系統(tǒng)的核心組成部分。它位于前端設備——水文數(shù)據(jù)采集盒子(DAQ Box)和后臺業(yè)務系統(tǒng)——數(shù)據(jù)查詢上報系統(tǒng)之間,為雙方提供數(shù)據(jù)交互服務。水文數(shù)據(jù)后臺管理系統(tǒng)包括兩個部分:
(1)負載均衡服務,Load Balancing Server(LBS)。主要實現(xiàn)負載均衡功能,負責為設備分配設備管理服務器。通過數(shù)據(jù)庫查詢數(shù)據(jù)處理服務器的負載情況,選擇最合適此設備的數(shù)據(jù)處理服務器分配給請求的設備,實現(xiàn)負載均衡。
(2)數(shù)據(jù)處理服務,Data Process Server(DPS)。負責對DAQ Box 設備進行配置管理,如向DAQ Box下發(fā)配置、命令,接收數(shù)據(jù)上報的設備信息、告警、響應和請求等常規(guī)數(shù)據(jù)。定時查詢數(shù)據(jù)庫中的命令表,若命令表不為空,則獲取命令下發(fā)到對應的設備。中轉(zhuǎn)設備上報的實時監(jiān)控數(shù)據(jù)到WEB 服務器。采集設備上報的告警數(shù)據(jù),保存到數(shù)據(jù)庫并轉(zhuǎn)發(fā)到WEB 服務器。定時按照水文測報統(tǒng)一平臺的數(shù)據(jù)格式上報水文數(shù)據(jù)。
圖2 水文數(shù)據(jù)采集器硬件框圖
整個系統(tǒng)的軟件框圖見圖3。
圖3 水文數(shù)據(jù)采集物聯(lián)網(wǎng)系統(tǒng)框圖
上面兩部分的軟件均以控制臺的形式獨立運行,具體部署時可以將兩套軟件運行在同一臺服務器上面,作為兩個程序進程。亦可以根據(jù)系統(tǒng)接入的DAQ Box 的數(shù)量的具體需求,將LBS 和DPS 分開使用。如果有大量的DAQ Box 要求接入管理,可以使用多臺DPS服務器來分別處理DAQ Box的數(shù)據(jù),這樣設計帶來了組網(wǎng)方便,在項目實施的初期,投入也相對較少,能節(jié)約成本。
在實際工作中,將兩個服務軟件分別運行在兩臺服務器上,采用這種組網(wǎng)方式,將兩臺服務器分別稱為負載均衡服務器以及數(shù)據(jù)處理服務器。
負載均衡服務器(端口:16681)<——>水文數(shù)據(jù)采集器(DAQ Box)
負載均衡服務器(端口:16692)<——>數(shù)據(jù)處理服務器(DPS)
負載均衡服務器的程序在操作系統(tǒng)啟動后自動運行,開始實現(xiàn)負載均衡的處理,具體實現(xiàn)步驟如下:
(1)監(jiān)聽設備端(DAQ Box)的連接請求,接受設備的連接請求。
(2)接收DAQ Box 端獲取DPS 服務器的地址信息的請求。1)通過本地存儲的DAQ Box 列表信息,如果不存在,則進行本地數(shù)據(jù)DAQ Box 設備列表和數(shù)據(jù)庫同步,如果數(shù)據(jù)庫中也沒有配置該DAQ Box,則認為非法接入,告警;2)獲取最適合此DAQ Box設備的DPS 服務器的地址信息回應給設備;3)最適合此設備的服務器按照如下優(yōu)先級排序:a.手動配置,通過手動設置將某臺DAQ Box 配在某服務器上。b.舊設備,使用上次已經(jīng)分配的服務。c.新設備,在服務器負載允許范圍內(nèi),選擇邏輯劃分一致的服務器分配給設備,比如在同一河流的、同一處管理所內(nèi)。
(3)完成DPS 服務器分配后,LBS 將相應的分配的DPS 服務器地址發(fā)送給DAQ Box 后,DAQ Box設備主動斷開與LBS 服務器的連接。
(4)如果所有DPS 服務器即將或已達到滿負荷,進行告警。
(5)在數(shù)據(jù)庫中存儲DPS 服務器進程的配置信息(服務進程ID,IP 地址,端口,最大允許連接數(shù),當前已經(jīng)連接數(shù)),當所有的DPS 服務器都達到最大連接數(shù),上報告警。
(6)處理設備上報的DPS 服務器不能連接的告警;如果設備多次連接分配的DPS 服務器失敗后,向LBS 服務器發(fā)送告警,這個功能需要DAQ Box 端的嵌入軟件同步實現(xiàn)。
(7)當接收到(6)所示的告警后,寫入數(shù)據(jù)庫告警表,同時設置此DPS 服務器狀態(tài)為異常(后臺管理人員看到告警后,修復對應的服務器后,需要重新設置此服務器狀態(tài),否則分配服務器會始終認為此服務異常,而不為其分配設備),然后重新為設備分配其他的DPS 服務器。
(8)連接異常的設備,由LBS 服務器來進行告警。LBS 服務器定時查詢本地DAQ Box 列表(要定時與數(shù)據(jù)庫同步,差異更新,時間間隔為1s)中安裝狀態(tài)為“正常監(jiān)控”的DAQ Box 是否已經(jīng)向分配服務器發(fā)起過申請,如果沒有則告警。
(9)負責對連接的DAQ Box 設備進行驗證,如果是非法license 設備接入,則拒絕為其分配DPS 服務器地址,如果是重復license 多次接入,進行告警。
數(shù)據(jù)處理服務器(端口:16688)<——>水文數(shù)據(jù)采集器(DAQ Box)
具體的實現(xiàn)方式如下:
(1)監(jiān)聽DAQ Box設備端的連接,接受連接請求。
(2)維護與DAQ Box 設備端的長連接。
(3)向DAQ 設備轉(zhuǎn)發(fā)命令,處理設備響應(實時監(jiān)控開啟、結(jié)束命令,重分配命令,重啟命令,版本升級)。
(4)接收DAQ 設備上報的告警,將告警存入數(shù)據(jù)庫中。未來得及存數(shù)據(jù)庫的告警,一定要及時備份在本地(特別是在收到重啟命令前),如果是收到退出命令,告警等數(shù)據(jù)未完全存入數(shù)據(jù)庫,則嘗試一段時間存數(shù)據(jù)庫,如果存完則安全退出,否則,將未存完的數(shù)據(jù)保存在本地磁盤(系統(tǒng)事先確定的文件或其他方式),待系統(tǒng)重啟時,獲取本地磁盤上次未存完的數(shù)據(jù),存入數(shù)據(jù)庫(注意重復數(shù)據(jù)的處理)。
(5)接收DAQ 設備其他請求、命令,進行處理。
(6)DPS 服務器對連接的DAQ 設備合法性進行驗證,拒絕非法license 的DAQ 設備連接。
(7)監(jiān)控自身負載情況,寫入數(shù)據(jù)庫,同時通知LBS 服務器。
(8)如果達到或超過最大負載,可以通過配置為拒絕模式,拒絕新設備的接入。
江蘇省駱運水利工程管理處的水文測控站總計17 個,分布于駱馬湖周邊及中運河、徐洪河、六塘河、新沂河上,該系統(tǒng)開發(fā)完成后,實際運行性能穩(wěn)定可靠,使用維護方便,滿足了駱運管理處的水文數(shù)據(jù)采集測報要求。同時,該系統(tǒng)不僅適用于中大流域水情數(shù)據(jù)的采集,而且適用于氣象、地震、海洋、森林防火等不同部門的數(shù)據(jù)采集工作■