童世華,柳 盼
(1.重慶電子工程職業學院 計算機學院,重慶 401331;2.重慶郵電大學 自動化學院,重慶 400065)
電力行業是我國經濟發展的重要基礎行業,也是技術和裝備密集型行業[1]。電力監控系統是整個電力系統的運行中樞,對于保障電力系統的安全、穩定運行和電力可靠供應具有重要意義[2]。傳統的電力監控軟件運行于PC機端,需要投入大量的人力、物力,而且靈活性也不足[3]。
目前,對電力系統的遠程監控已有很多研究,然而對電力監控系統移動化的研究還遠遠不夠,特別是在通信協議、用戶權限管理以及遠程控制等方面研究得不多[4-8]。筆者結合當前電力監控系統移動化和智能電網無人值守的實際需求,設計了一種基于Android的電力監控系統移動終端軟件,實現移動端的電力系統監控,可廣泛應用于發電、輸電、變電、配電、用電等現場作業場合,實時監控電力設備的運行情況,增強對出現意外情況的快速反應能力,提升電力信息化應用水平,為電力可靠性提供更加有力的保障[9-11]。
基于Android平臺的電力監控系統移動終端是通過植入電力監控系統軟件實現移動監控的,用戶可在授權范圍內隨時隨地對電站進行數據監視、信息查詢、事故報告、技術分析、服務決策、電站遠程管理和控制。本文設計的電力監控系統移動終端軟件系統架構如圖1所示。

圖1 電力監控系統移動終端軟件系統架構圖
該電力監控系統移動終端軟件系統由Android終端、網絡層以及服務端3部分構成。Android移動終端主要提供人性化的顯示和操作界面,用戶可通過移動終端向服務端下發指令,以完成對電站設備的監控和管理;網絡層主要負責終端與服務端間的通信,用戶下發的指令以及服務端設備傳輸的數據都需經過網絡傳遞,可以通過3G、4G等無線運營網和無線局域網進行通信;服務端主要完成對電站系統數據的采集、計算和信息存儲,作為移動終端的數據源和命令轉發站。為實現與移動終端通信,還需擁有通信網關或通信管理機等通信設備。
為了滿足電力監控系統移動終端軟件的穩定性、兼容性需求和系統軟件功能的擴展需要,減少各個模塊和組件、各個層之間的耦合,軟件系統設計采用目前比較流行的MVC架構[12-13],各部分關系和功能如圖2所示。MVC模式主要具備低耦合性、高重用性和高可維護性的優勢。

圖2 MVC組件類型關系和功能圖

圖3 電力監控系統移動終端軟件框架圖
電力監控系統移動終端軟件框架采用“高內聚、低耦合”原則,各個層又由一些功能模塊組成(見圖3),而每個功能模塊盡量獨立地完成各自的功能,減少與其他模塊之間的耦合度。通信層主要進行電力監控系統移動終端軟件的網絡通信及數據處理。鑒于通信數據所占比重比較大、業務處理復雜,因而單獨設置。表現層主要功能是把要發送的數據交給發送模塊,顯示從數據層獲取的數據。
長連接模塊負責接收從數據層中獲得的數據,然后交給處理接收數據的模塊進行處理,這個模塊再把信息存儲到內存中,數據層再通知表現層更新數據。電力監控系統移動終端軟件界面層需要使用列表來展示如遙測、遙信電量、歷史事件等數據,這些列表所展示的數據都取自數據層中數據庫和與服務器通信的實時數據。
電力監控系統移動終端軟件總體功能如圖4所示。

