基于单元要素的虚拟仪表平台设计方法

2015-12-23 01:08史永胜李秀静
计算机工程与设计 2015年8期
关键词:类别仪表设置

史永胜,李秀静

(中国民航大学 航空工程学院,天津300300)

0 引 言

在国际上,各种商业性质的虚拟仪表[1-4]开发系统已被推出,这些软件具有良好的性能,且逼真度高,但是有License的限制,价格昂贵,并且在运行前需要预装相关软件及大量库文件。在国内,虚拟仪表的研究最早是从消化国外引进的虚拟仪器产品开始的,随着技术的不断更新,虚拟仪表的研究已得到长足的发展,但尚未能研制出满足国内需要且被广泛应用的虚拟仪表系统开发平台[5]。李坚利等在对仪表的通用性和实用性研究的基础上提出了虚拟仪表生成系统的设计方法,但没有考虑到与外部的接口问题[6];陈怀民等利用GL Studio完成了飞行仿真虚拟仪表软件的设计,然而该软件带来一定的成本问题,并且只能实现部分仪表的仿真[7]。针对这种情况,在前人的研究成果的基础上,对虚拟仪表系统进行了深入的研究,采用基于“单元要素”的思想,设计并实现了可视化虚拟仪表开发平台。

1 系统设计思路

虚拟仪表的一个显著特征是按需构造。用户可用“设计者”与 “使用者”的双重身份来制作和使用虚拟仪表。为此,系统需要具备仪表单元定义、虚拟仪表装配和仿真调试等基本操作功能。

本系统采用基于 “单元要素”的设计思想,将虚拟仪表所需单元组件按照功能与属性划分类别,构造各类单元要素。系统的实现根据面向对象的程序设计思想,各个仪表单元采用相互独立的类进行封装,针对不同类别仪表单元的属性特征合理地设计数据结构及功能函数。

在实际应用中,虚拟仪表面板上的仪表单元数量通常较多,类别各异。为了缩短虚拟仪表的开发周期,便于优化和维护,系统采用仪表单元组件调用的方式来实现虚拟仪表的构建[8],即分别实现各仪表单元并按类别存储,再根据用户需求,将选定的仪表单元装配,形成可独立操作的虚拟仪表。

1.1 单元要素的类别及定义

根据构成虚拟仪表的各仪表单元的性质及功能,将其分成3类:Σ= (I,C,W)。I代表仪表单元集I=I1+I2+…+In,Ii∈ {指针表,数字表,波型表,柱状图表,……},仪表单元可表示为

C 代表控制单元集,C =C1+C2+…+Cn,Ci∈ {按钮式开关,旋动式开关,滑动式开关,……},控制单元可表示为

设f(x)为集合C 的一个函数,对于 x ∈C 存在f(x)=Τ(xi),其中Τ(x)表示导入控制单元元集上资源的函数;警示单元实现方法与控制单元相类似,故省略。

1.2 虚拟仪表的装配策略

在虚拟仪表的构建过程中,用户根据实际应用中所需的构成要素,从系统中已存在的不同类别的仪表单元中选定所需仪表单元,再通过设置仪表单元位置,设定仪表单元之间的关系、控制单元与仪表单元及数据之间的关系,即可得到具有可操作性和实用性的虚拟仪表。

(1)设置仪表单元之间的关系设F(x)为仪表单元的函数,则

式中:xi表示该仪表单元的属性。假定函数M(x,y)表示在一定条件下x,y 之间存在的函数关系,令A =F(x),B =F(y),则对于 x∈{仪表单元A 的属性集},y∈{仪表单元B的属性集},M(A,B)表示仪表单元A、B 之间存在的函数关系。

(2)设置控制单元与仪表单元及数据间关系

设A= {a1,a2,…},B= {b1,b2,…},C= {c1,c2,…},其中A 表示仪表单元的合集,B 表示控制单元的合集,C 表示数据文件的合集。假设f(x),f(y),f(z)分别为A、B、C 的函数,则对于 z∈C,-x ∈A,y ∈B,使得

上式表示当仪表单元和控制元件状态选定的条件下系统会有相应数据与其匹配,并且该数据会以特定形式显示在对应仪表单元面板中。

2 系统体系结构设计

2.1 系统构成

系统依据虚拟仪表设计及生成的过程将系统分为单元设计、几何成图、数据处理3个部分。在各部分中再依据仪表单元的类别及功能进行详细的模块划分[9,10]。其系统功能结构如图1所示。

图1 系统功能结构

单元设计部分,根据仪表单元的具体特征划分成多个模块,并在各模块内针对仪表单元的属性特征进行具体参数设计。几何成图部分,通过获取仪表单元参数信息实现图形的绘制与显示。数据处理部分,依据仪表单元的类别划分成多个模块,它们实现的功能主要是数据保存、数据读取、数据转换以及对特定数据类型的显示与处理等。各个模块通过定义相应的类将其进行封装,并且每个类提供一定的接口。每一个模块对应一个采用对话框形式实现的控制视图作为用户接口,用户通过该视图即可完成仪表单元参数的可视化设计。

