引言
通信裝備的維修保障能力在保證部隊作戰能力方面起著重要作用,當前,在通信裝備的維修訓練上,大多采用實裝訓練。此方式受到多方面的影響,比如通信裝備的數量、復雜程度和使用壽命等。加之技術的更新換代,通信裝備的電子化和智能化水平越來越高,復雜程度大幅增加,通信裝備的造價也非常昂貴。這導致了通信裝備維修訓練成本和難度徒增的問題。而虛擬維修作為一種新的維修技術,具有成本低、風險小、效率高、實用性強等優點。對維修保障流程的合理性、維修保障系統組織結構的高效性進行評估,形成維修周期最短、維修費用最低、維修保障能力最強的全局最優的維修方案。
系統以Delphi 為系統開發的平臺,在EON 二次開發的基礎上,設計出了某通信裝備的虛擬維修訓練系統,并進行了實踐驗證,有很好的應用價值。
1 系統設計
通信裝備的虛擬維修訓練系統不僅要求形象直觀地將裝備各個部分的3D 模型以及拆裝過程展現給使用者,而且要求能夠很好的指導使用者進行維修訓練,還要求根據情況生成相應的故障分析文檔和實際維修的參考方案。整個系統在實現過程中涉及到了數據庫開發技術、3D 模型建立、行為模型制作、二次開發等方面,主要包括裝備模型制作、行為邏輯模型編輯、故障數據庫建立、維修數據處理、故障維修參考文檔生成等幾個部分,如圖1 所示。
系統的實現是在對EON Studio(簡稱EON)二次開發的基礎上進行的,二次開發要求開發對象要足夠開放,而EON 提供了對外部程序的接口EonX,完全可以實現對其進行應用開發,并且EON 有豐富的節點、元件庫,可以方便地給三維模型加上行為。鑒于Delphi 方便、高效及其強大的功能,本系統用它作為二次開發的平臺,最終實現系統的功能需要。
2 系統實現
2.1 三維模型設計
隨著通信裝備的發展,其規模越來越大,零部件數量非??捎^,再加上虛擬維修系統對模型的幾何尺寸精細程度和位置準確度的要求比較高,裝備三維模型建立的工作量很大。目前,三維建模工具有許多,該設計所用的3DS MAX 操作簡易、渲染效果逼真,還可以直接輸出EON 文件。
在建模過程中,要在面片的Diffuse 材質中給它一個貼圖文件。如果貼圖大小為W×H,那么貼圖要求最好滿足此條件:max{W,H}≤2048,否則貼圖將不會正常顯示。此外,貼圖最好用矢量圖,因為位圖在縮放時會失真,而矢量圖是不會存在這種情況的。該系統在設計時用CorelDraw 軟件將部分元件貼圖轉化為矢量圖,再進行材質貼圖。
虛擬維修的基礎是三維建模,三維模型的設計一定要一次完成,如果將行為模型編輯完成后,再想要修改,那么必須重新導入EON,從頭編輯行為模型。
2.2 建立行為模型
三維模型設計完成后,就要給通信裝備的需要虛擬拆裝的零部件加上行為,建立行為模型,這是整個系統開發的核心,直接關系到與應用程序的數據通信成功與否。通過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 所示。
3)在EON 中修改Render 屬性,將RenderingQuality 調至low , 具體操作如: Simulation →Configuration→Render,該方法由于降低了渲染頻率,所以在模型移動過程中有輕微的模糊和扭曲。
2.3 Delphi 與EON 通訊--EON 的二次開發行為模型建立完成后,就要通過混合編程技術在Delphi 中調用它,實現EON 的二次開發。如前所述,要實現這一步必須借助EonX 控件,EonX 是EON 提供給宿主程序(即二次開發平臺Delphi)的通信接口,通過它可以把行為模型顯示在宿主程序中,進行正常瀏覽。它通過EON 內部的路由解釋器接受宿主程序的輸入消息,改變視點位置,同時,可向宿主程序輸出消息,完成這一通信過程靠的是EON 中的路由接口--InEvent 和OutEvent.當然,必須先在Delphi 中安裝,才可使用,安裝方法是:在菜單欄中點ImportComponent→Import a Type Library,選擇EonX 7.0Type 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 的通信原理圖。
2.4 系統實例
最終完成的系統界面如圖4 所示。系統正常運行時,可以通過外設對通信裝備進行虛擬拆裝,很全面地對裝備內部結構進行瀏覽;也可以根據用戶選擇的故障,指導用戶對相應部件的參數進行測量,完成故障維修工作,并生成故障分析文檔和故障維修參考文檔。
3 結語
系統在EON 軟件二次開發的基礎上,結合三維建模、虛擬維修、數據庫以及電子電路仿真等方面的技術,開發出了某通信裝備的虛擬維修訓練系統,降低了維修訓練對客觀實物的依賴,有效地解決了當前維修訓練中成本高等問題,對提高維修訓練效率、擴大維修訓練規模有極大的幫助,本文所涉及的系統已進行實踐驗證,系統有效可行,具有良好的應用前景。
-
通信
+關注
關注
18文章
5973瀏覽量
135860 -
虛擬
+關注
關注
0文章
184瀏覽量
23637 -
數據處理
+關注
關注
0文章
581瀏覽量
28530
發布評論請先 登錄
相關推薦
評論