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