LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

NIDAQmx Driver Performance

Hello All,
 
I would like to program a DAQmx analog output generation task into a SubVI, however I am concerned about performance.   The SubVI task would synchronize two PCI-NIDAQ cards via RTSI with a sampling rate of 40khz.   Dev1/ao0 would generate 20ms of white noise while Dev2/ao0 simultaneously generates 20ms of sqaure wave.   I may be anxious for nothing, but it seems logical that if I call this new SubVI rapidly, say every 50ms, there may be a problem creating, executing, and erasing the DAQmx task contain therein in a timely manner.   I hope someone can tell me I'm being ridiculous!
 
Thanks
0 Kudos
Message 1 of 2
(2,576 Views)
Please see my response in your other post, which is this:

The fact that you intend to call this subVI in 50 msec intervals implies that the 3 tasks are supposed to take place in less than 50 msec.

The important part is whether or not there's any sort of timing requirements between each task. For instance, must the analog generation occur within a certain amount of time after the 2 bits are set high, and must the 2 bits be set low within a certain amount of time after the analog generation is done? If so, you should not rely on software to perform this task. I would look into configuring triggering.

Of course, this ignores the question of whether or not you can call a VI in 50 msec intervals, regardless of what it's doing. Is it possible? Yes. Is it probable? Not likely since you are relying on software to do the timing. If you really have such critical timing requirements you should look into LabVIEW Real Time.
0 Kudos
Message 2 of 2
(2,565 Views)