您好,欢迎来一对一服务网! [请登录]  [免费注册]
咨询电话:400-008-1115
实现仪器可互换的自动测试技术
http://www.otoworld.cn 2011年5月20日 10:28:40
实现仪器可互换的自动测试技术
添加时间:2011-5-19  
 
    1实现仪器可互换的自动(电机运行状态的自动控制)测试技术框架
  1.1基于配置文件的ATS软件结构
  基于ini配置文件的自动测试系统实现了仪器可互换.其中资源需求描述是一个ini文件,描述了仪器所属类的类名,逻辑仪器名,物理仪器名,资源描述符,物理驱动程序名等,物理仪器在该文件中进行"软注册".系统在启动时根据仪器类名搜索与测试主机相连的该类物理仪器,并使该类物理仪器处于待机状态,随时等待程控指令。测试程序通过逻辑仪器名对物理仪器进行控制,因而测试程序中不会出现物理仪器有关的信息,实现了测试程序与具体物理仪器无关。
  测试项目定义文件以ini文件的格式定义了当前UUT的测试项目信息,一个TPS(测试程序集)对应一个测试项目定义文件。每个测试项目具有标准格式的信息,如测试项目代号,(子)测试项目名称,测试项目级别,对应测试函数名,函数调用参数,是否加电测试等。测试程序主框架根据测试项目定义文件实现对TPS测试项目的属性识别和有效管理。
  测试数据模板是一个Excel表格,测试程序主框架根据该表数据与相应测试项目的测试数据进行比较,判断测试是否通过,并通过测试项目列表格式化显示测试结果。
  测试主框架内核包括测试引擎,测试数据管理等与软件平台有关的函数,其中测试引擎主要包括测试程序主框架的函数,实现对类驱动的动态调用,完成TPS的仪器无关性及系统集成。
  1.2TPS,类驱动,物理驱动的调用关系
  仪器可互换技术最初由IVI联盟提出,其核心是将仪器驱动程序分为上下两层,即上层的仪器类驱动程序和下层的仪器物理驱动程序。TPS与类驱动动态链接库DLL之间通过隐含连接方式调用DLL中定义的导出变量和导出函数。而类驱动与物理驱动动态库采用显式链接方式。底层代码由仪器供货商提供,直接与仪器会话,并被物理驱动程序所调用。物理驱动导出函数与类驱动导出函数是一一对应的,它们的函数名以及参数的数量,定义均相同,但函数名的前缀不同(函数名前缀在资源需求描述文件中定义)。测试程序只与类驱动打交道,不包含物理驱动中的函数和变量名,使得测试程序与具体仪器无关,当需要更换仪器资源时,只需要在资源需求描述ini文件中进行注册,并将类驱动与相应的物理驱动重新链接即可,实现了仪器的可互换。
  2基于LabWindows/CVI的开关驱动程序编程实例
  NI公司的LabWindows/CVI以ANSIC为核心,它的集成化开发平台,交互式编程方法,丰富的面板功能以及访问ini文件,多线程,创建库文件,DDE动态数据交换等高级编程手段使其自身功能强大,应用方便,成为工程技术开发人员建立ATS首选的软件开发工具[5]。在某大型ATS项目开发中,除了矩阵开关之外,使用了单刀单掷开关SPST,单刀双掷开关SPDT,单刀四掷开关SP4T,单刀六掷开关SP6T共4类,5个PXI开关模块,它们同属于Switch开关类仪器,实际型号分别是NIPXI2568,NIPXI2566,NIPXI2594,CETCPXIAV6943,其中NIPXI2566模块两个,其他模块各一个。这些开关模块包含的开关个数不相同,不同的开关模块提供的软件接口也不相同。
  2.1类驱动函数的设计
  在熟悉仪器类的共有功能和现有或将来可能要用到的仪器特有功能的基础上,对类驱动进行统一规划,构造类公共函数和类特有函数是类驱动函数设计的第一步。其中类公共函数是仪器共有的函数,如初始化,复位,自检,关闭等操作,而类特有函数是该类仪器特有的函数。开关类特有函数一般有连接,断开和状态查询3种。
  在开关类驱动函数的设计中,应注意参数数量和类型尽可能统一,合理,简单。在尽量覆盖下层物理驱动参数的基础上,有所归纳和提炼,便于测试程序编写人员对函数的理解和TPS调用。具体到开关驱动,尤其要清楚每个驱动函数对开关操作后的状态,即确保开关状态的可控和可观,使程序对信号通道和激励通道实现有效且准确的控制。
  类驱动的公共函数包括Init(),Reset(),Selftest(),Close()。通常,仪器供应商都提供了相应的底层驱动程序,因此这些类公共函数的实现比较简单,直接根据逻辑仪器名加载相应的物理驱动程序即可。但是要注意Init(),Reset()函数执行后仪器的状态,例如,NI2594(SP4T)初始化后ch0通道接通,ch1,ch2,ch3通道断开;AV6943(SP6T)初始化后全部通道处于断开状态;2566(SPDT)初始化后全部NO(常开端)断开,NC(常闭端)闭合;2568(SPST)初始化后全部开关断开。测试程序的编写人员必须掌握这些情况。
  在类驱动的设计中,将重点放在类特有函数上。对TPS而言,在该系统中用到的开关功能包括连接,断开和状态查询,因此分别设立Connect,Disconnect,Getstate3种类特有函数。
  2.2物理驱动函数的设计
  在下层的物理驱动中,则必须根据类驱动的参数对仪器厂商提供的底层驱动进行适当的封装,通常包括参数的重新定义,类型转换,统一约定等。例如,仪器供货商为PXIAV6943模块提供的底层连接函数为:AV6943_switchStatus(HandlehHandle,ViUInt32unSwitchNum,ViUInt32unStatus,ViStringstrErrMsg)。hHandle为仪器句柄,unSwitchNum为开关号,unStatus参数范围为0~6(0:全部断开;1~6:选通一路),由于仪器句柄,通道参数类型与相应的类驱动函数均不同,这要在物理驱动函数中进行类型转换。另外,类驱动中通道Pol从0开始编号,必须将unStatus参数的0~5定义为6个选通通道,而全部断开可定义为6,从而保持与类驱动参数定义的一致性。
  3结束语
  基于IVI的仪器类驱动器对物理仪器功能进行了合理的归纳和提炼,为TPS提供统一,易用的软件接口。物理驱动程序对底层驱动程序进行适当的封装,CVI测试引擎实现类驱动与物理仪器之间的动态链接。当增加或更换新的开关模块时,测试程序无需更改,只需在程序中添加新模块对应的物理驱动程序并编译链接即可,其相应的类驱动程序也无需改动,实现了TPS的硬件无关性和仪器的可互换。
本信息真实性未经本站证实,仅供参考。资料来源于互联网,如果损害到您的利益请联系我们处理。
s