Concurrent ADCS Diagnostic Sessions Considerations

Updated Jul 24, 2025

Reported In

Software

  • Automotive Diagnostic Command Set Toolkit

Driver

  • NI-XNET

Issue Details

I’m using NI-XNET CAN hardware along with the Automotive Diagnostic Command Set (ADCS) toolkit to communicate with a vehicle’s OBD2 port. My goal is to query Data Identifiers (DIDs) from two different modules on the CAN bus, where each module has its own set of addresses.

 

I want to know if it’s possible to have multiple diagnostic sessions running at the same time, each calling the UDS ReadDataByIdentifier function. I’m also trying to understand if there are any limitations or risks involved in doing this concurrently.

Solution

Yes, it is possible to have multiple diagnostic sessions calling the UDS ReadDataByIdentifier function concurrently when using NI-XNET CAN hardware and the Automotive Diagnostic Command Set (ADCS) toolkit, under the following conditions:

  • Use nixnet as the interface string. As explained in Open Diagnostic on CAN FD from the Automotive Diagnostic Command Set Toolkit Help, this enables Frame Input and Output Queued sessions, allowing multiple NI-XNET Frame Queued Sessions to coexist on a single interface.
  • Each diagnostic session must use a different transmitting ID. This is critical to avoid communication errors due to overlapping or conflicting frames like:
    • Error -8257 at ISOTP Transmit.vi: Out-of-sequence frame received by transport layer.
    • Error -8260 at ISOTP Receive.vi: Diagnostic command timeout. A response from the ECU was not received.

 

It’s important to note that when multiple sessions use the same receive ID and request the same Service Parameter ID, they will all simultaneously receive the same response, even if only one session initiated the request. This behavior results from the shared buffer mechanism in NI-XNET Frame Input Queued Mode.