Developing Highly Reliable Test Systems with LabVIEW
Despite the shortcomings of general-purpose OSs, you can successfully use them for a variety of test applications. For example, you can rapidly deploy PC-based test systems using LabVIEW graphical development and a wide variety of I/O devices that are adequate for the majority of applications. However, certain test applications require a higher degree of reliability than general-purpose OS can offer. For example, validation testing often requires uninterrupted tests that run for several months at a time. Also, tests that destroy prototypes or use expensive resources are costly to reproduce and, thus, require a higher reliability system to ensure tests run successfully the first time. Finally, tests that perform closed-loop control or event response require a degree of determinism that general-purpose OSs cannot guarantee.
General-purpose OSs such as Microsoft Windows were not developed for these types of applications and, therefore, often fail to perform within requirements. To avoid the risk of failure, you can rely on third-party solutions or outsource the development of these systems, but these options can increase test system cost and decrease the flexibility because of their closed-box nature.
A viable alternative for developing test systems with higher reliability is the use of a commercial real-time OS. Real-time OSs guarantee a high degree of reliability because they have been field proven to provide extended uptime and robust operation. Additionally, real-time OSs provide deterministic execution for operations that require loop rates and event response times in the order of milliseconds. Using real-time OSs, you can control all tasks running on the system and avoid the possibility of preemption by general OS tasks. Another advantage of real-time OSs is that they are less susceptible to security breaches that result in billions of dollars in lost productivity each year.
There are, however, some drawbacks to using real-time OSs for test applications. Traditionally, the learning curve for embedded development is steep, and you must be aware of a myriad of caveats and intricacies when developing for the typical real-time OS. While you can use conventional languages, such as C, to develop applications that execute on these OSs, you must have extensive training and experience to properly integrate OS and application functionality. Adding capabilities for a variety of I/O signals also is time-consuming, because you may find a lack of ready-to-use driver software that operates properly in real-time environments. Furthermore, real-time development tools are considerably more expensive than development tools for a general-purpose OS.
The LabVIEW Real-Time Module, an add-on to the LabVIEW development system, addresses these shortcomings. The LabVIEW Real-Time Module extends LabVIEW capabilities to help you develop deterministic systems that run on dedicated real-time targets and provide high reliability while handling a diverse array of I/O. With this add-on module, you do not need to learn a new development environment or programming language; rather, you can use the familiar rapid development environment of LabVIEW to develop real-time applications.
The LabVIEW Real-Time Module is installed alongside the LabVIEW development system and adds the capability to compile LabVIEW programs (VIs) to execute on a real-time OS running on any LabVIEW Real-Time hardware target. You develop and debug on a Windows host machine with the same tools available in LabVIEW for Windows. When ready to run, the LabVIEW Real-Time Module compiles the code and sends it through an Ethernet or PCI interface to the target hardware, where it executes independent of the host machine. This architecture is ideal for creating test systems that operate reliably over long periods of time.
With LabVIEW Real-Time, you can prioritize each task individually, giving you full control over which tasks the system runs. This ability ensures that a particular task or tasks run at the highest priority and are never interrupted by a lower priority background operation. General-purpose OSs do not expose the scheduling mechanisms to the user. This drawback causes an important test program to be at the mercy of the OS, which can lead to a momentary pause in an application while the system performs disk caching or some other background task. Having full control of the OS scheduler increases the predictability of the system, therefore making it more reliable.
Engineers develop deterministic programs in LabVIEW Real-Time with higher-level constructs, such as the LabVIEW timed loop, that make it possible to design high-performance applications that meet strict real-time requirements. The timed-loop structure gives users a configurable interface to implement precise timing with microsecond resolution and real-time feedback. Through this built-in feedback, users know whether the tasks are operating within the configured bounds. Furthermore, the timed loop can interface with data acquisition devices to easily create hardware-event response programs. The timed loop is just one example of higher-level LabVIEW tools that engineers can use to implement reliable deterministic programming without embedded programming experience.
The LabVIEW Real-Time Module brings the required determinism to an increasing number of test applications in the automotive, aerospace, and military industries. Test engineers have routinely relied on separate systems for deterministic control of rotating machinery, motion control, and deterministic data transfer. The addition of a separate system makes the application more complex and difficult to synchronize. With the built-in capabilities of test and deterministic control in a single LabVIEW Real-Time target, engineers can integrate both components of the application into one system, reducing overall complexity and delivering tighter synchronization.
The LabVIEW Real-Time Module works with National Instruments hardware for multifunction I/O on PCI and PXI platforms and high-accuracy modular instruments, such as digital multimeters, high-speed digitizers, and arbitrary waveform generators. The hardware drivers operate natively in the real-time OS on LabVIEW Real-Time targets, precluding the need to write custom drivers. Rugged NI platforms, including Compact FieldPoint and CompactRIO, also take advantage of LabVIEW Real-Time technology for applications such as intelligent distributed control and machine condition monitoring in an industrial setting. These targets, along with PXI, offer more reliability features such as watchdog timers and extended temperature ranges.
By using the LabVIEW Real-Time Module, you can avoid the feared situation of your test system bowing out at the most inopportune time. This set of tools gives you a platform for applications that require a degree of reliability and deterministic performance greater that general-purpose OSs can provide.
To learn more about how the LabVIEW Real-Time Module extends the reliability of automated test systems for expensive-to-reproduce tests, register for a Webcast on Demand.
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/).
