LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

[DAQmx] Send multiple waveform to one device asynchronously

I'd guess that 1 second latency won't be trivial, but will be do-able and only moderately difficult.

 

First get to the point where you can update your channels individually without errors.  Consider the "wrapper function" idea suggested by GerdW.  Observe the latency you end up with.  Then come on back if you need to learn about ways to reduce it.  

 

Minimizing latency is a more advanced DAQmx topic than updating your channels individually, and I think you're better off focusing on one thing at a time.  Start with the individual channel updates.

 

 

-Kevin P

ALERT! LabVIEW's subscription-only policy came to an end (finally!). Unfortunately, pricing favors the captured and committed over new adopters -- so tread carefully.
0 Kudos
Message 11 of 12
(571 Views)

https://zone.ni.com/reference/en-XX/help/370466AH-01/mxcncpts/tasksnidaqmx/ should hopefully reinforce the idea that only one task (at a time) can talk to your AO channels as they share a timing engine on that single device. If you are taking control of the output values, you continually write waveform data to all ao channels in your task. Some channels may be muted (zero amplitude); they can be generating different frequencies (or entirely different function types). The key is that your application is always calculating the signal waveforms for all channels.

 

The DSG Soft Front Panel uses this idea to generate dynamic signals (only up to two channels). If you have multiple devices, or a device that supports multiple timing engines (such as 4463), you can use multiple instances of the DSG to independently control any number of output channels. But as stated previously, there's a lot of experience built into that functionality, and a lot of learning to understand the nuances of analog output on multiple channels.

 

 

Doug
Enthusiast for LabVIEW, DAQmx, and Sound and Vibration
0 Kudos
Message 12 of 12
(536 Views)