On Sunday 26 July 2015 16:33:37 Fons Adriaensen wrote:
On Sun, Jul 26, 2015 at 01:45:42PM -0400, Gene Heskett
wrote:
There is no buffering in a cnc setup. The
computer expects to get
uptodate data from the machine which I have done at rates to 4,000
times a second, but normal is 1,000/second. Ditto sending data back
to the machine, that data cannot lollygag around in a buffer
someplace for 20 milliseconds while USB is searching for a suitable
sock to put it in. Even 2 milliseconds will likely put the resultant
part out of tolerance bad enough its a mantle decorator.
Are you saying there is motion feedback from the machine and the
PC is supposed to 'close the loop' ? In that case indeed any delay
due to buffering would needs to be taken into account, or could
(depending on required closed loop BW) render things impossible.
But *none* of the machines I've ever driven (that includes all
sorts of milling machines, and tangential knife, laser and water
jet cutters) required feedback to control the motion of the tool
as function of time. They did only for things like changing tools
and/or workpiece, or to signal general state. If there were feedback
loops involved in controlling motion then these were local and
certainly not implemented in the controlling PC (which in those
times only had RS232 interfaces, orders of magnitude slower than
anything USB).
And anyway, what is the BW of any heavy piece of machinery ?
Probably at most 10 Hz or so, and that you can control using
a feedabck loop even with 5 or 10 ms of latency.
That depends on how fast its moving, Fons. A 25k rpm spindle can move
and cut alu at 250 IPM if the coolant can carry away the chips. That
sort of motion is tracked and corrected in a 25 to 100 microsecond loop.
But we don't do floating point in that loop for obvious reasons.
Fellow in Cinci picked up one of the biggest mills Cinci ever made about
4 years back, some 220,000 lbs of scrap because the controller had died,
and so had the guy that designed it. So it got a retrofit to linuxcnc.
While tuning the servos, it got the Z axis into an oscillation at about
20 hz, with about a 1/2" motion either way. It took about 20 seconds to
lower the P in the PID module for that axis & stop it. The moving part
of the Z axis weighs 22 tons and carries a 50 horse motor. That 20
seconds was recorded on the seizmograph stuff across town at the UNI.
I've no clue what the x axis bed weighs, but its 26 feet long.
After calibration, the first job they threw at it was cutting a 16"
diameter bearing seat for an axel bearing in a 1000+ lb iron casting
that was going into a railroad locomotive. When the bearing seat was
measured, it was within .0001". So they set the bearing on 300lbs of
dry ice, brought the casting up to about 350F, picked up the bearing
with welders gloves and set it in the recess. It almost fell into the
pocket, but 15 seconds later as the temps equalized, it was a permanent
a part of that casting, way better than if they had welded it.
Cheers, Gene Heskett
--
"There are four boxes to be used in defense of liberty:
soap, ballot, jury, and ammo. Please use in that order."
-Ed Howdershelt (Author)
Genes Web page <http://geneslinuxbox.net:6309/gene>