圖4 系統功能結構圖
用戶界面包括登錄界面、主界面、運行參數、運行畫面等,提供良好的用戶交互。
用戶管理模塊包括用戶權限管理和用戶登錄與認證。用戶權限管理功能主要把用戶分為初級用戶、中級用戶和高級用戶。用戶級別不同,操作權限也不同。用戶登錄與認證功能主要是認證用戶的合法性。
配置文件管理模塊包括配置文件遠程獲取和配置文件解析。配置文件的遠程獲取主要是從服務器端獲點表、圖元、報表等取配置文件;配置文件解析主要是在移動終端進行配置文件的解析。
實時報警模塊的功能是及時推送服務器端的異常信息到應用終端。
監控功能模塊包括運行參數模塊、運行畫面、事件查詢等,完成遙測、遙信、電量等數據的監控,以及歷史事件的查詢、報表查看等功能。
自適應布局模塊主要是解決軟件適應不同屏幕大小的問題。用戶設置模塊包含有心跳周期、流量統計、切換廠站、恒亮設置與退出登錄。
數據服務器與移動終端采用問答式通信。MLP協議作為應用層協議,采用UDP方式傳輸。移動終端與認證服務器認證通過后即獲取訪問權限,建立與數據服務器的連接。以后,移動終端發出“心跳”報文,數據服務器給予應答。若移動終端發送請求報文,數據服務器匹配請求報文,發送對應的數據。通信建立后,若在設定時間內未收到服務器應答,則重發,若連續超過5幀沒有應答,則判斷與監控系統斷開連接,需重新開始建立通信。數據服務器收到故障信息時,主動向移動終端上傳數據,報告當前的狀況。
移動MLP協議報文由起始字節、幀長度、幀類型、功能碼、幀序號和功能碼內容組成。數據幀起始位固定為0x68,占1個字節;幀長度占2個字節;一個數據幀最大長度不能超過1 400字節;幀類型分為詢問幀與應答幀,0表示詢問幀,1表示回復應答幀,各占1個字節長度;不同功能碼攜帶不同功能碼內容,占1個字節長度,功能碼有256個(0—255),分別代表不同信息用途;幀序號占2個字節長度。在通信過程中,通信雙方都可以發起通信,每一個發起通信幀都需要有應答幀,幀序號為一個通信過程中需要保存的信息,一個完整的通信一問一答,幀序號加1,手機APP端和服務器端都可以發起通信,所以各自保留一個自己的幀序號;功能碼內容字節長度與功能碼有關,且最大不超過1 396字節,所以有些功能碼需要考慮多幀傳送的情況。
電力監控系統移動終端軟件功能界面設計是基于功能需求,按照“用戶登錄界面設計—主界面設計—子功能界面設計—各功能模塊的編程實現”進行。終端軟件界面布局采用XML語言的方式定義,該方式將布局界面的代碼和邏輯控制的Java代碼分離開來,界面設計與各子功能模塊相輔相成,共同實現電力監控軟件的功能。
登錄界面主要用到了線性布局來實現整個界面的排版。其中文本框顯示應用軟件名稱和版權所有者信息;下拉框選擇不同發電廠與變電站;編輯框輸入用戶名和密碼;按鈕Button響應用戶登錄點擊以及自定義進度條提示用戶正在加載。
主界面主要為電力監控系統的各個具體功能模塊提供接口。主界面的設計采用流行的“九宮格”設計,采用相對布局和線性布局相互嵌套來實現整個界面的排版,由圖標按鈕顯示9大功能圖標,文本框顯示功能名稱,圖片控件實現系統設置。運行參數界面主要用相對布局實現整個界面的排版,相對布局和線性布局交叉使用并相互嵌套,下拉框選擇不同廠站,文本框顯示運行參數中遙測、遙信和電量的名稱,自定義列表視圖實現表格的動態數據顯示。
電力監控領域對異常事件的實時性監控要求較高,因而在電力監控系統的設計中要充分考慮如何處理異常事件的實時報警問題。實時報警功能的實現包含服務器端實現和客戶端實現兩部分。實時報警模塊的信息推送采用極光推送的方式實現(見圖5)。當發生異常事件時及時以聲音、振動等信號向操作人員告警,并在當前頁面彈出告警事件的詳細信息,包括具體廠站、設備、異常事件類型以及異常事件發生時間。

