基于 GL Studio 的激光测距机维修训练平台研究
基于 GL Studio 的激光测距机维修训练平台研究
作者:王明华;张雏;林德江
维修训练是教学的一项重要内容,通过对装备进行及时、有效地维修,能使装备在最短的时间内恢复战斗能力。新型激光测距机是集光、机、电、计算机技术为一体的精密光电装备,结构复杂,技术含量高,价格远远高于传统光学仪器 ,装备数量相对较少,无法保证维修训练时使用装备的数量。而且基于装备安全及可靠性的考虑,很难在实际装备上模拟各种故障,而进行实装训练不但很容易损坏装备且训练效果不好,因此急需开发出一套成本低、功能强、开发方便快捷、适合部队训练的激光测距仪机模拟维修训练系统。
维修训练平台的设计主要采用 VC++6.0、GL Studio以及 Multisim 来混合编程实现。其中,利用 VC++6.0 编写维修训练平台的仿真主程序,生成软件界面的整体框架。利用 GL Studio 开发示波器、万用表等虚拟显示仪表,形成 ActiveX 控件,以便与 VC++6.0 开发的仿真主程序连接,对维修训练平台上电路板的各种参数及波形等进行显示。 Multisim 主要用来仿真电路板正常情况下各测试点的参数以及故障设置后各故障点的参数。通过 VC++ 编程可以使这些参数显示在 GL Studio 开发的虚拟仪表中,直观地显示给受训人员。
1 维修训练平台需求分析
当前激光测距机的训练和维修完全依托于实装,对实装损耗极大,不利于装备的维护与保养,不利于战备需要,同时也存在因实装故障少而维修训练效果不显著的问题。针对上述问题,本文进行激光测距机虚拟维修训练系统的研究,该系统主要功能需求包括 :
(1)不同层次、不同类型的虚拟维修训练功能。由于部队中进行激光测距机维修训练的人员层次复杂、学历知识不一,该系统需要实现对维修人员进行初、中、高级的分层次的训练和考核,达到不同的训练水平。并且能让受训人员自主选择学习模式、引导训练模式、自主训练模式及考核模式等多种训练模式。
(2)故障设置功能。在虚拟维修训练系统中,教员可以根据需要设置各种故障,来训练和提高被训人员分析和排除故障的能力。
(3)板级故障模拟。激光测距机电路系统的正常工作状态及其故障时的特征表现应能通过仿真逼真再现,同时激光测距机电路系统的内部结构、各功能电路板能通过仿真显示在屏幕上供观察、测量。
(4)排除方案生成。以丰富的专家知识库为基础,通过基于故障树的推理,实现快速故障定位,给出合理的解决方案。(5)训练效果评估。可实现对参考人员进行考核并给出量化成绩,通过考核客观地反映维修人员的实际维修水平。
2 GL Studio 介绍
2.1 GL Studio 的主要功能简介
GL Studio 是 DiSTI 公司开发的一款独立于平台的快速原型工具,用来创建实时的、二维或三维的、照片级的、交互式的图形界面软件 [2]。它能与 HLA/DIS 仿真应用相连。它生成的 C++ 和 OpenGL 源代码可以单独运行,也可以嵌入其他应用程序中 [3]。它可以运行于 Windows NT、IRIX 和 Linux 操作系统上。
用户可在图形设计器中通过这种所见即所得的方式来完成所需界面的设计制作,通过代码编辑器完成所需的逻辑仿真。其代码生成器能将用户完成的设计自转换为 C++ 和 OpenGL 代码,这些代码既可以单独编译,也可以嵌入到其他程序中编译,避免大量的底层程序开发。代码生成器允许把对象组生成为定制的 C++ 类,这些 C++ 类能被轻松集成到仿真应用程序中。GL Studio 生成的代码使用GL Studio 运行时间类结构。运行时间类结构提供图形对象、显示列表和用户界面对象的框架。运行时间类是一个独立的平台,且允许程序员只写一次代码就能应用到所有运行时间类支持的 GL Studio 平台上。
GL Studio 支持照片级纹理的应用。一切多边形对象都可以贴纹理。通过纹理的应用,可以设计出形象、逼真的用户界面。如虚拟万用表的纹理制作就是是通过拍摄实物照片的形式获取单元图像,然后利用图形编辑软件(例如 Photoshop 软件)对万用表的照片进行处理,消除光线不均匀造成的影响,并将万用表中能动的部件(如液晶屏中的数字部分,电源开关、档位旋钮等)从中挖去单独处理,生成纹理文件。
基于纹理的创建特点,在各类显示组件单元图形的设计不仅基于真实形象的外观要求,还需要为后期的逻辑代码的实现做好准备,以便达到最佳外观表现和更高效的后期开发。
2.2 GL Studio 的虚拟面板开发流程
GL Studio 的开发过程一般包括确定工程类型、设计图形界面、添加交互代码、生成代码、加入系统调试等 5 步。
2.2.1 确定工程类型 根据项目总体设计需求,在编译环境中选择合适的工程类型(application 或 component),生成 gls 文件。
2.2.2 设计图形界面 GL Studio 支持使用真实感纹理。首先可以利用图形处理软件 Photoshop 等制作被仿真设备的纹理,包括整个设备的背景纹理和各功能元件的纹理。纹理大小通常为 2m×2n 像素。然后在 GL Studio 的可视化环境中建立各种器件模型,并参照实物添加各种纹理。最后为各功能元件适当命名。
2.2.3 添加交互代码 根据实时仿真的需要,为被驱动的元件或资源添加适当的属性和方法 ;为需要响应的界面事件添加适当的回调函数。
2.2.4 生成代码 GL Studio 代码生成器把 GL Studio 设计器创建的各类对象生成为 C++ 的 OpenGL 源代码。再根据工程类型,将源代码编辑成相应的执行文件或库文件。 2.2.5 加入系统调试 将制作好的器件模型应用到软件中进行调试。
3 维修训练平台的关键技术研究
3.1 维修训练平台虚拟面板设计
在设计虚拟面板时,根据所要实现的功能将面板划分 3 部分,即虚拟电路板、虚拟仪器仪表、电路原理图提示。虚拟电路板是将实物电路板的照片通过 Photoshop 等处理以后制成的 bmp 格式贴图,这种应用在 GL Studio 中的贴图几乎与实物一样,这样做出来的效果更加形象逼真。在预设的故障点处,通过设置热点的方式可以使后续的编程及仿真更加方便。虚拟仪器仪表主要包括示波器、万用表以及一些开关、指示灯等,用来显示被测电路板的各种参数及状态。这些都是通过 GL Studio 生成,并通过编程来实现交互的。
电路原理理论提示部分是通过 Visual C++ 的命令函数将电路原理图显示出来,与虚拟电路板所对应,这样可以使受训人员既直观地了解电路结构,也可以了解电路原理,通过对比可以加深印象。
3.2 GL Studio 与 MFC 的混合编程
GL Studio 可以生成 3 种不同类型的文件 :(1)可单独执行文件(EXE);(2)动态链接库(DLL);(3) ActiveX 文件。ActiveX 控件是具有特定功能的软件模块,可移植性非常强,它可以被单独应用,也可与第三方软件设计联合应用。这里主要介绍通过 GL Studio 中Generation 选项选择 Component,利用代码生成器自动生成 ActiveX 控件所需的代码,然后返回至 Visual C++ 6.0的编译环境,在控件代码中扩展属性和方法代码,最终编译生成 GL Studio 所形成的 ActiveX 控件的方法。
首先,设计界面图形,利用 GL Studio 代码生成器生成 Wgl component 类型的代码。其次,在 VC++6.0 中建立一个 MFC 应用程序 ;然后,将 GL Studio 生成的头文件和源文件加入工程中。然后,将 GL Studio 源代码生成器创建的模型文件转换为基于的 OpenGL 的 C++ 源文件。在一个实现 GL Studio ActiveX Control 注册的系统环境下,可以在 VC++ 环境下对 GL Studio 模型源文件进行加载和封装,生成适合 MFC 编程的 CAB 压缩组件。最后,载入主框架。由于 CAB 组件已具备 ActiveX 控件的 OLE 特性,可以集成到 MFC 主框架程序中。
GL Studio 建立的万用表模型通过注册生成 ActiveX控件后就可以与 MFC 进行混合编程,这不仅使 MFC 界面更加灵活,而且可扩展也更强。由于 GL Studio 的代码生成器不支持 MFC 类型消息封装机制,所以需要用 Windows API 形式的数据结构和函数调用来实现组件接口。
3.3 GL Studio 与 Multisim 的交互仿真
Multisim 是美国国家仪器有限公司 (National Instrument简称 NI 公司 ) 推出的以 Windows 为基础的仿真工具,它可以实现对电路原理图的图形输入、电路分析、电路仿真、仿真仪器测试、射频分析、单片机分析等应用。利用 Multisim 仿真主要是针对激光测距机电路板上的关键器件做电路仿真,计算并保存在正常工作情况和故障情况下的仿真数据。利用在电路节点上测得的信息来确定故障元件位置及其参数值,从而判断电路的好坏和进行必要的维修。
在虚拟电路板上将关键节点用黑色圆点来表示,在GL Studio 中将这个黑色圆点做成一个小按钮。在执行环境中,当万用表或示波器等测试笔单击到测试点上时,就会触发按钮动作,系统调用消息例程,将 Multisim 预先仿真并保存的与该点对应的电路图或数据传送到示波器或万用表上进行显示。通过 Multisim 仿真,可以任意设置各种故障状态,换用不同的故障检测点进行多种故障设置组合,从而达到维修训练的目的 [7]。
4 维修训练平台实现
维修训练平台主要包括故障设置和故障诊断 2 部分。故障设置就是将样机单元的某一故障状态选为当前状态,并添加故障状态的状态参数值,使得受训人员在对样机单元实施检测时,可以直接显示样机单元的参数值。进行故障设置主要进行训练方式的选择、人员级别选择、故障电路板的选择、添加故障基本信息、故障原因及维修方法提示等等。故障设置窗口。
对于一个具体的维修训练特例,在进入故障设置窗口后,首先选择训练方式、训练级别以及训练电路板,故障现象列表就会根据所选的级别列出相应的故障 ;当选中某一个故障时,故障原因列表就会给出该故障的故障原因,并在维修方法栏中给出简要的故障维修方法。双击故障列表中的某个故障或者在选中某个故障后单击进入训练按钮,就会进入故障诊断界面进行故障诊断训练 ;如果不进行故障诊断训练,而要进行故障考核,则可以返回到主界面,单击“返回上级”按钮即可 ;如果要直接离开该系统,不需要再进入主界面离开,单击“退出”按钮即可关闭该系统。
故障诊断方法训练窗口组成包括故障诊断区、故障诊断树、电路原理图、电路板选择、诊断提示、诊断进程和诊断结论几个部分,故障诊断界面。故障诊断区是这个诊断界面的主要部分。它由 3 部分组成 :故障电路板、虚拟示波器和虚拟万用表。这 3 个部分都已经在 GL Studio 中进行建模并编写交互代码,生成ActiveX 控件,添加到 Visual C++ 编写的这个诊断界面中。故障电路板和电路原理图上都已经添加有热点,当鼠标点击到这些热点时,系统会调用相关的数据库,将相关波形或数据显示在示波器或万用表上,用来直观的显示给维修人员进行判断操作是否正确,判断该点是否有故障。故障树可以提示维修训练人员操作到哪一步。
维修训练系统中的故障诊断工作过程是进入故障诊断界面后,根据故障现象给出相应的故障诊断方案。这里对于同一故障现象可能有不同的解决方案,系统采用随机给出可能的方案进行下一步操作,同时针对所给出的方案显示诊断结论,从而引导出下一步诊断方案,以此类推最终分析出故障原因。
5 结论
经过实际开发实践,GL Studio 建模形象逼真、速度快、效率高、生成的代码可读性好,适合用于虚拟仿真训练平台的开发。维修训练平台可以直观地显示和检测各种故障对激光测距机的影响,便于受训人员更加深刻地理解故障原因。通过对该平台的故障设置和诊断分析,可以对激光测距机的故障现象重复再现,并可以对每个典型故障进行测试对比分析,从而达到维修训练的目的。可用于部队及院校开展激光测距机的教学与维修培训,能够代替实装训练,减少因维修训练而导致的装备耗损,延长装备的使用寿命,节省维修训练经费,提高训练质量和效率。
本文章转自爱学术(aixueshu.com),如有侵权,请联系删除