李 淵, 陳 斌, 楊路剛
(海軍工程大學 電子工程學院,湖北 武漢 430033)
通信裝備的維修保障能力在保證部隊作戰能力方面起著重要作用[3],當前,在通信裝備的維修訓練上,大多采用實裝訓練[4]。此方式受到多方面的影響,比如通信裝備的數量、復雜程度和使用壽命等。加之技術的更新換代,通信裝備的電子化和智能化水平越來越高,復雜程度大幅增加,通信裝備的造價也非常昂貴。這導致了通信裝備維修訓練成本和難度徒增的問題。而虛擬維修作為一種新的維修技術,具有成本低、風險小、效率高、實用性強等優點。對維修保障流程的合理性、維修保障系統組織結構的高效性進行評估,形成維修周期最短、維修費用最低、維修保障能力最強的全局最優的維修方案。
系統以Delphi為系統開發的平臺,在EON二次開發的基礎上,設計出了某通信裝備的虛擬維修訓練系統,并進行了實踐驗證,有很好的應用價值。
通信裝備的虛擬維修訓練系統不僅要求形象直觀地將裝備各個部分的 3D模型以及拆裝過程展現給使用者,而且要求能夠很好的指導使用者進行維修訓練,還要求根據情況生成相應的故障分析文檔和實際維修的參考方案。整個系統在實現過程中涉及到了數據庫開發技術、3D模型建立、行為模型制作、二次開發等方面,主要包括裝備模型制作、行為邏輯模型編輯、故障數據庫建立、維修數據處理、故障維修參考文檔生成等幾個部分,如圖1所示。

圖1 系統設計
系統的實現是在對EON Studio(簡稱EON)二次開發的基礎上進行的,二次開發要求開發對象要足夠開放,而EON提供了對外部程序的接口EonX,完全可以實現對其進行應用開發,并且EON有豐富的節點、元件庫,可以方便地給三維模型加上行為。鑒于Delphi方便、高效及其強大的功能,本系統用它作為二次開發的平臺,最終實現系統的功能需要。
隨著通信裝備的發展,其規模越來越大,零部件數量非常可觀[3],再加上虛擬維修系統對模型的幾何尺寸精細程度和位置準確度的要求比較高,裝備三維模型建立的工作量很大。目前,三維建模工具有許多,該設計所用的3DS MAX操作簡易、渲染效果逼真,還可以直接輸出EON文件。
在建模過程中,要在面片的Diffuse材質中給它一個貼圖文件。如果貼圖大小為 W×H,那么貼圖要求最好滿足此條件:max{W,H}≤2048,否則貼圖將不會正常顯示。此外,貼圖最好用矢量圖,因為位圖在縮放時會失真,而矢量圖是不會存在這種情況的。該系統在設計時用CorelDraw軟件將部分元件貼圖轉化為矢量圖,再進行材質貼圖。
虛擬維修的基礎是三維建模,三維模型的設計一定要一次完成,如果將行為模型編輯完成后,再想要修改,那么必須重新導入EON,從頭編輯行為模型。
三維模型設計完成后,就要給通信裝備的需要虛擬拆裝的零部件加上行為,建立行為模型,這是整個系統開發的核心,直接關系到與應用程序的數據通信成功與否。通過3DS max將三維模型導入到EON中有下面三種方法:
1)EON的 Import功能:先將三維模型保存為.3ds文件,然后在EON中導入,在導入后,一開始是看不到模型的,因為EON和3DS MAX中坐標尺寸不一樣,這只需在EON中修改模型的scale屬性值即可,操作比較復雜。
2)Raptor插件:作為擴展 3DS MAX功能的外掛模塊,它可以在3DS MAX中瀏覽三維模型的 EON場景,并將其保存為EON文件,操作簡單,但是模型中貼圖較多時容易出錯。
3)3DS MAX的Export功能:在Export功能中選擇EON Stand-alone File,該方法操作簡單且在貼圖較多時不會出錯。該系統采用此方法。
模型導入后就是給相關模塊添加節點及元件,構建完整的Simulation Tree,然后在Routes圖中制作邏輯圖,完成行為模型的建立。
由于模型比較大,貼圖也比較多,所以在 EON中渲染虛擬場景非常慢,曾經達到過40 s左右,并且在瀏覽時速度緩慢,甚至出現停頓現象,對瀏覽造成了很大的麻煩。究其原因,每當視點發生變化,瀏覽器就會重新計算場景中各模型的新位置并重新進行渲染,所以當場景中模型較多時,瀏覽器渲染速度就會跟不上視點變化的速度,從而出現緩慢甚至停頓的現象。通過降低貼圖質量和模型復雜度可以解決這一問題,但是視覺效果會降低。經過探索,有以下三種解決方案:
1)將模型分模塊編輯,生成.edz文件,用ChangeSimulation節點進行場景切換,該方法在場景切換時還要緩沖等待,影響場景瀏覽的連貫性。
2)采用PowerSwitch節點在同一場景下實現模塊間切換,該裝備有3大模塊,共7個機柜,元器件眾多,貼圖豐富,如果在場景下同時出現勢必影響瀏覽速度,而同時顯現也沒必要,故而用此方法,邏輯圖如圖2所示。

