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.