To achieve maximum performance and synchronization, synchronize all analog input channels across modules or output channels across modules by combining them into a single task to create a multidevice task. This is only plausible if all channels in the task have the same timing needs.
The remainder of this topic provides information regarding how many tasks you can run simultaneously at different rates on the following controllers:
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, and so on.
The System Timing Controller for the Gen II chassis has the following timing engines built in:
The System Timing Controller for the cRIO controller has the following timing engines built in:
The following table illustrates the number of hardware timed tasks available to the user.
Hardware-Timed Tasks | cDAQ: Number of Tasks per Chassis | cRIO: Number of Tasks per Controller | cDAQ/cRIO: Number of Tasks per Module |
---|---|---|---|
Analog Input | 3[1] | 8 | 1 |
Analog Output | 1 | 8 | 1 |
Counter Input/Output | 4, 2[2] | 4, 8[3] | 4, 1[4] |
Digital Input | 1 | 8 | 1 |
Digital Output | 1 | 8 | 1 |
On cDAQ chassis, 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.
On cDAQ chassis, the data streams are comprised by an 8 KB 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. Therefore, 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 System Timing Controller to run. Software timed means the host computer is controlling how often a sample is read from or written to the C Series module.
Analog Input tasks will still use one of the AI timing engines, so the limit for AI tasks is always the same as hardware times tasks. Each counter input task using an NI 9361 will also use an AI timing engine. 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. See following table for a summary.
Software-Timed (On Demand) Tasks | cDAQ: Number of Tasks per Chassis | cRIO: Number of Tasks per Controller | cDAQ/cRIO: Number of Tasks per Module |
---|---|---|---|
Analog Input | 3[5] | 8[5] | 1 |
Analog Output | Number of total AO channels in chassis (up to 128 total tasks). | 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/ Output | 4, 2[] | 4, 8[] | 4, 1[] |
Digital Input | Dependent on modules. Typically, at least 2 static DI per slot. | Dependent on modules. Typically, at least 2 static DI per slot. | 1 task per port.[6] |
Digital Output | Dependent on modules. Typically, at least 2 static DO per slot. | Dependent on modules. Typically, at least 2 static DO per slot. | 1 task per port.[6] |
The number of counter tasks is always limited by the fact that you have four counters. Depending on whether you are using a counter task that uses two counters (like measuring frequency using the two counter methods), you may be restricted to only two counter tasks. But typically, you can have all fout counters running simultaneously. To determine if you need one or two counters for your counter task, see the KnowledgeBase topic KB 4L0A62E9.