by cncdrive » Thu Mar 08, 2018 10:48 pm
Hi,
Increasing the PID parameters, gain, damping etc. should have no effect on holding the correct position.
The position should be always held correct by a servo whatever PID parameters you set as long as the PID parameters are good enough to move the motor.
However there can be 2 type of position difference:
1.) Temporary position difference.
When the servo drive knows the correct position, it just can't move the axis into that position, e.g. because the motor is not powerful enough against the load, fiction etc. or e.g. the PID controller is tuned soft, so with the soft tuning it can't move the axis into the correct position against the load, friction etc.
2.) Permanent position loss.
When the servo drive looses position, it looses step/dir pulses or encoder pulses or gets extra pulses.
This can be due to e.g. noise on the step/dir lines or noise on the encoder lines or noise effecting the drive 's digital circuit via the 12V PSU.
I think the first thing is to determinate which one is the problem. And after that find the reason for the problem.
You could use the Servoconfigurator to check what position the drive thinks it is.
You could zero the position counter somewhere at the same point where you zero the CNC controller and then do the testruns and when you see the problem then check if there is a servo error signal with a significant size. If there is then check why the motor can't move the axis back to the proper setpoint. Help move it back and then check the position on the machine to see if that position would be correct, because if so then it is a temporary position error.
Or if with around 0 servo error the position is still not correct on the machine then check if the commanded position counter matches your counter in the CNC software.
If it does then the step/dir signals came in OK and then the error came in the encoder lines, then the step/dir lines did not pick up any extra pulses and did not loose pulses, but the encoder did.
Or if they differ then the step/dir lines did not came in OK, so the error came in on the step/dir lines or on both the step/dir lines and the encoder lines.