楊 波,孫萬蓉,馮戰鵬,李京京,薛 丹
(西安電子科技大學電子工程學院,陜西 西安 710071)
電力工業管理包括變電管理、調度管理、線路管理等諸多方面,其中,變電站管理是電力管理工作中的重要環節。其涉及內容廣泛、工作量大,特別是對工作的準確性要求較高。經過長期運營實踐,變電站管理工作逐步形成了一套成熟的手工管理作業體系。然而,隨著國民經濟的不斷發展,城市對供電量的需求逐步增大,以及城市規劃的復雜化,電網結構越來越復雜,需要實時傳送地信息量也越來越大,這使得長期的手工管理模式在實施過程中出現了越來越多的問題:需要提供的數據量大、不能形成良好快速的數據存取方式、不能進行實時可靠地數據監測、經常出現漏記漏報的現象、沒有實現工控自動化、不能靈活的讀取想要的數據、同時保密性差,不利于變電站長期的運營與維護[1]。為彌補傳統管理模式的不足,本文旨在研究一套以防火、防盜為主,基于B/S模式的電力電纜溝道監測系統管理軟件。
電力電纜溝道監測系統管理軟件系統結構如圖1所示。
在監測系統管理軟件中,用戶可以通過數據傳輸模塊的配置界面對工作站上位機進行控制,及時快速地得到所需的數據。同時,以Web方式把溝道的運行狀態信息、傳感器信息以及超限報警數據發布呈現給授權管理人員和供電局的領導。系統設計的管理界面層次清晰,可將整個溝道的實時信息完整地呈現在瀏覽器上。以全自動化的管理模式取代了傳統的手工管理模式。

圖1 管理軟件系統結構圖
由圖1可知,實時通信模塊首先將從工作站上位機處得到的溝道數據存入數據庫服務器,當系統管理中心的工作人員通過瀏覽器請求所需頁面信息時,便會請求Web服務器訪問數據庫服務器讀取所需的信息,并將信息返回至管理中心瀏覽器的頁面端。
數據傳輸模塊主要功能:通過TCP/IP協議[2]與工作站中的上位機進行通信,得到不同溝道中的不同測點和傳感器的實時數據,再將獲得的實時數據存儲至數據庫服務器中,待前端系統使用。
通信部分采用Java的Socket網絡通信函數來實現。所謂Socket[3]通常也稱為“套接字”,用于描述IP地址和端口,是一個通信鏈的句柄。Socket有兩種主要的操作方式:面向連接的和無連接的。系統模塊采用面向連接的TCP傳輸方式。
在通信過程中,系統通過啟動一次線程建立一次TCP連接,由于工作站上位機在建立一次TCP連接之后會按照系統的采集時間要求不斷地向服務器傳送數據,直到一次數據傳輸完后,便會立即斷開原有的連接,之后會重新進行一次TCP通信連接,再傳輸溝道中全新的數據。一般情況下TCP通信連接方式默認為短連接方式,即一次連接,一收一發,一次斷開的通信。所以,在實際的開發過程中,系統采用基于TCP的Socket長連接的方式實現多次連接功能。這樣,服務器永遠不用主動斷開通信,僅由工作站上位機來決定是斷開還是連接。
所謂長連接,就是客戶端與服務器端先建立通信連接,服務器連接建立后不斷開,然后再進行報文的發送與接收。
為體現系統設計人性化的特點,數據傳輸模塊不再只是進行單純的、重復性的數據接收工作,而是根據管理人員工作需要得到的數據,更大程度上提高模塊的傳輸性能。因此,根據實際工程的需要,設計了如圖2所示的傳輸界面。

圖2 系統傳輸界面
在通信過程中,模塊作為服務器,需要制定服務器端程序的端口號以及填寫本端的IP地址,以保證網絡通信的正常進行。采集間隔用以控制工作站上位機每隔多長時間按要求向服務器發送一次溝道數據,單位s。ID號對應著監測的所有溝道的編號,測點選擇則對應著可以選擇每個溝道中的不同測點。通道選擇分為雙通道傳輸、模擬通道傳輸以及數字通道傳輸。雙通道傳輸表示可以同時傳送模擬通道數據和數字通道數據。在本監測系統中,要傳輸的溫度值、液位值、煙霧濃度值、可燃氣體濃度值、有毒氣體濃度值、二氧化碳濃度值,這些都屬于通過模擬通道上傳的數據,而入侵監測則屬于通過數字通道上傳的數據。
圖2是運行時的傳輸界面。每點擊一次服務器按鈕,建立一次TCP連接。設置本服務器端程序的端口號為5555,本機IP地址為192.186.0.1,連接IP地址為291.245.77.243的工作站上位機,得到2號溝道的3號測點、雙向傳輸通道的數據,并且每次數據傳輸的間隔為3 s。最后將接收的數據存入數據庫中,以便上層管理軟件的使用。當工作站上位機完成一次傳輸任務后便會斷開與主機的連接,直到再有新的數據產生,便會自動與服務器進行連接,重新進行數據的傳輸工作。
設計一套Web前端軟件,不僅需要其提供靜態網頁訪問功能,還應具有良好的交互能力、后臺數據庫訪問能力、提供實時更新數據的能力,以及強大的管理能力、動態網頁服務功能。
系統的上層管理軟件部分采用JSP Model2的設計架構[4],即 JSP+JavaBean+DataBase。如圖 3 所示。JavaBean負責對數據庫的讀寫操作,Servlet則用于控制各種事務的分派,JSP負責最終頁面的顯示。

