首页 >> 悬挂链

基于LabWindowsCVI的测试引擎设计与实现耳机插针

时间:2022/08/26 22:43:18 编辑:

基于LabWindows/CVI的测试引擎设计与实现

基于LabWindows/CVI的测试引擎设计与实现 2011年12月10日 来源: 1、引言  目前,VXI、PXI、PC-DAQ三种体系结构的虚拟仪器、数据采集模块和GPIB仪器,以及LabVEW、LabWindows/CVI、HP VEE等测试软件为研制大型测试系统提供了良好的开发环境,尽管如此,由于VXI的复杂性、CVI软件的过于庞大,装备测试人员依然无法在短期内进入开发状态,为此课题组在测试流程与具体仪器控制之间建立测试引擎,不但简化了程序设计,也将仪器控制与测试程序完全隔离,同时实现了硬件平台的变化不会影响程序的目的。  如图1所示,虚拟仪器测试系统的通用结构由混合总线测量仪器及数据采集模块、专用转接及信号调理模块、被测对象三大部分组成。虚拟仪器主要由VXI、PXI、IPC总线的仪器模块及其驱动程序构成,测试系统中往往要采用一些GPIB总线的台式仪器,比如直流稳压电源、频谱分析仪等。专用转接及信号调理模块是根据具体被测对象由课题组自行设计的专用模块,包括被测对象信号变换、功率驱动、模拟负载等电路组成。被测对象包括武器装各中各种电子组合,例如制导雷达的时钟组合、视频接收机、发射机、显示器、数据处理组合等。我们定义测量仪器部分与专用转接模块的接口称为Ai(A1~Aa〉,专用转接模块与被测对象的接口称为Bi(B1~Bn),测试程序通过控制仪器的输入输出实现所有的测试功能。2、测试引擎层次结构  测控系统一般由人机界面、数据处理、测试引擎即数据采集引擎、故障诊断引擎四部分组成,随着可视化开发软件功能的不断提高,人机界面的建立变成轻而易举的事情:数据处理程序因具体测试而异,并有CVI提供的数据处理库支持,仍然可以得到很好的解决。所以开发测控系统的关键是完成测试引擎和故障诊断引擎。测试引擎结构如图2所示,可以分为功能层、逻辑层、仪器操作层、接口配置文件、接口配置工具五个部分。  2.1功能层  功能层是整个结构的最高层,面向测试系统开发的最终用户,测试系统开发完全针对B接口进行,功能层不用出现任何与仪器有关的信息,因此与测试系统完全隔离,描述的都是有关测试流程及结果判定的过程。  2.2逻辑层  逻辑层将功能层的功能映射到具有逻辑名称的仪器和通道,该逻辑名可以指向测试系统中一台特定设备,当该仪器模块更换时,只需要改变逻辑名的指向为了新型设备即可,具有仪器无关性。  2.3仪器操作层  仪器操作层利用仪器驱动程序或随仪器模块提供的动态链接库控制硬件的所有操作,仪器驱动程序包括VPP规范、IVI(Interchangeability Virtual Instrumentation)规范、底层接口驱动程序三种。  2.4接口配置文件  接口配置文件存储A、B接口映射信息,接口所属仪器及通道,通道具备的操作功能,操作仪器应具备的其它附加条件等。  2.5接口配置工具  接口配置工具用于交互式配置A、B接口映射关系、多路开关与数字多用表及示波器等连接方式等信息,并存储在配置文件中,供测试引擎使用。3、测试引擎数据模型  测试引擎是二套封装了虚拟仪器具体功能实现细节,对外提供标准功能接口的函数库和配置工具的软件包,将所有仪器(最小集合是本测试系统中的仪器〉可实现的功能进行分类,忽略各个仪器的实现细节,比如数字多用表与A/D模块测量电压的功能接口是一样的,具体调用哪个仪器操作视仪器接口与被测对象的连接关系而定,连接关系由引擎根据配置文件自动获得。  通用测试引擎的功能是将测试流程中所描述的功能映射为具体的仪器控制例程,为了完成映射关系首先引入如下数据模型:功能集合:F={fi|   数据参数集合:D={Di|1   仪器逻辑名:N={ni|1   仪器对应通道分类:C={ci|1   每类仪器及通道所具备的功能集合:FU={fui|1 4、测试引擎的实现  测试引擎的核心是仪器控制、接口映射、状态缓存,采用LabWindows/CVI软件开发。  4.1仪器控制  大多数VXI、GPIB、RS232、PXI总线的仪器都具有自己的仪器驱动程序和函数面板,可以在CVI集成环境中通过Instruments>>Load菜单加载后交互式引入函数,对没有提供符合VPP规范的驱动程序的模块,则采用VISA I/O库函数,通过SCPI命令对仪器进行控制。  由于大多数国产ISA、PCI、PCMCIA等总线的数据采集卡没有提供可以在CVI中加载的函数面板,因此,测试引擎中通过调用相应的*.DLL库函数来控制采集卡的操作。  4.2功能映射  映射功能通过函数指针的方法实现,在头文件中声明函数如下:typedef void(*menufun)(void);//定义函数类型void select_fun(menufun f);//功能选择函数void m1(),m2(),m3(),m4(),m5(),m6(),m7(),m8(),m9();//执行不同子功能的函数在源文件中设置函数名为如下变量:me

100吨井盖压力试验机

纺织物拉伸试验机多少钱

传动轴扭转疲劳试验机

转向架扭转试验机厂家

机车轨道车辆实验设备多少钱

相关资讯