Digital Waveform Graph Has Reversed Line Ordering with NI 653x Devices

Updated May 29, 2018

Reported In

Hardware

  • PXIe-6535
  • PXI-6533

Issue Details

When I do a digital waveform read in DAQmx with a NI 653x or X Series DAQ device, the data returned is in reverse order compared to my other digital DAQmx devices. Normally, if I specify my channel list as "/portX:Y" or "/portX/lineA:B, /portY/lineC:D" and then read the data, the first line specified is used as the lowest order bit. What is happening?

Solution

With other devices, the order in which the lines are specified go from highest to lowest bit.

With the NI 653x and X Series DAQ devices, this order is reversed in comparison. To fix this, it will be necessary to change the syntax of channel expansion based on the number of ports and line being used:
  • If a single entire port is being used, it should be sufficient to leave the channel lines in the format "portX" as with other DAQmx devices.
  • If individual lines need to be specified ("/portX/lineA:B"), the line order will need to be reversed (("/portX/lineB:A")
  • If multiple ports are used ("/portX:Y"), the port order will need to be reversed ("/portY:X")
Furthermore, there is an issue with the labeling in the NI 653x series devices.  This issue is being tracked in CAR# 513486.  In the meantime, there is a recommended workaround to correct the labeling issue.  The attached VI "653xReverseLineNames.VI" should be connected to the output of the DAQmx Read Digital function before passing this data to a Digital Waveform Graph or TDMS file.  Note: This will only work when the individual lines are addressed; port format will still give an incorrect line labeling even with this VI.

The following screenshot is an example of an acqusition taken on a NI PXIe-6537 device (Dev1). A single logic high (+5V) was sent to P0.0 (/port0/line0).  In this case, both port 0 and port 1 needed to be acquired, but only lines 0-3 were necessary to acquire. Combining the two techniques above, the correct syntax becomes "Dev1/port1/line3:0,Dev1/port0/line3:0".  With the above VI used to fix the labeling issue, the corrected graph appears as follows:

WAS THIS ARTICLE HELPFUL?

Not Helpful