王茁霖
(遼寧西北供水有限責(zé)任公司,遼寧 沈陽 110000)
水利工程安全對下游居民的正常生產(chǎn)、生活有重要的影響。隨著計算機技術(shù)的發(fā)展,大壩安全管理信息化建設(shè)已經(jīng)成為現(xiàn)實。利用現(xiàn)代計算機技術(shù),對大壩安全運行狀態(tài)進(jìn)行監(jiān)測,同時,進(jìn)行數(shù)據(jù)處理、分析。通過搭建信息化平臺,可降低水庫安全管理工作的難度,遠(yuǎn)程實現(xiàn)大壩管控。目前,已有較多的水利工程搭建了信息化管理平臺,如:瑪納斯河流域灌區(qū)、都江堰灌區(qū)、黃壁莊水庫、淇河盤石頭水庫、雙塔水庫[1]等。各項水利樞紐在近期改造、建設(shè)過程中,均引入了“信息化”、“智慧化”監(jiān)測系統(tǒng),建設(shè)完成后,實現(xiàn)了水利工程安全自動化監(jiān)測,險情預(yù)警等功能,有效保障了水利工程的正常運行[2-4]。針對目前水電站大壩安全監(jiān)測存在數(shù)據(jù)不能實時計算分析、展示,長期運行產(chǎn)生大量數(shù)據(jù)難以管理且需要投入大量人力計算分析等問題,設(shè)計基于Flask框架的大壩監(jiān)測數(shù)據(jù)自動化處理系統(tǒng),為大壩監(jiān)測數(shù)據(jù)分析提供接口,實現(xiàn)數(shù)據(jù)查詢、計算、繪圖、實時監(jiān)控及數(shù)據(jù)、圖形遠(yuǎn)程展示等功能。
Flask 屬 于 微 框 架(micro-framework),基 于Python開發(fā)并且依賴jinja2模板和Werkzeug WSGI服務(wù),框架十分輕量,更新時依賴比較少,數(shù)據(jù)處理速度快。Werkzeug是Socket服務(wù)端,用于接收HTTP請求并對請求進(jìn)行預(yù)處理,然后觸發(fā)Flask框架。交互的內(nèi)容比較簡單時只需要開發(fā)人員基于Flask框架提供的功能對請求進(jìn)行相應(yīng)的處理,并返回給用戶;如果返回的數(shù)據(jù)內(nèi)容結(jié)構(gòu)復(fù)雜程度高,需要通過jinja2模板兩步操作實現(xiàn)數(shù)據(jù)的傳送即:先將融合了數(shù)據(jù)的模板預(yù)先渲染處理,接著將渲染完成的字符串返回給瀏覽器[5,6]。
從Web程序的一般流程來看,當(dāng)客戶端想要獲取動態(tài)資源時,這個時候就會發(fā)起一個HTTP請求(比如用瀏覽器訪問一個URL),此時Web應(yīng)用程序就會在服務(wù)器后臺進(jìn)行相應(yīng)的業(yè)務(wù)處理(比如對數(shù)據(jù)庫進(jìn)行操作或是進(jìn)行一些計算操作等),取出用戶需要的數(shù)據(jù),生成相應(yīng)的HTTP響應(yīng)(如果訪問的是靜態(tài)資源 ,服務(wù)器則會直接返回用戶所需的資源,不會進(jìn)行業(yè)務(wù)處理)。整個處理工程如圖1所示。
圖1 處理流程圖
在實際的應(yīng)用中,不同的請求可能會調(diào)用相同的處理邏輯。這里有著相同業(yè)務(wù)處理邏輯的HTTP請求可以用同一類URL來標(biāo)識,接著在后臺定義一個獲取URL函數(shù),用來獲取請求中相應(yīng)的數(shù)據(jù),此外還需要建立URL和函數(shù)之間的一一對應(yīng)關(guān)系。這就是Web開發(fā)中所謂的路由分發(fā),如圖 2所示:
圖2 多相同請求處理流程
HTML (Hyper Text Markup Language)指的是超文本標(biāo)記語言,瀏覽器網(wǎng)頁上所有的顯示內(nèi)容都是通過一系列HTML標(biāo)簽進(jìn)行描述。它包括一系列標(biāo)簽如文本段落標(biāo)簽(<p>)、圖片標(biāo)簽(<img>)、標(biāo)題標(biāo)簽(<h1><h2><h3><h4>)等。通過這些標(biāo)簽可以將網(wǎng)絡(luò)上的文檔格式統(tǒng)一,使分散的Internet資源連接為一個邏輯整體,被認(rèn)為是互聯(lián)網(wǎng)的核心技術(shù)之一。HTML5是最新一代的HTML語言標(biāo)準(zhǔn),語法特征更加明顯,對原有的功能進(jìn)行調(diào)整和修改,通過對新需求的分析,融合進(jìn)了其他的標(biāo)簽,如畫布標(biāo)簽(<canvas>),本文監(jiān)測數(shù)據(jù)的顯示便是基于畫布標(biāo)簽,這一標(biāo)準(zhǔn)為所有開發(fā)人員提供標(biāo)準(zhǔn)化工作基礎(chǔ)。此外,HTML5提高了網(wǎng)絡(luò)服務(wù)應(yīng)用的輕便性和獨立性,減少了插件依賴。
系統(tǒng)的軟件設(shè)計采用B/S架構(gòu),B/S是一種以Web技術(shù)為基礎(chǔ)的新型的MIS(Management Information Systems)系統(tǒng)平臺模式?;贑/S架構(gòu)用戶需要在本地計算機上安裝專門的客戶端程序,軟件分布功能弱,無法實現(xiàn)快速部署安裝和配置。B/S架構(gòu)優(yōu)點在于無需安裝應(yīng)用程序,而只需安裝通用的瀏覽器軟件;安裝過程更加簡便、網(wǎng)絡(luò)結(jié)構(gòu)更加靈活。
考慮到系統(tǒng)的移植性和跨平臺性,本系統(tǒng)選擇IntelliJ IDEA的J2EE( Java2 Platform Enterprise Edition)平臺,使用IDEA作為B/S模式的開發(fā)工具。J2EE是一個適用于企業(yè)級計算的支持多層、分布式應(yīng)用的平臺,它具有安全性、可移植性、健壯性、多層次結(jié)構(gòu)等特點,能夠通過JDBC方便連接各類數(shù)據(jù)庫,調(diào)用各類接口。根據(jù)目前網(wǎng)頁平臺制作的流程,選用開發(fā)環(huán)境及開發(fā)工具如表 1所示。
表1 開發(fā)環(huán)境表
根據(jù)大壩監(jiān)測數(shù)據(jù)自動化處理系統(tǒng)的應(yīng)用需求,通過對需求分析和業(yè)務(wù)設(shè)計分析,進(jìn)行全方位闡述系統(tǒng)的功能設(shè)計。
3.1.1 數(shù)據(jù)來源
某實際工程在建設(shè)早期沒有在壩體內(nèi)部安裝監(jiān)測儀器,隨著工程運行時間的不斷增加,運行管理人員通過人工觀測方式來掌握工程的運行狀態(tài)已逐漸顯得力不從心。因此逐步轉(zhuǎn)向自動化監(jiān)測。從工程自動化監(jiān)測改造之初,通過對監(jiān)測儀器的布置,接口的設(shè)置,數(shù)據(jù)存儲格式設(shè)計,前臺頁面功能設(shè)計等實現(xiàn)監(jiān)測數(shù)據(jù)采集、存儲、處理及可視化展示。
3.1.2 數(shù)據(jù)存儲
傳統(tǒng)的數(shù)據(jù)分析是人工在Excel軟件中對數(shù)據(jù)進(jìn)行計算分析繪圖處理,在多張表格之間進(jìn)行數(shù)據(jù)復(fù)制粘貼與索引,相當(dāng)麻煩而且容易出錯。
本文采用的網(wǎng)頁端讀取數(shù)據(jù),不涉及到人工對數(shù)據(jù)的處理。在監(jiān)測儀器的埋設(shè)過程中,將監(jiān)測儀器的接口與數(shù)據(jù)讀取程序的接口進(jìn)行對接,遠(yuǎn)程設(shè)置儀器的數(shù)據(jù)讀取間隔時間,監(jiān)測儀器讀取完監(jiān)測數(shù)據(jù)后,將讀取的監(jiān)測數(shù)據(jù)以預(yù)先擬定好的數(shù)據(jù)結(jié)構(gòu)以文本文件(.txt)形式存放到計算機相應(yīng)位置。首次讀取數(shù)據(jù)時將生成相應(yīng)名稱的數(shù)據(jù)文件,當(dāng)不斷讀取新數(shù)據(jù)時程序會將最新的數(shù)據(jù)不斷追加到相應(yīng)的數(shù)據(jù)文件中生成最新數(shù)據(jù)文件[7,8]。
本系統(tǒng)不涉及后臺數(shù)據(jù)庫,開發(fā)周期簡短,便捷迅速。數(shù)據(jù)讀取首先要從本地讀取txt文件,然后將讀取出的字符進(jìn)行處理,生成對應(yīng)字符的數(shù)值,然后做進(jìn)一步處理,圖3為文件讀取流程。
圖3 文件讀取流程
監(jiān)測數(shù)據(jù)是評價大壩運行狀況的可靠依據(jù),實時并能夠遠(yuǎn)程在線展示監(jiān)測數(shù)據(jù)意義十分重要。依據(jù)監(jiān)測數(shù)據(jù)的時間序列將監(jiān)測數(shù)據(jù)顯示在表格內(nèi),具體步驟為:把讀取完成后截取的數(shù)據(jù)由字符轉(zhuǎn)變成數(shù)值;遍歷轉(zhuǎn)換完成后的列表;將列表里的數(shù)值與時間和測控單元號進(jìn)行字符拼接;將拼接完成的字符添加到表格內(nèi)形成規(guī)整、可視化的數(shù)據(jù)格式。圖4為監(jiān)測數(shù)據(jù)在頁面上的展示圖。
圖形展示相對比數(shù)據(jù)展示更加直觀,更能把握監(jiān)測數(shù)據(jù)的走勢,這對于掌握大壩運行狀況十分重要。
3.4.1 單測點全時段顯示
大壩的各壩段并不是單獨獨立存在的,一個壩段的變化反應(yīng)的是壩體整體的變化,因此單個測點的全時段監(jiān)測數(shù)據(jù)對于掌握單個監(jiān)測儀器所對應(yīng)的位置處數(shù)據(jù)變化至關(guān)重要,數(shù)據(jù)的時間前后對比對掌握大壩整體運行狀態(tài)十分重要。圖5為單測點全時段的監(jiān)測數(shù)據(jù)時程圖。
圖4 監(jiān)測數(shù)據(jù)
圖5 單測點全時段監(jiān)測數(shù)據(jù)
3.4.2 多測點全時段顯示
單測點監(jiān)測數(shù)據(jù)的顯示只能反應(yīng)當(dāng)前監(jiān)測儀器處的相關(guān)監(jiān)測數(shù)據(jù)變化,我們需要多個儀器進(jìn)行空間對比才能更加直觀的得出監(jiān)測數(shù)據(jù)的變化進(jìn)而得出壩體運行狀況,例如順河向位移分析,我們需要將所有壩段內(nèi)同一高程的監(jiān)測儀器所監(jiān)測得到的數(shù)據(jù)進(jìn)行對比,這樣才能反應(yīng)出大壩順河向的整體位移情況,圖6為多測點全時段監(jiān)測數(shù)據(jù)圖。
圖6 多測點全時段監(jiān)測數(shù)據(jù)
3.4.3 報警信息展示
展示監(jiān)測數(shù)據(jù)的目的是為了得到大壩運行的狀況,大壩良好的運行狀況對應(yīng)著合理的監(jiān)測數(shù)據(jù)范圍??梢灶A(yù)先設(shè)置好大壩運行良好的監(jiān)測數(shù)據(jù)范圍,通過自動化的數(shù)據(jù)計算判斷出哪些數(shù)據(jù)是異?;蛘叱瑯?biāo),進(jìn)而自動判斷出壩體的監(jiān)測儀器出現(xiàn)問題或者大壩的某個部位出現(xiàn)問題,然后做出相應(yīng)處理措施。
系統(tǒng)采用的是Flask框架開發(fā)模式,既不需要上傳數(shù)據(jù),保證了數(shù)據(jù)的可靠性、安全性,又極大的提高了數(shù)據(jù)的處理效率,簡化了管理的復(fù)雜度,節(jié)省了大量人力物力成本;同時數(shù)據(jù)的實時展示、警報設(shè)置便于對大壩的安全狀況做出更加客觀、專業(yè)的評價,實現(xiàn)了監(jiān)測數(shù)據(jù)的可視化及大壩安全監(jiān)測管理的信息化和網(wǎng)絡(luò)化。但是對于不同廠站間的數(shù)據(jù)借鑒、對比與傳輸和整個流域內(nèi)工程監(jiān)測數(shù)據(jù)的智能管控還難以實現(xiàn),數(shù)據(jù)孤島現(xiàn)象等還有待進(jìn)一步研究。