We have an application with an Allen Bradley servo driving a rotary table. During normal operation the servo positions perfectly (within 0.001 degrees) every time. The problem is when we stop the drive there is movement backwards on the servo motor. The same issue happens regardless of if we stop via e-stop to the safe torque off inputs or with a motion axis stop.
So let's say we have the table set to 10 positions at 36 degrees each. When positioning it will go to exactly 36.000 degrees, 72.000 degrees, etc. When we stop the drive, the position will go backwards slightly to ~35.5 degrees even though there is no movement of the table. When we restart the servo and try and go to the next position the servo will say it's at the correct position (72.000), but physically the table is short of the correct position. When we index to the next position (108 degrees) everything is perfect again.
If there were windup in the mechanical system causing it to move ~0.5 degrees backward, then you would think it would fix itself when it moves because it's moving 36.5 degrees forward on the next index since the encoder knows that it's moving backwards.
Any ideas as to what could be going on here?
So let's say we have the table set to 10 positions at 36 degrees each. When positioning it will go to exactly 36.000 degrees, 72.000 degrees, etc. When we stop the drive, the position will go backwards slightly to ~35.5 degrees even though there is no movement of the table. When we restart the servo and try and go to the next position the servo will say it's at the correct position (72.000), but physically the table is short of the correct position. When we index to the next position (108 degrees) everything is perfect again.
If there were windup in the mechanical system causing it to move ~0.5 degrees backward, then you would think it would fix itself when it moves because it's moving 36.5 degrees forward on the next index since the encoder knows that it's moving backwards.
Any ideas as to what could be going on here?