999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于VBA的CIM/XML的電網模型解析與轉換

2022-11-19 09:16:02戴喬旭羅宗杰
現代信息科技 2022年19期
關鍵詞:信息模型

戴喬旭,羅宗杰

(廣東電網有限責任公司湛江供電局,廣東 湛江 524001)

0 引 言

當前,CIM 已經廣泛應用于各國的電力系統,CIM 所提出的電力系統信息交互標準可使不同的系統及應用軟件實現相互連通[1]。但CIM 模型只定義了電力系統數據模型,對于數據庫和交互格式等實現方面沒有提供具體的相關的定義。具有交互特點的XML 語言恰好能與CIM 模型互補,它通過添加標記來完成數據所要表達的信息和數據的組織結構。目前,電力系統大多數應用都是基于CIM/XML 進行離線模型交互,但XML 語言處理過程需要對標簽進行打開及關閉,使得CIM/XML 在描述、解析等方面效率較低,因而常用于離線式的模型交互。而JSON 作為現今互聯網最常用的數據交互格式之一,相比XML 語言更為簡潔、處理速度更快、占用CPU 資源更少,在在線數據交互、關鍵電網模型信息傳輸方面具有更大優勢。因此,將CIM/XML 描述的離線電網模型進行關鍵信息提取,轉換為JSON 數據格式存儲,更便于實現電網模型的在線交互及高效的數據處理。

1 項目相關技術背景

在電力系統中有著許多獨立分工不同的信息處理系統,而這些系統常由不同廠家提供,其應用程序也運行于不同的平臺,因此數據交互相當困難。國際電工委員會(IEC)在20 紀90年代提出了IEC61970 規范,且定義了公用信息模型(CIM),使得不同的電力系統應用之間可按照統一的模型進行數據交換[2]。可擴展標記語言(XML)是由全球信息網協會(W3C)于1998年提出的一種標準,其優越性主要表現在易于實現異構系統間的信息交互、自定義性和可擴展性、數據內容與顯示處理的分類。由于CIM 并未對模型的數據庫和數據交換格式進行定義,因此XML 語言是一種較好的載體。因此,通過CIM/RDF 模型作為元模型框架,并通過RDF 語法的子集作為描述規則,即可實現構建電網靜態數據模型的CIM/XML 文檔。

JSON 是一種可在多種語言之間進行數據交互的輕量級數據格式,在現今互聯網中最為常用。JSON 字符串由Unicode 字符集合而成,其由規則簡單、使用壓縮格式、占用帶寬小等優點。XML 作為一種既可以用以標記數據也可以定義數據類型的源語言,是互聯網數據交互中的一種跨平臺技術手段,能對結構化的文檔信息實現高效處理[3]。JSON 和XML 都是開放式數據交互,JSON 相比XML 最顯而易見的優點在于簡潔,在XML 中需要打開和關閉標簽,而JSON 使用名稱/值來表示數據,“{”及“}”標記對象,“[”及“]”標記數組,“:”表示數據分隔,“;”表示名稱與值的分隔。在與包含相同信息的XML 比較,JSON 總是更小,這意味著更快的傳輸和處理速度。在相關研究表明,在不考慮大小情況下,JSON 執行序列和反序列的速度顯著優于使用XML。JSON 數據處理在CPU 資源的使用上也優于XML,占用內存相對更小,更利于網絡傳輸與移動設備的處理[4]。

2 CIM/XML 模型與JSON 格式的轉換

全球信息協會(WC)建立了文件對象模型(DOM)標準,它提供了跨瀏覽器的應用程序實現的平臺。W3C DOM 是一個能夠讓程序和腳本動態訪問和更新文檔內容、結構和樣式的語言平臺,它提供了HTML 和XML 對象集,并有一個標準的接口訪問和操作它們[5]。W3C DOM 可分為不同的部分(核心、XML 和HTML)和不同的版本(DOM1/2/3)。其中,DOM 對XML 文件的解析是將其轉換為一個對象模型集合,用樹形結構對XML 文檔信息放在內存中進行存儲,應用程序可在任何時候訪問XML 文檔中的任意部分數據[6]。因此,這種利用DOM 接口解析訪問方法也被稱為隨機訪問。

VBA 是Visual Basic 的一種宏語言,是其在桌面應用程序中執行通用的自動化(OLE)任務的編程語言,算是一種應用程式視覺化的Basic 腳本。在WPS 軟件中一般自帶了VBA 環境安裝包,可實現VBA 編程。由于VBA 中存在XMLDOM 對象,可對XML 文件進行解析、數據處理。因此,可通過常用的WPS 軟件使用VBA 編程對XML 文檔進行讀寫與控制。

