Multifunction DAQ

cancel
Showing results for 
Search instead for 
Did you mean: 

200609 error on upgrade from PCMCIA 6036-E USB 6212-M

Solved!
Go to solution

We recently replaced a bad PCMCIA 6036-E with a USB 6212 M-series. 

Since we use NI-DAQmx, the upgrade was supposed to be plug-and-play.  However, I receive a 200609 error (buffer size too small) when attempting to run a Labview 8.6 program that ran flawlessly with the 6036.  The problem appears to occur with DAQ Assistant6 (see attached) which generates an analogy voltage out.   DAQ assistant settings are set to "Generation Mode" = Continuous Samples, "Samples to write" =10, Rate (Hz) = 200.  

Nothing inside the program has been changed since the upgrade to the USB6212.

 

 

Any assistance would be greatly appreciated.

 

Download All
0 Kudos
Message 1 of 14
(4,483 Views)

It appears that this error can either be caused by actually having your buffer size too small or not providing data to your DAQ Assistant.  You can use the DAQmx Configure Output Buffer to adjust the buffer size, but I suggest that you confirm that this error still happens from MAX when you test your task.  If you are able to generate there, you should verify that data is actually being written to your DAQ Assistant. 

 

Please post back if this doesn't correct the issue.

Sincerely,

Chris G in AE
0 Kudos
Message 2 of 14
(4,443 Views)

Thanks for the feedback. I wired in a numeric indicator to the App. and confirmed OK data is being provided to the DAQ Assistant inside the Labview program.   Based on servo speed, I can say with decent certainty that AO generation is not happening even though data is being provided to the DAQ assistant.

 

I also ran the Analog Output task by itself inside MAX and had no problem generating there, but I guess that's to be expected since it eliminates variables inside the running program. 

 

As far as buffer size is concerned, context help tells me the "samples to write" field controls buffer size when "Continuous Sample" generation is chosen (as it is in my program).  What's strange is my "samples to write" field is set to 10 (which is my supposed buffer size), but the 200609 error states my buffer size is 1 (and needs to be a minimum of 2).  It's like the error message / program doesn't recognize the buffer size correctly now that the 6212 is being used.

 

Is there something hardware wise that is different about the 6212-USB when compared to the 6036-PCMCIA that would cause me to need to modify the buffer?  Maybe the 6212-USB m-series is just not an OK replacement for the 6036-E PCMCIA that we thought it was?

 

Any insight would be greatly appreciated.

0 Kudos
Message 3 of 14
(4,377 Views)

Hi!

     I find the error about your buffer needing to be at least 2 pretty odd.  However, I'm still wondering if you've tried increasing that buffer to see if in fact that error will go away (say, by changing samples to read to 100).  If that doesn't change things, would you want to post your code to the forums?  There shouldn't be anything about the M Series that is making this not work.  I'd be curious to see if I can reproduce what you're seeing with a simulated device.  Thanks!

 

0 Kudos
Message 4 of 14
(4,353 Views)

I was able to reproduce this problem by creating a task just like the one you show in problems2.jpg.  I dropped that into LabVIEW and wired in a double into the data input of the express VI.  This is a correct (and helpful!) error, but it may be a little confusing as to why this is happening.  Output operations in DAQmx can either have the buffer size explicitly set using the DAQmx Buffer Property Node or DAQmx Configure Output Buffer.vi.  However, the more common way of setting a buffer size is implicit by writing data prior to starting your task.  When you wire a single double into the express VI, you're implicitly setting the buffer size to 1.  This is not supported by DAQmx, as the error says.  You need to be giving the express VI a waveform or an array of doubles that describe the voltages you want to output.

 

Hope this helps!

------
Zach Hindes
NI R&D
Message 5 of 14
(4,339 Views)

Thanks for the insight, Anita and Zach. I did try changing the “samples to read” field to various other values (e.g. 50, 100, 200, etc.) in effort to increase the buffer size, but the 200609 error persists.

 

I am encouraged by the fact that you recreated the error, though, Zach. Your post explains some of the questions I had. However, if wiring 1 double into the express VI is not supported by DAQmx, I’m not clear on why the 6036-E PCMCIA works with this wiring configuration but the 6212-USB does not.

 

As a side note, I was able to eliminate the error by wiring the same line into two inputs of a build array and then passing the output to the DAQ Assistant. However, that approach prevented analog output from changing when the program ran even though inputs changed. So I don’t think that was the most viable solution.

Do I need to explicitly (instead of implicitly) define the buffer size to make the wiring config. Work with the 6212? If so, which approach do you suggest for doing this (1. DAQmx Buffer property node or 2. DAQmx Configure Output Buffer.vi)?

0 Kudos
Message 6 of 14
(4,290 Views)

As an FYI, I found that the 200609 error message does not appear when using a simulated 6212-M USB; however, I can recreate the problem as Zach mentioned by using the actual 6212 device and DAQ Assistant in a new VI by itself.

 

Shouldn't the actual 6212-M USB device give the same errors as the simulated device?

0 Kudos
Message 7 of 14
(4,279 Views)

Hi,

     I'm not quite sure how this worked with the 6036e, however, like Zach had explained,wiring a double to your data input is going to configure your buffer to only be the size of one number.  So maybe what we need to figure out is, what data are you trying to output?  Is it a waveform, or an array of values? If you're only trying to output a constant voltage, you can do so by wiring a double to your data terminal, however, you're going to want to change the Generation Mode within your DAQ Assistant to 1 Sample (On Demand). 

 

Either the property node or the DAQmx Configure Output Buffer.vi will accomplish the same thing, however, you'll likely want to move your code to the DAQmx API to put those in the right spot in your code.

 

If you either change your generation mode to 1 Sample (on Demand), or output a waveform/array, then you shouldn't need to property node or  DAQmx Configure Output Buffer.vi.  Have a good one!

Message 8 of 14
(4,244 Views)

Thanks!  Changing to 1-sample on demand resolved the 200609 error.  Maybe there won't be larger accuracy implications for the other DAQ Assistants as a result of making this change?

 

Regardless, now that the code is working, I noticed the encoder's DAQ assistant is not incrementing/decrementing as it should.  Counts continually decrease (instead of increasing/decreasing) based on on servo direction.  You can see DAQ Assistant settings in the screenshots below. 

 

Count direction appears to be specifieid as externally controlled through PFI8, so I'm wondering if this signal is routed differently for the 6212 vs. the 6036.

 

Any insight would be greatly appreciated.

 

 

 

Download All
0 Kudos
Message 9 of 14
(4,224 Views)

Hi,

   I'm curious about what kind of encoder you have.  M Series cards are capable of making X1 encoder measurement, as explained here.  As well, the default pin connections are described in this Knowledge Base article.  How do you currently have things connected?  

0 Kudos
Message 10 of 14
(4,189 Views)