楊豐萍,傅 華
(華東交通大學電氣與電子工程學院,江西南昌330013)
目前,SCADA(Supervisory Control And Data Acquisition,數據采集與監視控制)系統的調度端軟件主要由實時數據庫、通信程序和用戶圖形界面程序組成。其中,用戶圖形界面通過判斷實時數據庫里對應設備的狀態,以圖形的方式實時地呈現給調度員,以便調度員及時掌握設備參數、運行狀態,其重要性不言而喻。
SVG(Scalable VectorGraphics,可伸縮矢量圖形)是一套基于XML(Extensib le Markup Language)語言的可縮放矢量圖形語言描述規范。而SVG格式的電力調度自動化系統的圖形交互方案(草案)是IEC 61970標準系列的核心內容之一,因此,SVG將在新一代調度端軟件開發中逐步推廣應用[1-2]。
Batik是基于Java技術的工具,目的在于使用Java應用程序Applet將所要使用的圖片以SVG格式用于不同目的。應用Batik可以在任何Java可用的場合來操縱SVG文檔,也可以使用不同的Batik模塊來生成、操縱、轉換代碼及在應用程序Applet中研究SVG圖像。
平臺使用開源SVG圖形編輯器平臺GLIPSGraffitieditor(基于Batik開源項目),調用Hibernate(持久層框架)連接數據庫,簡化繁瑣的數據配置過程。同時加入基于Batik的SVG顯示模塊,對于SVG圖形進行拓撲動態著色,可極大改善SCADA系統軟件的用戶圖形界面,便于和其他圖形功能模塊的集成。
圖模庫一體化繪圖平臺的實質是設備圖元對象與數據庫記錄一一對應,在定義一個設備圖元對象的同時自動追加一條數據庫記錄。另一方面,要求設備圖元的屬性參數及其數據輸入界面能夠根據用戶的要求進行修正,這樣才能真正做到圖形與數據庫的一一對應,而且也能保證系統兼容性。
本文將SCADA系統監測畫面的軟件平臺劃分成圖形繪制模塊、圖形顯示模塊、圖模同步模塊和模庫同步模塊進行設計和實現。圖形繪制模塊主要完成對基本圖形和電力圖元庫操作。在電力監控畫面生成的過程中,對畫面上的圖元基本幾何屬性和業務屬性進行編輯。圖形顯示模塊主要完成顯示生成SVG,使用SVG viewing component模塊對其進行拓撲動態著色。圖模同步模塊負責把SVG圖元和CIM數據模型進行關聯。模庫同步模塊利用持久層框架實現數據模型與實時數據庫的關聯。平臺框架如圖1所示。
電力圖元庫的建立的關鍵是為了解決各類圖元的組合與復用的問題。電力SVG圖元庫文件包括SVG文檔結構、樣式表文件引用部分、電力圖元定義部分、基本圖元管理。
在SCADA監控畫面中,有一些復雜圖元如變壓器、斷路器、電容器等,都可以有多個基本幾何圖形組合而成。為了能夠反復使用這些電力圖元,在圖元庫文檔中使用SVG符號標簽<symbol>進行定義電力圖元。利用<symbol>標簽定義了標準電力系統常用設備圖元形狀,將相關圖元聚合在一起,使多個基本圖形構成一個整體,實現電力圖元統一管理。為了復用繪好的電力設備圖元,將常用的電力系統設備圖元存儲起來,寫入同一個SVG文件,形成圖元庫。在繪制SVG圖形過程中,生成的文件中會使用<use>標簽,利用<xlink:href>這個屬性,鏈接SVG圖元庫文件,完成對電力圖元的調用,實現圖元的復用性。
在監控畫面生成的過程中,需要對監控畫面上的一些圖元的幾何屬性(如:輪廓顏色、填充顏色、線條寬度、幾何位置等)進行實時編輯,使得監控畫面更加方便調度員對設備圖元的觀測。

