何宇++施叢叢++桑笑楠++龔佳俊++郎新赟++李千目
摘要:水利是一個(gè)信息密集型行業(yè)。水利信息包括水雨情信息、汛旱災(zāi)情信息、水量水質(zhì)信息、水環(huán)境信息、水工程信息等。當(dāng)今的水利建設(shè)過程中,往往側(cè)重基礎(chǔ)設(shè)施建設(shè),而忽視了將水利建設(shè)與信息化、智能化相結(jié)合,從而導(dǎo)致其信息化程度不夠,不能高效地管理、利用水利設(shè)備或有效進(jìn)行洪澇預(yù)警,在效能、效益方面存在欠缺。本文充分利用現(xiàn)代信息技術(shù),設(shè)計(jì)并實(shí)現(xiàn)了水利泵站遠(yuǎn)程監(jiān)控系統(tǒng)。引入了水文監(jiān)測、控制、預(yù)測模型及算法,對基于結(jié)構(gòu)化支持向量機(jī)的泄洪聯(lián)動(dòng)技術(shù)進(jìn)行了設(shè)計(jì),從全局的高度設(shè)計(jì)建設(shè)具有開放性的信息化集成平臺(tái),實(shí)現(xiàn)信息共享和業(yè)務(wù)流程優(yōu)化,提高泵站管理水平、運(yùn)行調(diào)度水平、裝備自動(dòng)化水平、防洪抗旱調(diào)度決策水平。
關(guān)鍵詞:水泵;遠(yuǎn)程控制;物聯(lián)網(wǎng)
中圖分類號(hào):TP391.41
文獻(xiàn)標(biāo)識(shí)碼:A
DOI:10.3969/j.issn.1003-6970.2015.09.018
0 引言
我國水利事業(yè)發(fā)展至今,在全國范圍內(nèi)從整體上已初步形成以大型泵站為中心的跨流域調(diào)水及防洪排澇體系,有力地加強(qiáng)了各地區(qū)抵御自然災(zāi)害的能力。目前,我國水利信息化的應(yīng)用模式單調(diào)而傳統(tǒng),盡管部分流域已經(jīng)構(gòu)建完成了相關(guān)防汛系統(tǒng)基本實(shí)現(xiàn)了降雨洪水險(xiǎn)情的自動(dòng)管理和監(jiān)測,但對集成信息實(shí)時(shí)監(jiān)測、三維決策支持、防汛預(yù)案展示及信息采集維護(hù)等為一體的防汛指揮地理信息系統(tǒng)的研究卻很少,大量歷史數(shù)據(jù)中的潛在信息得不到挖掘,使得水利相關(guān)信息得不到有效利用,造成富硬件的浪費(fèi)、誤導(dǎo)決策者的科學(xué)決策。
盡管為了解決由水利、交通、能源等的大規(guī)模建設(shè)所引發(fā)許多迫切需要解決的水文問題,科技工作者已對相關(guān)領(lǐng)域的模型及原理進(jìn)行了大量分析研究。這為水利檢測積累了比較多的資料及經(jīng)驗(yàn),為解決這些問題打下了基礎(chǔ),促使水文的長足發(fā)展。由美國國家氣象局(現(xiàn)名美國海洋大氣和管理局,設(shè)計(jì)的交互式洪水預(yù)報(bào)系統(tǒng)NWSRFS(Nation Weather Service River Forecast Sys-tem)對水文洪澇信息預(yù)測模型的輸入、輸出標(biāo)準(zhǔn)化、規(guī)范化,已被該國內(nèi)多河流預(yù)報(bào)中心日常規(guī)劃使用。美國陸軍工程師兵團(tuán)開發(fā)的SHE(System HydrologicEuropean)軟件包集成了多個(gè)常用水文模型,已在水利設(shè)計(jì)、洪澇預(yù)測等領(lǐng)域發(fā)揮重要作用。以及目前仍在廣泛應(yīng)用的產(chǎn)匯流理論和水文統(tǒng)計(jì)原理與方法,包括霍頓下滲理論、等流時(shí)線法、單位線法、馬斯京根流量演算法、各種流域水文模型、經(jīng)驗(yàn)頻率公式、輸沙率公式等,都在一定程度上解決了水文預(yù)報(bào)和分析計(jì)算問題,為水利工程的設(shè)計(jì)、施工調(diào)度及管理提供了可靠依據(jù)。
本文進(jìn)行了水利泵站的遠(yuǎn)程監(jiān)控系統(tǒng)的設(shè)計(jì),系統(tǒng)能夠根據(jù)系統(tǒng)所記錄的大量水位、流量、溫度等水文信息歷史數(shù)據(jù),結(jié)合實(shí)時(shí)水利周邊信息,經(jīng)過適當(dāng)數(shù)據(jù)挖掘分析,實(shí)現(xiàn)對重要監(jiān)測量的可靠預(yù)測,如對洪水到來時(shí)間及洪峰可能達(dá)到的強(qiáng)度進(jìn)行預(yù)測評(píng)估。并對系統(tǒng)監(jiān)控范圍內(nèi)的硬件設(shè)備等資源進(jìn)行合理優(yōu)化調(diào)度,建立起集信息感知、控制、管理、預(yù)測、優(yōu)化調(diào)度于一體的泵站數(shù)字化智能化系統(tǒng)體系框架。
1 系統(tǒng)總體構(gòu)架
本系統(tǒng)總體組成部分框架前端部分主體為分站視頻監(jiān)控器、水文數(shù)據(jù)采集設(shè)備等,采集到的數(shù)據(jù)經(jīng)由連接各分站交換機(jī)的光纖傳輸,總站管理員通過訪問局域網(wǎng)絡(luò)內(nèi)的客戶端進(jìn)行系統(tǒng)訪問等各類操作。數(shù)據(jù)采集(DAQ,Data Acquisition),包括從被監(jiān)測設(shè)備中獲取信號(hào),然后傳送到上位機(jī)中對采集到的數(shù)據(jù)進(jìn)行分析、處理的過程。系統(tǒng)基礎(chǔ)數(shù)據(jù)采集模塊流程圖如圖1所示:先對每個(gè)數(shù)據(jù)采集儀的固定IP和端口進(jìn)行TCP連接,若連接成功,就發(fā)送數(shù)據(jù)采集指令,讀取返回?cái)?shù)據(jù),如果連接不成功,就每隔一段時(shí)間繼續(xù)連接,直到連接成功為止。
圖2為泵站遠(yuǎn)程監(jiān)控系統(tǒng)邏輯框架圖。模塊間的集成依賴Web Service技術(shù)提供的異構(gòu)平臺(tái)通信機(jī)制。由于各層間均為低耦合的模塊化設(shè)計(jì),在不影響整個(gè)系統(tǒng)正常運(yùn)行情況下進(jìn)行設(shè)備更換。層間通過TCP/IP協(xié)議實(shí)現(xiàn)通訊,不受網(wǎng)絡(luò)平臺(tái)的限制。各泵站監(jiān)控系統(tǒng)既相對獨(dú)立,又能通過配置信息監(jiān)測和網(wǎng)絡(luò)傳輸設(shè)備,形成泵站信息化監(jiān)測站網(wǎng)體系,進(jìn)一步提高各類信息自動(dòng)采集、處理能力,提高了信息傳輸速度和數(shù)據(jù)采集的精度,更好地監(jiān)控水情。整套設(shè)備能在惡劣條件下正常工作,全套設(shè)備的集成度高,各設(shè)備單元相匹配,各單元及總體功耗低,防水防破壞性好,易維護(hù)。
數(shù)據(jù)采集的過程是軟件系統(tǒng)與硬件系統(tǒng)對接的過程,通過數(shù)據(jù)采集工作,系統(tǒng)獲得了可用于進(jìn)行監(jiān)控、分析和查詢的數(shù)據(jù),而這些獲取到的數(shù)據(jù)再經(jīng)過一系列的轉(zhuǎn)碼工作之后,便可被保存到數(shù)據(jù)庫。
系統(tǒng)通過傳感器和電壓表所采集到的數(shù)據(jù)將流人數(shù)據(jù)采集儀,并將其持久化至數(shù)據(jù)庫中。數(shù)據(jù)庫中的數(shù)據(jù)將用于實(shí)時(shí)監(jiān)控,水泵、泵站的相應(yīng)信息的統(tǒng)計(jì)與查詢,同時(shí)也將根據(jù)異常數(shù)據(jù)來進(jìn)行遠(yuǎn)程預(yù)警,最后,數(shù)據(jù)庫中的數(shù)據(jù)也可用于報(bào)表的生成。
2 核心模塊實(shí)現(xiàn)原理
系統(tǒng)的軟件控制部分的Web平臺(tái)的實(shí)現(xiàn)采用MVC模式,并使用J2EE開發(fā)中的典型技術(shù)SSH框架實(shí)現(xiàn)相關(guān)的設(shè)計(jì)和開發(fā)工作。本系統(tǒng)在業(yè)務(wù)邏輯層利用Hibemate框架提供對象持久化支持,Spring做IoC管理,管理java對象,同時(shí)也負(fù)責(zé)管理Struts和Hibernate的框架對象。給出Hibernate的DAO實(shí)現(xiàn),Java類與數(shù)據(jù)庫之間的轉(zhuǎn)換和訪問由Hibernate架構(gòu)所實(shí)現(xiàn)的DAO類實(shí)現(xiàn),最后由Spring做管理——管理Struts和Hibernate。
系統(tǒng)的基本業(yè)務(wù)流程:表示層由Struts進(jìn)行URL路由和相應(yīng)頁面的渲染,頁面使用標(biāo)準(zhǔn)的JSP實(shí)現(xiàn),Struts框架根據(jù)客戶端(Client)請求(Request)通過查詢配置文件(struts-config.xml)并將該請求路由到相應(yīng)的ActionServlet中完成業(yè)務(wù)邏輯處理,并通過響應(yīng)傳送(Response)對象將http頁面返回客戶端。在業(yè)務(wù)層中,Spring框架負(fù)責(zé)解除層與層之間的耦合,通過讀取Bean.xml配置文件來向業(yè)務(wù)邏輯對象中注入(Inject)數(shù)據(jù)訪問對象(Data Access Ob-ject),持久層則通過注明的ORM框架Hibernate實(shí)現(xiàn)數(shù)據(jù)庫與面向?qū)ο竽P偷挠成?,并?shí)現(xiàn)增刪查改等邏輯。
使用SSH框架,修改數(shù)據(jù)訪問層則不會(huì)影響到業(yè)務(wù)邏輯層,同樣的,修改業(yè)務(wù)邏輯層也不會(huì)影響到數(shù)據(jù)訪問層。同樣的,前端的Struts框架則實(shí)現(xiàn)了良好的MVC風(fēng)格,使得頁面代碼與Java代碼得到了分離,系統(tǒng)的層次更為清晰,易于開發(fā)。
主要封裝包介紹如下:
com.njust.waterconservancy.action包:action層,前臺(tái)MVC框架中Controller的具體體現(xiàn),其角色相當(dāng)于Servlet,負(fù)責(zé)處理來自前臺(tái)的請求,并實(shí)現(xiàn)前后臺(tái)交互。它能調(diào)用業(yè)務(wù)邏輯層的方法,并返回給前臺(tái)一個(gè)頁面或Json(視具體配置)。
com.njust.waterconservancy.service包:業(yè)務(wù)邏輯層接口。
com.njust.waterconservancy.service.impl包:業(yè)務(wù)邏輯層的實(shí)現(xiàn)層,Spring管理的Service對象放在該層,負(fù)責(zé)調(diào)用DAO方法。
com.njust.waterconservancy.ios.service包:iOS在服務(wù)器端的處理類,基于SOAP協(xié)議,處理iOS端發(fā)來的SOAP消息,處理完后將結(jié)果以SOAP消息的形式返回iOS端。
com.njust.waterconservancy.dao包:DAO(數(shù)據(jù)訪問對象)層接口。
com.njust.waterconserv ancy.dao.impl包:DAO層接口的實(shí)現(xiàn)類,負(fù)責(zé)數(shù)據(jù)庫的存取。
com.njust.waterconservancy.model包:數(shù)據(jù)庫表、視圖所對應(yīng)實(shí)體類
com.njust.waterconservancy.web.vo包:是前后臺(tái)交互的數(shù)據(jù)實(shí)體,負(fù)責(zé)接收前臺(tái)發(fā)至后臺(tái)的請求表單中的數(shù)據(jù),一般作為Action層的模型。
com.njust.waterconservancy.web.filter包:驗(yàn)證用戶信息是否完整并過濾用戶請求。
在系統(tǒng)前后臺(tái)所有數(shù)據(jù)對象間的通信以json形式進(jìn)行。json是javascript的原生對象,是輕量數(shù)據(jù)傳輸方式。它本質(zhì)上是通過描述一組名稱/值對,實(shí)現(xiàn)彼此間的數(shù)據(jù)傳輸。以系統(tǒng)登錄和報(bào)表生成為例:
(1)系統(tǒng)登錄
本系統(tǒng)擁有當(dāng)下B/S應(yīng)用的多種特性,在用戶登錄環(huán)節(jié),系統(tǒng)根據(jù)請求登錄的用戶所輸入的ID,密碼匹配成功后查找該用戶的相應(yīng)權(quán)限,并依此生成相對于該用戶的菜單樹。
在Web客戶端打開瀏覽器,輸入網(wǎng)址xxx/WS后回車,web服務(wù)器開始解析web.xml文件,啟動(dòng)Spring容器,加載Struts的Filter,并控制進(jìn)入歡迎界面login.jsp。解析struts.xml,依據(jù)注解@userLogin尋找對應(yīng)的UserLoginAction。而web前端由login.jsp和其引用的login.js組成,基于ExtJS框架完成界面設(shè)計(jì)和json數(shù)據(jù)向后臺(tái)的傳送。用戶在輸入用戶名及密碼時(shí),系統(tǒng)會(huì)通過validate0方法對用戶輸入進(jìn)行驗(yàn)證。只要用戶的登錄信息和數(shù)據(jù)庫的信息匹配,系統(tǒng)便為之創(chuàng)建session并根據(jù)該用戶信息對其進(jìn)行相應(yīng)業(yè)務(wù)邏輯操作,生成用戶相應(yīng)權(quán)限的菜單列表。
(2)報(bào)表生成
進(jìn)入系統(tǒng)的報(bào)表菜單界面,選擇“泵站基本建設(shè)情況”子菜單,可打印報(bào)表,或者進(jìn)行修改、預(yù)覽。當(dāng)系統(tǒng)在后臺(tái)生成發(fā)送報(bào)表請求后,由struts.xml文件導(dǎo)向?qū)崿F(xiàn)報(bào)表生成的Action類BumpInfoAction,其中定義了實(shí)現(xiàn)報(bào)表生成的jasperToPdf方法。該方法調(diào)用了JasperReport API,是報(bào)表生成的關(guān)鍵。在Jasperreports.properties中將net.sf.jasperreports.awt.ignore.missing.font屬性值置為true??紤]后期系統(tǒng)服務(wù)器的Linux系統(tǒng)移植我們將字體部署為Linux系統(tǒng)字體。部署完成后加載模版文件,控制轉(zhuǎn)回前臺(tái)界面bzjbqk.jsp,用戶點(diǎn)擊相應(yīng)按鈕即可實(shí)現(xiàn)報(bào)表下載。其余功能實(shí)現(xiàn)類似。
本系統(tǒng)的數(shù)據(jù)采集過程實(shí)現(xiàn)如下:
打開數(shù)據(jù)采集儀服務(wù)端程序后自動(dòng)進(jìn)行數(shù)據(jù)庫連接,確認(rèn)系統(tǒng)顯示正確連接。
在菜單中點(diǎn)擊“服務(wù)選項(xiàng)”,接著進(jìn)行參數(shù)設(shè)定,進(jìn)入?yún)?shù)設(shè)定界面根據(jù)需求設(shè)置相關(guān)參數(shù)。
與數(shù)據(jù)采集儀通信的參數(shù)默認(rèn)設(shè)置為:
波特率:9600;載波位:8;停止位:1;無檢驗(yàn)位;配置固定的IP地址,默認(rèn)網(wǎng)關(guān);采集泵機(jī)參數(shù)的間隔為1分鐘。
設(shè)置完成后點(diǎn)擊“CONNECTION”按鈕即可打開該網(wǎng)口并進(jìn)行通信。
打開網(wǎng)口后,便可根據(jù)數(shù)據(jù)采集儀協(xié)議,以及所設(shè)時(shí)間間隔自動(dòng)發(fā)送指令,并將所采集的數(shù)據(jù)實(shí)時(shí)地傳人數(shù)據(jù)庫。
3 系統(tǒng)實(shí)現(xiàn)
用戶在瀏覽器輸入登錄地址,填寫用戶名、密碼并點(diǎn)擊登錄按鈕,用戶名和密碼并通過系統(tǒng)驗(yàn)證后才能對用戶權(quán)限進(jìn)行授權(quán)并使得用戶可以進(jìn)行各種操作。
管理員權(quán)限的用戶可以對本機(jī)構(gòu)及下屬機(jī)構(gòu)的用戶進(jìn)行管理,包括查詢、添加、刪除、凍結(jié)、解凍用戶;修改用戶登錄密碼。
單擊用戶管理按鈕后后,則顯示用戶管理界面,如下圖示:
1)根據(jù)機(jī)構(gòu)查詢相應(yīng)用戶
當(dāng)系統(tǒng)管理員可根據(jù)機(jī)構(gòu)查看用戶列表信息,如圖6所示:
提供基本采集項(xiàng)屬性數(shù)據(jù)的增、刪、查、改;屬性數(shù)據(jù)包括采集項(xiàng)類型名稱、HEX編碼(采集地址)、采集數(shù)值上限、采集數(shù)值下限、報(bào)警數(shù)值、校準(zhǔn)數(shù)值等。
單擊“采集項(xiàng)管理”,進(jìn)入采集項(xiàng)管理界面:
圖7顯示了采集項(xiàng)基本信息表,包括采集項(xiàng)名稱、HEX編碼等。用戶可編輯或刪除相應(yīng)采集項(xiàng)。
提供泵站設(shè)備列表,包括泵站、進(jìn)水池等屬性數(shù)據(jù)的添、改、刪;屬性數(shù)據(jù)包括所屬機(jī)構(gòu)、生產(chǎn)廠商、型號(hào)、采購人、采購人聯(lián)系方式、新增時(shí)間、采集參數(shù)設(shè)置等。
單擊“設(shè)備管理”,進(jìn)入設(shè)備管理界面:
單擊泵站數(shù)據(jù)查詢節(jié)點(diǎn),進(jìn)入泵站數(shù)據(jù)查詢界面,“采集參數(shù)”項(xiàng)可實(shí)時(shí)更新,如下圖示:
點(diǎn)擊所需顯示的泵站的顯示圖標(biāo)按鈕,出現(xiàn)對應(yīng)折線圖,如下圖示:
4 結(jié)論
本水利泵站遠(yuǎn)程監(jiān)控系統(tǒng)設(shè)計(jì)開發(fā)過程中,充分考慮到了系統(tǒng)功能完備性,綜合應(yīng)用目前較為流行且技術(shù)成熟的SSH框架和ExtjS Web前端開發(fā)技術(shù)、Web Service技術(shù)、Aj ax技術(shù)、Web GIS等技術(shù)的同時(shí),進(jìn)行實(shí)踐、分析及優(yōu)化。系統(tǒng)極大程度上滿足泵站信息采集、設(shè)備管控、水文狀態(tài)監(jiān)控的需求,擁有較為友好的用戶體驗(yàn)。并且可靈活拓展運(yùn)用,經(jīng)過適當(dāng)規(guī)模性改變即可靈活應(yīng)用于各類中小型排澇泵站及各類供水管網(wǎng)等,可使水務(wù)工作人員有效地掌握第一手實(shí)時(shí)水文數(shù)據(jù)并及早做出恰當(dāng)處理預(yù)案,亦可增強(qiáng)泵站的安全性。