圖5 極光推送原理圖
當用戶首次登錄客戶端時,系統會提示用戶下載配置文件。為了保證數據的正確性,需要采用一種可靠的TCP傳輸協議,防止傳輸過程中丟失數據。首先,創建一個流式套接,并對該套接字進行綁定,然后向服務器方發送連接請求。連接成功后,首先接收服務器發送的文件信息,文件信息被接收成功后就開始數據的接收[14]。配置文件的解析方法是逐行讀入,采用正則表達式匹配每行數據信息,直到檢測到某行為空即結束解析過程。解析配置文件獲取的數據分別按照配置文件的類別分為點表、圖元、報表等文件,分別存儲到對象數組,方便進一步使用解析數據。
系統中,不同的用戶有不同的操作權限,用戶的權限管理是基于后臺服務器端中權限管理結構[15]。如果用戶在移動終端登錄系統連續待機超過10 min,系統會提示已經離線,需要重新登錄才能進行操作。對于遺失的設備終端,可在服務器端注銷設備訪問權限。在電力監控系統移動終端軟件中,用戶的身份是通過IMEI(國際移動設備身份碼,是手機的唯一識別號碼)和賬號的方式進行認證。電力監控系統中采用無重復的賬號作為用戶的唯一標識,每個賬號對應指定的用戶名和密碼。用戶登錄系統后,后臺服務器會綁定IMEI和賬號,并且一個賬號只能有1臺設備登錄。為了滿足軟件安全性的要求,本文增加了RC4安全加密的算法,在首次登錄系統時,終端軟件將用戶名和密碼采用加密的方式發送至服務器端,服務器端對密文進行解析。用戶登錄系統時,通過后臺數據中心驗證后方可進入系統。
監控功能模塊包含運行參數功能、運行畫面功能、事件查詢功能、報表管理功能、參數設置功能、操作控制功能、設備管理功能、視頻監控功能和遠程服務功能。
(1) 運行參數功能。采用表格的方式實時顯示各廠站的重要運行參數和設備狀態,用戶可通過對電力設備和數據量(遙測、遙信等)的組合切換對該電力設備的電力參數進行選擇查看。用戶能夠實時、直觀地監視廠站端的電力設備運行情況。采用定時器方式向服務器端發送數據請求幀進行數據的更新,服務器端響應數據請求,反饋請求幀對應的數據信息,客戶端根據規約解析數據,顯示在界面中。
(2) 運行畫面功能。實時顯示電站主接線圖、監控圖、關鍵測點統計負荷、電壓頻率合格率、電能質量分析和電量等曲線圖、棒圖或餅圖。在登錄軟件驗證之后,對圖元配置文件進行了解析。當用戶打開運行畫面功能之后,則根據此圖元配置文件解析得到的信息繪制出靜態的監控畫面。此時的監控畫面顯示了電站現場的主接線圖等靜態信息。此后,用戶端向服務器端定時發送圖元數據請求信息,服務器端反饋回圖元數據,動態顯示在圖元界面上。
(3) 事件查詢功能。包含查詢歷史事件和在線獲取事件[15]。查詢歷史事件功能的實現,是用戶進入事件查詢界面后,通過選擇設備類型、事件類型以及日期,從SQLite本地數據庫中匹配對應的電力設備事件信息,并將具體的信息顯示在界面上。在線獲取事件功能的實現,是用戶進入終端應用程序的事件查詢界面后,在SQLite數據庫中未包含需要查詢的事件信息,終端應用向服務器發送事件查詢請求幀,服務器反饋需要查詢的事件信息,并將事件信息存儲于SQLite數據庫。輸入查詢條件后,先查詢記錄表。若查到,則說明本地數據庫包含有事件信息,直接讀取本地數據庫的事件數據;如果未查到,則向服務器發送數據請求,在線獲取事件。
(4) 報表管理功能。提供了隨時隨地調閱、分析各電站重要電量、電能質量、能耗成本和生產管理報表,協助電站運行管理改進和輔助決策。報表管理支持報表分組,支持表格和曲線兩種數據顯示方式。
(5) 參數設置功能。是對保護定值設置、定值區的切換和軟壓板的投退,支持在線的保護定值及控制參數等的顯示和經授權的在線修改。在參數設置界面中,設置修改標志位管理定制修改,當用戶權限通過后,可以向服務器發送定值修改報文,服務器響應修改報文請求,在移動終端界面上更新修改后的數據。
(6) 操作控制功能。支持經授權的在線操作控制,如:斷路器的倒閘操作、電動隔離開關的倒閘操作、發電機的開機/停機操作,以及發電機給定負荷的調整,對電站電源、風機、燈光等的控制。
(7) 設備管理功能。支持設備在線故障診斷、遠程維護、設備臺賬管理、設備檢修試驗管理。當電力設備發生故障時,進入移動終端設備管理功能界面,根據不同的設備類型向服務器端查詢當前設備的故障類型及其具體的故障信息和處理方法等。工作人員可以根據反饋回的處理信息,對設備進行維修、處理。
(8) 視頻監控功能。支持電站設備和環境的在線視頻遠程監控、移動偵測報警,用于電站的安全管理和無人值班管理。Android網絡庫SDK用來與設備建立連接,進行音視頻解碼,實時預覽和回放,網絡數據庫所得到的音視頻數據通過Android播放庫的進一步轉碼處理,然后顯示在手機終端界面上[15]。
(9) 遠程服務功能。支持在線聯系廠商、遠程留言、產品信息獲取以及鏈接站端維護專家系統,支持遠程協同管理電站,方便用戶及時獲得技術支持和快速服務保障。遠程留言是用戶進入遠程服務界面向服務器端發送信息請求,服務器端將用戶請求的信息存入后臺數據庫。遠程升級是用戶登錄時,系統將用戶端軟件版本號與服務器端的最新版本號比對,如果用戶端的軟件版本號不是最新,則提示用戶更新。用戶可以從服務器下載最新版本的APK并安裝。
由于Android系統的開放性,任何用戶、開發者、廠商、運營商都可以對Android進行定制,導致目前市場上各個廠商的移動設備沒有固定的屏幕標準。當屏幕尺寸發生變化時,如果布局文件中的布局方式與移動設備不匹配,就會使屏幕顯示混亂。為了提高移動終端軟件的屏幕自適應能力,筆者在實際開發的過程中從以下幾個方面進行了改進[14]:
(1) 在界面布局的設計中,盡量使用相對布局,保證界面上控件之間的位置關系是相對的,不會隨著屏幕的大小而改變;
(2) 布局文件中定義控件長度和寬度時盡量使用與屏幕無關的dp、dpi和sp這種像素單位,以保證在屏幕上展示的時候有合適的大小;
(3) 為不同屏幕密度的手機提供不同的位圖資源,使得界面清晰無縮放;
(4) 由于Android手機屏幕大小不一,在res目錄下創建多個主流屏幕大小的layout文件夾,比如layout-800×480、layout-1280×800文件夾,分別對應800×480與1280×800屏幕尺寸,所有的layout布局文件在編譯之后都會寫入R.Java文件,系統根據屏幕尺寸選擇適合的layout布局進行適配。
用戶設置是在登錄軟件系統后的任意界面使用,包括屏幕亮度調節、退出登錄、心跳周期的動態選擇、流量統計以及切換廠站等。(1)屏幕亮度可調節,可以增加移動終端的續航時間,降低屏幕的亮度對保護用戶的視力有益;(2)退出登錄主要是確保用戶完全退出移動終端軟件,系統進程被完全殺死,注銷與服務器的通信連接,下次登錄時完全重新啟動程序,防止終端軟件被動地在后臺長期運行;(3)心跳周期的動態選擇主要是滿足用戶對通信鏈路維持的嚴格要求,用戶自主選擇來確保通信鏈路的暢通;(4)流量統計主要是統計移動終端軟件在使用運營商移動網絡情況下流量消耗的情況;(5)切換廠站主要滿足用戶查看多個廠站的需要,用戶點擊切換廠站后,會直接跳轉到登錄界面,重新認證后查看新廠站的數據。
搭建了電力監控系統移動終端軟件測試平臺,按照中國軟件產品質量標準《GB/T 16260.1—2006軟件工程產品質量第一部分:質量模型》和《GB/T 15532—2008 計算機軟件測試規范》對電力監控系統移動終端軟件的登錄認證、監控服務、實時報警功能模塊和穩定性、可靠性、兼容性進行了系統的測試。通過測試表明:該移動終端軟件具有實時監控、遠程控制、安全管理、功能可拓展等功能,穩定性和可靠性較好。測試環境如圖6所示,部分運行測試界面如圖7所示。

