1. 引言
当今,测试工程师需要花费大量的开发时间在ADE上。 因此,我们选择的ADE不仅必须直观易懂,而且可以支持多个平台,并可轻松地与驱动程序等测量控制服务集成。 在选择开发测试系统的ADE时,还应当考虑其它一些因素,包括显示和报告功能、如何防止产品过时被淘汰以及全球培训和支持。 本文讨论了三种不同的ADE:NI LabVIEW、NI LabWindows/CVI和Microsoft® Visual Studio .NET,并对它们的特性进行了比较。
2. 选择ADE时需要考虑的因素
选择ADE时需要考虑的因素
是否便于新软件工程师使用
由于ADE是自动化系统开发的核心,因此工具的易用性对于新软件工程师的工作效率至关重要。 易用性的重要性甚至超过了快速启动和运行。 例如,开发人员应该能够轻松地将处理程序与多种测量设备集成、创建复杂的用户接口、部署和维护应用程序,并根据产品设计的变化和系统需求的扩展而修改应用程序。 ADE应包括的其他特性还包括丰富的文档和代码范例。
集成测量和控制驱动
多核技术已经成为自动化测试系统的标准功能,也成为当今电子设备处理海量数据的必需技术。 多核处理器也带来了新的软件挑战,我们必须克服这些挑战才能充分利用多线程应用程序的处理能力。 ADE必须为开发人员提供所需的编程技术来创建并行执行进程。
培训和支持
ADE的易用性是指新用户能够轻松地学习该环境。 因此,ADE厂商应为工程师提供使用手册和在线培训来帮助他们快速学习如何使用其产品。 高级用户可能需要课堂培训来进一步增加他们的知识和了解更多系统级设计理念。 课堂培训应为开发人员提供机会来通过认证流程证明他们的知识。 选择ADE时还应当考虑的另一个因素是在部署应用时供应商提供的支持类型,比如电话和电子邮件支持。 此外,如果您要实现该ADE的全球标准化,您还需要考虑世界各地的工程师是否可以获得当地语言支持。
很多时候,测试系统的开发人员认为只需一个设备驱动程序就足以有效集成其测量设备。 但是仅仅只有驱动程序是不够的;测量和控制驱动程序应尽可能无缝地与ADE集成。 在理想情况下,控制测量设备的软件是透明的,仅为ADE的一部分。 这种理想的实现保证了开发的最大灵活性和可扩展的架构,以便企业可以将其部署到所有ADE平台上。
平台独立性
当今的测试软件应用针对的是多种不同的架构。 重要的是,无论您选择哪种ADE,都必须具备足够的灵活性来尽可能无缝地支持所有这些不同的架构。 Windows、Linux和Macintosh等不同的操作系统可为不同的应用提供不同的好处。 工程师应能够将他们的代码从一个平台移植到另一个平台。 如果ADE不支持多种平台,您需要针对不同的项目使用不同的ADE,并花费不必要的时间将现有代码从一个平台移植到另一个。
显示和报告功能
测试应用由于需要图形化显示数据而在显示和报告领域存在诸多挑战。 ADE应提供多个可视化组件来实现数据可视化,如图表、图形、旋钮和仪表。 另外,ADE还应容易生成报告,以便促进系统所采集信息的通信, 比如易于生成MS Word、MS Excel等部分最常用的报告。 结果的通信也应该易于实现,比如在网络上发布应用程序或者将信息录入到数据库。
保护系统不被淘汰
为测试系统开发标准化ADE是一个不易实现的承诺。 重要的是您的投资不会因为产品过时而受到影响。 其中您应该考虑的一个特性是产品与最新软件技术集成的能力以及产品是否能够保护您的测试软件开发不会受到不连续迁移的影响。 此外,产品应能够通过常规升级添加新功能。
图1. 在开发测试系统时不同的ADE提供了不同的益处和挑战。
3. LabVIEW
LabVIEW是一种图形化开发语言,可以帮助工程师和科学家以最低的成本迅速创建灵活且可扩展的测试应用。 NI LabVIEW使用的是图形化开发模式,而不是依赖于基于文本的编程。 NI LabVIEW的图形化数据流语言和程序框图能自然地显示您的数据流,同时直观地将用户界面控件映射至数据,令您轻松地查看、修改数据或控制输入。 图1所示的是一个NI LabVIEW应用程序的框图及其对应的前面板。
图2. LabVIEW 8 ADE 可助您快速直观地开发测试应用程序。
LabVIEW还可让您方便地引用产品中丰富的文档。 上下文帮助功能可以让您充分利用LabVIEW图形化特性,只需将鼠标悬停即可访问子VI的文档。 LabVIEW还在产品内以及在线提供了数百个可用程序范例来演示和讲解不同的特性。
不论底层算法有多复杂,LabVIEW分析工具均简单易用。 Spectral Measurements Express VI等超过15个用于分析的Express VI可降低在应用中实现测量分析的复杂度,您可通过交互式配置对话框即时预览分析结果。
图3. Signal analysis Express VI为应用程序的分析提供了强大、易用的编程工具。
这些和其它测量分析工具可以直接输入来自数据采集硬件的真实时域信号,并提供结果以便绘制图表、图形或进一步处理。 借助这些函数,您可以轻松地确定DC/RMS电平、总谐波失真(THD/SINAD)、脉冲响应、频率响应和交叉功率频谱等信号特征。
LabVIEW的一大优势是提供了与测量和控制驱动程序的紧密集成,简化了与来自数百家厂商的数千种仪器的连接和通信。使用LabVIEW,您可以使用仪器驱动程序、交互式助手和内置仪器I/O库快速采集来自GPIB、串口、以太网、PXI、USB和VXI仪器的数据。 此外,LabVIEW还包含了易于使用的函数库和交互式助手来与NI模块化仪器和数据采集产品进行通信。
NI提供了各种专业技能级别的LabVIEW培训。 虽然基础课程针对需要了解产品的非编程人员和现有开发人员,对于中级和高级用户来说,这些课程也有助于提高他们的专业水平。 现场实地课程可帮助企业快速培训大量开发人员而无需离开公司。 在线和自学课程针对希望根据自己的时间安排和进度提高其知识的开发人员。
虽然LabVIEW通常被看作是一个MS Windows应用程序,但该产品最开始在Macintosh操作系统上运行。 NI将LabVIEW移植到Windows上,因为该操作系统在台式PC行业的重要性日益增长。 LabVIEW支持新平台的承诺到一直持续到今天。 LabVIEW继续支持MS Windows和Macintosh,但也由于Linux®的日益普及而新增了对该操作系统的支持。 LabVIEW VI能够在不同的操作系统上运行意味着无论您需要在何种计算平台上进行开发,您都可以在利用您的LabVIEW技术。 LabVIEW甚至可以在其他终端上运行,如实时系统,甚至FPGA和DSP。
LabVIEW的数据显示和报告功能也是该环境如此适用于测试软件开发的一个重要原因。 LabVIEW包含多个二维和三维图形、图表、仪表、旋钮和开关,以便以图形化方式显示测量数据。 ADE还包含LabVIEW报告生成工具包,以便以MS Word和Excel格式生成报告。 如果需要通过Web导出应用程序来进行结果通信, LabVIEW远程面板可以让您通过浏览器显示前面板的数据。 另一方面,如果测量结果需要记录到数据库,则LabVIEW数据库连接工具包提供了一套易用工具来快速连接到本地和远程数据库,并执行许多常见的数据库操作。
最后,NI始终致力于帮助LabVIEW用户克服系统过时问题。 尽管大量的开发精力都集中在增加新功能和集成新技术,但是新版本支持旧版本代码一直是一个首要任务。 在新版产品中运行旧代码意味着专为之前应用投入的宝贵资源不会被浪费,而且可以在新的开发中加以利用。.
4. LabWindows/CVI
LabWindows/CVI是一个成熟的测试与测量ANSI C开发环境,可极大提高工程师和科学家们的生产力。 图4显示的是LabWindows/CVI开发环境。
图4. LabWindows/CVI包含了一个完整的工作区,可用于快速开发、调试和管理大型应用程序。
工程师和科学家们使用LabWindows/CVI来开发制造测试、军事和航空航天、通信、设计验证和汽车行业所需的高性能稳定应用。 LabWindows/CVI通过硬件配置助手、全面的调试工具和开发人员在设计时可用于运行函数的交互式执行能力简化了这些领域的开发。
高级分析库等工具包补充了LabWindows/CVI包含的分析库,用于帮助工程师们分析其测量数据。 LabWindows/CVI高级分析库提供了一套全面的数据分析函数。 借助这些强大的分析程序,您可以轻松地将原始数据转换成有用的信息以及构建测试应用程序。 高级分析库包括用于信号生成、一维(1D)和二维(2D)数组操作、复杂的运算、信号处理、统计和曲线拟合等函数。
LabWindows/CVI通过仪器驱动程序网络上来自200多家厂商的8000多个仪器驱动程序提供了业界领先的仪器控制和连接。 您可以使用这些驱动程序轻松地编程仪器控制应用。 借助仪器I/O助手,您可以生成代码来与串口、以太网和GPIB仪器等设备进行通信,而不需要使用仪器驱动程序。 仪器I/O助手提供了一个简单的界面来快速验证应用原型和自动分析仪器数据,而无需任何编程。 您可以轻松地将生成的代码导入到任何现有应用程序,从而避免了编写仪器连接、基本通信和字符串解析代码等繁琐任务。 除了集成NI-DAQmx库外,LabWindows/CVI还提供了DAQ助手,DAQ助手是一个与数据采集驱动程序框架连接的交互式界面。
针对LabVIEW的培训和支持也适用于LabWindows/CVI。 LabWindows/CVI为不同专业技能水平的开发人员提供了不同的培训课程。 现场实地课程可帮助公司快速培训大量开发人员,而无需让员工离开公司。 对于希望根据自己的时间和进度学习知识的工程师,NI也提供了在线和自学培训课程。 除了LabWindows/CVI培训选项,全球各地分公司的NI应用工程师也为客户提供了全球支持。
通过维护LabWindows/CVI的向后兼容性,NI可帮助您保护投资不因过时而被淘汰。 您不仅可以运行数年前编写的C代码或使用LabWindows/CVI早期版本编写的代码,也可以使用新的优化编译器集成更快速运行应用程序。 LabWindows/CVI的向后兼容性对于军工和航空等重视产品生命周期和连续性等行业至关重要。.
5. Microsoft Visual Studio .Net (C++, Visual Basic .Net, C# and ASP.NET)
Visual Studio .NET支持多种编程语言,如C++、Visual Basic .NET、C#和ASP.NET,提供了一个非常强大的ADE。通过提供各种编程语言选项,您可以使用相同的工具和利用不同开发人员的专业知识,即使他们掌握的是不同的编程语言。 Visual Studio .NET开发的应用程序可以在个人计算机上运行,也可使用ASP.NET语言通过网络运行。
Visual Studio .NET提供了所需的功能来帮助工程师使用C++、Visual Basic .NET和C#等不同编程语言进行开发。 通过将这些编程语言编译成通用语言运行时,您可以添加不同语言开发的程序库。 另一方面,由于.Net平台仅支持Microsoft Windows操作系统,这意味着支持该应用程序的操作系统数量非常有限。 此外,未来将应用程序移植到另一个操作系统可能需要使用不同的语言重新编写应用程序。
默认情况下,Visual Studio .NET不包括任何功能来集成测量和控制驱动器或执行任何分析操作。 NI Measurement Studio提供的组件,如图4所示,可以访问测量和仪器驱动和分析功能。 这些组件提供了交互式助手来自动生成代码,以增强ADE与仪器和测量驱动程序的集成。 与此相反,.NET框架包含的某个功能使其很难与某些仪器进行通信。 .NET架构在通用语言运行时上执行代码,使您无法访问硬件。 由于不能访问硬件,直接写入到仪器的寄存器就会非常困难。 如果要实现这一点,我们必须创建一个DLL,然后从.NET应用程序调用DLL。
Visual Studio .NET默认提供了少量显示和报告功能。 该ADE提供了创建基本应用程序所需的文本框、组合框、列表框、按钮和其他组件,从而提供了足够的功能来生成一个标准的Windows应用程序。 如果要使用图形和图表等更强大的组件来显示数据,您将需要为这一应用程序购买一套组件。 这个问题也反映在Visual Studio .NET编程语言缺乏报告工具上。 另一方面,.NET框架可将信息存储到数据库,从而提供了强大的数据报告功能。 ADO .NET是一个丰富的数据功能库,可用于与许多数据库进行通信并执行操作。
.NET更侧重于商业、IT和基于Web的应用程序,而不是自动测试。 因此,保证编程语言的长期使用性以及避免不连续迁移并没有那么重要。 针对IT的应用只有数个月的生命周期,而针对自动化测试的应用的生命周期则长达数年。 例如,尽管DLL可集成到.NET,但这需要开发人员手动调用函数,并保证DLL数据类型匹配.NET的数据类型。 这乍看之下似乎并不是很难,但如果您需要与仪器驱动程序的数百个函数进行通信,这个过程可能非常耗时。 另一方面,将现有ActiveX组件集成到.NET自动化测试应用要比集成DLL容易得多。 Visual Studio .NET可以生成ActiveX组件包装,将其包装为.NET对象。