配網(wǎng)臺(tái)賬抽取工具的設(shè)計(jì)與實(shí)現(xiàn)
引言
圖模庫一體化是當(dāng)前EMS重要的建模技術(shù),該建模方式可大大減輕用戶生成和維護(hù)網(wǎng)絡(luò)拓?fù)潢P(guān)系的工作量,將傳統(tǒng)PAS系統(tǒng)的網(wǎng)絡(luò)拓?fù)涞裙δ?方便地移植到SCADA系統(tǒng)上來,是調(diào)度自動(dòng)化系統(tǒng)及PAS分析軟件實(shí)用化的重要基礎(chǔ)。圖模庫一體化輸出的文件采用SVG格式,包括設(shè)備的圖形化抽象、設(shè)備狀態(tài)、設(shè)備連接關(guān)系、設(shè)備臺(tái)賬信息、設(shè)備運(yùn)行信息等。
1系統(tǒng)設(shè)計(jì)
1.1技術(shù)架構(gòu)
本項(xiàng)目基于JavaEE平臺(tái)構(gòu)建,包括Java容器Apache/Tomcat服務(wù)器以及中間件Spring+I(xiàn)BatiS+DwR。Spring是為了解決企業(yè)應(yīng)用開發(fā)的復(fù)雜性而創(chuàng)建的,它是一個(gè)輕量級(jí)的控制反轉(zhuǎn)(IoC)和面向切面(AoP)的JavaBean容器框架。Spring使用基本的JavaBean來完成以前只可能由EJB完成的事情,具有輕便、易使用、易擴(kuò)充、用途廣泛等特點(diǎn)。
IBatiS是對(duì)象關(guān)系映射框架,它對(duì)JDBC進(jìn)行了非常輕量級(jí)的對(duì)象封裝,使得Java程序員可以隨心所欲地使用對(duì)象編程思維來操縱數(shù)據(jù)庫。iBatiS摒除了大部分的JDBC代碼、手工設(shè)置參數(shù)和結(jié)果集重獲,只使用簡單的XML和注解來配置和映射基本數(shù)據(jù)類型、Map接口和PoJo到數(shù)據(jù)庫記錄。相對(duì)Hibernate和ApacheoJB等"一站式"oRM解決方案而言,iBatiS是一種"半自動(dòng)化"的oRM實(shí)現(xiàn),它使得程序的持久化過程變得可以重用、可配置、易于編寫和管理,而且也易于調(diào)試。
DwR是RPC技術(shù),它通過反射等技術(shù)將后臺(tái)的Java服務(wù)類直接暴露給前臺(tái)JavaScript,使得前臺(tái)JS代碼調(diào)用后臺(tái)的Java方法就如同直接調(diào)用JS方法一樣,直截了當(dāng),簡單方便。
1.2數(shù)據(jù)處理流程
軟件系統(tǒng)把大量的圖模一體SVG文件解析出來,生成一個(gè)龐大的設(shè)備樹,樹的層次簡單分為:茂名局一變電站一饋線一支線/設(shè)備一設(shè)備。軟件系統(tǒng)按照數(shù)據(jù)庫表結(jié)構(gòu)要求,逐一生成每個(gè)設(shè)備的參數(shù)信息,插入到對(duì)應(yīng)的數(shù)據(jù)表中。軟件系統(tǒng)基于數(shù)據(jù)庫表來導(dǎo)出需要的設(shè)備臺(tái)賬XLS文件,或者提供各種設(shè)備臺(tái)賬查詢及統(tǒng)計(jì)功能。
這里除了需要1.1所列的技術(shù)框架支持外,還主要用到EXcel的JavaAPI接口如POI/SAX技術(shù),以產(chǎn)生輸出各種臺(tái)賬XLS文件。如桿塔設(shè)備,由于數(shù)據(jù)量龐大,需要使用SAX技術(shù),以避免Java由于行數(shù)過多而導(dǎo)致的處理異常。
數(shù)據(jù)處理流程如圖1所示。
圖1數(shù)據(jù)處理流程圖
1.3單線圖SVG文件分析
單線圖SVG文件完整的描述參見《結(jié)構(gòu)化圖模一體SVG單線圖格式規(guī)范》,其與SVG標(biāo)準(zhǔn)嚴(yán)格兼容,不增加任何私有標(biāo)記,能通過SVG標(biāo)準(zhǔn)的嚴(yán)格校驗(yàn),可由通用的標(biāo)準(zhǔn)SVG顯示軟件(如AdobeIlluStrator)正常顯示。單個(gè)SVG圖形文件中包含拓?fù)湫畔?、設(shè)備信息與自動(dòng)化信息,不存在圖模不一致問題。圖形導(dǎo)入時(shí)可自動(dòng)建立自動(dòng)化系統(tǒng)數(shù)據(jù)庫信息點(diǎn)表。設(shè)備參數(shù)中包含GPS坐標(biāo),可實(shí)現(xiàn)地理沿布圖的自動(dòng)繪制。
SVG文件描述的核心就是設(shè)備,包括容器設(shè)備和簡單設(shè)備。容器設(shè)備是指包含其他設(shè)備的設(shè)備,有饋線、支線、環(huán)網(wǎng)柜、分支箱、開關(guān)站、配電房、箱變、間隔、母聯(lián)等:其中環(huán)網(wǎng)柜、分支箱、開關(guān)站、配電房、箱變這五種容器設(shè)備又特別稱為"組合設(shè)備"。與容器設(shè)備對(duì)應(yīng),簡單設(shè)備指不包含其他電氣設(shè)備的設(shè)備,有桿塔、導(dǎo)線、開關(guān)、刀閘、地刀、熔斷器、電流互感器、電壓互感器、配變、電站、母線等。除了容器設(shè)備和簡單設(shè)備,還有一種特殊的設(shè)備是附屬設(shè)備,它們沒有電氣連接關(guān)系,而是包含在其他設(shè)備中的設(shè)備,如故障指示器、數(shù)據(jù)終端、量測(cè)等。
以下為幾個(gè)容器設(shè)備/簡單設(shè)備在SVG文件中的保存格式說明:
1.3.1刀閘
刀閘的供電分局、變電所、變電站信息要從刀閘所屬的頂層節(jié)點(diǎn)一饋線里解析獲得,支線信息從屬支線節(jié)點(diǎn)里獲得(直接屬于饋線的刀閘,支線名稱用饋線名)。在刀閘元素<metadata>子節(jié)點(diǎn)里可以解析獲得刀閘名稱、設(shè)備編號(hào)、運(yùn)行狀態(tài)等信息。
1.3.2桿塔
桿塔的供電分局、變電所、變電站信息要從桿塔所屬的頂層節(jié)點(diǎn)一饋線里解析獲得,支線信息從屬支線節(jié)點(diǎn)里獲得(直接屬于饋線的桿塔,支線名稱用饋線名)。在桿塔元素<metadata>子節(jié)點(diǎn)里可以解析獲得桿塔名稱、運(yùn)行狀態(tài)、經(jīng)緯度等信息。
1.3.3支線
支線是圖模一體文件中一個(gè)重要的元素,設(shè)備的層次結(jié)構(gòu)通過支線這個(gè)元素來描述實(shí)現(xiàn)。支線元素節(jié)點(diǎn)里的子節(jié)點(diǎn)是支線上的設(shè)備,排列順序就是設(shè)備的連接次序、連接關(guān)系。支線里還會(huì)包括支線,依次遞歸。
支線元素的所屬支線信息,從SVG文件支線節(jié)點(diǎn)的上層支線元素獲得,若上層是饋線,則所屬支線名稱用饋線名。其他信息與上面設(shè)備相似。
1.4數(shù)據(jù)庫設(shè)計(jì)
數(shù)據(jù)庫表包括變電站表、線路表(饋線/支線)、組合電器表(環(huán)網(wǎng)柜/分支箱/開關(guān)站/配電房/箱變)、分解箱表(環(huán)網(wǎng)柜/分支箱)、開關(guān)表、刀閘表、配變表、母線表、導(dǎo)線表等等。數(shù)據(jù)庫字段設(shè)計(jì)如圖2所示。
2系統(tǒng)功能
2.1登錄與用戶管理
(1)角色管理:系統(tǒng)提供角色管理模塊,將用戶分成不同的類別等級(jí),以賦予不同用戶不同的操作權(quán)限。
(2)用戶管理:用戶管理提供系統(tǒng)訪問用戶的創(chuàng)建、修改、刪除功能。
(3)私有信息管理:該模塊給用戶提供便利的修改密碼的功能。用戶密碼通過加密,保存到數(shù)據(jù)庫用戶表里。
(4)用戶登錄:系統(tǒng)訪問的入口。
2.2主界面
系統(tǒng)主界面提供工具軟件的總?cè)肟诤凸δ芸傮w展示,包括菜單工具條以及模塊功能介紹信息塊等。
2.3GIS圖模文件上傳
用戶指定SVG文件目錄,將該目錄下的所有SVG上傳至服務(wù)器。系統(tǒng)生成的GIS圖模文件數(shù)量眾多,全部文件或大量文件上傳用時(shí)太長,系統(tǒng)支持按壓縮方式上傳,壓縮文件上傳服務(wù)器后系統(tǒng)再解壓到指定目錄下。另外,也支持少量幾個(gè)文件的上傳功能。
服務(wù)器端包括兩個(gè)目錄,一個(gè)目錄是全部文件的目錄A,另一個(gè)是本次上傳的文件目錄B。每次上傳文件,將目錄B所有文件刪除,再把文件拷貝到該目錄,同時(shí)將上傳文件拷貝到目錄A(增加或覆蓋)。
2.4GIS圖模文件解析器
GIS文件格式參見前面所述。
文件解析器模塊包括兩個(gè)線程,一個(gè)負(fù)責(zé)文件解析,一個(gè)負(fù)責(zé)將內(nèi)存IA0導(dǎo)入到數(shù)據(jù)庫里。GIS圖模文件解析目錄A下的所有文件,得出設(shè)備臺(tái)賬信息,維護(hù)N個(gè)二維內(nèi)存表,然后將這幾個(gè)內(nèi)存表依次導(dǎo)入到設(shè)備臺(tái)賬數(shù)據(jù)庫里。
2.5設(shè)備臺(tái)賬模型導(dǎo)出
模型導(dǎo)出工作分全模型導(dǎo)出和差異模型導(dǎo)出,分別對(duì)應(yīng)3個(gè)界面。全模型導(dǎo)出,將所有設(shè)備的臺(tái)賬導(dǎo)出,保存為XLS文件:差異模型導(dǎo)出,模型表具有版本信息,按照版本信息,導(dǎo)出差異模型XLS文件。另外下載到客戶端。
導(dǎo)出模塊耗時(shí)較長,由狀態(tài)控制器負(fù)責(zé)管理,以防止多用戶操作沖突以及單用戶多次執(zhí)行、未結(jié)束重復(fù)執(zhí)行的情形發(fā)生。另外還要包括數(shù)據(jù)庫事務(wù)功能,防止數(shù)據(jù)錯(cuò)亂。
2.6單線圖瀏覽及設(shè)備查看
左側(cè)列出所有的SVG文件列表,按字母順序排列:右側(cè)是SVG單線圖瀏覽面板,選擇饋線SVG文件,在右側(cè)顯示SVG單線圖,組件可方便地支持SVG的拖動(dòng)縮放。
2.7設(shè)備模型瀏覽
設(shè)備模型瀏覽實(shí)現(xiàn)設(shè)備參數(shù)的查詢?yōu)g覽。左欄是設(shè)備樹,右欄分兩部分,上面是設(shè)備列表,下面是選擇設(shè)備的臺(tái)賬信息。設(shè)備子節(jié)點(diǎn)的順序以及右上部設(shè)備列表的順序就是設(shè)備電氣連接關(guān)系的順序。點(diǎn)擊容器/組合電器節(jié)點(diǎn),右上部顯示該電器包含的子設(shè)
備:點(diǎn)擊簡單設(shè)備,右上部只顯示一條記錄,即該簡單設(shè)備。
2.8操作日志查看
操作日志記錄上傳SVG文件的操作信息(日期、文件個(gè)數(shù)、版本號(hào)等),提供按時(shí)間范圍以及日志類型的查詢。點(diǎn)擊詳情,可查看該操作處理的SVG文件的列表等信息。
3結(jié)語
此次研究充分利用挖掘了圖模一體化SVG文件這一大數(shù)據(jù)資源,解析出了配網(wǎng)全系統(tǒng)的設(shè)備臺(tái)賬數(shù)據(jù),提供了多種形式的設(shè)備臺(tái)賬查詢功能,并能按需導(dǎo)出設(shè)備臺(tái)賬的XLS格式的文件,以松耦合的方式,方便地給其他系統(tǒng)提供臺(tái)賬數(shù)據(jù)。