目前飲用水水質監測主要是服務于供水企業的生產活動,在突發事件發生時,各級政府無法及時獲取到準確的水質數據。為提高各級政府部門對飲用水水質的監控能力,要建設好國家、省、市三級的飲用水水質在線監控網絡,實現水質數據采集、傳輸與數據存儲的平臺,為突發事件的及時應對做好強有力的后盾。
在飲用水水質監測網絡中,通過計算機技術、數據庫技術、通訊技術、工控技術將海量、分散的飲用水實時數據進行采集及傳輸,實現數據及時共享,有效的監控水質。它的研究及實施的技術路線如下:
①實時監測點的合理布局、監測項目及采集頻率的確定。實時監測網應能直接反應從“取水、凈水到配水”的水質狀況,并能實現以最合理的監測點布局獲取完善的水質信息。強調合理選擇“取水、凈水到配水”監測點的監測項目,提高資金的利用率。
②確定數據采集及組網方式。
根據監測項目和數據監控的需求,利用兩化融合技術實現數據采集。組網方式則根據課題安全等級及各地方的實地情況的要求,選擇合適的有線及無線網絡。
③選擇精準、高效,穩定的數據存儲,傳輸方式,以便數據信息可以在各級平臺中及時、準確的展示,高效的數據分析及挖掘。
④政府監控中心與供水企業實時監測點的信息共享。政府監控中心與供水企業實時監測點信息共享的關鍵點是管理部門之間的協調,在技術層面上不存在創新。新建水質實時監測點,政府監控中心與供水企業的信息共享在技術上較易實現;但供水企業的已建實時監測點,一種方法需要修改實時監測點的RTU(遠程終端監控單元),重新定義通訊協議;另一種方法是增加其他外部設備,實現信息共享。政府監控中心與供水企業實時監測點的信息共享,有利于實時監測點的可維護性,并且節約成本。
按照技術路線的研究思路,確定了實時在線水質數據的采集傳輸模式。實時數據通過無線GPRS網絡,每隔15分鐘送入國家級、省級、市級數據中心,數據中心管理員負責維護監控在線設備的運行維護。在水質監控點安裝的一套或多套在線監測儀表與數據采集傳輸儀連接,采用Modbus現場總線協議,RS-232C兼容串行接口采集在線監測設備的水質、狀態等信息,然后數據采集傳輸儀通過網絡將數據傳輸到上位機的數據中心,它采用的是TCP協議。
在這個過程中數據采集傳輸儀是上下連接的關鍵節點,對它的重要功能技術指標包括:
(1)數據采集設備應具備多中心數據傳輸功能,支持至少4個中心數據發送,并可以獨立的配置各中心的數據發送頻率,發送頻率可設置為60秒~12小時。
(2)數據采集傳輸后,將數據包寫入到現有管理平臺標準數據庫中。與現有平臺無縫對接。
(3)數據采集設備應內嵌數據庫,在與中心的通信臨時中斷后,至少可以存儲15天的數據,并應具備數據斷點續傳功能,通信一旦恢復可以將存儲的數據再傳回中心。
(4)支持Web形式能對采集器進行簡單配置,如IP地址等。
(5)采集器需支持實時及歷史數據查詢和校時等功能。
數據采集傳輸儀與數據中心傳輸的數據包結構包括:包頭、有效數據總長度、有效數據、CRC校驗、包尾五部分。其中有效數據是采用XML格式,并通過AES加密的字符串。如圖1。

圖1
有效數據中的XML格式如下:

這其中的指令類型分為五大塊,分別是身份驗證、系統授時及心跳、配置設定、水質傳輸、擴展指令。其中數據采集傳輸儀的身份認證采用MD5的加解密算法,當上位機與數據采集傳輸儀計算的MD5碼相同,表示身份認證成功。在沒有數據傳輸的時間里,數據采集傳輸儀會通過系統授時及心跳指令定期向上位機發送心跳包,保持通道暢通。水質傳輸指令中重要的兩個指令是定時最新的水質監測數據上報和斷點續傳的水質監測數據上報。斷點續傳功能是必不可少的,當數據采集傳輸儀上傳數據失敗或者是網絡斷開是,數據采集傳輸儀會將歷史數據保存下來,這是為實現斷點續傳做準備,當上位機通訊正常,發出斷點續傳指令,再將歷史數據上傳。如何通過上位機去控制數據采集傳輸儀,如設置數據采集傳輸儀的傳輸間隔等,在擴展指令中可以完成這項任務。當然這需要數據采集傳輸儀自身具有反控的功能。以上的設計方案在山東等地得到很好的應用, 取得了很好的運行效果。
目前考慮到實時數據的存儲量大,讀取頻率高,但存儲格式較為簡單的特點,故采用實時數據庫(實時庫)存儲水質數據及其他采集數據,實時庫采用Oracle Berkeley Db作為支撐,使用Java實現。數據存儲結構對用戶透明,為數據展示提供兩種形式的數據操作方式:基于JRT Client包的接口和基于Telnet的Console終端操作。
隨著近年無線互聯網的發展,聯通的3G無線網絡的覆蓋范圍已經與日俱增,部分地區如南部地區這一年來移動4G網絡的覆蓋也大大加強,在這些覆蓋高速無線網絡的地區,在線實時數據的傳輸,是不是也應該從簡單的字符串傳輸,向時空數據及視頻,音頻數據傳輸的方向發展,對于在線監測點做到全方位的監控,如同身臨其境。

圖2
在大數據快速發展的當今社會,巨大的實時數據庫結構簡單,適合Mapreduce模式,首先將數據拆分成鍵值對(key/value)的形式,每一個鍵值對通過Map函數映射成一組新的鍵值對,當需要輸出時調用Reduce函數,它會將中間數據合并(combine)、排序(sort)等后再分發輸出最終結果鍵值對(key/value)。Mapreduce的框架圖如圖2:
舉例來說明mapreduce的邏輯過程。假設我們需要處理一批有關實時在線監測設備測量的水質ph值,其格式為每行一條記錄,每行字符從1開始計數,第16個到第23個字符為日期,第30個字符到第32個字符為水源的在線監測ph值,如圖3:
現在需要統計出每日在線監測點ph值得最大值,MapReduce模式的思想包括兩個步驟:Map和Reduce。在Map過程,輸入的key/value鍵值對如圖4:

圖3

圖4
在Map過程中,通過對每一行字符串的解析,得到日期/ph值的key/value鍵值對作為中間結果輸出,如圖5:

圖5
在Reduce過程,將Map過程中的輸出,按照相同的key將value放到同一個列表中作為Reduce的輸入,如圖6:

在Reduce過程中,在列表中選擇出最大的value,將日期-最大ph值的key/value作為最終結果輸出,至此整個MapReduce的邏輯過程說明完畢如圖7。

Hadoop是MapReduce模式的Java實現的軟件架構,由分布式文件系統(HDFS)及分布式數據庫(HBase)來存儲數據,可利用基于Hadoop的Hive做為數據倉庫工具,大數據處理的利器hadoop,能更好實現飲用水水質監控網絡實時大數據的價值。
本文闡述了飲用水水質監控網絡實時數據采集及傳輸技術從技術路線的制定到技術設計及實施,很好的解決了海量、分散的實時數據在三級網絡中的數據庫共享。為城市飲用水安全保障,打下堅實的基礎。