Synchronizing Multiple Tasks With DAQmx API in CompactRIO

Updated Oct 8, 2025

Reported In

Hardware

  • cRIO-9040
  • cRIO-9053
  • cRIO-9049
  • cRIO-9047
  • cRIO-9045
  • cRIO-9042
  • cRIO-9055
  • cRIO-9054
  • cRIO-9058
  • cRIO-9056

Driver

  • NI-DAQmx

Issue Details

I have a DAQmx compatible cRIO controller on which I want to create and synchronize an analog input task and a digital input task. To achieve this, I plan to share the sampling clock of the analog input task with the other modules. However, I cannot find ai/SampleClock in the DAQmx timing resource list.

 

How do I configure the analog input sampling clock to be shareable with other modules for synchronization?

Solution

In DAQmx-enabled CompactRIO controllers like cRIO 904X or 905X, each slot has it's own timing engine. For example if you are using cRIO-9049, you use 8 different timing engines thus potentially creating 8 different tasks that have an individual timing source. Therefore, to configure the right timing source, select it<n> for clock sharing instead of ai/SampleClock.

 

Refer the following table for the timing engine nomenclature.

 

Samp TimingEngine ValueAnalog Input, Digital Input, and NI 9361 Timing Engine UsedAnalog Output and Digital Output Timing Engine Used
0it0ot0
1it1ot1
2it2ot2
3it3ot3
4it4ot4
5it5ot5
6it6ot6
7it7ot7


For example. if you have an analog input module in slot0 of cRIO1 and want to share this sampling clock with the other tasks, you will select /cRIO1/it0/SampleClock as source of DAQmx Timing.vi in the other tasks.