LabVIEW Real-Time Waveform Acquisition and Logging (NI-DAQmx) Sample Project Documentation

Información general

The LabVIEW Real-Time Waveform Acquisition and Logging (NI-DAQmx) sample project uses NI-DAQmx code to acquire continuous waveform data. This sample project also uses LabVIEW Real-Time Module code to log this data to disk.



  • Headless operation with optional user interface—The user interface VI interacts with the real-time controller and displays data. This VI can connect and disconnect from the device at any time without affecting the acquisition and logging loop.
  • Triggered data logging—The real-time VI logs acquired data to disk as TDMS files when a trigger condition is met. This sample project also manages the amount of disk space being used.
  • Error handling—The application reports and logs all errors from the real-time controller, shutting down on any critical error.

This sample project is based on the Simple State Machine and Queued Message Handler templates. Refer to the Simple State Machine and Queued Message Handler templates and their documentation, available from the Create Project dialog box, for information about how these templates work.

System Requirements

Development System

  • LabVIEW Full or Professional Development System
  • LabVIEW Real-Time Module
  • NI-DAQmx device driver software

Real-Time Target, such as an NI PXI Chassis or an NI CompactDAQ System

  • Software:
    • LabVIEW Real-Time
    • Network Streams
    • Network Variable Engine
    • NI System Configuration
    • NI-DAQmx
    • NI-Watchdog
  • Hardware: A DAQ device. This sample project is designed for an NI PXI DAQ device with at least four analog input channels.


This sample project consists of eight parallel loops on two execution targets. The following loops run in parallel on the desktop computer:

  • Handling events from the user interface (UI - Event Handling Loop)—Produces messages to the UI Message Loop based on front panel events.
  • Handling messages from the user interface and the real-time controller (UI - UI Message Loop)—Receives and responds to messages from the Event Handling Loop and, using network streams, the RT Message Handling Loop.
  • Displaying messages and data from the real-time controller (UI - Monitoring Loop)—Displays the latest values of information acquired from RT Loop - System Health and

The following loops run in parallel on the real-time controller:

  • Handling commands from the user interface (RT Loop - UI—Reads commands that are sent from UI on the development computer and produces the appropriate messages.
  • Handling messages from all loops on the real-time controller (RT - Message Handling Loop)—Consumes messages from all loops that run on the real-time controller.
  • Ensuring the RT controller remains responsive (RT Loop -—Pets the watchdog, ensuring the RT controller remains responsive.
  • Monitoring diagnostic information from the real-time controller (RT Loop - System Health and—Monitors CPU and memory usage of the real-time controller. This information is written to network-published shared variables and appears on the System Monitoring tab of UI
  • Acquiring and logging data from the DAQ device (RT Loop - Acquisition and—Initializes the DAQ device, reads data from it, and logs acquired data.

Running This Sample Project

  1. Adapt the sample project to your hardware.
  2. In the Project Explorer window, open My Computer»Utility - Configuration File
  3. Enter the configuration values that are appropriate for your application. Be sure to look at all the values in the TDMS Properties array.
  4. Run the VI. LabVIEW generates a configuration file, Config.xml, in the same directory as the .lvproj file.
  5. Transfer this XML file to the root folder of the real-time controller.
  6. Run RT PXI Target»RT This VI begins acquiring data and logging it using the configuration settings in Config.xml.
  7. Open and run My Computer»UI
  8. Enter the IP address of the real-time controller in the Controller Address text box and click Connect.
  9. After you are connected, display live data in the waveform chart by clicking Acquire Live Data. Change the Live Data Channel control to see live data from different channels.

Adapting the Sample Project to Your Hardware

  1. Ensure all devices are configured and connected to the same network as the development computer.
  2. In the Project Explorer window, add or discover your RT target to the to the top-level project item.
  3. Drag the following project items from the default RT target to the one you added in step 2:
    • Error Handlers folder
    • Globals folder
    • RT Loops folder
    • Support VIs folder
    • Type Definitions folder
    • Shared Variables.lvlib
    • RT
  4. Delete the default RT target project item that no longer has any VIs associated with it.
  5. Customize the code in the following places to communicate with your DAQ device:
    • DAQ
    • DAQ
    • DAQ

Configuring Sample Project Settings

In the Project Explorer window, open My Computer»Globals»Global - Configuration and configure the sample project settings.

Was this information helpful?