LabVIEW Graphical Programming, Fourth Edition

If you think about MMI display hierarchies, one thing you may wonder about is how the many subVIs exchange current data. This is a data distribution problem, and it can be a big one. A complex process control system may have many I/O subsystems of different types, some of which are accessed over a network. If you don't use a coherent plan of attack, performance (and perhaps reliability) is sure to suffer. In homemade LabVIEW applications, global variables generally solve the problem, if used with some caution.
Most commercial process control systems, including DSC, use a realtime database to make data globally accessible in real time. You can emulate this in your LabVIEW program at any level of sophistication. The general concept is to use centralized, asynchronous I/O handler tasks to perform the actual I/O operations (translation: stand-alone Vis that talk to the I/O hardware through the use of LabVIEW drivers). Data is exchanged with the I/O handlers via one or more global variables or queues (Figure 18.23). User-interface VIs and control VIs all operate in parallel with the I/O handlers.
The client-server model is very effective for...