XON/XOFF Command Not Removed From Input String of PCIe-8430/16 in LabVIEW

Updated Oct 25, 2023

Reported In

Hardware

  • PCI-8430/16

Software

  • LabVIEW

Driver

  • NI-VISA
  • NI-Serial

Issue Details

I have multiple PCIe-8430/16 cards purchased over several years which are connected to identical UUTs. When I implement serial flow control, I see a difference in how the flow control command (XON/XOFF) are interpreted in the LabVIEW code. For example, when I use the VISA Read function with my older PCIe-8430/16, the XON or XOFF commands are ignored, or automatically deleted from the incoming string of data. However, when I use my newer PCIe-8430/16 with the same code, same PC and same UUT, then the VISA Read in LabVIEW reads some of the XON/XOFF commands, which can affect the rest of my LabVIEW code.  The commands included in the string would either be:
 
 XOFFXON
ASCIIDC3DC1
Decimal1917
Hexadecimal1311

Solution

Software or serial flow control is a way to pause and restart the transmission of serial data to ensure all data is sent and received correctly. There are several different versions of which can be found here: Serial Settings:Flow Control. Normally, all the developer has to do is configure the VISA Configure Serial Port VI in LabVIEW and ensure their UUT supports this method of serial communication. 

The issue is down to the difference between Revision C (198106C-11L) and Revision D (198106D-11L) of the PCIe-8430/16. To determine the model revision, check the part number - information on how to find it is here: Finding the Serial Number of My NI Product

For Revision C of the PCIe-8430/16, flow control works and has the expected behaviour where the XON/OFF commands are not read into LabVIEW. However, with Revision D, the XON/OFF commands are often read into LabVIEW, especially if the commands are sent to close to each other.  Unfortunately, this is now the expected behaviour as there was a component change between Revision C and Revision D, from the Xilinx Spartan6 to a Oxford UART.
White text for blank space

Work Arounds:

  • Implement LabVIEW code that deletes XON/XOFF from the incoming string from the VISA Read. Using the function Match Pattern and Concatenate Strings can help. 
    • Example code to search and delete characters from a string:

Note: This image is a LabVIEW snippet, which includes LabVIEW code that you can reuse in your project. To use a snippet, right-click the image, save it to your computer, and drag the file onto your LabVIEW diagram.
  • Try to source older PCIe-8430/16 with the part number 198106C-11L from 3rd party vendors.