VBA 編程貫穿CIM/XML 電網模型數據解析轉換整個過程,首先利用WPS 表格工具的VBA 程序平臺將CIM/XML 文檔數據加載到內存中,并調用軟件DOM 解析將結果暫存在表格中,再根據實際需要提取模型中設備、聯絡情況等信息進行提取,依據JSON 格式對信息進行處理,最終生成便于網絡傳輸的JSON 數據格式,實現數據模式的轉換,具體過程如圖1 所示。

圖1 CIM/XML 轉換JSON 格式流程

在數據表格的VBA 編程部分,首先需要利用宿主WPS軟件自帶的DOM 將待解析電網模型CIM/XML 文檔整個樹狀結構加載到系統內存,變為易搜索、操作的數據形式。

具體應用為通過Create.Object() 方法,生成一個Microsoft XMLDOC 對象。通過VBA 編程中xmlDoc.Load()方法可將待解析的CIM/XML 文檔與所生成的Microsoft XMLDOC 對象相關聯,DOM 處理器將CIM/XML 文檔模型整個以樹形結構全部載入內存中,以后的所有增、刪、改、查均對內存中的樹形結構操作。樹形結構存在諸多結點,包括根節點與各級分支接點,下級節點可通過上級節點不斷往下延伸。因此,獲取內存中樹形結構的根節點即可對各分支節點信息進行操作。具體可通過Document Element 獲取根節點,即可實現利用宿主軟件的DOM 將電網模型CIM/XML 文檔加載內存中的樹狀結構進行操作,具體實現代碼為:

Set xmlDoc = CreateObject(“Microsoft.XMLDOM”)

xmlDoc.Load (“ABCD.xml”)

Set xmlRoot = xmlDoc.DocumentElement

在獲取到CIM/XML 文檔樹狀結構的根節點后,需獲取內存中樹狀結構的特定節點,如元素節點、實體應用節點等方可實現訪問和修改。在VBA 編程中,讀取及修改樹狀結構節點首先需通過DOM 提供的SelectSingleNode 方法選擇XML 樹狀結構文檔中的分支節點位置信息,再通過GetAttributeNode(“xxx”).Nodevalue 方法即可獲取到分支的值。具體實現代碼為:

documentElement.SelectSingleNode

GetAttributeNode(“xxx”).Nodevalue

在CIM/XML 文檔中,按XML 文檔格式要求定義了大量的斷路器、配變、電桿、導線等電力設備設施基本信息及其物理拓撲。以開關為例,其部分CIM/XML 表達為:

<cim:Breaker rdf:ID=”SWITCH_123456”>

<cim:Naming.name>10T1 開關</cim:Naming.name>

<cim:PowerSystemResource.location>POINT(110.1234,21.5678)

</cim:PowerSystemResource.location>

</cim:Breaker>

在標簽“Breaker”間包含了開關名稱信息“10T1 開關”以及其經緯度位置信息“110.1234,21.5678”,其中“Breaker”為XML 數狀結構中的一個分節點,節點名稱為“Breaker”,其往下延伸還存在“Naming.name”“PowerSystemResource.locationg”元素節點。對于節點及其數據的操作可通過上述采用DOM 解析器及VBA 編程方式獲取到具體的開關節點及其元素節點的信息。

類似地,可以用同樣方法取得電網模型樹狀結構中的電桿、配變、負荷開關等設備元素的具體數據。通過VBA 程序將相關拓撲進行解析,獲取設備的經緯度坐標、線徑、關聯聯絡元素節點等信息,并可暫存在VBA 程序宿主軟件WPS 數據表格中。通過上述VBA 編程對CIM/XML 樹狀結構數據的解析提取,將宿主軟件WPS 數據表格中暫存的電網設備信息進行組合,并可根據需要添加額外的關聯數據信息,作為目標JSON 文件的基礎數據。

在JSON 文件的生成方面,VBA 編程中提供了ADODB.Stream 對象。該對象可存取二進制數據或文本流,從而實現對流的讀、寫和管理等操作。JSON 文件的創建可通過ADODB.Stream 方法創建UTF-8+BOM 編碼的文本,并按JSON 文件格式要求生成標準的JSON 文件。具體實現代碼為:

Set objStream = CreateObject(“ADODB.Stream”)

With objStream

.Type = 2

.Charset = “UTF-8”

.Open

.WriteText “[“

(寫入相關數據)

.WriteText “]”

.SaveToFile ActiveWorkbook.FullName &”.json”, 2

End With

Set objStream = Nothing

通過上述步驟,可通過對WPS 表格宿主軟件中的VBA編程實現對CIM/XML電力系統模型拓撲文檔數據進行解析、提取、處理,并根據需求將電網設備信息、補充信息組合并轉換為易于互聯網傳輸的輕量級JSON 數據交互格式,簡便地實現CIM/XML 與JSON 數據格式間的轉換。

3 實踐驗證

