【摘要】测试系统的发展经历了从专用型向通用型的演变过程。早期的测试系统主要是针对具体的被测对象型号或系列,测试系统间互不兼容,缺乏互操作性,测试资源重复配置、利用率低,支持保障费用高昂。近十几年来,通用测试系统的开发已成为主流。本文使用LabWindows/CVI与TestStand搭建简单的测试平台。
【关键词】LabWindows/CVI;TestStand;通用测试
1.引言
本文使用LabWindws/CVI作为测试系统前台开发工具负责编写人机交互界面以及对后台的控制程序;TestStand作为系统后台负责对测试系统软硬件资源进行统一的调度与管理,从而实现测试系统与软件界面的隔离,即编写测试系统软件界面时不需要编写和测试系统相关的代码,只需和TestStand后台进行通信,大幅减少了重复代码,缩短了测试系统的开发周期。同时,用于前台程序中不涉及设备及仪器的信息,因此更换设备时也不需要对前台应用程序进行修改,即测试平台界面是专用的,后台是通用的。
2.软件平台体系结构
近些年,自动测试系统软件平台得到快速发展,国内外厂家相继加大了对其的投入,目前国外代表产品为美国NI公司的Teststand自动测试系统软件平台,该平台被美国洛克希德・马丁公司采用,应用于美***F35战机的综合保障系统中,结合美国NI公司的自动测试系统软件产品,对自动测试系统软件平台的体系结构和重要组成进行详细分析,现代主流自动测试系统软件平台的体系结构如***1所示,整个软件平台由驱动程序库、测试程序开发软件、测试系统管理软件、二次开发工具软件等4部分组成[1]。
***1 测试系统平台结构
下面对这4个部分进行分别介绍:
2.1 驱动程序库
驱动程序库是仪器控制的基础,其来源是主流仪器制造商的***网站,如Aglient、NI、RS等公司都提供了驱动程序***服务。自动测试系统软件平台厂商也会根据需要开发第三方公司的仪器驱动程序。主流公司提供的驱动程序普遍符合IVI规范,这为测试系统集成商提供了便利,驱动程序的首选开发工具为NI公司的Labwindows/CVI。
2.2 测试程序开发软件
测试程序开发软件是进行测试程序开发的工具,典型产品包括NI公司的LabVIEW、Labw indows/CVI、微软公司的Visual Studio、.Net,安捷伦公司的Aglient VEE,TYX公司的PAWS等。在传统自动测试系统中测试程序是一个庞大的集合,仪器控制、数据处理等工作全部由一个单一的程序实现,其形式多为exe可执行文件。而在现代自动测试系统中测试程序的粒度更小、功能更明确,如信号源控制、功率计控制就被分解为两个测试程序。其形式多为DLL动态链接库、.net程序集。而将小粒度测试程序组合在一起的工作就由测试序列开发与管理软件来完成。NI软件平台将这些小粒度的测试程序称为模块。
2.3 测试系统管理软件
测试系统管理软件负责测试序列,测试资源,测试数据的统一调度与管理。其典型产品包括NI公司的Teststand、中电41所的TestCenter,中科泛华的TestOnDemand等,通过软件适配器技术来运行LabVIEW、Labwindows/CVI、VC、C#、PAWS等多种语言开发的测试程序,软件适配器是一个格式转换器,用于将平台侧的调用和数据格式转化为符合目标语言规范的调用和数据格式。
2.4 二次开发工具软件
二次开发工具软件用于为用户定制提供需求。一般而言,测试系统软件平台安装时会安装预置的测试程序(插件)和典型的操作员界面,但这无法满足所有实际工程的需求。
二次开发包括如下三个部分的开发:测试程序开发、测试序列开发、用户界面开发。
传统的专用测试平台将这3个部分放在一起由一个或几个程序开发平台(如VC++6.0,LabVIEW等)完成。这样的平台功能模块间相互依赖性强,程序编写复杂,对编程要求较高,不利于分工合作,其鲁棒性,可阅读性高低非常依赖于编程人员的编程水平。
通常情况下从设计最初的界面直到最终用户满意的界面需要界面开发人员对程序修改很多次,增加了出现程序异常的几率,有时候甚至因为基础框架搭建不合理而需要重新编写,而如果将二次开发的三个部分放到一起,必然会加重程序开发人员的负担。
尤其是编写大型,复杂的测试系统时,大量的软硬件测试资源、全局变量,复杂的测试序列时序依赖关系及异常处理与故障诊断等,都是对编程人员的软件开发及后期维护的重大考验,大幅增加软件开发的周期和维护的成本,***2是传统测试系统软件平台框架。
***2 专用测试系统软件结构
***3 加入TestStand后的通用测试平台架构
为解决上述问题,可将二次开发的三个部分分开成为相对***的模块,通过测试管理软件TestStand等将测试程序和用户界面联系起来。这样模块间的依赖性大幅减少,不同部分的全局变量相互***、互不影响,用户界面开发人员只需要不断完善修改界面相关的代码来满足客户的使用需求即可,而不需要考虑具体功能的实现,程序的通用性,开放性,可扩展性显著增强,重复代码量下降,开发周期缩短。***3是加入TestStand作为测试管理软件后的平台框架。
3.测试平台软件介绍
3.1 TestStand
TestStand是一种可以自定义的测试管理环境,用于对各种自动化模型和测试系统进行加载、控制、优化和扩展。通过TestStand,对系统进行修改、调试和完善,可以建立起符合需要的各种自动化测试系统。
TestStand可以加载.NET、LabWindows/CVI和LabVIEW、VB、JAVA、C、C++等多种测试编程环境,还可以运行己经编译成动态链接库(DLL)的测试代码、ActiveX服务器和EXE可执行文件。这使得测试系统中测试步骤的执行顺序、测试步骤的执行和测试报告的生成等工作都可以用TestStand来实现。TestStand的功能完全由客户定义。为满足特定需求,您可自行对其进行功能修改和改进,例如定义操作界面,报告生成格式,或根据需要定义执行顺序等。建立在高速、多线程执行引擎基础上,TestStand的性能可满足最严格的测试吞吐量要求。利用TestStand,用户可让工程师将精力集中在更重要的任务上,象为产品建立测试策略,再考虑如何利用这个策略开发出应用程序等,而相对简单的工作,如运行顺序,执行和报告生成等,将由TestStand处理完成。
TestStand的优势:
减低测试系统的整体成本;提高开发效率;增加测试速度。
TestStand特性:
可立即运行,由用户定义测试执行;交互式开发环境建立测试顺序;用户选择XML,HTML,ASCII和数据库输出;高速并行顺序执行;源代码控制应用程序集成;执行引擎可调用任何语言或格式的程序。
3.2 LabWindows/CVI
NI公司的LabWindows/CVI是一个久经验证的用于测试和测量的ANSI C开发环境,极大地提高了工程师和科学家们的生产效率。他们使用LabWindows/CVI来开发高性能的、可靠的应用程序,用于制造测试、***事/航天、通讯、设计验证和汽车工业等领域。开发人员可以在设计阶段利用LabWindows/CVI的硬件配置助手、综合调试工具以及交互式执行功能,来运行各项功能,使得这些领域的开发流水线化。使用内置的测量库,你可以迅速的开发出复杂的应用程序,例如多线程编程和ActiveX的服务器/客户端程序。
由于LabWindows/CVI的便利性,你可以通过在相似环境中重复使用以前的代码来维护你的代码投资,并且实现Windows、Linux®或实时平台上分布测试系统的无缝集成。
4.通用测试平台软件设计
通用测试平台软件编写工作主要包括三个方面:测试程序的编写、测试序列(测试流程)的编写、用户界面的编写。
***4 测试平台与测试序列、测试程序的关系
4.1 测试程序
测试程序是该测试平台的最小的单位,可以是TestStand提供的一些通用操作,也可以是用户自己编写的函数模块。
由TestStand提供的通用操作包括测试流控制、函数操作、数据库操作、弹出式窗口、其他测试序列的调用,其他应用程序的调用等。
而由用户自己编写的模块包括仪器控制、算法、和用户界面交互相关函数、软硬件资源管理、测试报表操作等。TestStand支持LabVIEW编写的后缀名为.vi的程序,LabWindows/CVI、VC++6.0、.NET、ActiveX/COM等封装的后缀名为.dll的动态链接库,HTBASIC封装的.prg程序等。
4.2 测试序列
TestStand将一个完整的测试流程称为“序列(Sequence)”,其中可以存在很多“步(step)”,每一步可以是下面几种类型:测试程序调用(Action)、测试序列调用(Sequence Call)、语句(statement)、流程控制(顺序、分支、循环等)、数据库操作等。
4.3 用户界面
用户界面是测试操作人员直接面对的界面,是该测试平台的最上层,测试人员需要和使用方沟通来确定使用什么开发环境,根据用户需求更改并美化使用界面。
5.总结
本文使用Labwindows/CVI与TestStand进行了通用测试平台的搭建,限于相关技术和软硬件设备限制,仅实现了基于NI DAQmx,NI Scope的驱动的设备的编程,经测试,该结构能够有效的减少重复代码编写,提高测试系统软件的编写效率。
参考文献
[1]宋斌,方葛丰,刘毅.自动测试系统软件平台TestCen-ter体系结构设计与分析[J].测控技术,2013(8):115-118,122.
[2]于建林,唐晓莉,丁国兴.基于TestStand的测试系统及应用[J].国外电子测量技术,2004(2):6-7,9.
[3]王琳,商周,王学伟.数据采集系统的发展与应用[J].电测与仪表,2010(8):4-8.
[4]余思文.DAQmx自动化测试系统的改进与实现[D].复旦大学,2012.
[5]郑丽,张蕊.基于TestStand的TPS开发设计[J].光电技术应用,2013(10):81-84.
作者简介:丁宁(1989―),男,吉林长春人,中北大学信息与通信工程学院硕士研究生在读。
转载请注明出处学文网 » 基于TestStand与LabWindows/CVI的通用测试平台开发研究