LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

pci 6221 Error 42 occurred at RLP Invoke Node

Hello,

I am working with a pci 6221 DAQ board and a DAQmx based vi creating 8 channels
and receiving a buffer overflow error.

The board should be able to run at 1MHz and has a sample buffer size of 2047;

the board works fine under a sampling rate of 1000Hz but I require a rate of 10000Hz.

Under the higher rate the error message occurs (Error 42 occurred at RLP Invoke Node)

From my understanding this may be solved by increasing the read rate in the program
but I know little of how to change this setting. (seeing how the vi uses a analog 1D dbl NChan 1Samp Read vi)

I have also heard that moving the buffer from the memory to the hard drive may help,
but again would need some guidance how to change the location of the buffer.

The vi being used is attached for further information or if anyone would like to try
getting it to acquire at 10000Hz using the ni-pci 6221 board I would be interested in
any details of the feat.
0 Kudos
Message 1 of 12
(4,251 Views)
Hi Lobster924,
 
You can try to increase your read rate by removing the additional functions in your while loop. Test this out to see if you are able to sustain your acquisition rate. The rate that you are reading is dictated by your loop rate. We have an architecture type called Producer Consumer where you can configure a loop to read in your data and another loop to process the data. You can see a template of this by navigating to File>>New...>>VI>>From Template>>Design Patterns>>Producer Consumer Design Pattern (Data).
 
Application Design Patterns: Producer/Consumer
http://zone.ni.com/devzone/cda/tut/p/id/3023
Steve B

0 Kudos
Message 2 of 12
(4,226 Views)
Hey Steve,

Sorry, but im still a little confused.

Am I to understand that I do not need the DAQmx base vis to acquire data?

If I do still need them I am not sure which go under producer and
which are under consumer.
(i.e. CreateTask.vi, CreateChannel.vi, Timing.vi,
StartTask.vi, Read.vi StopTask.vi and ClearTask.vi)

Also with respects to the two loops I thought the Graph would fall under the
consumer aspect but I could be wrong.

Below I have tried to wire them to what would make sense but no luck so far.

If the read vi needs to me moved to producer loop or the wiring on the queue vis
are just wrong; I would not know because there are no error messages but the
signals do not flow through the vi.
0 Kudos
Message 3 of 12
(4,207 Views)

Hi Lobster924,

I understand your confusion on the implementation and so I took your original code and I set up a producer consumer architecture that you can work off of. Take a look at this code and you can see the producer loop reads the data and passes it to the consumer loop for processing. The queue allows you to pass data between independant while loops in this architecture and will allow the loops to run at different rates.



Message Edited by Steve_B on 08-05-2008 08:00 PM
Steve B

0 Kudos
Message 4 of 12
(4,190 Views)

Hello steve

 

Could you post your example in LV 8.0

 

Thanks

0 Kudos
Message 5 of 12
(4,158 Views)

Hi James,

 

Here is the same file resaved for LabVIEW 8.0.

Steve B

Message 6 of 12
(4,145 Views)
Thanks steve.
0 Kudos
Message 7 of 12
(4,097 Views)

Hello Steve,

 

  I am having a similar problem. I am using NI-6143 S Series connected to a BNC-2110 controlled using Labview v. 8.3 on a computer running RedHat Enterprise Edition 4. I am only attempting to measure 2 channels at the moment and I have gotten the VI that you sent to James working but only at 1000.0 Hz. At 2000.0 Hz it runs for a few seconds before throwing Error 42 at RLP Invoke Node and it errors immediately for measurement rates higher then that (5 kHz and above).  For my particular measurement I need to sample at least at 10 kHz and faster is defiantly better.

 

The machine itself is a AMD dual 1.7 MHz quad core processors with 8 Gb of memory. We did have some difficulty getting the NI-6143 S Series working correctly originally. We had to install a 32 bit operating system and limit the memory to 4 Gb.  Regardless of this I would hope the computer is not the limiting factor. Is there anything else possible to speed up the data acquisition?

 

Thanks,

  Craig
0 Kudos
Message 8 of 12
(3,953 Views)

Hello,

 

As I remember the problem was solve when I manually allocated a memory buffer size.

This was done in Labview 8.5 with a Memory Buffer VI.

 

I am unsure of a 8.3 version of thisd vi but i hope the general idea may lead to some

break through.

 

Hope it helps,

 

Steve

0 Kudos
Message 9 of 12
(3,938 Views)

Hi Craig,

 

Can you post the text relating to the error you are receiving? I am also curious to know how many samples you are handling at each iteration of your loop. As you adjust the number of samples per channel higher and lower how does this affect your ability to run the program? Your computer sounds capable of handling data at that rate. The example is configured for a single sample per channel and you should change it to run for multiple samples per channel (by changing the DAQmx Base Read VI). You will have to change the queue data type to be a 2D array instead of the 1D array in order to match the data types.

Steve B

Message 10 of 12
(3,916 Views)