在EON软件二次开发上实现通信装备虚拟维修系统设计

描述

引言

通信装备的维修保障能力在保证部队作战能力方面起着重要作用,当前,在通信装备的维修训练上,大多采用实装训练。此方式受到多方面的影响,比如通信装备的数量、复杂程度和使用寿命等。加之技术的更新换代,通信装备的电子化和智能化水平越来越高,复杂程度大幅增加,通信装备的造价也非常昂贵。这导致了通信装备维修训练成本和难度徒增的问题。而虚拟维修作为一种新的维修技术,具有成本低、风险小、效率高、实用性强等优点。对维修保障流程的合理性、维修保障系统组织结构的高效性进行评估,形成维修周期最短、维修费用最低、维修保障能力最强的全局最优的维修方案。

系统以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 软件二次开发的基础上,结合三维建模、虚拟维修、数据库以及电子电路仿真等方面的技术,开发出了某通信装备的虚拟维修训练系统,降低了维修训练对客观实物的依赖,有效地解决了当前维修训练中成本高等问题,对提高维修训练效率、扩大维修训练规模有极大的帮助,本文所涉及的系统已进行实践验证,系统有效可行,具有良好的应用前景。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分