圖2 模塊間切換邏輯
3)在 EON中修改 Render屬性,將 Rendering Quality調至 low,具體操作如:Simulation→Configuration→Render,該方法由于降低了渲染頻率,所以在模型移動過程中有輕微的模糊和扭曲。
行為模型建立完成后,就要通過混合編程技術在Delphi中調用它,實現EON的二次開發。如前所述,要實現這一步必須借助EonX控件,EonX是EON提供給宿主程序(即二次開發平臺Delphi)的通信接口,通過它可以把行為模型顯示在宿主程序中,進行正常瀏覽。它通過EON內部的路由解釋器接受宿主程序的輸入消息,改變視點位置,同時,可向宿主程序輸出消息,完成這一通信過程靠的是EON中的路由接口——InEvent和OutEvent。當然,必須先在Delphi中安裝,才可使用,安裝方法是:在菜單欄中點Import Component→Import a Type Library,選擇EonX 7.0 Type Library,完成安裝。
EonX提供了許多二次開發的方法,通過方法SendEvent可由宿主程序經過InEvent向EON發送消息,改變需要維修零部件的位置坐標。下面是讓發信機模塊出現在場景中的程序:
procedure TForm1.TreeViewMouseDown(
Sender: TObject;
Button: TMouseButton;
Shift: TShiftState;
X, Y: Integer);
var EventIn: OleVariant;
begin
EventIn:=System.True;
MyEon.SendEvent(TreeView.Selected.text,E
ventIn); //給相應模塊發消息
end;
EonX也有許多屬性和事件,通過添加OnEvent事件的響應函數,可以在宿主程序中監聽到經過OutEvent的輸出消息,并在宿主程序中進行相應的處理。下面是發信機柜一號電路板改變視角時Delphi進行響應的程序:
procedure TForm1.MyEonEvent(
ASender: TObject;
const bstrNodeName: WideString;
var pvarNodeValue: OleVariant);
begin
……
if bstrNodeName='發信機柜_電路板 1號'
then
begin
Panel_Tran_Cir1.Visible:=True;
Panel_Tran_Cir2.Visible:=False;
Panel_Tran_Cir3.Visible:=False;
Panel_Rec_Cir1.Visible:= False;
……
end;
end;
圖3示出了Delphi與EON的通信原理圖。

圖3 Delphi與EON的通信原理
最終完成的系統界面如圖4所示。系統正常運行時,可以通過外設對通信裝備進行虛擬拆裝,很全面地對裝備內部結構進行瀏覽;也可以根據用戶選擇的故障,指導用戶對相應部件的參數進行測量,完成故障維修工作,并生成故障分析文檔和故障維修參考文檔。

圖4 系統界面
系統在EON軟件二次開發的基礎上,結合三維建模、虛擬維修、數據庫以及電子電路仿真等方面的技術,開發出了某通信裝備的虛擬維修訓練系統,降低了維修訓練對客觀實物的依賴,有效地解決了當前維修訓練中成本高等問題,對提高維修訓練效率、擴大維修訓練規模有極大的幫助,本文所涉及的系統已進行實踐驗證,系統有效可行,具有良好的應用前景。
[1] 張然,劉健偉,常青.基于 PDA的通信裝備故障診斷系統的設計與實現[J].信息安全與通信保密,2006(09):150-153.
[2] 朱丹,張宏軍.通信裝備的分類與編碼方法研究[J].通信技術,2010,43(09):165-167.
[3] 孫東平,榮海洋,李建林.外軍潛艇通信裝備發展趨勢研究[J].通信技術,2009,42(10):1-3.
[4] 李林,李海軍.基于 EON Professional 5.0的導彈虛擬維修訓練系統[J].山東輕工業學院學報,2007(21):11-13.
[5] 呂志軍,高俊,關建新.基于高速 DSP的跳頻通信系統設計[J].信息安全與通信保密,2006(08):97-99.