To achieve maximum performance and true synchronization, it is recommended to synchronize all analog input channels across modules or output channels across modules by combining them into a single AI or AO task. This is only plausible if all channels in the task have the same timing needs. This article provides valuable information regarding how many tasks you can run simultaneously at different rates on the Gen II CompactDAQ chassis:
Note: This article does NOT apply to the cDAQ-9172 because it has a different timing chip than Gen II CompactDAQ chassis.
Because hardware timed tasks typically use more onboard resources than software timed tasks, the total number of possible concurrent tasks typically depends on whether you are running tasks that use hardware timing or software (on demand) timing.
Hardware timed tasks require timing information from the System Timing Controller to use for sample clocks, reference clocks, triggers, etc. The System Timing Controller for Gen II and standalone cDAQ chassis is the STC3. The STC3 chip on the cDAQ chassis' has the following timing engines built in: 3 AI Timing Engines, 1 AO Timing Engine, 1 DI Timing Engine, 1 DO Timing Engine, 4 general purpose counters. The following table illustrates the number of hardware timed tasks available to the user.
Hardware Timed Tasks | # of Tasks per Chassis | # of Tasks per Module |
Analog Input | 3* | 1 |
Analog Output | 1 | 1 |
Counter Input/Output | 4, 6† | 4, 1‡ |
Digital Input | 1 | 1 |
Digital Output | 1 | 1 |
There is also a streaming buffer for hardware timed tasks that puts a limit on the total number of hardware timed tasks that can run simultaneously. The NI cDAQ-9171/9181/9191 support six data streams and the remaining models support seven data streams. These independent, high-speed data streams allow for up to six or seven simultaneous hardware-timed tasks, such as analog input, analog output, buffered counter/timers, hardware-timed digital input/output, or CAN communication. (Note: CAN communication always takes up two data streams, but does not use any timing engines)
The data streams are comprised by an 8KB block of memory that is divided up into six or seven First In First Out (FIFO) data buffers. These data buffers vary in size, and the largest data buffers are assigned to the first tasks that get reserved. Thus, in order to get the best streaming performance, make sure to reserve your highest bandwidth tasks first. Your first two tasks will reserve 2048 bytes each, the third, fourth and fifth tasks will reserve 1024 bytes each and the sixth and seventh tasks will reserve 512 bytes each.
Most software timed tasks do not require a signal from the STC3 in order to run. Software timed means the host computer is controlling how often a sample is read from or written to the cDAQ module.
Software timed tasks also do not use the 8KB streaming buffer, so there is no six or seven task limit for software timed tasks. However, Analog Input tasks will still use one of the AI timing engines, so the limit for AI tasks is always 3. This is not the case for AO, DI, or DO. Subsequently, the software timed task limits for these types of acquisitions depends on the number of channels you have available to use. For more information see Software Support for CompactRIO, CompactDAQ, Single-Board RIO, R Series, and EtherCAT. See the table below for a summary:
Software-Timed (On Demand) Tasks | # of Tasks on 8-Slot Chassis | # of Tasks per Module |
Analog Input | 3** | 1 |
Analog Output | Number of total AO channels in chassis (up to 128 total tasks) | 1 Task for each channel (up to 16 tasks per module) |
Counter Input | 4, 6† | 4, 1‡ |
Digital Input | Dependent on modules. Typically, at least 2 static DI per slot | Dependent on the module. Typically, at least 1 task per port on the module (some modules can be 1 task per nibble) |
Digital Output | Dependent on modules. Typically at least 2 static DO per slot | Dependent on the module. Typically, at least 1 task per port on the module (some modules can be 1 task per nibble) |
The number of counter tasks is always limited by the fact that you have 4 counters. Depending on whether you are using a counter task that uses 2 counters (like measuring frequency using the two counter methods), you may be restricted to only 2 counter tasks. But typically, you can have all 4 counters running simultaneously. To determine if you need one or two counters for your counter task, see How Many Counters Does Each Type of Counter Input or Output Task Require?.
Notes:
* The number of analog input tasks for Dynamic Signal Analyzer (DSA) devices in Gen II NI CompactDAQ chassis is limited to two. The Gen II CompactDAQ chassis support a maximum of two synchronization pulse signals configured for your system. This limits the system to two tasks with different oversample clock timebases. This limitation is discussed on page 2-3 of the NI cDAQ-9171/9174/9178 User Manual. This limitation does not apply to slow-sampled modules that use a sigma-delta ADC or any other modules. The sampling type of each module is described in Software Support for CompactRIO, CompactDAQ, Single-Board RIO, R Series, and EtherCAT.
† This number of counter tasks is only achievable with a four or eight slot chassis using two or more NI 9361 Counter Input modules along with the onboard counters from the chassis. The NI 9361 Counter Input module cannot access the onboard counters from the chassis, so a different module must be used with those. Refer to Which cDAQ Modules Can Be Used to Access the On-board Counters? for a list of the digital modules you can use. The NI 9361 Counter Input module uses one AI Timing Engine, which limits the number of available AI tasks.
‡ The NI 9361 only supports a single task. If you need to use multiple counters from the NI 9361, you need to add all the required counters to the same task. Other parallel digital modules allow creating separate tasks for each one of the four onboard counters from the chassis. Refer to Which cDAQ Modules Can Be Used to Access the On-board Counters? for a list of the digital modules you can use.
** Only Slow-Sampled and Multiplexed modules support software timed analog input tasks. Refer to Software Support for CompactRIO, CompactDAQ, Single-Board RIO, R Series, and EtherCAT to learn about the sampling type of each module.