Eric Nielsen’s Real Time blog did a good job of hitting the major strengths and benefits of any system based on a controller running a Real-time operating system. Here I’ll get into a little more depth, specifically for the capabilities these systems give in regards to distributed execution.
As we’ve learned, the major benefits of running a Real-Time system are determinism and robust operation. These benefits can be realized in a very powerful way: distributed execution. Distributed execution allows the programmer to separate tasks by function and by level of criticality. A necessary component to keep things going is a good communication structure, allowing independent pieces to share information and status. One simple analogy for distributed execution can be found in your home. Your household appliances perform well because they have two important qualities: simple on the outside but complex (yet capable!) on the inside.
Capabilities
- Independent operation of critical sub-systems
- Highly available data collection
- Task dedication
Many capabilities are realized with dependable, asynchronous nodes. For one, they allow independent control and monitoring of critical systems. A real-time controller can be put in place to monitor safe/unsafe conditions in a variety of environments, including a manufacturing line, an R&D facility, or out in the field. Following the home analogy, the fire alarm in your home should “just work”, providing monitoring and alarming around the clock, with a simple and effective interface.
Another capability is ongoing and highly-available data collection. “Availability” is an important concept in reliability theory that indicates the level to which a system is operable and in a committed state. There are many applications that require highly-available data collection. For example, performing potentially destructive testing on a one-of-a-kind sample is a one-time deal—if you miss it (or lose the data), you’re out of luck and often back to building another potentially very expensive sample. This concern is even more important when the test needs to run around-the-clock, and any datapoint along the test could be valuable.
Task dedication is another important capability. The safety system I discussed above will continue to run even when other nodes on the system are compromised. Larger systems can have many parallel operations, from a higher supervisory level to low level execution. Separating these tasks to independent devices allows for continuity of operation when other parts may be under maintenance, upgrade, or error condition.
We at DMC are avid users and experts in National Instruments LabVIEW for Real-time, which can run on a variety of platforms including PXI, compactRIO (cRIO), PC, Embedded Vision System, Smart Cameras, and more. We’ve employed these tools successfully in a variety of projects, including the following Case Studies:
Appliance Test System with Power Measurements
Explosion-proof Equipment Testing with LabVIEW
LabVIEW Programming