Measurement Multithreading in NI-DAQ 7
Measurement multithreading is the concept of controlling a single function on a Data Acquisition (DAQ) device independent of other I/O operations on the same board or on other boards. Figure 1 illustrates some of the communication paths between data acquisition devices and the driver software.

Figure 1. Communication Paths to Data Acquisition Device and Software
In the traditional NI-DAQ interface, a simple request for an analog input waveform could block the driver software from accessing a digital I/O line, for example, until the analog input operation is complete. With the new NI-DAQ 7 interface, a user control could access and read/write a digital line, regardless of the state of an analog input operation. In fact, all four DAQ device operations – analog input, analog output, digital I/O, and counter/timer – can operate independently.
A typical application example is a continuous hardware-timed analog input operation running at 1,000 samples/s without interruption. In the example below, the driver software is asking to retrieve the data in blocks of 500 samples each in the upper loop while trying to read a digital line in the lower loop.

Figure 2. Simultaneous Measurement Operations in the Traditional NI-DAQ Programming Environment
In Figure 2, the digital loop typically can execute at only about 100 operations/s because the upper loop is requesting the attention of the driver software. If all of the samples are not available in the upper loop, the function will block all other DAQ operations until the samples are available. This same program logic is recreated in NI-DAQ 7 in Figure 3 below.

Figure 3. Simultaneous Measurement Operations in the NI-DAQ 7 Programming Environment
The Digital Loop in Figure 3 can continuously sample the digital input line without interference from the Analog Loop. The read VI in the upper loop simply sleeps, yielding the processor, until the samples are ready. The lower loop can operate freely while the upper loop sleeps. Consequently, the lower loop can run at 10,000 operations/s, a 100X improvement over the traditional NI-DAQ programming environment.
NI-DAQ 7 also includes DAQ Assistant, which reduces the amount of LabVIEW programming in exchange for configuration-based dialog screens. Using DAQ Assistant is still 10X faster than the traditional programming environment and is much easier and faster to program.

Figure 4. Simultaneous Measurement Operations using the New DAQ Assistant
Although the ability to synchronize these operations is easier than ever with NI-DAQ 7, you can now operate these functions asynchronously because of measurement multithreading. Demand driver software with measurement multithreading to meet the changing performance and functionality requirements of a PC-based data acquisition system.
Related Links:
NI-DAQ 7 vs. Traditional NI-DAQ Performance Improvements
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/).
