(江蘇省駱運水利工程管理處 宿遷 223800)
在水利的水文管理系統中,水文數據的測量、報告屬于工作的重點。本設計旨在提供一整套水文數據采集物聯網,將傳統的主要依賴人工采集、報告的方式改為利用物聯網的方式,實現將系統內的各個聯網節點的水文數據首先實時傳輸到管理處集控中心,然后通過移動數據專網接入全省統一的水文自動測報系統平臺。
水文自動測報系統平臺將原來比較分散的采集方式,通過網絡進行連接,并且采用統一的后臺服務器,將各個數據采集器上面的數據進行集中處理,見圖1。
水文自動測報系統平臺屬于智慧水利的重要組成部分,為水利的精準管理提供了重要的數據支撐。本系統設計包括以下兩個重要的組成部分:水文數據采集器、水文數據后臺管理。
2.1.1 硬件設計
水文數據采集器(DAQ Box,下稱采集器)包括:傳感器、采集器、傳輸模塊等。采用NXP 公司的工業級32 位Cortex-A7 處理器i.MX6ul 作為主控芯片,主頻高達528MHz,無論在穩定性、可靠性還是處理速度,都能完全滿足系統需求。外圍配備256MB DDR3、512MB NandFlash/4G eMMC,在滿足系統穩定運行的同時,留有足夠的擴展空間。具有10/100Mbps 自適應網絡,方便和本地以太網連接。內置北斗導航模塊,采集位置信息以及和后臺管理系統保持時間同步。通過4G 通信模塊保證數據能實時傳輸到集控中心的數據服務器。采用WIFI/BT模塊方便手機等設備的本地連接,實現在現場使用手機APP 軟件上報數據。使用ZigBee 通信模塊,實現同一采集器下多個測控點的數據無線采集功能。水文數據采集器硬件框圖見圖2。

圖 1 水文數據采集物聯網系統示意圖
2.1.2 軟件設計
數據采集器使用的是Linux 3.14 系統,文件系統部分采用了Busybox1.4, ubifs 的文件格式,應用軟件使用QT4.8.5 來設計。
應用軟件的模塊主要包括:水文傳感器數據采集上報、網絡管理、軟件版本升級等。
DAQ Box 采集通道設計分為模擬、數字采集方式。通過這些采集通道,能連接包括雨量、水位、流量、風向、風速、溫度、濕度等各類型水文數據傳感器。將這些數據采集后,統一量化,采用相關的通信協議,將具體的數據發送到數據處理服務器(DPS 服務器)。
網路管理模塊主要用來管理當前DAQ Box 設備的網絡連接狀態。它需要保證設備在有多種連接方式的情況下,至少有一種網絡連接方式是穩定、可靠的。如果發生斷網情況,需將網絡狀態通知到負載均衡服務器(LBS 服務器)。
由于DAQ Box 的軟件版本在使用過程中,可能存在升級的要求,所以在DAQ Box端設計了遠程升級。DAQ Box 端的遠程升級是由管理后臺主動發起,DAQ Box 端響應,可以分為自動升級和手動升級:自動升級是在后臺管理中存放最新版本的DAQ Box 的固件,然后系統自動輪詢當前所有在系統中注冊的DAQ Box的版本,低于最新版本的則開始升級;手動升級為后臺管理者主動點擊DAQ Box 的升級選項。
水文數據物聯網的管理系統運行在Windows Server 操作系統之上,支持Windows Server 2008 及以上版本,需要Oracle 11g 版本的數據庫客戶端運行時環境支持。管理系統是水文物聯網系統的重要結點,也是整個系統的核心組成部分。它位于前端設備——水文數據采集盒子(DAQ Box)和后臺業務系統——數據查詢上報系統之間,為雙方提供數據交互服務。水文數據后臺管理系統包括兩個部分:
(1)負載均衡服務,Load Balancing Server(LBS)。主要實現負載均衡功能,負責為設備分配設備管理服務器。通過數據庫查詢數據處理服務器的負載情況,選擇最合適此設備的數據處理服務器分配給請求的設備,實現負載均衡。
(2)數據處理服務,Data Process Server(DPS)。負責對DAQ Box 設備進行配置管理,如向DAQ Box下發配置、命令,接收數據上報的設備信息、告警、響應和請求等常規數據。定時查詢數據庫中的命令表,若命令表不為空,則獲取命令下發到對應的設備。中轉設備上報的實時監控數據到WEB 服務器。采集設備上報的告警數據,保存到數據庫并轉發到WEB 服務器。定時按照水文測報統一平臺的數據格式上報水文數據。

圖2 水文數據采集器硬件框圖
整個系統的軟件框圖見圖3。