圖3 JSP Model2結構圖
使用JSP Model2架構的交互過程為:用戶首先通過瀏覽器向Web應用中的Servlet發送請求,Servlet收到請求后調用JavaBean對象的方法,JavaBean對象返回對數據庫的操作結果,Servlet調用合適的JSP,并將從數據庫中取得的數據寫入JSP頁面中,最后通過響應消息回送至瀏覽器端,最終將Web頁面呈現在用戶面前。其中,Servlet和JSP組成了整個Web應用。
這樣,整個管理軟件被分為3層,即展示層、業務邏輯層以及數據庫訪問層。展示層,即JSP層,主要是與用戶進行智能交互,將整個管理軟件系統頁面展示在用戶面前。業務邏輯層,即JavaBean層,主要用于對部分業務邏輯進行封裝,以及對數據庫讀取操作的封裝。數據庫訪問層,即DataBase層,主要用于直接對數據庫進行操作,輔助JavaBean層完成對數據庫的讀取操作。
JSP Model2架構在Web開發中的使用,提高了系統的模塊化程度,適用于大型系統的開發,使開發的軟件系統更容易管理與維護。但是,隨著模塊化程度的提高,對開發人員技術的挑戰也變得越來越大。
整個電纜溝道監測系統由3部分組成:信息采集編碼層、數據打包通信層和傳輸管理層。信息采集層由溝道中監測信息的傳感器組成,主要負責采集溝道中各節點傳感器的原始數據以及對數據的編碼并通過ModBus協議[5]傳送至數據打包通信層,采集的數據包括:溫度值、液位值、是否有入侵、煙霧濃度、可燃氣體濃度、有毒氣體濃度和二氧化碳濃度。數據打包傳輸層在接收到采集層的編碼數據后,會按既定的規則對編碼數據進行打包,并按照TCP/IP網絡通信協議傳送至系統管理層的數據庫服務器中,以供上層管理軟件統一管理與展示。整個電纜溝道監測系統的工作流程圖如圖4所示。

圖4 整個電纜溝道監測系統流程圖
上層管理軟件主要任務是:從數據庫讀取通過數據傳輸模塊存入的數據,并進行實時數據顯示、歷史數據顯示、按時間查詢以及數據報表的導出、歷史數據曲線的繪制、系統登錄權限的管理、系統設備的統一管理。
(1)實時數據顯示模塊。對溝道內部的各種數據進行實時監測,包括:溫度、液位、入侵、煙霧、可燃氣體、有毒氣體、二氧化碳等,根據不同時間間隔的要求刷新Web頁面,讀取最新最準確的及時數據。同時對超限數據進行特殊標定,提醒管理人員何時、何地出現了異常,便于及時排查處理。
(2)歷史數據查詢模塊。顯示溝道傳感器上傳的所有歷史數據,并且提供按日期查詢的功能,以便管理人員對特定日期內溝道數據的查詢。
(3)歷史數據曲線繪制模塊。將特定日期內某個時間段的采集數據進行曲線繪制,方便管理人員了解特定時間段內溝道內部某項指標的走勢情況。
(4)系統權限管理模塊。為維護系統的安全性,只有授權注冊的用戶才能登錄此系統,否則,其他人員一律視為非法用戶,無權登錄系統。
(5)系統設備管理模塊。對溝道內部的各種不同型號的、不同功能的傳感器進行管理。方便管理人員對設備的統一管理與維護。
上層管理軟件采用B/S的開發模式,客戶端操作系統采用Windows XP系統,瀏覽器推薦使用IE8.0。Web服務器采用Apache Tomcat5.5。數據庫服務器采用MySQL5.0數據庫系統。
該模塊是為了提高系統的安全性能而設計的。提供了系統管理人員的登錄功能。只有授權登錄系統的用戶才能進入該管理系統,查看系統信息。系統在設計、使用之初,會首先設定一個管理員,自動默認擁有該管理系統的登錄權限,即自動設定用戶名和密碼,此時只有管理員才有權限登錄系統,如圖5所示。