圖1 SCADA系統監測畫面的軟件平臺總體架構
圖模同步模塊負責基于CIM的SVG圖元建模,實現SVG圖元和CIM數據模型的關聯。由于電力SVG圖元含有大量業務數據信息,為了應對人機交互的要求,實際的圖形交互并非是對單純的圖形進行操作,而是需要后臺數據的交互。所以,SVG圖元建模其目的不在于描述圖形的外觀,而是表達出圖元的類型,該類型就必須要符合CIM模型。
目前IEC 61970-301部分CIM包中,基于CIM的SVG圖元建模主要用到核心包、拓撲包和電線包的部分內容,包含了變壓器、互感器、導線等,覆蓋了CIM中Sw itch,PowerTransformer,VoltageTransformer,Connector,Conductor等對象。

圖2 基于CIM的SVG圖元建模
依照這些CIM數據模型,使用Rational ROSE作為輔助建模工具,用統一建模語言UML(United Model Language)對SVG主要圖元建模,如圖2所示。在程序中創建SVG圖元的類,利用id屬性使得SVG圖形和CIM數據模型類進行關聯,達到圖模同步的效果。
圖形顯示模塊使用SVG viewing component模塊顯示SVG圖形并對其進行拓撲分析。SVG viewing component是Batik的核心模塊,可以很容易瀏覽SVG圖形并提供后臺的交互功能。
Batik Swing組件模塊的目標是提供一個Swing組件,可以用來顯示SVG文件。JSVGCanvas類可以通過URI或者DOM樹很容易地操作SVG文件,如旋轉,縮放,平移,選擇文本或激活超鏈接。將JSVGCanvas加入到Batik Swing應用程序中。在Batik Swing應用程序中跟蹤所有顯示或者操作SVG的事件。
在Batik環境下通過提供的JSVGCanvas對象獲取當前顯示SVG文件的DOM文檔對象引用,通過對該DOM的操作對當前SVG圖像在拓撲分析進行動態著色或者改變狀態,程序如下:

拓撲結構是潮流分析、狀態估計等高級應用的基礎。在CIM中,與拓撲模型的建立相關的主要是核心包(Core)中的ConductingEquipment(導電設備類)和Terminal(端點類),導電設備一般有1個或2個端點;拓撲包(Topology)中的ConnectivityNode(連接節點類),TopologiealNode(拓撲節點類)和Topologieallsland(拓撲島類);量測包(Meas),通過判斷測點值是否相同可以知道這些導電設備的端點是否連接在同一個連接節點上。
拓撲分析是根據導電設備間的連接關系計算出整個電網的連接關系,通常需要將電網模型進行整理抽象。拓撲分析可分為兩個過程,連接關系分析和網絡拓撲分析。
連接關系分析即根據傳導設備之間的連接關系,形成連接節點模型。連接線描述了設備間的關聯關系,將其抽象為連接節點,連接節點信息為關聯設備記。在SVG圖元中定義該設備所關聯的連接節點,除了要設置導電設備的連接節點,還需要在SVG文件中將連接線歸入到指定的連接節點下,這樣才能根據設備之間的連接關系動態的確定連接線的顏色。
網絡拓撲分析,SCADA遠動實時數據庫中實時狀態量方式變化時,向顯示模塊發送變化信息,其中包括圖元ID和變化狀態量。根據收到的信息,搜索到指定的導電設備。通過導電設備的連接節點形成一個拓撲節點,同一拓撲節點下的連接節點的狀態是相同的。帶電狀態為1,不帶電狀態為0。拓撲流程圖如圖3所示。
網絡拓撲分析主要以開關及進線為研究對象,開關和進線狀態為分變合和合變分,不帶電到帶電和帶電到不帶電,因此,只要關注帶電設備的連接點的狀態,對其進行拓撲分析。例如,進線由不帶電到帶點時,開關由分變合時,一側連接節點帶電,設置為1,則另一側連接節點要根據所連接的SVG圖元狀態量進行判別設置。如果連接的圖元帶電,另一側連接節點設置為1,如果連接的圖元不帶電,另一側連接節點設置為0。拓撲分析的對象仍然是帶電狀態改變的進線下閉合開關對側連接節點和變位開關兩側狀態不同的連接節點。利用信息進行拓撲分析后,根據拓撲結果利用SVG DOM對圖元進行動態著色。
模庫同步模塊負責CIM數據模型對象與實時數據庫建立關聯,并同步完成圖元顯示數據的存儲和電力設備業務處理數據的錄入,是圖模庫一體化配置的關鍵。本文采用Hibernate面向對象持久層框架,實現對象和數據庫之間的關聯,將上層的以Java作為開發語言建立的持久化類與底層的數據庫實現分離開,模庫同步模塊的結構如圖4所示。
面向對象持久層是指在數據管理系統(特別是關系型數據庫管理系統)和面向對象的數據應用系統之間增加一層映射管理層,通常這種映射稱為對象/關系映射。該映射文檔詳細定義和描述了類、類的屬性、類之間關系,和對象類型的數據類型到關系型數據庫相應元素的映射邏輯[6]。在繪制圖形的時,輸入所需的參數,并將參數存入數據庫中,自動對監控系統數據進行配置。

