高 明,黃涌浩,徐中信,劉宗陽,郭文星,黃思泳,馮瑞玨
(1.廣州城市理工學院電氣工程學院,廣東 廣州 510800;2.華南理工大學電力學院智慧能源工程技術研究中心,廣東 廣州 510640;3.廣東電網有限責任公司廣州供電局,廣東 廣州 510620)
變電站圖紙管理存在著準確性、可靠性和效率低下的問題[1]。尤其是二次回路圖紙比較復雜,由于圖紙幅面有限,設計時會將二次回路圖分拆在數張圖紙中繪制。在實際工作過程中,變電站運維人員需要找出相關圖紙進行對比,須從繪制在一張圖紙的設備回路快速找到另外一張圖紙中對應的設備回路,從而了解變電站二次保護回路的全貌。目前,這些過程基本是靠手工和人工經驗實現的,隨著二次圖紙的內容豐富和數量增長,快速實現圖紙的對照跳轉檢索日漸困難,且容易出錯。
針對上述問題,本文提出并實現了具有自動跳轉功能的圖紙智能檢索,首先從關聯的角度對圖紙數據的關聯與檢索的方法進行有關探究,提出一種圖紙數據關聯檢索方法。通過關聯查詢搜索滿足要求的圖紙數據節點,實現對圖紙數據的檢索。利用節點間的關聯性和基于數據庫間數據表間的關聯性,達到精確檢索到圖紙的目的。根據上述研究內容研發的變電站智能圖紙管理系統,提高變電站圖紙智能化管理水平,減少圖紙查閱耗時及人工出錯風險,提高圖紙管理便捷性和可靠性。
圖紙間的數據關聯模型是本設計中最重要的構建模塊,設計提出具有關聯性的圖紙數據之間的關聯關系。利用圖紙編碼之間存在的關聯關系,創建關于數據節點和編碼節點之間新的關聯關系,使兩張圖紙的數據之間較為準確地、間接地產生關聯[2]。
本文研究對象為CAD電子圖紙,關聯模型研究所需基本數據要素信息包括圖紙內的編號、端子號(如4QD1等),屬性要素信息包括圖紙名字、圖冊序號、頁號、圖形符號、文字符號、備注信息等,重點關注能精簡表達主題的關鍵詞信息。CAD圖紙是一種特殊的圖結構,圖中的每個節點和每條邊都包含屬性信息。關聯CAD圖紙實質上是對大量數據要素信息的集成,使數據要素信息不僅可以由某一個文檔直接獲得,還能從眾多相關聯起來的路徑獲取。
本文構建的CAD圖紙關聯網絡中包括兩大類節點:一是標識每一張圖紙及基本信息的數據節點;二是表示圖紙中實體的實體節點。實體在這里就是一種指定類型的數據庫對象,如電氣元器件以及直線、圓、圓弧、文字、曲線和橢圓等。無論是實體節點還是數據節點,都能利用屬性進行描述。通常來說,一個節點往往具有多個屬性,它可以是和它存在關聯關系的任何一個個體。
關聯節點的結構如圖1 所示。數據節點是圖紙數據的抽象:基于圖紙數據的數據,抽取出主要字段或者端子號。將主要字段或符號映射為屬性,并創建相應圖紙數據節點[3-4]。設計圖紙編碼節點,是本文關聯模型的關鍵內容之一。把有關聯性的圖紙設置編碼,用編碼節點把擁有一樣編碼值的圖紙數據關聯起來。節點類型是編碼節點的屬性,它是用來分辨不同類型的數據關聯節點。除了節點類型,圖紙編碼節點還有層次級別、編碼方式和圖紙編碼值等不同屬性。如圖2所示。

圖1 要素關聯模型關聯節點結構

圖2 圖紙編碼節點結構
在編碼方式上本文使用的是GBK 碼。而GBK碼也是GB 碼的擴展字編碼(即漢字內碼擴展規范),它使用的是單雙字節變長的編碼方式。英文部分采用單字節編碼,而且可以完整兼備ASCII字編碼,而中文部分使用的是雙字節編碼。
圖紙數據節點與編碼節點間的關聯關系具有如下一些特征:在圖紙數據的編號值集中含有某另一張編號值,即圖紙數據節點與該編號節點之間具有關聯性;基于對圖紙的數據檢索以及圖表之間關聯分析的綜合考慮,要求與圖紙數據關聯的編碼節點數量越少越好,因此如果編碼節點太多時,將提高圖紙關聯查詢比較的復雜性,從而減少圖紙數據檢索、圖表關聯分析的有效性。
利用數據節點與圖紙之間的傳遞關聯,設計本文關聯檢索的方法。先將圖紙文檔數據提取,用其建立數據庫,再構建索引項,最后查詢圖紙的關聯模型。節點與圖紙間的關聯關系體現在變電站二次回路圖紙中,比如,4QD1 是圖A 里的端子號,而4QD1是圖B里的端子號,則圖A和圖B之間存在了關聯關系。檢索方法流程框架如圖3所示。

圖3 檢索方法流程圖
首先進行變電站二次回路圖紙關聯檢索,將圖紙內包含的數據提取出來,以CAD圖紙為例,利用軟件AutoCAD 自身的數據提取功能,將CAD 圖紙中所有屬性的數據提取出來輸出成Excel 表格文檔;然后將表格文檔中的數據利用SQL開發語言使其輸入數據庫中,在數據庫中對數據表進行整理及關聯,完善數據庫設計;接下來利用Visual Studio 2015 編寫底層腳本來設計實現關聯檢索的功能;最后,利用Qt自身基于C++編程語言的開發語言,進行UI界面的設計及封裝。關聯檢索流程如圖4所示。

圖4 系統設計流程圖
本文提出了一種通過圖紙間關聯的方法實現圖紙數據關聯檢索的方法。主要步驟如圖5所示。

圖5 圖紙數據關聯檢索方法
圖紙編碼節點包括了編碼值,與圖紙數據節點有直接關聯的節點。根據圖紙編碼節點的編碼值,快捷查找相關圖紙中的圖紙編碼節點。最后,根據查詢出的數據節點來獲取數據,作為結果返回。
利用C++編程語言提取圖紙中的數據信息,將其圖紙數據信息利用SQL數據庫儲存并關聯起來封裝形成一個數據庫;在利用C++編程語言來進行底層代碼的編寫前,首先在項目的配置文件中定義到數據庫的連接信息,然后確定對象和類,利用C++的標準模板庫(STL)里的關聯容器將相關圖紙的編號關聯,以進行讀操作,對類和函數分別進行封裝;使用Data set類來實現檢索系統的功能。
利用Qt下的Qt Creator新創建一個桌面Qt應用,包含一個基于Qt 設計師的主窗體,且其中選擇MainWindow 作為基本的類并勾選附帶創建界面文件,在此基礎上進行界面的設計及其封裝。
在自動跳轉功能實現上,利用QLabel控件承載圖紙的顯示。在節點上插入控件以方便控制跳轉。例如,在圖紙中點擊編號“4QD1”下的節點以跳轉到所關聯的目標圖紙下,如圖6所示。

圖6 圖紙關聯跳轉功能示意圖
本文對CAD圖紙關聯模型和數據節點和圖紙之間關聯關系的研究,提出具有自動跳轉功能的變電站圖紙智能化實現的方法。通過關聯查詢搜索滿足要求的圖紙數據節點,實現對圖紙數據的檢索。利用節點間的關聯性和基于數據庫間數據表間的關聯性,通過界面點擊跳轉的設計及實現,達到精確檢索和展示到對應圖紙的目的。