圖5 系統登錄頁面
本登錄模塊采用了連接池技術[6],使用數據庫連接類 DbUtil.java完成數據庫的連接,用 UserManager.java封裝了關于數據庫用戶管理表的操作。若非法用戶登錄,便會顯示錯誤信息重新定向至登錄頁面,若管理人員登錄,則將用戶登錄信息存放至Session對象中,用于多頁面會話狀態的維持。
測點歷史數據顯示頁面顯示了某一溝道中某個測點的所有傳感器監測到的數據信息,所有超過設定閾值的數據都將被視為非法數據,使用紅色進行報警標記。如圖6所示。此外,該頁面還提供了按時間查詢數據的功能,管理人員可以根據需要選擇查看不同時間段的數據信息。同時考慮到數據信息的可移動性,系統還提供了關于數據的Excel表格導出的功能,這樣,便可將數據拷貝至任何需要的地方。

圖6 歷史數據顯示頁面
此頁面主要完成對數據庫中測點數據表的讀取操作,將對數據庫的操作代碼封裝在Data_infoManager.java中,將歷史數據全部顯示并產生分頁效果的sql語句為:

其中,data為數據庫中數據表的名稱;pageNo為當前顯示的頁碼號;pageSize為每一頁顯示的數據個數。
此模塊主要是將某一個時間段內的監測數據按照不同的類型繪制出相應的曲線圖。首先選擇溝道編號,再在具體的溝道編號下選擇具體的測點,在確定好具體的溝道與測點之后,便可進入如圖7所示的頁面。由于監測的數據信息當中,除了入侵數據是由數字通道傳入的以外,其他監測數據都是由模擬通道輸入的,所以,本管理軟件只繪制模擬曲線,頁面中曲線類型的選擇不包括入侵數據的選項。

圖7 曲線圖顯示頁面
此模塊主要使用jfreechart組件進行曲線圖的繪制[7],完全使用JSP頁面中的Java語言編寫。在JSP頁面通過Java語言直接訪問JavaBean組件讀取數據庫,得到歷史數據,最后繪制數據曲線。同時,需要將繪制曲線的相關jar包引入平臺。本系統開發使用的包為:jfreechart-1.0.11.jar,jcommon -1.0.14.jar。
測點實時數據顯示模塊主要體現了此管理系統的實時性。此模塊將溝道中測點的實時數據信息進行顯示,系統設定每隔5 s進行一次頁面的刷新,即訪問一次數據庫服務器,得到最新的數據信息,顯示在管理頁面上,使溝道管理人員能夠隨時得到準確的溝道信息,把溝道的安全隱患消滅在萌芽期。如圖8所示。此頁面中,若測得數據在安全閾值范圍之內,則數據顯示綠色表示指標正常,若顯示紅色則表示出現異常,需要進一步的排查處理。

圖8 實時數據顯示頁面
為了符合系統監測實時性能的要求,需要對數據庫中新增的測點數據進行同步的顯示,即展示Web頁面的動態功能。為此,本模塊采用jQuery框架來完成[8]。JSP頁面通過jQuery框架輔助的js文件按照特定的時間間隔訪問讀取數據庫的servlet,進行JSP頁面顯示數據的更新,形成動態的頁面效果。
同時,為體現系統實時性這一特點,需要協調好數據傳輸層接收數據的時間間隔與js文件訪問servlet的時間間隔,以便使最新更新的數據及時顯示在頁面中。
此模塊主要是用于統一管理擁有此系統登錄權限的人員。所有需要登錄進入此系統的人員都需要在此注冊信息,才能擁有登錄權限。如圖9所示。此頁面為已經注冊的用戶顯示頁面。可以通過頁面中的添加、刪除以及修改按鈕對注冊人員的信息進行必要的修改,保證整個管理系統的安全性。

圖9 用戶管理頁面
此模塊主要是對溝道中所有測點的傳感器進行統一的管理。包括傳感器的設備編號、設備型號、所屬的測點編碼、功能名稱、傳感器所在位置的IP編號、傳感器的輸出端口、備注說明以及采集間隔。如圖10所示。

圖10 設備管理頁面
本軟件系統采用Java技術及JSP技術實現了基于Web的電力電纜溝道監測系統的管理模塊。該系統模塊不僅實現了溝道管理的工控自動化,而且能更快、更及時得到溝道內部的實時數據與報警數據,改進了傳統的管理模式,提高了管理效率。
[1]徐曉晨.變電運行管理系統研發[D].鄭州:鄭州大學,2003.
[2]特南鮑姆.計算機網絡[M].潘愛民,譯.北京:清華大學出版社,2004.
[3]李芝興.Java程序設計之網絡編程[M].北京:清華大學出版社,2006.
[4]賈素玲,王強,張龍.JSP應用開發技術[M].北京:清華大學出版社,2007.
[5]周立功.ARM嵌入式系統軟件開發實例[M].北京:北京航空航天大學出版社,2006.
[6]王曉路,盧建軍,馬莉.基于JAVA的連接池優化Web數據庫連接[J].西安電子科技大學學報,2005,32(2):228 -231.
[7]朱賀新,穆榮,盧建軍.JFreeChart的應用開發與改進[J].西安電子科技大學學報,2008,35(4):789-792.
[8]比伯奧特,卡茨.jQuery實戰[M].陳寧,譯.北京:人民郵電出版社,2009.