![]() | |
| Home Page | Mark Forums Read | Today's Posts | My Replies | Classifieds | Reviews | Photo Gallery | Web Links | Share Files | Advertise With Us | Ad List |
| |||||||
| LinuxCNC (formerly EMC2) Discuss LinuxCNC (formerly EMC2) Controlers here! |
| This forum is sponsored by: |
![]() |
| | LinkBack | Thread Tools | Search this Thread | Display Modes |
|
#1
| ||||
| ||||
Hi! Is it possible to get a real closed loop positioning with EMC using linear encoders? If yes, how? How well this type of control works if there is any backlash in screws? Thanks |
|
#2
| ||||
| ||||
|
__________________ “Logic will get you from A to B. Imagination will take you everywhere.” Albert E. (Note: The opinions expressed in this post are my own and are not necessarily those of CNCzone and its management) |
|
#3
| |||
| |||
| EMC? what is it? I use Linear Encoders to close the servo loop because they do eliminate backlash, and so do many CNC retrofits. However my system is running under DOS on a PC104 card. Should I be converting to EMC?
__________________ mike potter |
|
#5
| |||
| |||
A linear encoder cannot eliminate backlash, it can compensate for it. But then the encoder used by the servo drive (the servo loop) must be on the motor (backlash free), and the linear encoder is there just to tell the controller how much backlash there is, so it can compensate for it. But what software do you have that can do this? In EMC there is backlash compensation, but it is just in a setup table, not dynamically. |
| Sponsored Links |
|
#6
| |||
| |||
| 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 |
|
#7
| |||||
| |||||
Or can you use feedforward to avoid it?
But Linux have one big advantage over DOS, it's on the rise and not dying. So I try to forget DOS. And I prefer having my fingernails pulled over doing 80 Anyway I suggest you look at EMC. The source is open if you want to do something odd. And if you made a system that can make parts using your own code, you might find it a nice environment to focus on what you do best and benefit from the work of others with a different background. |
|
#8
| |||
| |||
| Thanks ESjaavik. Linux/EMC sounds like a good alternative RT system, but I still do not understand why backlash is a problem when using linear encoders. I still think DOS has a future with the PC104 range of products. As for my DOS system I don’t try to ‘calm down’ the PID loop but the parameters are set to maintain stability. Inputs to the loop are two +/- 10 volt analogue signals, 1 from the motor tacho, the speed input ,and 1 from the computer, the position input. Feedforward is not implemented but the system ‘looks ahead’ (to avoid SUDDEN setpoint changes) and the speed is adjusted depending on the angle of the next move. If the next move angle is 180 deg. then full speed is maintained, a 90 deg move requires the machine to ramp down to zero before implementing the next move thus avoiding any overshoot.
__________________ mike potter |
|
#9
| |||
| |||
If you have ever tried to drive a 50 year old bus with worn steering knuckles and spring shackles you can probably relate to what the servo drive has to cope with. I have tried it. Maybe that's why I could relate to it when I found it explained. |
|
#10
| |||
| |||
| During a machining cycle the torque requirements can vary considerably due to changes in feed rates, depths of cut, material hardness, cutter speed etc. Surely the purpose of a servo system is to control these non-linear torque requirements. Running out a bit of backlash seems like a rather trivial task, and I agree that these torque requirements have nothing to do with encoders, linear or rotary. Does anybody agree with the following:- A: That linear encoders return actual slide movements regardless of backlash. B: A DC servo can maintain a constant speed/torque under varying loads. C: If the linear encoder is replaced by 2 micro-switches or limit switches, the motor will drive the slide to the limits regardless of backlash. D: When a slide with backlash is driven by a stepper motor, 2000 pulses in one direction may not equate to the same distance for 2000 pulses in the opposite direction. If a linear encoder is fitted to the slide and the motor is driven by a CONTINUOUS train of pulses, then counting 2000 encoder pulses in any direction will equate to the same distance thus eliminating the backlash.
__________________ mike potter |
| Sponsored Links |
|
#11
| ||||||
| ||||||
But you are using steppers in one case and servos in the other. If you move slowly enough that you have zero overshoot, you are correct. But you might not wind up with a useful system. It depends on your application. Ken
__________________ Kenneth Lerman 55 Main Street Newtown, CT 06470 |
![]() |
| Currently Active Users Viewing This Thread: 1 (0 members and 1 guests) | |
| Thread Tools | Search this Thread |
| Display Modes | |
| |
Similar Threads | ||||
| Thread | Thread Starter | Forum | Replies | Last Post |
| Open & closed loop | totsandman | Benchtop Machines | 3 | 05-07-2005 09:49 AM |
| How Should I Mount Linear Encoders? | lerman | General Metal Working Machines | 6 | 01-13-2005 04:50 PM |
| Closed loop....open loop? | DAB_Design | General Electronics Discussion | 10 | 06-26-2004 05:02 PM |
| Closed Loop Driver vs. Closed Loop Computer | ojibberish | Gecko Drives | 3 | 06-08-2004 12:30 PM |
| closed loop | georgebarr | DIY-CNC Router Table Machines | 9 | 06-01-2003 10:39 AM |