圖3 拓撲流程圖

圖4 模庫同步模塊的結構
本文分別采用Myeclipse和PostgreSQL作為計算機程序和數據庫的開發工具,基于Batik的SVG viewing component模塊,創建圖形顯示模塊,導入SVG圖形,對其進行拓撲分析。以刀閘為例,由合到分的過程,刀閘灰色表示斷開、紅色表示閉合,接線灰色表示不帶電、紅色表示帶電。刀閘由原來閉合狀態變為分開狀態,同時,刀閘顏色由紅色變為灰色,SVG圖元發生變化的表示刀閘斷開。

圖5 SVG圖元屬性的配置
以變壓器為例,在繪制SVG圖形過程中,配置圖元屬性,在數據庫中保存變壓器信息。同時點擊圖元,彈出屬性框中會顯示配置的圖元信息,方便查看和修改,見圖5。
在深入研究SVG技術、持久化框架技術和IEC61970標準的CIM模型的基礎上,在GLIPSGraffiti editor開源軟件上實現了圖形繪制模塊、圖模同步模塊和模庫同步模塊,實現了圖模庫一體化。利用Hibernate持久層框架,提高實時數據訪問性能,達到了SCADA系統的自動化工程配置的目的。根據實際的需要,對SVG圖形拓撲動態著色,提高了系統的交互性和實時性,同時對跨平臺的專業化的遠動監控繪圖軟件具有重要的現實意義。
[1] 楊豐萍,馮春華,王健.基于Java和SVG的監控畫面圖形生成軟件的設計[J].繼電器,2008,36(3):32.
[2] 屈志堅,劉明光,陳秋琳.基于SVG和持久框架的SCADA圖庫一體化配置系統[J].電力自動化設備,2009,29(8):124.
[3] 楊豐萍,馮春華,陳劍云.基于SVG的遠動系統監控畫面的設計[J].計算機系統應用,2008,(12)1:91-93.
[4] 馮春華,楊豐萍.基于SVG的監控畫面圖庫一體化的實現[J].華東交通大學學報,2007,24(4):104-107.
[5] 王健,陳劍云,屈志堅.基于SVG的電力圖元庫的設計與實現[J].繼電器,2008,36(8):79-82.
[6] 武愛萍,陳劍云,屈志堅.基于CIM的SCADA系統實時數據庫模型設計實現[J].電力系統及其自動化學報,2008,20(2):105.
[7] 錢鋒,唐國慶,顧全.基于CIM標準和SVG的分散式圖模合并[J].電力系統自動化,2007,31(5):84-89.
[8] 李項軍,夏靖波,武兆雪,羅斌貝騫.基于SVG的圖形化網絡拓撲顯示模塊設計[J].電光與控制,2007,14(5):160-167.
[9] 樊淑麗,王康元,邱家駒,等.基于SVG的電力信息可視化框架設計[J].繼電器,2007,25(10):48-51.