Table of Contents
- NI VeriStand for Real-Time Testing Applications
- Developing Applications with NI VeriStand
- NI VeriStand Engine Architecture
- Customizing NI VeriStand
- Next Steps

NI VeriStand is a software environment for configuring real-time testing applications. Out of the box, NI VeriStand helps you configure a multicore-ready real-time engine to execute tasks that include:
- Analog, digital, communication bus, and field-programmable gate array (FPGA)-based I/O interfaces
- Triggerable, multifile data logging
- Real-time stimulus generation
- Calculated channels
- Event alarming and alarm response routines
NI VeriStand can also import control algorithms, simulation models, and other tasks from NI LabVIEW software and third-party environments. You can monitor and interact with these tasks using a run-time editable user interface that includes many useful tools for value forcing, alarm monitoring, I/O calibration, and stimulus profile editing. Although no programming knowledge is required to use NI VeriStand, it is designed to be customized and extended using a variety of software environments, including NI LabVIEW, ANSI C/C++, and other modeling and programming environments.
NI VeriStand for Real-Time Testing Applications
Real-time testing involves using a real-time operating system as part of a test system. The most common requirements driving the need for a real-time test system are to achieve greater reliability and performance than is possible using a general-purpose operating system.
One example is a hardware-in-the-loop (HIL) simulator where system models must be executed deterministically to provide an accurate simulation of the components that are not physically part of the test. Applications that use closed-loop control are another type of real-time test application. These systems must automatically control a part of the test system, such as an environmental chamber, by reacting to sensor and set-point changes deterministically to achieve the desired state of the system. They must also detect and respond to alarm conditions quickly to help prevent operator injury or test system damage. Similar to these applications, test cell stimulus and monitoring applications either already have an integrated control system or do not require closed-loop control and simply need a tool that can provide deterministic stimulus generation and test cell monitoring.
The core functionality necessary for these real-time testing applications has been implemented and optimized in the NI VeriStand architecture – ready to configure and use. This includes host interface communication, data logging, stimulus generation, alarm detection and response, and algorithm and model execution. Building on this framework, you can add custom functionality to NI VeriStand using LabVIEW, ANSI C/C++, and other modeling and programming environments.
By using NI VeriStand to build your real-time test systems, you benefit from reduced development time and application maintenance costs. You also benefit from the functionality and performance improvements implemented with each revision.
Developing Applications with NI VeriStand
An NI VeriStand real-time test application typically consists of one or more real-time execution targets that communicate to a host system via Ethernet. Each real-time execution target is running the NI VeriStand Engine, which is configured from the Windows-based host system and deployed over Ethernet. Once your NI VeriStand Engine configuration is deployed, you use the NI VeriStand Workspace window and the tools it provides, such as the Stimulus Profile Editor, to interact with your test system at run time.

When developing and running NI VeriStand applications, you use three primary windows: the System Explorer, the Workspace, and the Stimulus Profile Editor.
System Explorer
You start by creating a system definition using the System Explorer window. The system definition contains your settings for the NI VeriStand Engine tasks such as hardware I/O as well as the functionality you import from other programming or modeling environments. You configure a system definition by adding items to the system definition tree located on the left of the System Explorer window and setting the items configuration options in the window on the right. Once complete, you deploy this system definition to your execution target and use the NI VeriStand Workspace to create a run-time interface for your test system.

Workspace
The Workspace is the user interface to a deployed system definition. With this run-time editable user interface, you place interface objects and map them to channels in your real-time application. You can use multiple Workspace screens to organize your controls and indicators into logical groups for different application tasks or simply to increase the available space of the user interface. The user access management features allow you to control access privileges for different users based on their login account.

Stimulus Profile Editor
The Stimulus Profile Editor is a tool in the NI VeriStand Workspace for creating stimulus generation and logging tasks that are deployed to the NI VeriStand Engine for deterministic execution of test profiles.
Stimulus profiles are created by specifying a list of stimulus generation steps that the NI VeriStand Real-Time Engine will perform. There are steps for generating waveforms, playing back data files, setting channel values, as well as a conditional step for implementing branching and looping structures in your stimulus generators. You can also add multiple logging tasks with independent logging rates and trigger conditions to your stimulus profile. For example, one log file can capture data at a reduced rate for slow changing channels and another file can be set to acquire at a higher rate if a trigger condition occurs during the test.
Stimulus profiles execute in the NI VeriStand Real-Time Engine, however, you can add additional test automation capabilities from the host interface using the NI VeriStand Workspace macro recorder or by using other tools such as NI TestStand or Iron Python.

In addition to the Stimulus Profile Editor, the NI VeriStand Workspace includes many other tools that are useful when working with real-time testing applications. There are tools for monitoring alarms, calibrating hardware I/O, and channel value forcing. There is also a real-time console viewer, which monitors the operation status of your real-time execution target.

