Multifunction DAQ

cancel
Showing results for 
Search instead for 
Did you mean: 

eseries: continuous FIFO-generated output on 1 channel, and then start another output task?

Hi
I dont think what I want to do is possible, but maybe someone knows a way to make it work.

I am using LV7 and NI-DAQmx BASE, on a mac, so base is my only option unless I go back to lv6.

I am trying to get two different voltage outputs from one e-series (ni-6031e) board. I want the first channel to continuously generate a triangle waveform at say 5volts/sec. The second output channel will then be an 'on-demand' type of output that will update the channel every few minutes with a new value.

The continuous waveform output is working fine but I am not sure if I can 'change tasks' IDs without disrupting the buffered output... I am pretty sure the only way to do this is use a single task and have the first virtual channel data be the triangle waveform and then the second virtual channel data be my 'on-demand' single point. I can then continuously modify the fifo buffer and send in the appropriate single-point update as needed. Will I still get perfect timing of my triangle waveform?

brad
0 Kudos
Message 1 of 4
(2,651 Views)
this is an example of above...
where in the while loop i can do my 'on demand' update. the only drawback i see is that i can only update the second channel everytime a new waveform is sent to the board.. so if my triangle waveform is 4 seconds then i can only update my second channel every 4 seconds. that isnt so bad i suppose.

brad
0 Kudos
Message 2 of 4
(2,653 Views)
Ok i've got it all working (see attached) but the major disappointing factor is the size of my on-board FIFO is now cut in half because I have to buffer two channels. This is reducing my update step size by 2 so now I have 20volts / 1024 = ~20mv steps when I really want as continuous a triangle as possible. The fifo buffer on my board is 2048 samples and I need my waveform (-10 to +10 and back to -10) to happen in 4 seconds so that gives me an update rate of 512hz which is really slow considering the board can update at 100khz. my other option is to send the waveform in chunks (e.g. -10 to 0, then 0 to +10, +10 back to 0, then 0 to -10). any recommendations?

brad
0 Kudos
Message 3 of 4
(2,646 Views)
If you split your waveform into smaller chunks and output them using the FIFO, you would have some advantages.  You would have a smaller step size between two adjacent points making a smoother wave.  You would have to update the FIFO more regularly,which would give you the ability to update your second channel more regularly as well.  There seems to be some great advantages all around by taking these actions.  Your card can also handle the speeds that would be required when splitting this waveform so there will not be a negative impact.
0 Kudos
Message 4 of 4
(2,627 Views)