How can NI VeriStand help my LabVIEW application development? | In an interview featured in the first quarter 2010 issue of Instrumentation Newsletter, National Instruments Alliance Partner and Certified LabVIEW Architect, Greg Sussman discusses how NI VeriStand helped him reduce the cost and technical risk of his application development. In this article, we’ll provide a brief overview of the NI VeriStand architecture for real-time applications and then examine the different ways you can use LabVIEW with NI VeriStand to accelerate your real-time test application development and reduce your application support and maintenance costs.
1. What Is NI VeriStand
NI VeriStand provides a framework for creating real-time testing applications more efficiently. Consider a typical real-time test system such as a durability test cell, dynamometer, or hardware-in-the-loop (HIL) simulator; depending on the particular application, you will need to create many of the following features in your real-time test software:
- Hardware I/O Interfaces
- Data Logging
- Stimulus Generation
- User Interface
- Host System Communication
- Execution of Control Algorithms, Analysis Routines, or Simulation Models
- Procedures to Respond to Alarms
- Calculated Channels
These tasks and more are implemented and optimized inside the NI VeriStand framework, ready to configure and use. This out-of-the-box functionality implemented in a well tested architecture accelerates your real-time test application development. While NI VeriStand provides most of the functionality required by a real-time testing application, it is designed to be customized and extended using LabVIEW and other software environments to ensure it can always meets your specific application requirements.
Before examining the different ways to use LabVIEW with NI VeriStand, it is necessary to understand a little more about how NI VeriStand works. Figure 1 provides an illustration of how a real-time test application is created using NI VeriStand.
Figure 1. Configure the NI VeriStand Real-Time Engine using the System Explorer window and then interface with the engine using the NI VeriStand Workspace.
The NI VeriStand System Explorer window is used to configure the NI VeriStand real-time engine that is running on a real-time execution target such as a real-time PXI system or NI CompactRIO system. Once this configuration is deployed to the NI VeriStand real-time engine, the NI VeriStand Workspace window provides a run-time interface to the NI VeriStand real-time engine and includes a variety of tools that can be used to monitor and interact with your real-time test application.
Figure 2. NI VeriStand System Explorer (background) and Workspace (foreground)
To view short video demonstrations of how to create and run a real-time testing application with NI VeriStand, view the NI VeriStand video demonstrations.
2. Using LabVIEW with NI VeriStand
Using LabVIEW, you can customize the edit-time and run-time capabilities of an NI VeriStand application. Figure 3 shows where you can use LabVIEW to add additional functionality to the application. Note that the blue components are configured using the NI VeriStand environment and the yellow components can be created using LabVIEW and added as native components of the NI VeriStand application. This gives you the ability to use LabVIEW to create additions to an NI VeriStand real-time testing application that work seamlessly with the environment.
Figure 3. NI VeriStand provides a framework of configurable functionality that can be supplemented with additional capabilities created using LabVIEW and other environments.
Application Programming Interface (API) Libraries
NI VeriStand provides a .NET-based API for the Workspace and the System Explorer that can be used 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.
Figure 4. NI VeriStand API Libraries for LabVIEW
User Interface Objects
The NI VeriStand Workspace is a run-time editable user-interface for NI VeriStand applications. To use the Workspace, you simply drag and drop user interface objects to a Workspace screen and then right-click on them to bring up their configuration dialog. NI VeriStand provides a variety of user interface objects, but you can also use LabVIEW to create controls and indicators for NI VeriStand that provide a customized appearance or even run-time functionality such as inline data processing. To make these modifications, simply open the NI VeriStand user interface object in LabVIEW and make you changes.
Figure 5. Create custom user-interface objects with LabVIEW
To learn more about how to create custom user interface objects for NI VeriStand, read the white paper titled Creating Custom Workspace Objects for NI VeriStand.
The NI VeriStand Workspace also provides many tools that you can use to monitor or interact with your NI VeriStand application such as alarm monitors, hardware calibration, and stimulus profile editors. You can use LabVIEW to create custom tools for your NI VeriStand application and place them in the tools menu with the other NI VeriStand Workspace tools. For example, you could create a tool that would provide an interface to a modular instrument such as a digital multimeter (DMM) to provide specialized measurements as part of a validation procedure.
Figure 6. Add LabVIEW VIs to the NI VeriStand Workspace menu with a simple configuration dialog.
The previous customization options affect the NI VeriStand host side components (the Workspace and the System Explorer); however, you can also add custom functionality to the NI VeriStand real-time application in several ways. NI VeriStand import compiled models, or functions, created by a variety of environments including LabVIEW and the LabVIEW Control Design and Simulation Module. These components have a standard edit-time interface in the NI VeriStand System Explorer and simply require that you create a subVI or subsystem with an execution architecture similar to the one show in Figure 7.
Figure 7. Add LabVIEW subVIs and subsystems to your NI VeriStand real-time application.
Every time the NI VeriStand real-time application calls the compiled model component, the inputs are latched, the code is executed, and the outputs are updated. You can also create parameters for the subVI or subsystem that are updated on demand as opposed to each execution iteration. NI VeriStand Model compoents provide the simplest technique for adding custom LabVIEW functionality to your NI VeriStand real-time application. To see a video demonstration of this process, see the tutorial titled Importing LabVIEW SubVIs and Sub-Systems into NI VeriStand.
Another way you can add custom functionality to the NI VeriStand real-time application is through the use of custom devices. Compared to NI VeriStand Model DLLs, custom devices give you more freedom in regards to the execution architecture and give you the ability to customize the edit-time experience in the System Explorer. NI VeriStand custom devices are created with LabVIEW using a template library that requires both an edit-time VI that is embedded in the NI VeriStand System Explorer and a run-time VI that executes with the NI VeriStand Real-Time Engine and has access to the timing and data resources of the engine. Examples of how this interface is used include creating support for additional hardware interfaces or implementing custom functionality such as real-time signal processing.
Figure 8. Add custom edit-time and run-time functionality to your NI VeriStand real-time application.
To view an example of an NI VeriStand custom device, see the NI 9144 EtherCAT Add-On for NI VeriStand.
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 custom I/O hardware interfaces that implement signal processing, simulation, triggering, and/or control tasks that execute at rates as fast as 25 nanoseconds and that do not consume any processing bandwidth of your real-time processor running the NI VeriStand Engine. Additionally, because the I/O interface is field-programmable gate array (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.
Figure 9. Use LabVIEW FPGA to create custom, reconfigurable hardware interfaces.
To learn more, read the white paper titled Creating FPGA-Based I/O Personalities for NI VeriStand.
NI VeriStand helps you create real-time testing applications more efficiently by providing a framework that includes both ready-to-use functionality as well as integrated sockets for adding custom functionality with LabVIEW. In addition to the advantage provided by the out-of-the-box functionality, applications built on this framework also benefit from the quality, functionality, and performance improvements added to NI VeriStand with each revision.