Ni VeriStand是一种配置实时测试应用程序的软件环境。即买即用的NI VerStand有助于您配置针对多核处理器的实时引擎,以执行以下任务:
- 模拟、数字、通信总线,和基于现场可编程门阵列(FPGA)的I/O接口
- 可触发,多文件数据记录
- 实时激励生成
- 计算通道
- 事件预警和预警响应程序
NI VeriStand 还能够从NI LabVIEW 软件和第三方环境中导入控制算法,仿真模型和其他任务。您可以使用运行时可编辑的用户界面监测这些任务,并与其交互,该界面包含许多用于强制赋值、警报监控、I/O校准、激励配置编辑的有效工具。NI VeriStand的使用不需要掌握编程知识,但是可以在多种不同的软件环境进行自定义和扩展,如NI LabVIEW,ANSI C/C++,和其他建模和编程环境。
1. NI VeriStand 面向实时测试应用
实时测试中将实时操作系统作为测试系统的一部分。与使用通用操作系统相比,推动实时测试系统最常见的需求是需要实现更高的可靠性和更高的性能。
实时测试系统的一个实例是硬件回路测试仿真器,在该系统中,必须确定性地执行系统模型,以提供在物理上不属于测试组件的准确仿真。使用闭环控制的应用程序是另一种实时测试应用。这些系统必须自动控制测试系统某部分,如温室,通过传感器交互,确定性定点设置的变化以实现达到系统的预想状态。系统也必须检测并对预警条件迅速地作出 响应,这有助于防止操作人员受伤或对测试系统造成损害。与这些应用程序类似,测试单元激励和检测应用程序都已经拥有一个完整的控制系统,或者不需要闭环控制,只需要能够提供确定性激励生成和测试单元检测的工具。
这些实时测试应用程序必需的核心功能已经实现,并在NI VeriStand架构上进行了优化——可以配置并使用。这包括主接口通信、数据记录、激励生成、预警检测和响应,以及算法和模型执行。在该框架的基础上,您可以通过使用LabVIEW,ANSI C/C++和其他模型和编程环境,向NI VeriStand软件环境添加定制功能。
通过使用NI VeriStand 来建立您的实时测试系统,您既可以缩短开发时间与应用程序维护成本,又能在每次版本升级时,获得软件功能和性能的提升。
2. 用NI VerStand软件环境来开发应用程序
NI VeriStand 实时测试应用程序通常包括一个或多个实时执行目标,这些目标通过以太网与主机系统进行通信。每个实时执行目标运行NI VeriStand 引擎,该引擎通过Windows主系统进行配置,通过以太网部署。一旦您的NI VeriStand引擎配置完成部署,您就可以使用NI VeriStand 工作区窗口和其所提供的工具,如激励配置文件编辑器,在运行时与您的测试系统进行交互。
当开发和运行NI VeriStand应用程序时,您可以使用三个主要窗口:系统资源管理器,工作区,和激励配置文件编辑器。
系统资源管理器
您可以使用系统资源管理器窗口来创建一个系统定义。该系统定义包含了执行NI VeriStand引擎任务的设置选项,如硬件I/O,还有从其他程序或模型环境中导入的功能。您可以通过添加选项到位于系统资源管理器左侧的系统定义树上,和在右侧窗口的配置选项上设置选项,进行系统的定义。一旦系统定义完成,您就部署了您的执行目标的系统定义,并开始使用NI VeriStand 工作区来创建一个针对您的测试系统的运行界面。
工作区
工作区是部署后的系统定义用户界面。使用该运行时可编辑的用户界面,您可以放置界面输入控件和显示控件,并将它们映射到您的实时应用程序的通道中。您可以使用多个工作区屏幕,将您的控件和指示组织成您的逻辑组,从而对应各类不同的应用任务,或者仅是为了增加用户界面的可用空间。用户接入管理功能允许您基于不同用户的登录账号,对不同的用户控制其访问权限。
激励配置文件编辑器
激励配置文件编辑器是NI VeriStand工作区上的一种工具,用于创建激励生成,以及记录部署于NI VeriStand引擎、对测试配置文件确定性执行的任务。
激励配置文件是通过指定一组NI VeriStand实时引擎将会执行的激励生成步骤而创建的。在您的激励生成器中,产生波形、回放数据、设置通道值有多个步骤,以及执行分支和循环结构有一个条件步骤。您还可以以独立的日志速率添加多个日志任务和激励条件到您的激励配置文件中。例如,对于变化缓慢的通道,一个日志文件能够以较低的速率采集数据,如果在测试期间,触发条件发生,那么另一个日志文件能够被设置为较高的速率进行采集数据。
激励配置文件在NI VeriStand实时引擎中执行,然而,您可以从主机界面中使用NI VeriStand 工作宏记录,或者使用其他工具,如NI TestStand或Iron Python添加额外的测试自动化功能。
除了激励配置文件编辑器,NI VeriStand工作区包括许多其他工具,当与实时测试应用程序协同工作时,这些工具是很有用的。这些工具可用来检测预警、校准硬件I/O,和强制为通道赋值。还有一个实时控制浏览器,其能够监控您的实时执行目标的运行状态。
3. NI VeriStand 引擎架构
NI VeriStand 引擎是非可见执行机制,负责执行硬件I/O、模型、过程、预警和在系统定义文件中指定的其他测试系统任务。引擎不但控制整个系统的定时,而且控制NI VeriStand 引擎和工作区的主机之间的通信。
NI VeriStand 引擎包括多个定时循环,其执行定时由硬件事件控制,精度为微妙。确定性内存缓冲器在不同循环任务间提供通信,不会在引擎执行中引起数据抖动。采用多循环架构,NI VeriStand引擎自然利用了多核处理器并行处理能力的优势,提升了系统性能。创建系统定义时,包括在高吞吐量、并行性和低延时、顺序结构间选择的能力,可以配置各种不同的引擎执行设置。此外,NI VeriStand引擎发布了各种系统参数,您可以在运行时访问。或者您可以使用NI 实时执行跟踪工具更细致地查看您的应用程序的执行。
引擎的实时I/O任务使用硬件定时,单点I/O结构,是仿真,控制,和逐点分析任务的理想选择。然而,使用NI VeriStand定制设备可以添加对较高速率,缓冲信号生成和采集的支持,这些内容将会在下一节进行讨论。
NI VeriStand引擎可以在NI PCI,NI PXI实时系统,还有NI CompactRIO和具有128MB或更大 的DRAM RIO接口上的单板RIO上运行。实时系统使您能够结合同步I/O确定性地执行您的测试——这对于实现闭环控制或与真实组件交互的系统仿真应用程序来说是关键的能力。然而,对于低性能系统需求或实现模型在环(MIL)或软件在环(SIL)的测试,您还可以在同一台计算机上将NI VeriStand 引擎作为您的用户界面加以运行。
4. 自定义NI VerStand
NI VeriStand通过使用基于配置的开发方法,为创建实时测试应用程序提供软件架构。实时测试应用程序所需要的所有常见任务已经在NI VeriStand引擎内部进行了实现与优化。然而,您还可以使用LabVIEW和其他软件工具添加功能到您的NI VeriStand应用程序中。
自定义设备
您可以使用NI VeriStand自定义设备,通过客户自定义时间经验,向NI Veristand引擎中添加运行时功能。创建NI VeriStand自定义设备的LabVIEW使用的模板库中,包含针对NI VeriStand数据和定时资源的接口。这使得自定义设备能够向NI VeriStand 引擎中的本地任务一样运行。该接口使用方式的示例包括:对第三方硬件I/O接口添加支持,或执行缓冲信号采集,以提供高速率测量。
模型
NI VeriStand能够导入您在LabVIEW、MathWorks公司的Simulink®、ITI公司的SimulationX、Gamma技术公司的GT-POWER,和其他建模和编程环境中创建的编译代码。具有该功能,您可以添加实时闭环控制、系统仿真、信号处理和信号发生器到NI VeriStand应用程序中。尽管许多软件环境已在NI VeriStand下支持,您还是可以添加产品提供的NI VeriStand模型框架所产生C代码的从而支持其他环境。
FPGA特性
当添加实时I/O硬件接口到NI VeriStand中,您可以快速配置各种不同的标准模拟,数字和通信总线接口;然而,NI VeriStand还提供LabVIEW基于FPGA可重配置I/O(RIO)设备的用户定义I/O 硬件。您可以使用该功能来创建用户定义I/O硬件接口,实现自定义信号处理、仿真、触发和/或 控制任务,并以25纳秒的速率执行,不占用任何您实时应用程序的处理带宽。此外,因为I/O 接口是基于FPGA的,您可以很容易地重新配置特性或设备的行为,以适应新的需求,或者创建能够用于多个应用程序的测试系统,而不需要改变I/O接口硬件。
工作区工具
NI VeriStand 提供了许多工具,您可以使用这些工具来监测NI VeriStand引擎,并与之进行互动。您可以使用LabVIEW 来创建您自己的运行工具,将它们添加到NI VeriStand工作区中。例如,您可以创建一个自定义运行工具,该工具与数字万用表或示波器交互,提供专门测试数据作为验证程序的一部分。
工作区对象
当与运行可编辑工作区协同工作时, 您可以添加各种不同的输入和输出控制和指示到工作区上,并将它们与NI VeriStand通道连接。尽管NI VeriStand包含各种不同的工作区对象,您仍需使用LabVIEW来创建能够在运行时被加入NI VeriStand工作区的自定义控制和指示。其中的一些实例包括添加更接近系统界面的UI对象,或用自定义功能创建UI对象,如顺序处理或预警。
API 库
NI VeriStand为工作区和系统资源管理器 提供基于.NET的API,您可以使用该API 来创建NI VeriStand自定义接口,或实现配置和/或NI VeriStand应用程序操作的自动化。例如,您可以使用系统资源管理器API库来创建一个自定义配置窗口,限制用户对NI VeriStand应用程序作出改变,或使应用程序参数指定在表格中,以简化配置过程。此外,您可以使用工作区API 库使NI VeriStand应用程序操作进行自动化,或使用LabVIEW软件创建一个完全的自定义运行接口。
1. 什么是NI VeriStand?
NI VeriStand提供了一个框架,能够帮助用户提高创建实时测试应用程序的效率。考虑耐久性测试元件、环境测试系统、硬件在环(HIL)仿真等实时测试系统;根据具体应用,用户的实时测试软件需要具有下述多个功能:
- 硬件I/O接口
- 数据记录
- 激励生成
- 用户界面
- 主机系统通信
- 执行控制算法、分析例程或仿真模型
- 报警
- 报警响应程序
- 计算通道
以上任务及其他更多的任务,都可以在NI VeriStand框架中实现和优化,并且随时可以配置使用。这一现成的功能在实践验证的架构中运行,加快了用户的实时测试应用程序开发,减少了用户对于应用程序的支持并且降低了维护成本。尽管NI VeriStand提供了实时测试应用所需要的大部分功能,它仍然可以通过LabVIEW及其它软件环境进行自定义和扩展,从而确保满足用户的具体应用要求。
2. NI VeriStand的工作方式
在考查LabVIEW与NI VeriStand配合使用的各种方法之前,用户需要先了解NI VeriStand的工作方式。图1说明了如何使用NI VeriStand创建实时测试应用程序。
图1. 使用系统浏览器窗口配置 NI VeriStand实时引擎,使用 NI VeriStand工作空间进行引擎的用户界面配置。
NI VeriStand系统浏览器窗口可用来配置NI VeriStand实时引擎,此引擎在实时PXI系统或NI CompactRIO系统等实时执行目标上运行。在此配置部署到NI VeriStand实时引擎上之后,NI VeriStand工作空间窗口立即为引擎提供一个运行界面,并且包括多种工具,供用户监测实时测试应用程序以及进行交互。
图2. 系统浏览器 (背景)与工作空间 (前景)
请查看NI VeriStand视频演示中关于如何使用NI VeriStand创建并运行实时测试应用程序的简短视频演示。
3. 如何将NI VeriStand与LabVIEW和其他环境配合使用
通过LabVIEW及其它开发环境,用户可以为NI VeriStand应用程序定制编辑时和运行时功能。图3所示的是用户可以在哪些位置为应用软件添加额外功能。请注意:蓝色组件由NI VeriStand环境进行配置。黄色组件可以使用LabVIEW或其它环境来创建,并作为NI VeriStand应用程序的本地组件添加,它能够与环境无缝地协作。
图3. NI VeriStand提供了一个可配置的功能框架,可以添加使用LabVIEW及其它环境创建的附加功能。
API库
NI VeriStand为工作空间和系统浏览器提供了一个基于.NET的API,用户可以使用此API为NI VeriStand创建自定义接口或者实现NI VeriStand应用程序的配置和/或运行自动化。例如,用户可以使用系统浏览器API库来创建一个自定义配置窗口,限制用户对NI VeriStand应用程序所做的更改,或者通过电子数据表中指定应用程序参数来简化配置过程。此外,用户还可以使用工作空间API库自动运行NI VeriStand应用程序或者创建完全自定义的运行时接口。这些基于.NET的API可以被LabVIEW、NI TestStand,以及多种其它能够使用.NET接口的环境使用。
了解更多关于NI VeriStand与NI TestStand的集成。
工作空间对象
工作空间是NI VeriStand应用程序所用的可编辑运行时用户界面。要使用工作空间,只需将用户界面对象拖放到工作空间屏幕上,然后右击对象打开配置对话框。NI VeriStand提供了多种用户界面对象,然而你仍然可以使用LabVIEW为NI VeriStand创建控制器和指示器,以提供个性化外观甚至在线数据处理等运行时功能。要完成这些修改,用户只需要在LabVIEW中打开NI VeriStand用户界面对象,然后进行更改即可。
图4. 使用 LabVIEW创建自定义用户界面对象
了解更多信息,请阅读创建NI VeriStand用自定义工作空间对象白皮书。
工作空间工具
另外,工作空间还提供了很多工具,供用户监测NI VeriStand应用程序或者进行交互,例如报警监控、硬件校准、激励配置文件编辑等。用户可以使用LabVIEW为NI VeriStand应用程序创建自定义工具,并将它和其它工作空间工具一起放入工具菜单。例如,用户可以创建一个提供模块化仪器所用接口的工具,比如数字万用表(DMM),作为验证过程的一部分提供专业的测量。
图5. 使用一个配置对话框将 LabVIEW VI添加到 NI VeriStand工作空间菜单中
模型
前文所述的自定义选项会影响NI VeriStand主机端组件(工作空间和系统浏览器);然而,用户也可以将自定义功能添加到NI VeriStand实时应用程序中。
通过其它环境向NI VeriStand添加功能的最常见方法是将已编译的模型导入到NI VeriStand实时应用程序中。NI VeriStand能够导入用户通过LabVIEW、MathWorks, Inc.的Simulink®软件、ITI的SimulationX、Maplesoft的MapleSim、Gamma Technologies Inc.的GT-POWER,以及其他许多建模与编程环境所创建并编译的函数或模型代码。利用此功能,用户可以将实时闭环控制、系统仿真、信号处理,以及信号产生等功能添加到NI VeriStand应用程序中。这些组件在系统浏览器中具有一个标准编辑时间接口,可以轻松地在同一应用程序中使用来自多种环境的已编译模型,或者在来自不同环境的已编译模型之间进行切换。
这些模型的已编译版本,通常使用开发环境的C代码生成工具所提供的简单配置对话框产生。例如,在导入LabVIEW子VI或子系统模型时,用户只需要选择LabVIEW工具菜单的NI VeriStand模型生成工具,选择目标目录,然后使用系统浏览器导入已编译模型,如图6所示。
图6. 将 LabVIEW子VI与子系统增加到用户NI VeriStand实时应用程序中。
每次NI VeriStand实时应用程序调用已编译模型时,需要惊醒输入锁存,代码执行以及输出更新。模型中的模型参数
或变量根据需要进行更新,而不是每个执行迭代时均予以更新。NI VeriStand模型提供了一种最简单技术,可将自定义功能增加到用户NI VeriStand实时应用程序中。要了解此过程的更多信息,请阅读利用NI VeriStand来使用LabVIEW创建的模型教程。虽然可以支持多种软件环境,但是用户依然可以使用产品附带的NI VeriStand模型框架,来支持其他能够产生C代码的开发环境。
自定义设备
将自定义功能增加到NI VeriStand实时应用程序中的另一种方法是使用自定义设备。与NI VeriStand模型相比,自定义设备在执行架构方面给用户更大的自由度,并且使用户能够在系统浏览器中自定义编辑时间。NI VeriStand自定义设备可由LabVIEW使用模板库创建。模板库要求具有内置在系统浏览器中的编辑时间组件,以及通过NI VeriStand实时引擎执行并且能够访问引擎的定时和数据资源的运行时间组件。此接口的使用实例包括:为新增硬件接口创建支持,执行实时信号处理等自定义功能。
图7.
将自定义编辑时间及运行时间功能添加到用户的NI VeriStand实时应用程序中。FPGA特性
在将实时I/O硬件接口添加到NI VeriStand中时,用户可以快速地配置多种标准模拟、数字,以及通信总线接口;然而,利用LabVIEW基于FPGA的可重配置I/O(RIO)设备,NI VeriStand还能够创建用户定义的I/O硬件。用户可以利用此功能创建自定义I/O硬件接口,以25纳秒的速度执行信号处理、仿真、触发和/或控制任务,并且不会消耗用户运行NI VeriStand引擎的实时处理器的任何处理带宽。此外,由于I/O接口基于FPGA,用户还可以轻松地重新配置设备的特性或行为,以满足新的要求,或者创建能够用于多个应用程序并且无需更改I/O接口硬件的测试系统。
图8. 使用 LabVIEW FPGA创建自定义的、可重配置的硬件接口