I've got an error with a servo system that I have not been able to figure out. Everything works properly, except that the axis' slowly accumulate errors. I can run a routine that includes multiple movements of the axis', and when I return to 0,0,0 the spindle is no longer over the 0,0 position, but has moved by tens of thousandths, always in the positive direction.
Here is the system info:
Bridgeport Boss mill.
OEM DC servo motors.
AMT-102 Encoders (same problem occurred with the OEM BEI encoders)
CNC4PC C11 Break-out board
CNCDRIVE Mammut Servo Drives
Mach 3
I recently tested the problem using the test described below, I find that the table consistently moves 3" in the positive direction when instructed, and it consistently moves about 4 thousandths shy of the 3" called for when traveling back to zero in the negative direction (backlash is taken out of measurement as described below).
I believe that smaller movements result in smaller errors.
Problem persisted after changing encoders from the original BEI encoders and cables to AMT encoders with different cables.
Movements directed to the servos via USB using the manufacturer's "servoconfigurator" application result in very accurate movement in both directions with no error accumulation.
So it would seem that the problem must be one of the following:
* Erroneous / Extraneous data sent from Mach3.
* Erroneous data received by servo drive from parallel input line (noise).
* Internal error in servo drive.
* Erroneous data sent by encoders (unlikely - same problem with different encoders).
* Erroneous data received from encoders (unlikely - shielded OEM cables with OEM encoders / twisted pair cables with new encoders - no ground loop).
Questions:
1. Am I overlooking any possible source of the problem?
2. Does this problem sound familiar to anyone?
3. What tools are readily available to test the outputs of the various components (to actually see where the erroneous count is occurring)?
4. Any thoughts as to additional tests that I may perform to narrow down the problem?
Test procedure used:
To measure error while table moves in X+ direction; Set up dial indicator to measure X position of spindle relative to table using precision gauge blocks. Move spindle to X.9, insert 1" gauge block, move spindle to x1, zero indicator, move to X4, insert 4" gauge block, read indicator.
To measure error while table moves in -X direction; Move spindle to X4.1, insert 4" gauge block, move spindle to X4.0, zero indicator, move to X1, insert 1" gauge block, read indicator.
Thanks,
Scott Kelley