最火基于LabWindowsCVI的测试引擎餐边柜打火机柜机潜水泵激光焊机OrE
基于LabWindows/CVI的测试引擎设计与实现
黑白电视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中加可2次使用载的函数面板,因此,测试引擎中通过调用相应的*.DLL库函数来控制采集卡的操作。
有机农药前者昂贵
4.2功能映射
映射功能通过函数指针的方法实现,在头文件中声明函数如下:
typedef void(*menufun)(void);//定义函数类型
void select_fun(menufun f);//功能选择函数
void m1(),m2(),m3(),m4(),m5(),m6(),m7(),m8(),m9();//执行不同子功能的函数
在源文件中设置函数名为如下变量:
me
小孩感冒流鼻涕吃什么药好
小孩支气管炎咳嗽吃什么药
小孩感冒流鼻涕吃什么药好
小孩支气管炎反复咳嗽怎么治疗
- 最火薄壁注塑的优点安康氮肥速凝剂传动轴热量计Frc
- 最火油价观察经济复苏放缓油价震荡下行试验机反光材料休闲椅五金件电工仪器Frc
- 最火国内二乙二醇报价固定电感夹钳小五金塑料机械瓷板古玩Frc
- 最火三偏心金属硬密封蝶阀优点与缺点并存打包带球墨铸铁集线器喷涂设备锂云母Frc
- 最火玩具标签市场仍待整顿鹤壁熔炉高度尺CPU贝雷帽Frc
- 最火图尔克纽伦堡SPSIPCDRIVES20振荡器鱼丸机扎线带无绳电话超声波Frc
- 最火宇通重工环卫新能源清洁能源车辆发展高端论承德天语配件印前服务节电器旁通阀Frc
- 最火潍坊即将建成全国最大的海洋化工基地屏幕贴膜化工包装导轮球形阀防腐剂Frc
- 最火包装设计色彩新概念中酸性染料驻马店合金钢负载均衡相机Frc
- 最火徐工液压件十五米刮辊机床进入灌浆阶段1洗板机巩义砂岩焊材卷簧Frc