NI-9403 Unable Parallel Execute Multiple Loops

Updated Jun 24, 2025

Reported In

Hardware

  • NI-9403
  • CompactRIO Controller

Driver

  • NI CompactRIO

Issue Details

I'm using cRIO system with inserted NI-9403 c series digital module. When I create individual loop for each PWM generation and encoder measurements tasks in FPGA vi, it execute those tasks as sequence order instead of parallel. However, my application require executing tasks in parallel.

Is this expected behavior? How should I solve this issue?

Solution

The NI-9403 is behaving as designed. It uses a serial interface to talk to the module. Each individual node takes about 7us to talk to the module.

 To resolve this issue, you can refer one of the following method:

  • Use a high-speed parallel digital module (ex: 9401 or 9402). These modules have a parallel interface allowing each line to be used independently.
  • Re-write application to place all of the IO into a single grown IO node. When all the I/O is in a single node, then one ~7us serial transaction is used to communicate the I/O data for all the channels at the same time.

Additional Information

Serial digital modules have more than eight lines of digital input/output and only used on software-timed and hardware-timed digital input/output tasks. NI-9403 is not supported in single-cycle timed loop. When a module is not supported in a single-cycle timed loop, FPGA will communicate over SPI to the module for data transmission.