高 明,黃涌浩,徐中信,劉宗陽(yáng),郭文星,黃思泳,馮瑞玨
(1.廣州城市理工學(xué)院電氣工程學(xué)院,廣東 廣州 510800;2.華南理工大學(xué)電力學(xué)院智慧能源工程技術(shù)研究中心,廣東 廣州 510640;3.廣東電網(wǎng)有限責(zé)任公司廣州供電局,廣東 廣州 510620)
變電站圖紙管理存在著準(zhǔn)確性、可靠性和效率低下的問(wèn)題[1]。尤其是二次回路圖紙比較復(fù)雜,由于圖紙幅面有限,設(shè)計(jì)時(shí)會(huì)將二次回路圖分拆在數(shù)張圖紙中繪制。在實(shí)際工作過(guò)程中,變電站運(yùn)維人員需要找出相關(guān)圖紙進(jìn)行對(duì)比,須從繪制在一張圖紙的設(shè)備回路快速找到另外一張圖紙中對(duì)應(yīng)的設(shè)備回路,從而了解變電站二次保護(hù)回路的全貌。目前,這些過(guò)程基本是靠手工和人工經(jīng)驗(yàn)實(shí)現(xiàn)的,隨著二次圖紙的內(nèi)容豐富和數(shù)量增長(zhǎng),快速實(shí)現(xiàn)圖紙的對(duì)照跳轉(zhuǎn)檢索日漸困難,且容易出錯(cuò)。
針對(duì)上述問(wèn)題,本文提出并實(shí)現(xiàn)了具有自動(dòng)跳轉(zhuǎn)功能的圖紙智能檢索,首先從關(guān)聯(lián)的角度對(duì)圖紙數(shù)據(jù)的關(guān)聯(lián)與檢索的方法進(jìn)行有關(guān)探究,提出一種圖紙數(shù)據(jù)關(guān)聯(lián)檢索方法。通過(guò)關(guān)聯(lián)查詢(xún)搜索滿(mǎn)足要求的圖紙數(shù)據(jù)節(jié)點(diǎn),實(shí)現(xiàn)對(duì)圖紙數(shù)據(jù)的檢索。利用節(jié)點(diǎn)間的關(guān)聯(lián)性和基于數(shù)據(jù)庫(kù)間數(shù)據(jù)表間的關(guān)聯(lián)性,達(dá)到精確檢索到圖紙的目的。根據(jù)上述研究?jī)?nèi)容研發(fā)的變電站智能圖紙管理系統(tǒng),提高變電站圖紙智能化管理水平,減少圖紙查閱耗時(shí)及人工出錯(cuò)風(fēng)險(xiǎn),提高圖紙管理便捷性和可靠性。
圖紙間的數(shù)據(jù)關(guān)聯(lián)模型是本設(shè)計(jì)中最重要的構(gòu)建模塊,設(shè)計(jì)提出具有關(guān)聯(lián)性的圖紙數(shù)據(jù)之間的關(guān)聯(lián)關(guān)系。利用圖紙編碼之間存在的關(guān)聯(lián)關(guān)系,創(chuàng)建關(guān)于數(shù)據(jù)節(jié)點(diǎn)和編碼節(jié)點(diǎn)之間新的關(guān)聯(lián)關(guān)系,使兩張圖紙的數(shù)據(jù)之間較為準(zhǔn)確地、間接地產(chǎn)生關(guān)聯(lián)[2]。
本文研究對(duì)象為CAD電子圖紙,關(guān)聯(lián)模型研究所需基本數(shù)據(jù)要素信息包括圖紙內(nèi)的編號(hào)、端子號(hào)(如4QD1等),屬性要素信息包括圖紙名字、圖冊(cè)序號(hào)、頁(yè)號(hào)、圖形符號(hào)、文字符號(hào)、備注信息等,重點(diǎn)關(guān)注能精簡(jiǎn)表達(dá)主題的關(guān)鍵詞信息。CAD圖紙是一種特殊的圖結(jié)構(gòu),圖中的每個(gè)節(jié)點(diǎn)和每條邊都包含屬性信息。關(guān)聯(lián)CAD圖紙實(shí)質(zhì)上是對(duì)大量數(shù)據(jù)要素信息的集成,使數(shù)據(jù)要素信息不僅可以由某一個(gè)文檔直接獲得,還能從眾多相關(guān)聯(lián)起來(lái)的路徑獲取。
本文構(gòu)建的CAD圖紙關(guān)聯(lián)網(wǎng)絡(luò)中包括兩大類(lèi)節(jié)點(diǎn):一是標(biāo)識(shí)每一張圖紙及基本信息的數(shù)據(jù)節(jié)點(diǎn);二是表示圖紙中實(shí)體的實(shí)體節(jié)點(diǎn)。實(shí)體在這里就是一種指定類(lèi)型的數(shù)據(jù)庫(kù)對(duì)象,如電氣元器件以及直線(xiàn)、圓、圓弧、文字、曲線(xiàn)和橢圓等。無(wú)論是實(shí)體節(jié)點(diǎn)還是數(shù)據(jù)節(jié)點(diǎn),都能利用屬性進(jìn)行描述。通常來(lái)說(shuō),一個(gè)節(jié)點(diǎn)往往具有多個(gè)屬性,它可以是和它存在關(guān)聯(lián)關(guān)系的任何一個(gè)個(gè)體。
關(guān)聯(lián)節(jié)點(diǎn)的結(jié)構(gòu)如圖1 所示。數(shù)據(jù)節(jié)點(diǎn)是圖紙數(shù)據(jù)的抽象:基于圖紙數(shù)據(jù)的數(shù)據(jù),抽取出主要字段或者端子號(hào)。將主要字段或符號(hào)映射為屬性,并創(chuàng)建相應(yīng)圖紙數(shù)據(jù)節(jié)點(diǎn)[3-4]。設(shè)計(jì)圖紙編碼節(jié)點(diǎn),是本文關(guān)聯(lián)模型的關(guān)鍵內(nèi)容之一。把有關(guān)聯(lián)性的圖紙?jiān)O(shè)置編碼,用編碼節(jié)點(diǎn)把擁有一樣編碼值的圖紙數(shù)據(jù)關(guān)聯(lián)起來(lái)。節(jié)點(diǎn)類(lèi)型是編碼節(jié)點(diǎn)的屬性,它是用來(lái)分辨不同類(lèi)型的數(shù)據(jù)關(guān)聯(lián)節(jié)點(diǎn)。除了節(jié)點(diǎn)類(lèi)型,圖紙編碼節(jié)點(diǎn)還有層次級(jí)別、編碼方式和圖紙編碼值等不同屬性。如圖2所示。
圖1 要素關(guān)聯(lián)模型關(guān)聯(lián)節(jié)點(diǎn)結(jié)構(gòu)
圖2 圖紙編碼節(jié)點(diǎn)結(jié)構(gòu)
在編碼方式上本文使用的是GBK 碼。而GBK碼也是GB 碼的擴(kuò)展字編碼(即漢字內(nèi)碼擴(kuò)展規(guī)范),它使用的是單雙字節(jié)變長(zhǎng)的編碼方式。英文部分采用單字節(jié)編碼,而且可以完整兼?zhèn)銩SCII字編碼,而中文部分使用的是雙字節(jié)編碼。
圖紙數(shù)據(jù)節(jié)點(diǎn)與編碼節(jié)點(diǎn)間的關(guān)聯(lián)關(guān)系具有如下一些特征:在圖紙數(shù)據(jù)的編號(hào)值集中含有某另一張編號(hào)值,即圖紙數(shù)據(jù)節(jié)點(diǎn)與該編號(hào)節(jié)點(diǎn)之間具有關(guān)聯(lián)性;基于對(duì)圖紙的數(shù)據(jù)檢索以及圖表之間關(guān)聯(lián)分析的綜合考慮,要求與圖紙數(shù)據(jù)關(guān)聯(lián)的編碼節(jié)點(diǎn)數(shù)量越少越好,因此如果編碼節(jié)點(diǎn)太多時(shí),將提高圖紙關(guān)聯(lián)查詢(xún)比較的復(fù)雜性,從而減少圖紙數(shù)據(jù)檢索、圖表關(guān)聯(lián)分析的有效性。
利用數(shù)據(jù)節(jié)點(diǎn)與圖紙之間的傳遞關(guān)聯(lián),設(shè)計(jì)本文關(guān)聯(lián)檢索的方法。先將圖紙文檔數(shù)據(jù)提取,用其建立數(shù)據(jù)庫(kù),再構(gòu)建索引項(xiàng),最后查詢(xún)圖紙的關(guān)聯(lián)模型。節(jié)點(diǎn)與圖紙間的關(guān)聯(lián)關(guān)系體現(xiàn)在變電站二次回路圖紙中,比如,4QD1 是圖A 里的端子號(hào),而4QD1是圖B里的端子號(hào),則圖A和圖B之間存在了關(guān)聯(lián)關(guān)系。檢索方法流程框架如圖3所示。
圖3 檢索方法流程圖
首先進(jìn)行變電站二次回路圖紙關(guān)聯(lián)檢索,將圖紙內(nèi)包含的數(shù)據(jù)提取出來(lái),以CAD圖紙為例,利用軟件AutoCAD 自身的數(shù)據(jù)提取功能,將CAD 圖紙中所有屬性的數(shù)據(jù)提取出來(lái)輸出成Excel 表格文檔;然后將表格文檔中的數(shù)據(jù)利用SQL開(kāi)發(fā)語(yǔ)言使其輸入數(shù)據(jù)庫(kù)中,在數(shù)據(jù)庫(kù)中對(duì)數(shù)據(jù)表進(jìn)行整理及關(guān)聯(lián),完善數(shù)據(jù)庫(kù)設(shè)計(jì);接下來(lái)利用Visual Studio 2015 編寫(xiě)底層腳本來(lái)設(shè)計(jì)實(shí)現(xiàn)關(guān)聯(lián)檢索的功能;最后,利用Qt自身基于C++編程語(yǔ)言的開(kāi)發(fā)語(yǔ)言,進(jìn)行UI界面的設(shè)計(jì)及封裝。關(guān)聯(lián)檢索流程如圖4所示。
圖4 系統(tǒng)設(shè)計(jì)流程圖
本文提出了一種通過(guò)圖紙間關(guān)聯(lián)的方法實(shí)現(xiàn)圖紙數(shù)據(jù)關(guān)聯(lián)檢索的方法。主要步驟如圖5所示。
圖5 圖紙數(shù)據(jù)關(guān)聯(lián)檢索方法
圖紙編碼節(jié)點(diǎn)包括了編碼值,與圖紙數(shù)據(jù)節(jié)點(diǎn)有直接關(guān)聯(lián)的節(jié)點(diǎn)。根據(jù)圖紙編碼節(jié)點(diǎn)的編碼值,快捷查找相關(guān)圖紙中的圖紙編碼節(jié)點(diǎn)。最后,根據(jù)查詢(xún)出的數(shù)據(jù)節(jié)點(diǎn)來(lái)獲取數(shù)據(jù),作為結(jié)果返回。
利用C++編程語(yǔ)言提取圖紙中的數(shù)據(jù)信息,將其圖紙數(shù)據(jù)信息利用SQL數(shù)據(jù)庫(kù)儲(chǔ)存并關(guān)聯(lián)起來(lái)封裝形成一個(gè)數(shù)據(jù)庫(kù);在利用C++編程語(yǔ)言來(lái)進(jìn)行底層代碼的編寫(xiě)前,首先在項(xiàng)目的配置文件中定義到數(shù)據(jù)庫(kù)的連接信息,然后確定對(duì)象和類(lèi),利用C++的標(biāo)準(zhǔn)模板庫(kù)(STL)里的關(guān)聯(lián)容器將相關(guān)圖紙的編號(hào)關(guān)聯(lián),以進(jìn)行讀操作,對(duì)類(lèi)和函數(shù)分別進(jìn)行封裝;使用Data set類(lèi)來(lái)實(shí)現(xiàn)檢索系統(tǒng)的功能。
利用Qt下的Qt Creator新創(chuàng)建一個(gè)桌面Qt應(yīng)用,包含一個(gè)基于Qt 設(shè)計(jì)師的主窗體,且其中選擇MainWindow 作為基本的類(lèi)并勾選附帶創(chuàng)建界面文件,在此基礎(chǔ)上進(jìn)行界面的設(shè)計(jì)及其封裝。
在自動(dòng)跳轉(zhuǎn)功能實(shí)現(xiàn)上,利用QLabel控件承載圖紙的顯示。在節(jié)點(diǎn)上插入控件以方便控制跳轉(zhuǎn)。例如,在圖紙中點(diǎn)擊編號(hào)“4QD1”下的節(jié)點(diǎn)以跳轉(zhuǎn)到所關(guān)聯(lián)的目標(biāo)圖紙下,如圖6所示。
圖6 圖紙關(guān)聯(lián)跳轉(zhuǎn)功能示意圖
本文對(duì)CAD圖紙關(guān)聯(lián)模型和數(shù)據(jù)節(jié)點(diǎn)和圖紙之間關(guān)聯(lián)關(guān)系的研究,提出具有自動(dòng)跳轉(zhuǎn)功能的變電站圖紙智能化實(shí)現(xiàn)的方法。通過(guò)關(guān)聯(lián)查詢(xún)搜索滿(mǎn)足要求的圖紙數(shù)據(jù)節(jié)點(diǎn),實(shí)現(xiàn)對(duì)圖紙數(shù)據(jù)的檢索。利用節(jié)點(diǎn)間的關(guān)聯(lián)性和基于數(shù)據(jù)庫(kù)間數(shù)據(jù)表間的關(guān)聯(lián)性,通過(guò)界面點(diǎn)擊跳轉(zhuǎn)的設(shè)計(jì)及實(shí)現(xiàn),達(dá)到精確檢索和展示到對(duì)應(yīng)圖紙的目的。