Hi ESjaavik
If an encoder is being used to control the speed of the motor, then I agree with you, it should be connected to the rear shaft of the motor with zero backlash. I use a tacho for this purpose. I use linear encoders for positional feedback. I will try to explain how my system uses these signals. I have a free running DC motor with a tacho driving a cold rolled ballscrew (40 microns backlash approx) via a timing belt and pulleys. The linear encoder is attached to the slide, thus maintaining accurate positioning of the slide. When the slide is in position, a zero voltage is applied the motor because no rotation is required. If the slide is physically moved out of position by 1 encoder pulse (0.01mm) the system will produce an error signal and a proportional voltage will be sent to the motor to initiate rotation in the direction to correct the error. The initial motor speed will be very slow and with little power, enough power to remove any free backlash but not enough to pull the slide. If the error persists the system will increase motor speed and power until there is sufficient power to correct the error but not to much power to overshoot and cause oscillation. The motors on any axis with backlash are continuously hunting for position but this is under controlled and stable conditions and is not detrimental to the machine’s mechanics or electronics, it is NOT unstable violent motor oscillation.
This system does require a real time operating system and I decided to develop my software for DOS, but I believe that EMC has real time capabilities and I would be very interested to here your comments and reasons for choosing Linux/EMC . My source code is in ‘C’ and the real time interrupt routine is 80x86 assembly code . I don’t know if these will compile for Linux.
__________________ mike potter |