Multifunction DAQ

cancel
Showing results for 
Search instead for 
Did you mean: 

Analog output errors -200341 and -200474 with ni-daqmx base

We have a PCI-6040E board in a Mac running OS X, and are running into problems transitioning our program from traditional ni-daq (under OS9) to ni-daqmx base. Basically, our old program was able to output a waveform at 4 kHz for at least 2 seconds (8000 pts). Currently, with ni-daqmx base, I'm unable to output any waveform that has more than 512 pts because it appears I'm being limited by the FIFO buffer size. If I try using the dynamic example, Cont Gen Voltage Wfm-Int Clk-Non Regeneration.vi, it always gives me the -200474 error that "Specified operation did not complete, because the specified timeout expired. Devices without an AO FIFO are not supported by NI-DAQmx Base and will return this error when trying to write to the FIFO". Otherwise, I get error -200341, "Generation was configured to use only onboard memory, but the corresponding buffer is larger than onboard memory. Buffer size is provided implicitly when data is written or explicitly when the buffer is configured." Is there something simple that I'm missing?
0 Kudos
Message 1 of 8
(5,401 Views)
Have you tried running any of the other examples and tried feeding them more than 512 samples? Also, are you sure the Cont Gen Voltage Wfm-Int Clk-Non Regeneration is an example that came when you downloaded DAQmxBase or is it something you created?

You also might need a reinstall of DAQmxBase because it seems like your drivers are not recognizing your E Series board.

Also, what exactly are you trying to do? If you can provide some more information, maybe I can point you to an example program other than the one you are using. I do not know why this error is occurring but maybe we find a way to work around it.

Thanks,

Jaideep J
0 Kudos
Message 2 of 8
(5,381 Views)
Thank you for your response, Jaideep.
If I try to feed any of the other examples more than 512 samples, I get the -200341 error. Cont Gen Voltage Wfm-Int Clk-Non Regeneration.vi is definitely an example that installed along with DAQmx base (maybe it's a Mac thing).
What the program does is output a waveform to control the movement of a servomotor while simultaneously acquiring position and force data from the servomotor. It also uses a counter to send out a signal to trigger a stimulator. I have no problems acquiring data from the inputs, or sending out the trigger using the counter. The only snag I've run into is trying to output greater than 512 points, so I'm inclined to think that there isn't a problem with the board not being recognized, but rather I'm overlooking something obvious or something's not right with the driver.
The waveform we output is generally something like this: 0.3s of 0V, about 0.2s of voltage ramp to 10V, hold at 10V for 0.5s, another voltage ramp for 0.2s back down to 0V, and then hold at 0V until all the data is acquired. I hope this helps clarify what I'm trying to do, please let me know if you need more information.
Thank you so much for your help,
Shannon
0 Kudos
Message 3 of 8
(5,379 Views)
Hello Belle:

I would have to research this issue. I have not heard of any known problems with DAQmxBase and Mac OS X. However, our support for OS X is considerably new.

If I find something out, I will make sure to post it.

Thanks,

Jaideep J
0 Kudos
Message 4 of 8
(5,366 Views)
Shannon,

You are correct in your observation that you are limited to the FIFO size of your hardware. NI-DAQmx Base does not implement an intermediate buffer for E Series that could be larger than your FIFO. Therefore, the reason you are getting error -200474 is because you are trying to write too many values to the FIFO. The FIFO fills up, but because the task is not started, the FIFO is not emptying. So, you sit in the DAQmxBase Write.vi until it times out. To work around this, initially write enough samples to the FIFO (less than the FIFO size) to “prime” it, start the acquisition, and then continue to write to the FIFO in larger chunks. Once the task is started, you can write chunks of data that are larger than the FIFO because it will be emptying. I hope this helps.
0 Kudos
Message 5 of 8
(5,315 Views)
Sorry, off-topic, but I have a question. You wrote...

"What the program does is output a waveform to control the movement of a servomotor while simultaneously acquiring position and force data from the servomotor. It also uses a counter to send out a signal to trigger a stimulator."

I need to do something very similar (also using NI-DAQmx Base on Mac OS X), and have made a start with simultaneous analog input and output, but am struggling to figure out how to output a digital pulse. Any help would be appreciate.

John.
Dr John Clements
Lead Programmer
AxoGraph Scientific
0 Kudos
Message 6 of 8
(4,817 Views)

Hi John,

There is a shipping example that demonstrates how to output a pulse using DAQmx Base. It is located in the Example Finder in LabVIEW (Help » Fine Examples…) if you browse by Directory Structure to daqmxbase » dynamic » ctr » Gen Dig Pulse.vi. Below is a screen shot of the block diagram.


Post back if you have any questions. Have a great day!



Message Edited by ryan_d on 11-20-2007 03:22 PM
Ryan D.
District Sales Manager for Boston & Northern New England
National Instruments
0 Kudos
Message 7 of 8
(4,788 Views)
Hi John,
I'm trying to attach a picture of the block diagram I use (haven't done it before so we'll see if it's actually attached here or not. There's kind of a lot going on, so it's a little shrunk down and may be a bit confusing, but I have been able to successful in getting simultaneous AO, AI and counter output using this. Let me know if there's something you're having trouble following in it.
Shannon
0 Kudos
Message 8 of 8
(4,781 Views)