Creating a Virtual Channel in NI-DAQmx and Using It in LabVIEW

Updated May 6, 2024

Environment

Software

  • LabVIEW
  • Measurement & Automation Explorer (MAX)

Driver

  • NI-DAQmx

A virtual channel is a collection of settings such as a name, a physical channel, input terminal connections, the type of measurement or generation, and can include scaling information. In NI-DAQmx, you can configure virtual channels as part of a task or separate them from a task. Virtual channels created inside a task are local virtual channels. Virtual channels defined outside a task are global virtual channels.

In NI-DAQmx, virtual channels are integral to every measurement, this guide explains some application examples and naming guidelines as well as linking out to the manual for how to create the virtual channel and an example on how to use one. 

You can create virtual channels with the DAQmx Create Virtual Channel or with the DAQ Assistant. The DAQ Assistant is accessible from NI Measurement & Automation Explorer (MAX) or NI application software, to configure channels and measurement tasks. To name the virtual channel, use the following guidelines:

  • Use any alphanumeric characters.
  • Do not use non-alphanumeric characters with the following exception:
    • Spaces are allowed.
  • You can use underscores within the channel name, but you cannot use leading underscores, such as _Dev1.
  • You must use no more than 256 characters.

 

Local Virtual Channels and Global Virtual Channels

You can create global virtual channels in MAX or in your application software and save them in MAX. Global virtual channels are listed in MAX under the DAQmx Channel tree. You can use global virtual channels in any application or add them to a number of different tasks. If you modify a global virtual channel, the change affects all tasks in which you reference that global virtual channel.

Local virtual channels are created inside a task. If you create the same local virtual channel in three separate tasks, the local virtual channels are considered to be three distinct virtual channels. If one local virtual channel is modified, the other two local virtual channels remain unchanged.

Application Examples

  1. I want to measure temperature in the range 50°C to 200°C using a J-type thermocouple that is wired to channel 0 on an E Series device configured as Device 1. Should I use a physical channel or a virtual channel?
    • Data acquisition using the physical channel will acquire data as a voltage even though the E Series device is connected to a thermocouple. However, this voltage actually corresponds to a real-world temperature value, which would normally require you to add a separate conversion routine to your existing program. A virtual channel returns the data as a temperature without any additional routines.
  2. I want to expand my application from above. I want to measure temperature at a rate of 1000 samples/sec beginning only after the temperature reaches 75°C. What would the differences be between using a virtual channel or a task?
    • A virtual channel will return data that has been properly scaled and has the unit of °C. However, with virtual channels, it is up to you to explicitly program the other details of timing and triggering in setting up the application. A task encapsulates all of the information in the virtual channel plus the timing and triggering information.