LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

Buffered Software trigger with DAQcard-6036E

Hello, I am working on my master's thesis and one of my tasks is to aquire hard-landing impacts. The on-board DAQ setup is the following: PocketPC iPAQ 5555, DAQCard 6036E, Analog Devices ADXL250 Accelerometers.

I am trying to develop a PDA application that will read the accelerometers, wait for a threshold to be reached, then acquire pre- and post- trigger samples. I am using finite acquisition because I can not get continous to work.

My program use to work at low sample rates, and low # of samples aquired. But When I increase the # samples acquired I recieve the following error:

�DAQmx Base Read.vi Onboard device memory overflow. Because of system
and/or bus bandwith limitations, the driver could not read
data from the device
fast enough to keep up with the device throughput. Error code: -200361�

Is this problem due to the fact that the DAQcard 6036E does not have a FIFO buffer, or is a problem with my program? Will I be able to do what I want with the DAQCard 6026E?

Attached is my program. Any advice/suggestions/similiar applications will be appreciated.
0 Kudos
Message 1 of 9
(4,523 Views)
I do have the 6024E card that has 2048K FIFO size. But I still have the same problem that you have. I cannot acquire continuous. I can do it at 100Hz, 500Hz, etc (which is unpractical). There is a limitation due to the computing power of the PDA. But the DAQmx Base drivers were poorly developed. I have a posting here and two open cases and have not received good responses from NI.
As one example I checked on how the daqmx base read was developed for the E Series. The driver uses 512K as the lowest common denominator. I cannot take advantage of my higher FIFO size(2048K). I did modify it but was only able to go as high as 3000hz scan rate. But when I include calculations, etc the highest rate available is reduced significantly.
I can perfectly use th
e finite acquisition like you are doing as well.
I hope someone proves me wrong since I need to develop a continuous acquisition application for the PDA badly.
Please keep us posted if you find anything
0 Kudos
Message 2 of 9
(4,523 Views)
Thanks for the response! I'm new to labview and need the help.

With finite acquisition, I can run a PDA app. to acquire 1 second of data @ 5000hz for 3 channels. However, when I attempt to use a buffered triggered program, I can only acquire for .01 seconds. (256 samples 5000 hz/3channels) That's when I recieve the 200361 error.

I cannot get continous acquisition to work at all. How do you setup a continous task for a PDA?


I think we might purchase the 6062E since it supports analog triggering.

I opened a case yesterday and the applications engineer seems confident that he can solve the problem.

I'm going to spend a good part of the day playing around with the code to see if I can get anything to work... I'll keep you posted.

-
Molnar
0 Kudos
Message 3 of 9
(4,523 Views)
Hi, I have some good news. I was able to determine a limiting factor for my -200361 error. I defined a constant = # channels * Conversion rate / 1000. I get the error if the constant is greater than 20. The program works if the constant is less than 18. I still need to fine tune the threshold.

I think I have continuous acquisition functioning properly. Tomorrow I perform a test to find out conclusively.

I should note that I am not familiar with all of the DAQ terminology. What is meant by �continuous acquisition�? What I did was, set up a task with the DAQmx base config. Utility and set the number of scans to zero.



- Molnar
0 Kudos
Message 4 of 9
(4,523 Views)
Sorry, I was on vacation. Were you able to make the continuous acquisition to work properly? By that I mean putting the daqmx base read vi into a while loop.
From what I understand the conversion rate is supposed to be # channels time the acquisition rate. On your formula do you mean acquisition rate?
0 Kudos
Message 5 of 9
(4,523 Views)
Yes, I have my DAQmx Base Read inside a while loop. I'll attach the program so you can see what I have done.

I do mean conversion rate. Acquisition rate (scan rate) seems like the right choice until you take into account that the PDA does not perform synchronous acquisition. So if one has 3 channels, at a scan rate of 2000 Hz, the PDA is actually sampling at 6000 Hz. Or at least, that�s how I interpreted it.

My program works as follows:

Select a daqmx base task, and input the corresponding scan rate, pretrigger samples, trigger channel, and trigger level in volts. (Make sure that the Number of scans, under task timing, in DAQmx base task confiq. Utility is 0. Also, I do not set up a trigger with the config. Utility. )



Select run. In the while loop, the DAQmx base read.vi will continuously read data, and it will be checked for the trigger. If a trigger occurs, the data will be plotted and saved to a specified directory. If there are not enough pretrigger scans, they will be added from the previous analyzed data block. I inserted a feedback node so the program will run until the user stops it.

This week, or early next week, I will perform some tests to see if the saved data is continous if the pretrigger data needs to be added.

If you have any questions, please let me know. I will not have internet access between the evening of the 22nd to the afternoon of the 25th.

Regards,

Chris.
0 Kudos
Message 6 of 9
(4,523 Views)
what is the fastest acquition rate that you can achieve with your setup. Assume one channel only for simplicity.
And any number of samples (lets say 2000 samples)
0 Kudos
Message 7 of 9
(4,523 Views)
As you probably figured out, my earlier mentioned formula is incorrect. I did not take the time to check all the possibilities. I should not have posted that information and apologize for it.

With my program, I can sample 1 channel at a scan rate of 9 kHz without problems. If I try 10 kHz, I will receive an error after ~20 iterations. So I suppose with 1 channel the scan rate should be less than 10 kHz. I have read about some tricks to increase the PDA sampling speed, namely to configure the DAQmx base read.vi to RAW 1D I16, and to build the code in serial.

How fast are you able to scan? How fast are you looking to acquire data? And for how long and for how many channels?

I based my code off of a sam
ple code I found and I am unsatisfied with some aspects of it. I will try to develop a new PDA application. We have also purchased a DAQCard 6062E. I am hopeful that the analog triggering capabilities of the 6062E will significantly simplify program development, and make the code more efficient and reliable.

Regards - Chris.
0 Kudos
Message 8 of 9
(4,523 Views)
Have either of you, NI, or anyone else, figured out a solution to the 200236 error you mentioned? I'm also using a 6036E DAQ card and a HP 5550 (with a 400 MHz processor and running PocketPC 2003). I need to collect analog data from 16 channels. I would like to collect it at an absolute minimum of 128 Hz per channel for 45 - 60 minutes straight. So far the best I can do is 75 Hz for ~12 minutes. If I go between 78 and 150 Hz, I can only collect data for ~6 minutes.

Any ideas???
0 Kudos
Message 9 of 9
(4,523 Views)