ni.com is currently undergoing scheduled maintenance.

Some services may be unavailable at this time. Please contact us for help or try again later.

Counter/Timer

cancel
Showing results for 
Search instead for 
Did you mean: 

Finite Measure with 2 boards 6602 and 6 DMA Channel Counter Buffered - error 200141

Hi all,
 
First .. I'm a beginner with LabView and I hope to explane myself in good way cause I'm italian..
I red all the post about the error 200141 and check the suggested solutions (also the way to ignore the error), but I want try to ask for a differet one..
 
What i'm trying to do is to aquire 6 encoder, 3 on the first board PCI 6602 and 3 encoder on the second board on DMA channels.
The encoder generate 90000  X4 = 360000 pulses x revolution and the max speed rotaion is 4 RPs.
Cause I need to store in a bin file all the pulses from the encoders, i generate a trigger of 1.5 MHz to get all the samples at the max system speed (360000 * 4 = 1440000 pulses  x sec).
 
I think to have reached the limit, and maybe is not possible do better.. actually the 2 PCI 6602 works with 1,0 MHz of trigger and the system store in 6 files 4000000 of samples during
the finite measure of the angular position on 6 channels.
The trigger is not yet sync between the 2 PCI cause I'm waiting for a RTSI cable to put in the PC...
 
In Your opinion is possible to find a alternative way to acquire these encoders ?..
Thanks
 
0 Kudos
Message 1 of 6
(5,282 Views)

Dear Val40,

Honestly I can't see why you need to store all this data. I mean with such numbers you'll save a count every time it increments by one.
The datarate should be something like 4Bytes (I32) * 1.5MHzClock * 6 channels = 36MB/s well inside 100MB/s of PCI bus.
I mean, if this is what you have to do there's little way to avoid storing so much data is a specs you fixed.

Otherwise if you can give us a better understanding of what you're trying to perform maybe we can figure out a better solution.

Finally the maximum external clock rate accepted by 6602 should be 80MHz, thus 1.5MHz should be an acceptable clock rate.
Actually the maximum clock rate depends upon the driving capability of the external clock so it may change slightly.

Best Regards

Filippo

FiloP
It doesn't matter how beautiful your theory is, it doesn't matter how smart you are. If it doesn't agree with experiment, it's wrong.
Richard P. Feynman
0 Kudos
Message 2 of 6
(5,266 Views)

I also doubt if you need to capture every single increment from each encoder.  I'll discuss this more below.

Further, many earlier discussions suggest that counter tasks can sustain data transfers merely in the 100's of kHz, with *maybe* a possibility under special circumstances to slightly exceed 1 MHz.  Your boards have very small hardware buffers (either 1 or 2 samples worth), causing the PCI bus usage to be very frequent and therefore less efficient.

Now, let's go back to your sample rate.   You've got encoders which suggests that you're dealing with a physical system.  Physical systems have inertia, which limits their useful bandwidth.  In my experience, it's quite unusual to care about motion artifacts beyond the 10's of kHz.  The inertia just doesn't allow anything significant to happen at that rate.

So, if the physical bandwidth of your motion system is, say, 5 kHz, there's a rule of thumb suggesting to measure at 10x when possible.  So that'd mean 50 kHz sampling.  50 kHz x 6 channels on the PCI bus may be possible.  Multi-MHz sampling won't be.

Can you describe the physical system a bit?

-Kevin P.

ALERT! LabVIEW's subscription-only policy came to an end (finally!). Unfortunately, pricing favors the captured and committed over new adopters -- so tread carefully.
Message 3 of 6
(5,262 Views)

Hi,

Thanks for Your answers, I'm going to describe better the application.

I got 6 cylinder controlled by a external motion system. The diameters of the cyclinders are different, but with 90000 pulses per rotation is possible detect 10 micron move of the bigger cylinder. Each pulse of each cylinder have to be compared to detect relatives moves, or noise..

This accuracy is required cause the measure system will be applied to different machines composed by a minumum of 3 cyclinder to a max of 6.

Machines are for to print money!! (system for apply ink to matrix notes iron plates)

Thanks again

Lorenzo

PS:If will work I'll print some million dollar for You guys! Smiley Very Happy

0 Kudos
Message 4 of 6
(5,205 Views)

From experience, I've found it very rare to need to capture mechanical encoder motion information at such a high rate.  Mechanical inertia is a lowpass filter and physical systems simply don't show appreciable response in the 100's of kHz.  Because physical systems behave continuously, I've found that interpolating between true samples will frequently be almost as good as capturing at a higher rate.

When you *do* capture at such a high rate, you'll start to see the systematic error of the encoder device itself -- variation in the quadrature periods, and especially variation in the quadrature phase.  And at most any speed, it's very difficult to eliminate mounting/alignment error.  I'm suggesting that even though the encoder resolution seems to map to a 10 micron measurement, the true accuracy of your measurement system may be more like 100 micron accuracy or worse.

So at least get a solid understanding of your error sources.  It's *really* *really* hard to make a physical system with sensors and alignments that would justify the capture rate you're trying to achieve.

-Kevin P.

ALERT! LabVIEW's subscription-only policy came to an end (finally!). Unfortunately, pricing favors the captured and committed over new adopters -- so tread carefully.
Message 5 of 6
(5,190 Views)

Hi,

Ok, I know what Kevin mean cause we are already detecting the error of the variation in quadrature period and also mechanical noise.

I realize a shaft with 3 sin encoder 5000 pulses mounted on it, a converter mul x 10 the signal and give me back a 50.000 pulses x revolution.

At 1 MHz we detect a pulsing phase error with 2 msec of period between 2 channel (depending by the sin encoder) and a max difference of 5 pulses in a point of the rotation (depending by the mechanical shaft), this was expected.. but actually I'm working with low price (1800 EUR) encoder with a low precision.

The final application will work with encoder with high precision like max Err = 1/10 Pulse (I do not say the price.. wow) and I already working on a software for minimize these effects... our mechanic is working on the shafts of the machine and to a new shaft for the phase tester machine more precise.

 I got also a idea to reach 1.5MHz without the error 200141..

I appreciate Your comments, but I was writing here to try to solve this error.. any idea ?.. If my way to solve this problem will works I'll attach the prj..

Thanks All..

Lorenzo

0 Kudos
Message 6 of 6
(5,168 Views)