When examining the cost of building a data acquisition system, you will find that software development often accounts for 25 percent of total system cost. Obtaining easy-to-use driver software with an intuitive application programming interface makes a big impact on completing a project on time and under budget. NI-DAQmx driver software goes far beyond a basic data acquisition driver to deliver increased productivity and performance, and is one of the main reasons National Instruments continues to be a global market leader in PC-based data acquisition.

Figure 1. NI-DAQmx driver software abstracts data acquisition bus technology and provides a consistent API across multiple programming languages.
Figure 2 displays the benefits of more than 200 data acquisition (DAQ) devices supported by NI-DAQmx to provide ease of use, flexibility, and high performance on multiple programming platforms, including NI LabVIEW, NI LabWindows™/CVI, ANSI C/C++, and C#/Visual Basic .NET.
Figure 2. DAQ devices supported by NI-DAQmx provide ease of use, flexibility, and high performance on multiple programming platforms.
All NI-DAQmx devices include MAX, a configuration and test utility.
You can use MAX to

Figure 3. MAX is a configuration and test utility included with NI-DAQmx devices.
Use NI-DAQmx virtual channels to map configuration information to specified physical channels on NI-DAQmx devices. Through configuration wizards, as shown in Figure 4, you can easily create virtual channels that you can reference from any programming language.
Figure 4. Use configuration wizards to create NI-DAQmx virtual channels in MAX.
You can use NI-DAQmx virtual channels to
Visualize and log your data with LabVIEW SignalExpress LE, which is complimentary with all NI-DAQmx devices.

Figure 5. Visualize and log data with LabVIEW SignalExpress LE.
You can use LabVIEW SignalExpress LE to
NI-DAQmx provides support for a variety of major programming languages, including
LabVIEW graphical programming software offers an easy-to-use application development environment designed specifically for the needs of engineers and scientists. Without any prior programming experience, you can configure your hardware, take measurements, analyze data, and display the results. A LabVIEW application is called a virtual instrument (VI) because you can customize software front panels with knobs, buttons, dials, and graphs to emulate the control panels of traditional instruments.
NI-DAQmx provides the DAQ Assistant, a step-by-step wizard for configuring, testing, and programming measurement tasks. Figure 6 shows a basic LabVIEW application that uses the DAQ Assistant to display voltage measurements.

Figure 6. The DAQ Assistant provides a single function for all data acquisition programming.
As shown in Figure 7, you can right-click on the DAQ Assistant and automatically generate NI-DAQmx code for lower-level customization.

Figure 7. Right-click on the DAQ Assistant to automatically generate graphical LabVIEW code.
Using the NI-DAQmx API, you can create virtual channels programmatically and use graphical functions and structures to specify timing, triggering, and synchronization parameters. Figure 8 shows an example of configuring a temperature sensor channel using drop-down function menus in LabVIEW.
Figure 8. Use drop-down function menus in LabVIEW to create NI-DAQmx virtual channels programmatically.
You can use the NI-DAQmx API and LabVIEW to create a high-performance measurement system that meets your specific application requirements, as shown in Figure 9.
Figure 9. Use the NI-DAQmx API and LabVIEW to create the exact VI for your application.
NI-DAQmx driver software also provides the same API for other popular programming languages, including ANSI C/C++ and C#/Visual Basic .NET. You can create NI-DAQmx virtual channels using MAX or programmatically generate them using driver function calls. The functions and properties, as well as the order of the functions you use, are the same across all languages. This feature is most useful when a single project team is using multiple programming languages and eases the transition from one language to another for developers.
NI-DAQmx provides more than 80 example programs for ANSI C while offering the same high-performance multithreaded driver features.
If you prefer ANSI C development, consider LabWindows/CVI for a proven ANSI C integrated development environment that provides a comprehensive set of programming tools for creating test and control applications. LabWindows/CVI combines the longevity and reusability of ANSI C with engineering-specific functionality designed for instrument control, data acquisition, analysis, and user interface development. LabWindows/CVI also supports automatic code generation using the DAQ Assistant for NI-DAQmx.
Learn more about LabWindows/CVI »

Figure 10. LabWindows/CVI provides ANSI C tools for instrument control, data acquisition, analysis, and user interface development.
NI-DAQmx offers the same high-performance, multithreaded driver and more than 80 examples to C# and Visual Basic .NET programmers to deliver native .NET object-oriented programming, which works with the latest versions of Visual Studio.
For Visual Studio application development, including Visual C#, Visual Basic .NET, and Visual C++, Measurement Studio is a suite of native user interface controls, tools, and class libraries that helps you easily perform analog, digital, and timing I/O operations on all National Instruments DAQ devices. Measurement Studio also supports automatic code generation using the DAQ Assistant for NI-DAQmx.
Learn more about Measurement Studio »

Figure 11. Measurement Studio features an extensive suite of measurement-specific user interface components.
The mark LabWindows is used under a license from Microsoft Corporation. Windows is a registered trademark of Microsoft Corporation in the United States and other countries.