As I said in my other thread, servo tuning has finally allowed me to isolate the real problem on my CNC mill - a cumulative error in Z axis arc moves.
My machine is a 3 axis knee mill conversion using Camsoft v16.7 and a Galil DMC-1842 PCI card. My encoders are on the end of the motors, not linear scales.
Basically, arc moves with a Z component (G02/G03 X.. Y.. Z.. I.. J..) are causing a cumulative error. I'm spiraling down into a pocket G03, cutting the pocket at that depth, then spiraling deeper, cut pocket, spiral down, cut, etc.
Each time I spiral down, the Z depth is exactly 0.01mm short of the commanded z depth. E.g. if I command to -18.15mm, it stops at -18.14mm. Furthermore, the Z depth error is cumulative. By cumulative, I mean the first Z spiral is 0.01mm short. The second spiral is 0.02mm short, and so on. See table below.
Commanded Actual Diff
-17.063 -17.053 0.010
-22.750 -22.730 0.020
-28.438 -28.407 0.031
-34.125 -34.084 0.041
-39.813 -39.761 0.052
-45.500 -45.438 0.062
When the pocket is done, I do a G00 Z25.0 to rapid out of the hole, and instead it rapids to 25.062. That's what finally made me realize it's not a servo error. I mean it went to exactly 25.062 - the exact same error that I had at the bottom of the pocket. I'm in absolute mode (G90), but it's like Camsoft command the Galil card with relative moves.
Next I try the same code using Single Step and the error goes away. Single stepping somehow resets the accumulated error.
This is just one example. Pretty much any G02/G03 arc move with a Z component has this accumulating error. The error can grow to exceed the POSERROR limit and it will not cause a stall or position error.
My TOLERANCE is 0.0005" (0.0127mm). Thinking this was a math error for the arc commands, I changed TOLERANCE to 0.0001" (0.0025mm). No change to the result.
So, something about arc commands (G03, G02) is causing cumulative errors in Z. Linear moves (G00, G01) don't add to the error, but the error follows the move.
What am I missing?
Thanks,
Mike