基于NI TestStand 和LabVIEW 开发模块化的软件架构
行业趋势:当今市场上的挑战
当今企业所面临的挑战之一是测试成本越来越高。由于设备的复杂性不断增加,所以测试这些设备的成本也在不断提高。因为测试对于产品质量至关重要,而更加复杂的电子设备需要更新式、更先进的测试仪器,所以产品的测试成本过高,无法与其较低的制造成本保持一致。
当今,测试工程师身处在这样一个产品开发环境之中:
-
产品设计比前几代更加复杂
-
为保持竞争力并满足市场需求,开发周期不断缩短
-
预算不断缩减,但产品测试却越来越昂贵
模块化测试框架:软件定义的测试方法
为了满足缩短开发周期、实现较大范围的产品组合、减少预算以及完成更复杂产品的挑战,测试工程师们不得不放弃专一的、针对特定应用的交钥匙测试系统。这些系统缺少灵活性,难以适应和添加新功能来更新测试更新、更复杂的产品,因此,传统解决方案,例如静态机架式仪器或专用的“big iron”ATE系统都无法有效地满足当今的市场需求。
为满足这些需求,测试经理和工程师们转向了基于行业标准的模块化、软件定义的测试架构,它可以提供:
-
增加测试系统的灵活性,能够添加新的功能并适应它们所需要的新技术
-
可扩展性,根据需要增加新的功能(和仪器)
-
通过减少前期投资成本及维护成本来降低测试系统成本,同时增加设备和代码的重用率
-
通过硬件抽象层降低硬件折旧的风险
设计高效的模块化测试系统需要的架构是能够分离出测试系统(图1)的不同组成部分--主要是将测试代码和仪器之间以及测试代码和总体测试管理架构之间解耦。这种将测试系统模块化地解耦为不同的组成部分,以及通过软件定义仪器功能的能力是更快更经济地开发灵活测试系统的关键因素。
图1. 测试系统架构
测试管理软件:NI TestStand
一个自动化测试系统需要执行诸多任务和测量操作步骤,其中有些操作是针对特定的被测设备(Device under test, DUT),而其它的则是适用于各种被测设备。传统的测试系统通常将两种操作类型整合到同一个单一的软件层。在这种范式下,当项目的要求发生变化时,测试系统的每个部分都需要更改,并且代码的重用变得非常繁琐。
一个模块化的测试系统架构需要明确划分系统级任务与DUT级任务。系统级任务对于每一个设备(测试管理软件)通常是相同的,而DUT级任务对于每个 测试设备(测试代码)是不同的。如图表1所示即为DUT级和系统级任务间的区别。这种划分使得测试工程师们能够快速地重用、维护和修改测试管理软件的组 件,而不会影响实际的测试代码,反之亦然。
每个设备都不同的操作
|
每个设备都不同的操作
|
仪器配置
|
操作界面
|
测量
|
用户管理
|
数据采集
|
DUT跟踪
|
结果分析
|
测试流程控制
|
校准
|
存储结果
|
测试模块
|
测试报告
|
表1. 测试管理软件任务与测试开发软件任务
NI TestStand是 NI推出的一款功能强大、可立即执行的测试管理软件,用于开发、部署及执行测试系统软件(如图2所示)。其核心在于NI TestStand是一个测试执行程序,允许测试人员按照序列调用测试代码,而且该代码可以由任何编程语言编写。此外,NI TestStand 还提供了现成可用的常见测试管理软件功能,如下所列:
-
将结果记录到任何OLEDB或ODBC数据库
-
报告可以生成多种格式,包括HTML、文本、XML和ATML
-
管理不同访问级别的用户
-
测试限制管理
-
简单和高级的操作界面
-
并行测试功能,允许在一个单一的DUT上同时测试多种产品或运行多个测试
此外,NI TestStand本身具有非常模块化的软件架构,它允许工程师们使用这些组件,或完全自定义它们。想要了解NI TestStand架构的更多信息,请参阅NI TestStand测试管理软件架构指南。
图2. NI 测试管理软件
有些公司已经编写了自己的测试执行程序,并花费了相当大的工程资源来重新开发测试管理软件。这种战略往往导致生产力下降、长时间软件维护带来的资源紧缺。相反,如果使用市场上现成可用的测试管理软件,如NI TestStand,将让您减少设备常见功能的开发,使您专注于每个设备不同操作的测试代码,从而最大限度地提高生产效率。
测试开发语言: LabVIEW
NI Teststand可以调用几乎所有语言所编写的程序,包括:LabVIEW、NI LabWindowsTM/CVI、C/C++、 .NET 甚至脚本语言。然而,大部分的通用编程语言并非针对测试测量应用而优化,因此很难写出具有与仪器通信、分析数据以及按照有意义的方式展示数据等功能的程序代码。
LabVIEW是一种直观的图形化编程语言,帮助程序员或者非程序员开很快地开发强大的测试应用软件。图3所示为一个简单的LabVIEW VI(虚拟仪器或程序)的范例,它可以用来从一个仪器采集信号,对数据进行分析,然后将结果生成报表给用户。
图3. LabVIEW图形化编程语言,专为测试测量应用而优化
除了通过减少测试应用开发时间以外,LabVIEW还能够通过以下措施提高测试开发人员的效率:
-
通过免费的仪器驱动程序与仪器通信,从而可以控制任意仪器
-
通过数千个内置的函数进行数据分析,并展示数据
-
专门针对测试测量应用而开发的用户界面控件,如:图表、LED、按钮以及仪表盘
-
可以自动利用多核处理的优势,提供更高的性能
欲了解更多信息,请阅读自动化测试与验证系统时选用NI LabVIEW的10大理由一文。
National Instruments 还提供基于文本编程语言开发测试代码的工具。LabWindows/CVI是一个ANSI C开发环境,而NI Measurement Studio则Visual Studio的一个插件,为使用ANSI C, .NET 和 Visual C++编程语言提供测试测量界面控件和分析函数。
选择一种针对测试测量而进行了专门优化的编程语言,可以减少你开发测试代码的时间,让你更加专注于自己的特定应用。欲了解更多信息,请阅读选择正确的软件应用开发环境白皮书。
总结
随着设备复杂性的增加、开发周期的缩短、预算减少等诸多挑战的出现,让工程人员有机会重新审视他们现有的自动测试策略,并寻找新的途径,在提高效率的同时减少成本。在设计下一个自动测试系统时,使用新的策略,从而提高系统的灵活性和扩展性,实现更高的性能、更低系统成本、更长的生命周期。
模块化的软件定义自动测试系统客服了以往的基于独立仪器或者昂贵的专有ATE系统的方案中的缺点。通过对测试系统中不同部分解耦,并通过软件定义仪 器功能,工程师能够使用这种模块化的仪器提供具有更高的灵活性、扩展性,并且成本更低的解决方案,以应对当前市场中的挑战。使用NI TestS测试管理软件和LabVIEW图形化编程语言构建的模块化测试软件架构被证证明能够优化测试系统并降低成本,其应用领域中既有最新的智能手机、 3D电视,也有极其关键的下一代的国防系统和医疗设备。