传统的测试任务生成方法,不仅开发难度大、维护成本高,而且需要测试人员既要懂得测试原理,也要有扎实的程序设计基础。当前国际通用的自动测试语言——ATLAS[3],作为面向被测单元而与测试仪器无关的信号描述语言,实现了测试程序与ATE(自动测试设备)的无关性,但基于该语言的ATS开发成本极高,同时也需要开发人员花大量时间掌握纷繁的ATLAS语言结构。这都与一般工程应用实际的要求存在着较大差距。为此通过借鉴软件测试自动化中的脚本技术[4],并结合虚拟仪器成熟的软件框架结构,提出面向应用的测试任务自动生成与运行方法,实现从传统用代码操作PXI仪器的开发方式转换为面向应用的开发方式,有效解决在变更测试任务需求时,传统自动化测试方法难以快速适应的问题。
该方法的核心思想是利用测试人员熟悉仪器操作,为测试人员设计一个操作和测试程序相对应的自动生成、运行平台,力求实现测试用户开发测试系统的零编程 [5]。本文将重点介绍该方法所基于的平台软件体系结构以及各功能模块的功能、组成和接口情况。
1 通用ATS开发平台的软件体系结构设计
结合现有的ATS软件体系结构、分层思想,设计基于该技术的通用ATS开发平台软件体系结构[6]如图1所示,其中实线箭头表示实际存在的调用关系,虚线表示存在的间接的调用关系。整个故障测试系统分为四层,下层通过组件技术封装成动态链接库的形式供上层调用,这样方便系统的维护,模块化的开发也将有利于提高开发效率。各层具体功能如下:
(1) 测试任务管理层
每一个测试项目都分为若干个测试单元,每个测试单元由多个测试模块组成,一个测试模块由多个元器件组成,对测试单元、测试模块、元器件分别添加测试任务就能完成不同规模、不同层次的测试。在管理层就是完成测试项目流程库的构建,是自动测试的前提。
(2) 仪器管理层
该层作为中间层,主要实现向上提供统一的调用接口,对下层的仪器模块实现管理。另外,该层还完成脚本的管理、编辑,在该层实现测试任务脚本的生成。
(3) 仪器模块层
该层由具体的仪器模块组成,一个仪器模块外部由仪器软面板构成,内部主要包含针对该仪器的三个功能模块:直接运行、脚本生成、脚本解释器。脚本解释器功能模块供脚本执行层调用,它是测试任务管理层实现自动测试的基础。脚本生成功能模块主要提供给仪器管理层完成测试任务脚本的生成。
(4) 脚本执行层
该层作为仪器管理层的脚本管理功能的具体实现,供测试任务管理层在测试任务执行时调用,主要完成根据不同的脚本语句第一个标识符(逻辑设备名或其他脚本控制标识),将测试任务的脚本分发给不同仪器的解释器解释执行。
四层功能既相互独立,又相互依存。面向应用的测试任务自动生成与运行方法以整个软件框架为依托,是整个测试系统的核心思想。
2 脚本规范设计
为了保证脚本的统一解释运行,使得测试运行时具有良好的交互性,通过借鉴成熟的软件自动测试中的关键字驱动脚本技术[3],并且利用IVI中通用驱动函数库,定义了一套脚本规范,包括仪器操作脚本集、运行提示脚本集、脚本注释集、脚本延时运行集、并行脚本。
(1) 仪器操作脚本集中语句语法格式定义为:
DevName,OPERAT,(Para 1,...,Para n),(RetPara), RetType;
其中:DevName为逻辑设备名,例如,“AFA”(音频分析仪),“DMM”(数字万用表);OPERAT为仪器操作定义,例如,“CONFIG”(配置),“OPEN”(打开),“CLOSE”(关闭);Para n为仪器参数,例如,输出信号的频率、幅值,输入信号的采样频率、采样点数等,其顺序关系确定后就被固定下来;RetPara为返回参数,指定该次测试需要返回的测量值;RetType为返回类型,将测量值按照指定的数据格式进行转换。
(2) 运行提示脚本集定义如下:
MSG,STRING,这是操作提示,NORET; MSG,END,NORET;
(3) 脚本注释集:
COMMENT,这是脚本注释;
(4) 脚本延时运行集:
DELAY,延时值(双精度数值);
(5) 并行脚本集:
SUBSCRIPT_BEGIN,并行脚本标识;
SUBSCRIPT_END,并行脚本标识;
SUBSCRIPT_START,并行脚本标识。
[page]
为了仪器管理层更好地管理、维护仪器模块,利用制定仪器模块统一的开发方法和接口标准,具体的开发步骤如下:
(1) 分析该仪器的功能、参数、驱动函数情况,利用脚本规范制定该模块的脚本语句;
(2) 设计该仪器模块的软界面;
(3) 完成该模块直接运行模式、脚本生成模式和对应解释器功能实现;
(4) 封装该模块成动态链接库,提供统一的三个接口供上层调用,具体接口如下:
int DevNameInterpreter(char *lineScript, void *PTESTTABLE); //解释器入口
int LaunchDevNameDevice(void *PTESTTABLE);//仪器面板入口
int EnforceCloseDevNameDevice(void *PTESTTABLE);//强制关闭仪器入口
其中DevName指定义的逻辑设备名,例如数字万用表定义为DMMInterpreter,*lineScript指传递给该解释器解释执行的脚本指针,*PTESTTABLE指整个系统的配置文件指针,从该文件读入仪器资源符,返回值的指针等信息。在直接运行模式下,仪器的操作按钮直接调用仪器驱动库函数完成相应功能。在脚本生成模式下,仪器操作按钮触发脚本生成,脚本生成器将仪器参数作为操作属性按照脚本规范中的定义组成一条有效的操作脚本语句生成给用户。仪器模块中的解释器将有效脚本解释成仪器驱动函数库中的具体函数,并调用具体函数操作。
以射频信号源为例,根据脚本规范定义其所需的初始化、配置参数、上变频、停止脚本语句分别如下:
RFSG,INIT,信号源资源名,上变频资源名,NORET;
RFSG,CONFIG,调制模式,载波频率,调制频率,调制频偏,NORET;
RFSG,UPCONVERT,载波输出,输出功率电平,载波带宽,NORET;
RFSG,STOP,NORET;
射频信号源的软面板仪器操作与脚本之间对应的关系如图2所示。
4 测试任务自动生成与运行的实现
测试任务的自动生成首先建立在被测设备的全面分析的基础之上,通过分析理清被测设备输入和待测信号的关系,根据测试任务需求,用户在信号对应的仪器模块的软件界面上直接操作仪器,比如使用数字IO配置信号通道,使用射频信号源发送射频信号,使用射频分析仪进行频谱分析。在对应软面板操作结束后,其仪器模块中的解释器将完成对操作记录的转化,生成相应的操作脚本。在一系列操作能满足测试需求后,整个测试过程将被以脚本的形式记录保存。在需要重现某一测试任务的测试过程时,仪器操作脚本可以被脚本执行层统一调度后解释执行,通过预定义的交互接口,调用程序能方便快捷地得到测试返回结果。图3给出该技术的基本原理。
生成的测试任务脚本利用测试任务管理层可以添加到数据库中,通过分析被测设备的测试要求可以构建整个测试项目的不同层次的测试任务,比如通信设备的整机测试、板级测试、功能模块测试、元器件级测试。当执行一个故障测试时,测试任务的自动运行由测试任务管理层提交测试脚本给脚本执行层开始,到脚本执行层解释执行完脚本后结束,测试项目的自动运行流程图如图4所示。
面向应用的测试任务自动生成与运行技术实现了具体测试系统开发的零编程,用户在开发和维护测试系统时,只需要关心被测设备的信号关系、故障诊断等专业知识,只要会使用仪器就会开发和维护,这将用户从底层测试代码开发的过程中解放出来,使得用户可以直接关注于被测对象,而不必花费太多精力在如何设计程序上。由于借助于模块化的标准开发,用户自身可以方便地修改某个模块或者变更某测试任务而不影响整个系统,大大缩短了开发和维护的难度。
通过对上述通用ATS开发平台功能的扩张,例如增加测试任务管理层中测试点的电气特性参数、实物图信息,深化脚本的控制、操作等功能,就能实现真正意义上的故障测试通用开发平台。利用该方法开发的多个通信设备电路板板级和元器件级故障测试系统已交付某单位正式使用,证明了整个技术的可行性。
上一篇:基于LabVIEW的信号输出与数据采集系统
下一篇:一种用于飞行器下高速数据采集存储系统设计
推荐阅读最新更新时间:2024-03-30 22:17
- 热门资源推荐
- 热门放大器推荐
- Allegro MicroSystems 在 2024 年德国慕尼黑电子展上推出先进的磁性和电感式位置感测解决方案
- 左手车钥匙,右手活体检测雷达,UWB上车势在必行!
- 狂飙十年,国产CIS挤上牌桌
- 神盾短刀电池+雷神EM-i超级电混,吉利新能源甩出了两张“王炸”
- 浅谈功能安全之故障(fault),错误(error),失效(failure)
- 智能汽车2.0周期,这几大核心产业链迎来重大机会!
- 美日研发新型电池,宁德时代面临挑战?中国新能源电池产业如何应对?
- Rambus推出业界首款HBM 4控制器IP:背后有哪些技术细节?
- 村田推出高精度汽车用6轴惯性传感器
- 福特获得预充电报警专利 有助于节约成本和应对紧急情况