通過上述方法,在WPS 表格軟件中使用VBA 編程解析CIM/XML 電網模型文檔。首先通過WPS 軟件“開發工具”模塊繪制“文本框”“按鈕控件”,通過“文本框”用以讀取存放XML 文檔的位置、“按鈕控件”用以開啟執行解析操作。其次在WPS 表格中建立不同的sheet 用以存放CIM/XML 電網模型中各類型電網設備數據,如配變位置坐標sheet、開關位置坐標sheet、線路軌跡sheet 等。對應的人機交互界面如圖2 所示。

圖2 CIM/XML 轉換人機交互界面

通過本文第二節分描述方法,創建XMLDOC 對象,解析CIM/XML 電網模型,并獲取樹狀結構根節點。通過For循環歷編XML 文檔,依據子節點名稱“Pole”“ACLineSe gment”“Substation”“Breaker”等分別獲取電桿、導線、配變、開關等設備的名稱、坐標、聯絡節點等信息,并相應寫入至WPS 表格軟件所建立對應的sheet 中,便于 進行下一步處理。

對于解析提取出的電網設備信息,再進一步處理生成JSON 文件。具體通過VBA 程序創建ADODB.Stream 對象,按UTF-8 編碼,使用數據流模式,將電桿、導線、配變、開關信息分別生成對應的JSON 文件,并保存在指定位置便于查詢。

4 結 論

本文針對CIM/XML 電力系統靜態模型的XML 文檔,采用VBA 編程,借助宿主軟件的DOM 對XML 文檔進行解析,并根據需求提取電力系統模型數據并轉換為易于進行網絡傳輸與解析的JSON 格式。文章所涉及的VBA 編程方法已通過在南網智瞰平臺中得到實踐驗證。該方法對于采用CIM/XML 文檔表達的電力系統模型轉換為輕量級的JSON數據形式,實現在線實時數據轉換及傳輸等應用提供了新的思路。

猜你喜歡
信息模型
一半模型
重要模型『一線三等角』
重尾非線性自回歸模型自加權M-估計的漸近分布
訂閱信息
中華手工(2017年2期)2017-06-06 23:00:31
3D打印中的模型分割與打包
FLUKA幾何模型到CAD幾何模型轉換方法初步研究
展會信息
中外會展(2014年4期)2014-11-27 07:46:46
一個相似模型的應用
信息
建筑創作(2001年3期)2001-08-22 18:48:14
健康信息
祝您健康(1987年3期)1987-12-30 09:52:32
主站蜘蛛池模板: 亚洲欧美日韩高清综合678| 综合亚洲色图| 国产99免费视频| 免费不卡视频| 美女国产在线| 精品免费在线视频| 国产免费a级片| 中文字幕欧美日韩| 亚洲成人精品在线| 在线亚洲天堂| 色哟哟色院91精品网站| 99精品欧美一区| 中文字幕免费播放| 国产成人综合欧美精品久久| 亚洲欧美成人在线视频| 亚洲Va中文字幕久久一区 | 国产亚洲精久久久久久无码AV| 国产区免费精品视频| 又爽又大又黄a级毛片在线视频 | 韩日午夜在线资源一区二区| 亚洲男人在线天堂| 97se亚洲| 亚洲天堂免费在线视频| 黄色一级视频欧美| 丰满人妻中出白浆| 国产美女在线观看| 国产玖玖视频| 91九色最新地址| 91在线播放免费不卡无毒| 999精品视频在线| 免费日韩在线视频| 亚洲制服丝袜第一页| 广东一级毛片| 综1合AV在线播放| 国产精品99在线观看| 蜜桃视频一区二区| 日韩无码白| 国产一区二区三区在线观看免费| 456亚洲人成高清在线| 全午夜免费一级毛片| 亚洲综合18p| 日韩精品无码不卡无码| 成人在线亚洲| 毛片久久网站小视频| 久久久久无码精品| 农村乱人伦一区二区| 精品久久香蕉国产线看观看gif| 亚洲v日韩v欧美在线观看| 久久青草视频| 亚洲视频a| 无码在线激情片| 在线观看亚洲成人| 伊人久久精品无码麻豆精品 | 天天做天天爱天天爽综合区| 欧美亚洲另类在线观看| av在线无码浏览| 久久综合激情网| 国产精品妖精视频| 四虎国产在线观看| 亚洲精品在线91| 色婷婷狠狠干| 日韩高清一区 | 欧美激情,国产精品| 欧美成人午夜视频免看| 色婷婷在线播放| 国产91蝌蚪窝| 欧美成人午夜视频免看| 日韩黄色大片免费看| 又黄又湿又爽的视频| 久久亚洲精少妇毛片午夜无码| 国产一区二区精品福利| 无码免费视频| 国产成人h在线观看网站站| 国产95在线 | 亚洲欧洲日产国码无码av喷潮| 国产美女在线免费观看| 国产对白刺激真实精品91| 亚洲精品自在线拍| 久久婷婷国产综合尤物精品| 国产对白刺激真实精品91| 欧美黄色网站在线看| 国产日韩欧美在线播放|