圖6 測試環境實景圖

圖7 部分運行測試界面
基于Android平臺設計的電力監控系統移動終端軟件具有實時監控、遠程控制、安全管理、功能可拓展等功能,穩定性和可靠性也較好,滿足了兼容性要求。移動電力監控方法對于提升電力信息化應用水平具有較好的參考和應用價值。
References)
[1] 浮明軍,劉昊昱,董磊超.智能變電站繼電保護裝置自動測試系統研究和應用[J].電力系統保護與控制,2015,43(1):40-44.
[2] 邱金輝,錢海,張道農,等.基于PFIS的繼電保護常態特性在線監視與隱性故障診斷[J].電力系統保護與控制,2015,43(8):145-149.
[3] 劉健,劉超,張小慶,等.配電網多級繼電保護配合的關鍵技術研究[J].電力系統保護與控制,2015,43(9):35-41.
[4] Hao Z,Yao Z,Li S,et al.The contribution of double-fed wind farms to transient voltage and damping of power grids[J].Tehnicki Vjesnik,2015,22(1):43-49.
[5] 姚致清,于飛,趙倩,等.基于模塊化多電平換流器的大型光伏并網系統仿真研究[J].中國電機工程學報,2013,33(36):27-33.
[6] 姚致清,趙倩,劉喜梅.基于準同步原理的逆變器并網技術研究[J].電力系統保護與控制,2011,39(24):123-126.
[7] 姚致清,劉濤,張愛玲,等.直流融冰技術的研究及應用[J].電力系統保護與控制,2010,38(21):57-62.
[8] 姚致清,張茜,劉喜梅.基于PSCAD/EMTDC的三相光伏并網發電系統仿真研究[J].電力系統保護與控制,2010,38(17):76-81.
[9] 孫弘羿,郎誠廉.基于智能移動終端的數據監控系統的解決方案[J].軟件,2012,33(2):61-63.
[10] 羅璇.基于MVC模式下Android手機游戲的研究與實現[D].廣州:華南理工大學,2014:31-35.
[11] 熊剛.基于Android的智能手機的設計與實現[D].武漢:武漢理工大學,2010:45-48.
[12] 華鵬.基于Android平臺增強權限管理研究與實現[D].南京:南京理工大學,2012:23-26.
[13] 朱寧.基于Android平臺的交通事件采集系統設計與實現[J].江蘇科技信息,2014,34(13):47-49.
[14] 陳俊良,葛俊鋒,葉林,等.基于海康威視SDK的視頻監控軟件的開發[J].工業控制計算機,2015,43(7):97-98.
[15] 梁洪亮,董鈺,陽曉宇,等.Android平臺環境自適應安全機制[J].清華大學學報(自然科學版),2013,35(12):1670-1675.