Multifunction DAQ

cancel
Showing results for 
Search instead for 
Did you mean: 

How fast can one data point be acquired and sent?

Dear sir,

    If I would like to have some feedback loop for my motion control program, I guess I might
need to send out the pulses to the motor point by point and in the mean time I need to acquire
the data showing the motion point by point. From the data points that I have acquired, I would
need to calculate the motion status of the motor, then decide in my feedback program how to
correct the next point of the pulse sent to the motor.

    So the timing must be very critical! May I ask how fast can the data acquisition board send
out and acquire one data point?

    Thank you for your precious answers!

Regards,
Margaret
0 Kudos
Message 1 of 12
(3,803 Views)

That will depend on the max sampling rate of the DAQ card you choose.

which DAQ card do u plan to use??

0 Kudos
Message 2 of 12
(3,792 Views)
Dear sir,

    Currently we are using AT-MIO-16F-5 board, which has the maximum sampling rate
200K samples/sec, when using the SubVI, "AI write". If I use other SubVI's to send out
one data point and read one data point aftewrwards, it takes 3 ms in average for this
procedure, which is too slow. We need to make it in a few hundreds of microseconds.

    In the near future, we might upgrade to a newer board which could fit our requirements.
Do you have any recommendations? Thank you for your precious answers!

Regards,
Margaret
0 Kudos
Message 3 of 12
(3,774 Views)

i have the same problem as Margaret,
i am using PCI_6229. DAQmx M-series. 
roughly ( AO 650kS/second, AI 250kS/second)
My application requires 20,000 feedback_loops(PID) iterations per second.
(i.e. 1 AO point+sensor response time + 1 AI data point     must finish in 35 microsecond)
(my sensor response time is small, about 0.20 ns )

Any one please advice me how to archieve that.

My PC can do simple loops at 2000 loops/second.

Message Edited by heavily loaded on 05-22-2006 01:55 PM

0 Kudos
Message 4 of 12
(3,771 Views)

Hi Margaret,

It sounds like what you are looking for is a deterministic system that can easily do PID style or logical operations where the time between samples is kept to an absolute minimum.  This really is an ideal system for a Real-Time Operating System.  If you keep using a normal Windows OS (or Mac or Linux), then 3ms per loop is certainly possible, but the loops rates could vary greatly because the Windows OS is non-deterministic.  Say Windows decides that you need to update, then boom, you've lost 10 ms and there's nothing that can be done to prevent it.

Because Windows is not an ideal system, you have to move to an RT OS.  We have several products that might be able to help you create the system that you need. 
http://www.ni.com/realtime/

The best system for you may be to have a dedicated RT controller and have that read and write to your data acquisition board. 

Unfortunately if you keep using the setup that you have right now, the driver calls are slow because of the older hardware and you will run the risk of damaging your system because your OS is not a Real-Time OS.  If you did get some newer hardware, then the calls to the board would be much faster and likely in the range you need, but the non Real-Time OS could potentially be a big problem.


Regards,
0 Kudos
Message 5 of 12
(3,761 Views)
Hi heavily loaded,

In your post you mentioned that you want to do 20,000 loops in 0.000035 s.  That means you want 1 loop every 1.75 ns.  That simply isn't possible.  Even if you programmed your application on an FPGA, you still would only get loop rates of up to 10 ns even in a best case scenario.  Considering that a typical PID loop will require some additional processing, I wouldn't expect that even for a best case scenario you would get much faster than a few hundred ns to a few us.

Right now, it sounds like things are running about as fast as you could expect with the rate of 2000 loops/second.

The board you are using can certainly acquire at a rate of 250kS/s (1 sample every 4 us), but even that is assuming that you are doing a buffered input operation.  If you are just reading 1 sample at a time, then those rates will go down drastically and it will be system dependent for the speed.  The rates you are getting now are very good and nothing to scoff at.

Regards,
Message 6 of 12
(3,762 Views)
Hi! Otis,

    Are you saying that we need to upgrade our data acquisition board?
Yes, currently we are using the old hardwares: Pentinum II PC with
Windows 95, and old multifunction data acquisition board, AT-MIO-16F-5.
But we also have LabView 8.0 installed in our new desktop, Pentinum IV
3GHz, 504MB Ram, OS Windows XP. Now we just need a new data
acquisition board, right? Will PCI_6229, DAQmx M-series do the job we
need?

    What do you mean by
"non Real-Time OS could potentially be a big
problem"? If I use our new desktop and the "timing loop" in LabView 8,
will it become a real-time OS?

    Is RT controller the timing loop in LabView 8?

    Thank you for your precious answers!
Regards,
Margaret
0 Kudos
Message 7 of 12
(3,744 Views)
Dear Otis,
 
Thank you for the detailed information.
But I am sorry, i think my words were confusing .
My application requires 20,000 loops in one second. ( not 1 loop in 1.75ns, is it 1 loop in 35us. )
And , it also seems that I do not require time deterministic. Faster speed is what i need.
 
1  As you mentioned to me : "2000 loops/second, The rates you are getting now are very good and nothing to scoff at." were you refering that "If I am just reading 1 sample at a time, then 500us per loop is the fastest i can get?"
2  but for the feedback_loop control. i think i may have to do it one sample at a time. Do you have any better suggestions?
3  I called NI tech in Singapore suggested me to do it in a "timed loop" instead of "normal loop" . does it help?
4  or do I have to appeal to FPGA. what is the total cost(soft+hardware) of using FPGA?
    or do I have to choose Real-time operating system. how fast RT system can make each loop?
0 Kudos
Message 8 of 12
(3,733 Views)

Hi Margaret,

New hardware will greatly help.  Basically the newer hardware and drivers are meant to work much faster, particularly for single-point operations (I think the benchmark is like 40x faster for just the jump between Traditional DAQ and DAQmx, plus the newer hardware would make that even faster).

You could definitely use the Timed Loop.  That will help to make sure things are more deterministic, and at least you'll know if things aren’t running at the desired rate.  Keep in mind that Windows will never be a true real-time OS, but for your needs, using the Timed Loop may just be that extra edge you need and could work well for your application.  You will need newer hardware though.  For example, Heavily Loaded gets up to about 2000 Samples per second (1 loop every 0.5 ms) and is even doing PID control.  The faster the computer the better too so that you can minimize time spent doing calculations between loops.

Regards,

0 Kudos
Message 9 of 12
(3,712 Views)
Dear Otis,
 
Thank you for the detailed information.
But I am sorry, i think my words were confusing .
My application requires 20,000 loops in one second. ( not 1 loop in 1.75ns, is it 1 loop in 35us. )
And , it also seems that I do not require time deterministic. Faster speed is what i need.
i need to improve from 500us to 35us

1  As you mentioned to me : "2000 loops/second, The rates you are getting now are very good and nothing to scoff at." were you refering that "If I am just reading 1 sample at a time, then 500us per loop is the fastest i can get?"
2  but for the feedback_loop control. i think i may have to do it one sample at a time. Do you have any better suggestions?
3  I called NI tech in Singapore suggested me to do it in a "timed loop" instead of "normal loop" . does it help?
4  or do I have to appeal to FPGA. what is the total cost(soft+hardware) of using FPGA?
    or do I have to choose Real-time operating system. how fast RT system can make each loop?
0 Kudos
Message 10 of 12
(3,705 Views)