NI VeriStand Engine Architecture
The NI VeriStand Engine is the nonvisible execution mechanism that is responsible for executing hardware I/O, models, procedures, alarms, and other test system tasks that are specified in the system definition file. The engine controls the timing of the entire system as well as the communication between the NI VeriStand Engine and the Workspace.
The NI VeriStand Engine consists of multiple Timed Loops whose execution timing is controlled by hardware events with microsecond resolution. Deterministic memory buffers provide communication between tasks in different loops without inducing jitter into engine execution. With this multiloop architecture, the NI VeriStand Engine naturally takes advantage of the parallel processing power of multicore processors, increasing system performance. A variety of engine execution settings can be configured when creating the system definition including the ability to choose between high-throughput, parallel and low-latency, sequential architectures. Additionally, the NI VeriStand Engine publishes a variety of system health parameters that you can access at run time. Or you can use the NI Real-Time Execution Trace Toolkit for greater visibility into your application’s execution.
The engine’s real-time I/O tasks use a hardware-timed, single-point I/O structure that is ideal for simulation, control, and point-by-point analysis tasks. However, support for higher-speed, buffered signal generation and acquisition can also be added using an NI VeriStand custom device discussed in the next section.
The NI VeriStand Engine can run on PCI- and PXI-based real-time systems from National Instruments as well as NI CompactRIO and NI Single-Board RIO interfaces that have 128 MB of DRAM or greater. A real-time system gives you the ability to execute your tests deterministically with synchronized I/O – a critical capability for applications that are implementing closed-loop control or system simulations that interact with real-world components. However, for systems with lower performance needs or for implementing model-in-the-loop (MIL) or software-in-the-loop (SIL) tests, you can also run the NI VeriStand Engine on the same computer as your user interface.
Customizing NI VeriStand
NI VeriStand provides a software framework for creating real-time testing applications using a configuration-based development approach. All of the common tasks required by real-time testing applications have been implemented and optimized inside the NI VeriStand Engine; however, you can also use LabVIEW and other software tools to add functionality to your NI VeriStand applications.
Custom Devices
You can use NI VeriStand custom devices to add run-time functionality to the NI VeriStand Engine with a custom edit-time experience in the System Explorer. NI VeriStand custom devices are created with LabVIEW using a template library that provides access to the NI VeriStand Engine data and timing resources. This gives custom devices the ability to behave as native tasks within NI VeriStand. Examples of how this interface is used include adding support for third-party hardware I/O interface or implementing buffered signal acquisition to provide high-speed measurements.
Models
NI VeriStand can import compiled code you create in LabVIEW, The MathWorks, Inc. Simulink® software, SimulationX from ITI, MapleSim from Maplesoft, GT-POWER from Gamma Technologies Inc, and many other modeling and programming environments. With this capability, you can add real-time closed-loop control, system simulation, signal processing, and signal generation to NI VeriStand applications. While many environments are already supported, you can add support for other environments capable of producing C code using the NI VeriStand Model Framework that is provided with the product.
FPGA Personalities
When adding real-time I/O hardware interfaces to NI VeriStand, you can quickly configure a variety of standard analog, digital, and communication bus interfaces; however, NI VeriStand also provides the ability to create user-defined I/O hardware using LabVIEW FPGA-based reconfigurable I/O (RIO) devices. You can use this capability to create user-defined I/O hardware interfaces that implement custom signal processing, simulation, triggering, and/or control tasks that execute at rates as fast as 25 nanoseconds and that do not consume any of the processing bandwidth of your real-time application. Additionally, because the I/O interface is FPGA-based, you can easily reconfigure the personality or behavior of the device to adapt to new requirements or to create test systems capable of being used for multiple applications without changing I/O interface hardware.
Workspace Tools
NI VeriStand provides many tools that you can use to monitor and interact with the NI VeriStand Engine. You can use LabVIEW to create your own run-time tools that can be added to the NI VeriStand Workspace. For example, you could create a custom run-time tool that would interface to a digital multimeter or oscilloscope to provide specialized measurements as part of the validation procedure.
Workspace Objects
When working with the run-time editable Workspace, you can add a variety of controls and indicators to the Workspace and connect them to NI VeriStand channels. While NI VeriStand includes a variety of these objects, you can also use LabVIEW to create custom controls and indicators that can be used with the NI VeriStand Workspace. Some examples include adding UI objects that more closely mimic your systems interfaces or creating UI objects with custom functionality such as inline processing or alarming.
API Libraries
NI VeriStand provides a .NET-based API for the Workspace and the System Explorer that you can use to create custom interfaces for NI VeriStand or to implement automation of the configuration and/or operation of NI VeriStand applications. For example, you can use the System Explorer API library to create a custom configuration window that limits the changes a user can make to an NI VeriStand application or to enable the application parameters to be specified in a spreadsheet to simplify the configuration process. Additionally, you can use the Workspace API library to automate the operation of an NI VeriStand application or to create a completely custom run-time interface using LabVIEW.
Next Steps
Download your free evaluation copy of NI VeriStand
View video demonstrations of NI VeriStand
Learn more about using LabVIEW and other software environments with NI VeriStand
Request an on-site demonstration with your local NI field engineer
Simulink® is a registered trademark of The MathWorks, Inc.
Reader Comments | Submit a comment »
Legal
This tutorial (this "tutorial") was developed by National Instruments ("NI"). Although technical support of this tutorial may be made available by National Instruments, the content in this tutorial may not be completely tested and verified, and NI does not guarantee its quality in any way or that NI will continue to support this content with each new revision of related products and drivers. THIS TUTORIAL IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND AND SUBJECT TO CERTAIN RESTRICTIONS AS MORE SPECIFICALLY SET FORTH IN NI.COM'S TERMS OF USE (http://ni.com/legal/termsofuse/unitedstates/us/).
