Solution
This issue has been resolved in NI-DAQmx 16.0.1 and later. You can obtain this update through NI Update Service or you can download this driver at
NI Downloads.
Installing the DAQmx 16.0.1 Core Run-Time is the minimum installation you will need. However, if your application requires Real-Time support, you will need to install NI-DAQmx 16.0.1 Configuration Run-Time. Keep in mind that installing the full NI-DAQmx 16.0.1 driver will provide the full ADE support of NI-DAQmx 16.0.1 and that if you are using a Real-Time CompactDAQ controller you will need to deploy the updated driver to your cDAQ controller.
Upgrading the NI-DAQmx driver may not be a viable solution for all of our customers, so a workaround is available below to add to your code if you must continue using a version of NI-DAQmx that was released prior to 16.0.1.
The workaround consists of performing the following steps on each channel individually (typically in a for loop):
- Create a task for the single channel.
- Commit the Terminal Configuration and/or Logic Level Behavior properties.
- Unreserve the task.
- Stop the task.
- Move on to the next channel, until each channel has gone through these steps.
After committing the settings to your hardware per terminal, the properties will be asserted on each channel when you run a DAQmx task that includes all terminals and performs your acquisition as desired.
The VI Snippet below demonstrates how to implement this workaround for a Count Edges measurement for ctr0 and ctr1. Note that this code needs to be repeated for each counter channel that you want to acquire data from.
Once you are finished adjusting the snippet above to represent your desired measurement type, physical channel, terminal, and terminal configuration and/or logic level behavior, it can be migrated into a subVI. This will allow you to smoothly add the workaround to your existing code where needed.