圖3 水文數據采集物聯網系統框圖
上面兩部分的軟件均以控制臺的形式獨立運行,具體部署時可以將兩套軟件運行在同一臺服務器上面,作為兩個程序進程。亦可以根據系統接入的DAQ Box 的數量的具體需求,將LBS 和DPS 分開使用。如果有大量的DAQ Box 要求接入管理,可以使用多臺DPS服務器來分別處理DAQ Box的數據,這樣設計帶來了組網方便,在項目實施的初期,投入也相對較少,能節約成本。
在實際工作中,將兩個服務軟件分別運行在兩臺服務器上,采用這種組網方式,將兩臺服務器分別稱為負載均衡服務器以及數據處理服務器。
負載均衡服務器(端口:16681)<——>水文數據采集器(DAQ Box)
負載均衡服務器(端口:16692)<——>數據處理服務器(DPS)
負載均衡服務器的程序在操作系統啟動后自動運行,開始實現負載均衡的處理,具體實現步驟如下:
(1)監聽設備端(DAQ Box)的連接請求,接受設備的連接請求。
(2)接收DAQ Box 端獲取DPS 服務器的地址信息的請求。1)通過本地存儲的DAQ Box 列表信息,如果不存在,則進行本地數據DAQ Box 設備列表和數據庫同步,如果數據庫中也沒有配置該DAQ Box,則認為非法接入,告警;2)獲取最適合此DAQ Box設備的DPS 服務器的地址信息回應給設備;3)最適合此設備的服務器按照如下優先級排序:a.手動配置,通過手動設置將某臺DAQ Box 配在某服務器上。b.舊設備,使用上次已經分配的服務。c.新設備,在服務器負載允許范圍內,選擇邏輯劃分一致的服務器分配給設備,比如在同一河流的、同一處管理所內。
(3)完成DPS 服務器分配后,LBS 將相應的分配的DPS 服務器地址發送給DAQ Box 后,DAQ Box設備主動斷開與LBS 服務器的連接。
(4)如果所有DPS 服務器即將或已達到滿負荷,進行告警。
(5)在數據庫中存儲DPS 服務器進程的配置信息(服務進程ID,IP 地址,端口,最大允許連接數,當前已經連接數),當所有的DPS 服務器都達到最大連接數,上報告警。
(6)處理設備上報的DPS 服務器不能連接的告警;如果設備多次連接分配的DPS 服務器失敗后,向LBS 服務器發送告警,這個功能需要DAQ Box 端的嵌入軟件同步實現。
(7)當接收到(6)所示的告警后,寫入數據庫告警表,同時設置此DPS 服務器狀態為異常(后臺管理人員看到告警后,修復對應的服務器后,需要重新設置此服務器狀態,否則分配服務器會始終認為此服務異常,而不為其分配設備),然后重新為設備分配其他的DPS 服務器。
(8)連接異常的設備,由LBS 服務器來進行告警。LBS 服務器定時查詢本地DAQ Box 列表(要定時與數據庫同步,差異更新,時間間隔為1s)中安裝狀態為“正常監控”的DAQ Box 是否已經向分配服務器發起過申請,如果沒有則告警。
(9)負責對連接的DAQ Box 設備進行驗證,如果是非法license 設備接入,則拒絕為其分配DPS 服務器地址,如果是重復license 多次接入,進行告警。
數據處理服務器(端口:16688)<——>水文數據采集器(DAQ Box)
具體的實現方式如下:
(1)監聽DAQ Box設備端的連接,接受連接請求。
(2)維護與DAQ Box 設備端的長連接。
(3)向DAQ 設備轉發命令,處理設備響應(實時監控開啟、結束命令,重分配命令,重啟命令,版本升級)。
(4)接收DAQ 設備上報的告警,將告警存入數據庫中。未來得及存數據庫的告警,一定要及時備份在本地(特別是在收到重啟命令前),如果是收到退出命令,告警等數據未完全存入數據庫,則嘗試一段時間存數據庫,如果存完則安全退出,否則,將未存完的數據保存在本地磁盤(系統事先確定的文件或其他方式),待系統重啟時,獲取本地磁盤上次未存完的數據,存入數據庫(注意重復數據的處理)。
(5)接收DAQ 設備其他請求、命令,進行處理。
(6)DPS 服務器對連接的DAQ 設備合法性進行驗證,拒絕非法license 的DAQ 設備連接。
(7)監控自身負載情況,寫入數據庫,同時通知LBS 服務器。
(8)如果達到或超過最大負載,可以通過配置為拒絕模式,拒絕新設備的接入。
江蘇省駱運水利工程管理處的水文測控站總計17 個,分布于駱馬湖周邊及中運河、徐洪河、六塘河、新沂河上,該系統開發完成后,實際運行性能穩定可靠,使用維護方便,滿足了駱運管理處的水文數據采集測報要求。同時,該系統不僅適用于中大流域水情數據的采集,而且適用于氣象、地震、海洋、森林防火等不同部門的數據采集工作■