郭連仲,張紀(jì)平, 郭浩森, 齊錦會(huì), 唐振江
(1.河北省電力公司職業(yè)技術(shù)培訓(xùn)中心,河北 保定 071051;2.華北電力大學(xué),北京 102206)
近年來,由于計(jì)算機(jī)軟硬件技術(shù)的進(jìn)步,變電站仿真系統(tǒng)逐步擴(kuò)展了三維虛擬現(xiàn)實(shí)功能,通過二維畫面仿真“遠(yuǎn)方”監(jiān)控,將三維設(shè)備場景用于“就地”操作,使仿真更加逼真,因此在變電站相關(guān)培訓(xùn)中越來越受到認(rèn)可。在河北省名府220 kV數(shù)字化變電站仿真系統(tǒng)研發(fā)中,通過在Delphi中引入VRP Active插件及VRP-SDK開發(fā)包的方法,采用嵌入式編程技術(shù),實(shí)現(xiàn)二維監(jiān)控仿真與三維虛擬設(shè)備的同步交互功能,解決二維對三維設(shè)備的快速定位問題,節(jié)省在三維中查找設(shè)備所耗時(shí)間,提高仿真系統(tǒng)的培訓(xùn)效率。
目前,變電站仿真系統(tǒng)中采用的三維技術(shù)包括OPENGL、VRP、3C等,都能實(shí)現(xiàn)三維場景效果。VRP作為流行的三維開發(fā)平臺(tái),可對三維模型進(jìn)行烘焙處理,保證了模型的視覺效果;同時(shí),VRP本身提供了二次開發(fā)包(VRP-SDK)和相應(yīng)的插件,支持Delphi、VB、VC++等環(huán)境的嵌入式調(diào)用,為技術(shù)人員利用熟悉的工具實(shí)現(xiàn)三維功能的二次開發(fā)提供了便利。在以往的三維仿真培訓(xùn)系統(tǒng)中,二維系統(tǒng)與三維系統(tǒng)為相互獨(dú)立的程序,二者間通過數(shù)據(jù)庫建立間接聯(lián)系,造成三維設(shè)備模型不容易進(jìn)行定位,需要學(xué)員花費(fèi)較多時(shí)間熟悉三維場景的操作,方能找到“就地”設(shè)備,給培訓(xùn)過程增加了額外負(fù)擔(dān),影響了培訓(xùn)效率。其問題在于2個(gè)獨(dú)立程序間的聯(lián)系需通過訪問磁盤數(shù)據(jù)進(jìn)行,三維“就地”設(shè)備不能直接接受二維“遠(yuǎn)方”操作的控制,操作功能受限,如果將二者合并為一個(gè)程序并通過WINDOWS消息機(jī)制相互聯(lián)系,使得三維設(shè)備直接接受來自二維畫面的指令,就可實(shí)現(xiàn)二維、三維界面設(shè)備同步。
在河北省名府?dāng)?shù)字化變電站仿真系統(tǒng)中,選用了Delphi作為主要開發(fā)工具,完成了設(shè)備操作和保護(hù)動(dòng)作仿真主程序;變電站三維設(shè)備場景是由VRP平臺(tái)提供的.VRP文件,該文件是通過三維 Max建模后經(jīng)VRP加工生成。實(shí)現(xiàn)二者間的交互操作,需要設(shè)計(jì)合適的接口。一種方法是間接法,即二維、三維獨(dú)立編程,通過訪問同一個(gè)數(shù)據(jù)庫建立聯(lián)系;另一種方法是直接法,即通過在Delphi Ide中引入VRP插件并調(diào)用VRP-SDK腳本函數(shù)的方法,即嵌入式編程方法,將二維和三維整合成一個(gè)程序。嵌入式編程方法相當(dāng)于擴(kuò)展了Delphi的功能,可以直接利用WINDOWS消息機(jī)制,程序運(yùn)行效率好于間接法。該數(shù)字化變電站仿真系統(tǒng)采用直接法的方案,其流程如圖1所示。經(jīng)過以下流程,即可實(shí)現(xiàn)二維監(jiān)控與三維仿真的數(shù)據(jù)關(guān)聯(lián)機(jī)制的交互操作。
在Delphi Ide平臺(tái)導(dǎo)入ActiveVrp插件,出現(xiàn)OCX控件圖標(biāo),如圖2所示。
圖1 二維與三維同步交互技術(shù)方案示意
圖2 將ActiveVrp插件導(dǎo)入Delphi示例
在窗口中添加該控件,可以作為VRP(三維)文件的容器(container),進(jìn)而使用SDK腳本函數(shù),其函數(shù)調(diào)用方法與Delphi自身函數(shù)調(diào)用方法相同。
在二維窗口添加Timage控件,調(diào)用變電站二維主接線圖及斷路器、開關(guān)等圖形控件。在三維窗口添加VRP控件,程序運(yùn)行時(shí)調(diào)用變電站三維場景VRP文件。在二維窗口文件中添加對三維窗口文件的引用,以便二維窗口能夠調(diào)用三維窗口函數(shù),實(shí)現(xiàn)對三維設(shè)備的同步控制,如相機(jī)切換、設(shè)備動(dòng)作(動(dòng)畫)。
在VRP-SDK中提供了一個(gè)腳本函數(shù),即ExecuteVrpScript(功能參數(shù)),各種功能通過不同的參數(shù)變化來實(shí)現(xiàn)對以物體名或組為對象的操作行為,如切換相機(jī)、播放動(dòng)畫、設(shè)置相機(jī)移動(dòng)速度等。SDK提供了2個(gè)相機(jī)函數(shù),分別為動(dòng)態(tài)相機(jī)和靜態(tài)相機(jī),前者為以物體名稱為參數(shù)進(jìn)行調(diào)用的相機(jī),后者為預(yù)設(shè)的相機(jī)。顯然,動(dòng)態(tài)相機(jī)具有靈活性的特點(diǎn),方便程序調(diào)用。如圖3代碼所示。
需要說明的是,要實(shí)現(xiàn)二維與三維的同步功能,需要事先確定二維控件和三維物體的命名規(guī)則,所有設(shè)備在二維和三維中采用統(tǒng)一的設(shè)備名稱或規(guī)定的前綴和后綴相關(guān)聯(lián),以便將該名稱作為參數(shù)調(diào)用動(dòng)態(tài)相機(jī),實(shí)現(xiàn)二維界面對三維設(shè)備的聚焦和動(dòng)畫控制;同理,通過另一個(gè)腳本函數(shù)VrpEvent,可實(shí)現(xiàn)三維對二維設(shè)備的控制。
圖3 在Delphi程序中使用的VRP-SDK腳本函數(shù)
通過以上的互動(dòng)方法及步驟,實(shí)現(xiàn)了基于該技術(shù)的數(shù)字化變電站三維仿真系統(tǒng)。在該系統(tǒng)中設(shè)計(jì)并實(shí)現(xiàn)了以下內(nèi)容:統(tǒng)一二維及三維系統(tǒng)物體的命名規(guī)則;設(shè)計(jì)了二維及三維系統(tǒng)仿真內(nèi)容的邏輯互動(dòng)關(guān)系;實(shí)現(xiàn)二維界面對三維系統(tǒng)的準(zhǔn)確定位。
a. 二維及三維系統(tǒng)的命名規(guī)則必須統(tǒng)一,能夠便于識別和交互。如232斷路器的命名規(guī)則:二維窗口圖形控件名為img_dl232,斷路器名為232;三維窗口物體組名:232,動(dòng)觸頭:232;位置指示器,232_wz,合閘狀態(tài)指示燈:232_D1。通過這種方法實(shí)現(xiàn)了二維、三維系統(tǒng)物體命名統(tǒng)一。
b. 為了實(shí)現(xiàn)其主要的邏輯對應(yīng)與控制,下面給出通過二維控制三維畫面的控制代碼實(shí)例,見圖4。
圖4 二維對三維界面的控制代碼
代碼是Delphi中引用VRP-SDK控制函數(shù)實(shí)現(xiàn)二維監(jiān)控畫面對三維場景物體進(jìn)行控制的實(shí)例,其中設(shè)備名稱作為過程的參數(shù)。例如,在二維畫面點(diǎn)擊232斷路器圖標(biāo),則三維畫面聚焦到232斷路器;如果在二維畫面拉開232斷路器,則三維畫面232斷路器及相應(yīng)的指示器(燈)以動(dòng)畫形式同步變化。其效果如圖5所示,當(dāng)在二維窗口點(diǎn)擊232斷路器圖標(biāo)時(shí),三維畫面直接聚焦到相應(yīng)的斷路器位置,可直接看到該斷路器的當(dāng)前分合狀態(tài);繼續(xù)拉、合操作,則出現(xiàn)同步動(dòng)畫效果。
同理,在三維畫面中對其設(shè)備(物體)進(jìn)行操作,通過設(shè)備物體名稱索引方法,亦可實(shí)現(xiàn)設(shè)備狀態(tài)的改變,并達(dá)到與二維畫面相一致的效果。
圖5 二維界面對三維界面的定位
實(shí)際培訓(xùn)中,采用“一托二”的屏幕顯示方式,分別顯示二維監(jiān)控畫面和三維現(xiàn)場畫面,即1臺(tái)計(jì)算機(jī)7配2個(gè)顯示屏,主屏顯示二維畫面,副屏顯示三維畫面。這種配置使仿真系統(tǒng)二維、三維界面相配合,通過鼠標(biāo)點(diǎn)擊二維界面的設(shè)備圖標(biāo)即可快速準(zhǔn)確地定位三維設(shè)備。
2011年8月,在河北省電力公司職業(yè)技術(shù)培訓(xùn)中心保定分部舉辦的兩期數(shù)字化變電站運(yùn)行維護(hù)培訓(xùn)全程采用了該仿真系統(tǒng),共有來自省公司所屬6個(gè)供電公司和超高壓公司的48名變電運(yùn)行人員參加了培訓(xùn)。通過二維與三維的同步交互功能,學(xué)員能夠很快熟悉仿真操作,提高培訓(xùn)效率。兩期的培訓(xùn)質(zhì)量測評結(jié)果均達(dá)到了93分以上,應(yīng)用該系統(tǒng)進(jìn)行培訓(xùn)取得了預(yù)期效果。
以上介紹了在Delphi中引入VRP Active插件,并直接調(diào)用VRP-SDK函數(shù)的嵌入式編程技術(shù),延展了Delphi的功能,實(shí)現(xiàn)了對三維設(shè)備的直接定位和操控。在實(shí)際培訓(xùn)應(yīng)用中的效果表明,該技術(shù)應(yīng)用于變電站三維仿真系統(tǒng)培訓(xùn),節(jié)省了對三維操作的學(xué)習(xí)時(shí)間,提高了培訓(xùn)效率。
參考文獻(xiàn):
[1] 梁 水,賽奎春.Delphi開發(fā)典型模塊大全(修訂版)[M].北京:人民郵電出版社, 2010.
[2] 祝鉑渝,龔慶武,姜芳芳.具有三維交互功能的變電站仿真培訓(xùn)系統(tǒng)[J].中國農(nóng)村水利水電,2005,31(11):95-97.
[3] 李 華,陳偉偉.基于虛擬現(xiàn)實(shí)建模語言的彈道可視化仿真[J].探測與控制學(xué)報(bào),2009,31(1):77-80.