2.2 控制策略

系统采用事件驱动为主,数据驱动为辅的运行控制策略[11]。点击相应的菜单项或按钮,窗口接收事件消息并对其进行处理,系统即会完成相应操作。

系统各模块之间以事件消息和数据信息为纽带进行连接,具体采用指针和传参数的方式实现。在系统执行过程中,各个单元设计模块之间主要通过主控框架发出的消息进行控制和调用;通过事件响应消息及标志、名字、简单数据参数来控制选择几何成图模块及数据处理模块的功能。

3 系统实现

系统基于MFC (Microsoft foundation classes),应用动态链接库 (dynamic link library,DLL)技术,将用户设计出的虚拟仪表脱离系统,形成独立文件[12]。当系统工作时,可直接将其嵌入到应用程序中,有效地实现了仪表模型使用的可复用性。系统应用多线程技术,根据已生成的虚拟仪表配置相应的数据流,实现模拟仿真。用户界面采用了标准的MFC界面风格,菜单栏和状态栏负责具体命令操作及状态显示,视图部分分为两个窗口,用户在设计区设计的仪表能够及时、直观地在视图区中显现,实现所见即所得的设计效果,提高了系统的可交互性。

3.1 仪表单元的创建

仪表单元按照功能设计为显示类仪表单元和控制类仪表单元。显示类仪表单元包括数字表、指针表、波型表、柱状图表及警示灯等;控制类仪表单元由开关旋钮等各种形式的控制单元组成。各仪表单元的绘制主要通过图形设备接口 (graphics device interface,GDI)绘制以及纹理贴图的方式实现。

仪表单元的设计过程由参数设计、仪表单元显示和数据存储3部分组成。系统根据仪表单元的外观和属性特征自动分配数据存储结构,每一种仪表单元采用相应的类进行封装。为了缩短设计周期,降低设计难度,在不影响各仪表单元使用的前提下对其指针、表盘等细节做了适当的简化。仪表单元创建的流程如图2所示。

图2 仪表单元创建流程

3.2 虚拟仪表的构建

虚拟仪表是一个综合型仪表,由若干个显示类仪表单元、控制类仪表单元构成。虚拟仪表原理如图3所示。

图3 虚拟仪表原理

(1)调用单元组件

虚拟仪表的构建采用组件调用的方式实现。通过对表盘的参数进行设计完成表盘面板的整体设计后,根据待设计虚拟仪表的需要,按照仪表单元类别及名称从已设计好的仪表单元中选定仪表单元,将其载入到表盘面板中,根据需要调整表盘面板布局后即可完成虚拟仪表的初步设计。

(2)设置表间逻辑关系

在一个虚拟仪表中,每一个仪表单元都有特定的输入输出逻辑,同时,不同的仪表单元的输入和输出信息之间也会相互制约,相互影响。因此,在虚拟仪表的创建过程中需要对仪表单元之间的关系进行设置,防止各个仪表单元在显示信息时出现逻辑错误。

仪表单元之间逻辑关系的设置通过可视化编辑界面完成。系统根据仪表单元的类别采用相应的图标进行标记。通过鼠标移动图标位置、设置连线关系等操作来实现仪表单元之间逻辑关系的设定。仪表单元在界面中的位置坐标反应其间的层次关系,有线段连接表示其间存在逻辑关系,具体逻辑关系通过编辑关系函数设置。

(3)设置控制关系

为了实现虚拟仪表的仿真功能,需要对其控制元件的不同状态与相应仪表单元之间的关系进行设定,并且每一组关系均需为其配备相应的数据文件,三者之间的关系如图4所示。其中,数据文件通过表盘提供的外部设备接口获得。

图4 控制关系

3.3 虚拟仪表导出

为了提高代码的重用性和可移植性,将封装后的虚拟仪表相关模块以DLL形式发布,从而可以方便地将其集成到VC、VB、Delphi等开发的应用程序中,实现虚拟仪表的可复用性[13]。虚拟仪表设计工作完成后,根据虚拟仪表的名称将相关数据通过系统提供的 “生成”及 “导出”功能形成独立的数据库文件,并将其与DLL 文件与LIB文件保存至指定文件夹中。虚拟仪表的导出流程如图5所示。

图5 虚拟仪表导出流程

3.4 仿真

虚拟仪表的仿真通过系统调用已导出的虚拟仪表文件,按照加载DLL->属性设置->获取外部数据的步骤实现。系统采用多线程技术实时监控控制单元状态[14],捕获实时数据,并将数据转化成特定的形式显示到对应的仪表单元中。虚拟仪表仿真流程如图6所示。

4 应用举例

