Multifunction DAQ

cancel
Showing results for 
Search instead for 
Did you mean: 

error 200290 with 6361

I have a new 6361 and just started using LV 2010. Not used DAQmx before. I want to output waveforms on P0.0 - P0.2 at 10 MHz. Modified example "Cont Write Dig Port-Int Clk.vi" to make the waveforms. I got it to work up to 6MHz after adding a lot of unwanted "dead time" samples per 2 below. Adding even more samples only got me this error: Error -200290 occurred at Property Node DAQmx Task (arg 1) in DAQmx Is Task Done.vi:1->Cont Write Dig Port-Int Clk.vi Possible reason(s): The generation has stopped to prevent the regeneration of old samples. Your application was unable to write samples to the background buffer fast enough to prevent old samples from being regenerated. To avoid this error, you can do any of the following: 1. Increase the size of the background buffer by configuring the buffer. 2. Increase the number of samples you write each time you invoke a write operation. 3. Write samples more often. 4. Reduce the sample rate. 5. Change the data transfer mechanism from interrupts to DMA if your device supports DMA. 6. Reduce the number of applications your computer is executing concurrently. In addition, if you do not need to write every sample that is generated, you can configure the regeneration mode to allow regeneration, and then use the Position and Offset attributes to write the desired samples. Task Name: _unnamedTask<12> 1. I tried using DAQmx Configure Output Buffer to no avail 2. Worked to a point as above 3. Only write samples once 4. What I don't want 5. The Specification says the 6361 has DMA but I can't find anything on it 6. Minimized The spec also says the output can go to 10MHz using Regenerate from FIFO but I can't find anything on it either. Can anyone help? Thanks in advance, STM99
0 Kudos
Message 1 of 21
(6,253 Views)

Hi STM99,

 

If I understand correctly, you want to write a series of bits once to the buffer and have that output continuously by looping to the front of the buffer after the last sample in the output buffer is written to the port.  This is what regenerative mode refers to.  I am going to attach the sample VI you referenced where I added a property node to change the DAQmx task to regenerative mode.  I tested this on my 6321 which only has a max output rate of 1 MHz but I was able to run it at the very max of 1 MHz with no problem when setting to use only onboard memory.  Please let me know if this example represents what you want to do and if it runs at the full 10 MHz on your 6361.  A great resource on analog buffers that is similar to the digital buffers we are using can be found here.


Andy K.
Applications Engineer
National Instruments
0 Kudos
Message 2 of 21
(6,213 Views)
Andy, The spell checker just erased my reply to you. Thanks for the vi but it wouldn't work to 10 KHz either. I have been working with Jesse Dennis and he is pretty sure that I got a bad unit which will need to be repaired or replaced. STM
0 Kudos
Message 3 of 21
(6,180 Views)

Let's see what your code looks like. (and some sample data)  Something is not quite fitting here.  Does the device pass self-test in MAX?


"Should be" isn't "Is" -Jay
0 Kudos
Message 4 of 21
(6,168 Views)

Hi STM99,

 

Just to clarify, running the following VI does not work on your USB 6361 at rates 10 kHz or higher?

 

50150.png

 

 

What error are you getting?  Jesse mentioned -50150, is this correct?  Does the above code work at lower rates?

 

 

If so, this isn't something I've seen before.  -50150 is an internal software error that shouldn't be thrown under normal circumstances.  Can you try adding a delay in between the Write and Start functions, and also try writing a full buffer of data?

 

 

2011-08-01_143559.png

Neither of those steps should be necessary but I'd just like to try it out and see.  I can't reproduce the same failure here so it's a bit difficult to give advice.  What OS are you using, and on what PC?

 

 

 

Your initial error @ 6 MHz would be expected when transferring from PC memory (see specs)--although the error seems a bit off (I'd expect -200621).  Setting UseOnlyOnBrdMem to true should fix that problem however, so I'm not sure what's going on in your case.

 

 

Best Regards,

John Passiak
0 Kudos
Message 5 of 21
(6,160 Views)

Hi STM99,

 

Just to clarify, running the following VI does not work on your USB 6361 at rates 10 kHz or higher?

@John, Of course it does not run above the sample rate (10,000 const!)- 

trun the Sample rate into a control and pass the desired val in


"Should be" isn't "Is" -Jay
0 Kudos
Message 6 of 21
(6,156 Views)

Hi Jeff,

 

I put everything as a constant so I could show all the parameters in one screenshot, but technically you do make a good point 🙂

 

Also, to the original poster... what version of DAQmx are you using?

 

 

Best Regards,

John Passiak
0 Kudos
Message 7 of 21
(6,146 Views)

How are you stopping your VI?

 

2011-08-01_152936.png

 

 

It turns out if you abort the VI in LabVIEW while regenerating DO from the on-board FIFO on USB X Series, the device can enter a bad state and must be reset (can be done programmatically) before using again.  The error you receive is -50150 in this case.  You should hit the stop button (the front panel control) instead, which allows the code that occurs after the loop to execute.  This properly clears your task with DAQmx Clear Task.vi.

 

 

We are filing two Corrective Action Requests (CARs) as a result of these issues:

 

  1. -200290 (The generation has stopped to prevent the regeneration of old samples) is incorrect/misleading when USB X Series cannot stream data quickly enough.  The error should instead be -200621 (Onboard device memory underflow).

  2. Aborting a DO task while regenerating from the on-board FIFO can result in error -50150 on USB X Series.

 

 

When possible, you should always properly close your references and clear your tasks.  In the code you have provided, this means you should hit the Stop button instead of Aborting your VI.

 

 

Best Regards,

John Passiak
0 Kudos
Message 8 of 21
(6,061 Views)
Jeff, It passes self test. Turns 0.0 on for one clock cycle then off 0.1 on for 6 clocks then off 0.2 on for 5 clocks then off 0.3 on for 1546 then off
0 Kudos
Message 9 of 21
(6,057 Views)

I take it you had a private chat vie SSP! GREAT news it sounds resolved- 

 

Possibly change the example vi properties to "do not show abort button"  Sounds like nice work


"Should be" isn't "Is" -Jay
0 Kudos
Message 10 of 21
(6,054 Views)