通过设置参数完成虚拟仪表表盘的设计后,从系统中已存在的仪表单元中选择所需单元 (如数字表、指针表、控制单元等),调整其在表盘面板中的位置;在关系设置视图中设置仪表单元层次关系、函数关系、控制关系及数据关系等,再配上通过外部接口传给系统的瞬态信号,就构成了一台虚拟电压表,如图7 所示。通过表盘上的按钮,即可实现对虚拟电压表的控制。采用这种方式,也可以设计生成虚拟示波器、虚拟探伤仪等不同类型的虚拟仪器。

5 结束语

图6 虚拟仪表仿真流程

图7 虚拟电压表

本文完成的虚拟仪表设计平台能够实现仪表单元的设计与封装,通过调用组件方式构建虚拟仪表,利用DLL 及多线程等技术完成虚拟仪表的仿真测试,以及通过虚拟仪表设计实例验证了系统的可行性。问题提出 “单元要素”组合与装配的模块化设计方法具有开发周期短、便于维护、易于扩充、开发成本低,其思想通用性强,可广泛应用于类似系统或平台的设计。

[1]Zhu Xiaodong,Cao Jun,Wang Fenghu.Non-destructive testing of wood composites based on virtual instrument[C]//3rd International Congress on Image and Signal Processing,2010:3368-3371.

[2]Yue Wenhui,Chen Xuehua,He Yanfang.The development of virtual instrument and its application in mechanical vibration measurement[C]//International Conference on Electric Information and Control Engineering,2011:829-832.

[3]GAO Jianshu,FU Yuntao,XU Liangliang.The design and implementation of virtual aircraft instruments[C]//The Proceedings of Asia-Pacific International Symposium on Aerospace Technology,2010:699-702.

[4]Hu Keyong,Guo Zhongwen,Che Zhaodong,et al.Composition model of complex virtual instrument for ocean observing[J].Journal of Software,2014,9 (5):1177-1188.

[5]WU Xinghua,WANG Xu.Present situation and prospect of application research on domestic virtual instrument technology[J].Modern Scientific Instruments,2011 (4):112-116 (in Chinese).[伍星华,王旭.国内虚拟仪器技术的应用研究现状及展望 [J].现代科学仪器,2011 (4):112-116.]

[6]LI Jianli,KONG Wenyan.The performance requirements analysis of virtual instrument and system design [J].Silicon Valley,2014,13 (1):20-21 (in Chinese). [李坚利,孔文艳.虚拟仪表性能需求分析及系统设计 [J].硅谷,2014,13(1):20-21.]

[7]CHEN Huaimin,WU Jinwen,HUANG Xiaobo.Design and realization of flight simulation virtual instrument based on GL Studio[J].Measurement & Control Technology,2013,32(5):89-95 (in Chinese). [陈怀民,吴锦雯,黄晓波.基于GL Studio的飞行仿真虚拟仪表软件设计与实现 [J].测控技术,2013,32 (5):89-95.]

[8]Li Fangwen,Shen Xukun.A component-based aircraft instrument rapid modeling tool[J].Journal of Zhejiang University-Science C(Computers &Electronics),2010,11 (11):911-918.

[9]Guo Zhongwen,Liu Chao,Wang Xi,et al.CVIS:Complex virtual instruments system architecture [C]//IEEE Interna-tional on Instrumentation and Measurement Technology Conference,2013:566-571.

[10]Zhang Lin,Li Taizhou,Chen Zhuo.Design and research of virtual instrument development board [C]//International Conference on Advances in Computer Science,Environment,Ecoinformatics,and Education,2011:231-238.

[11]Qing Xue,Luo Jia,Liu Yonghong.Research and application of virtual instrument for tank integrated simulator based-on Lab Windows [C]//International Conference on Quality,Reliability,Risk, Maintenance,and Safety Engineering,2012:1458-1460.

[12]SHI Chunhu,QU Hongxing,CHEN Lei.Design and implementation of a helicopter virtual instrument DLL [J].Electronic Sci & Tech,2011,24 (5):105-107 (in Chinese).[石春虎,曲红星,陈雷.直升机虚拟仪表DLL 设计与实现[J].电子科技,2011,24 (5):105-107.]

[13]LONG Teng,LIU Li.Research of a general approach to design aeronautical virtual instrument system with low cost[J].Chinese Journal of Scientific Instrument,2008,29 (4):434-437 (in Chinese). [龙腾,刘莉.低成本航空虚拟仪表系统的通用设计方法研究 [J].仪器仪表学报,2008,29 (4):434-437.]

[14]XU Junming,LI Guolin,ZHAO Hongchao,et al.Common integrating method of virtual instrument based on multi-threak[J].Microcomputer Information,2010,26 (8-1):10-12(in Chinese).[徐君明,李国林,赵红超,等.基于多线程的虚拟仪表通用集成方法 [J].微计算机信息,2010,26(8-1):10-12.]

猜你喜欢
类别仪表设置
◆ 仪表
仪表
中队岗位该如何设置
奔驰E260车行驶过程中仪表灯熄灭
服务类别
本刊栏目设置说明
中俄临床医学专业课程设置的比较与思考
论类别股东会
Microchip推出全新零漂移仪表放大器
中医类别全科医师培养模式的探讨