Re: home/limit switches - combined




Joel

The release notes say;

-----release notes quote-----
1. Backlash compensation for steppers, in which backlash takeup is
scheduled out according to an acc/dec profile using the same [TRAJ]
DEFAULT_ACCELERATION parameter used for motion planning. This keeps
the backlash takeup from overdriving steppers.

2. Fixed homing so that there is a controlled move from the
deceleration point back to the home point. Previously after the
deceleration point was reached, the home point was given in one cycle
so that the axis moved rapidly back to the home point. The
deceleration distance is usually so small that no one noticed. Note
that backlash is applied since there is a direction reversal.
-----end of quote-----

This is a post from Fred regarding backlash and it's history in EMC.

-----Quote from Fred's Post-----
Regarding backlash, here's how it works in the EMC. A little history: it
*used* to be just in the PID calculations (pidRunCycle() in
emc/src/emcmot/pid.c). The technique was that when the commanded
position delta was positive (moving forward), half the backlash was
added; if the commanded position delta was negative (moving backward),
half the backlash was subtracted; otherwise the axis is still and no
backlash was added or subtracted. The backlash was applied
instantaneously, which is not a problem for servos since the backlash is
typically small and the servo controller will catch up quickly. This
worked fine for PID control, but it didn't apply to steppers.

At the request of the first stepper victim (Tim Goldstein), I moved the
backlash compensation out of the PID calcs and into emcmot.c, in the
spot just before either the PID function or the stepper function were
called. This worked on my stepper test stand, but since the compensation
was instantaneous it stalled Tim's motors. What I did then was blend in
the backlash according to an accel/decel profile. If you look in
emcmot.c for "bac" you'll see just how hideous this is.

I haven't verified that this works correctly for small incremental moves
back and forth that are smaller than the backlash value. That is, what
happens when the motion is reversed before the accel/decel blending of
the backlash has completed? Who knows. If this is a problem, someone
please find out.
-----End of Fred's Post-----

I try not to use much backlash compensation because it gets such a bad rap
from machine builders.  I'm sure that it is no substitute for reducing the
mechanical backlash.  But it does seem to do extreme things to your system.
Don't home the axis, just move it out in the middle somewhere and try
putting in just a little bit of compensation at a time.  Jog the axis an
inch and then back until the motor just takes up the lash.  

After you've done this then try homing with the backlash working properly. 
With that much compensation, you may have to jog around a bunch before you
home.


On Wed, 28 Feb 2001, you wrote:
> ----- Original Message -----
> From: Matt Shaver <mshaver-at-erols.com>
> 
> > If the software limits don't stay relative to machine zero, then that's
> > a bug that needs to be fixed. You might try G92, rather than G10L2Pn, as
> > a workaround until this can be fixed.
> 
> I had some time to play around with the machine again tonight and I could
> not get the soft limits to do what I thought they did before - they seem to
> stay at machine zero with g1 l2 p#  or g92.  This is good - but I feel bad
> now for saying they were moving.  I'm sorry bout that.  I think what I was
> seeing was actually due to the homing problem I have.
> 
> It seems like the backlash setting is the culprit.  If I enter 0.0 backlash
> everything is perfect - homes to the swich - backs off 0.1 to get off the
> switch and stops.  I can press 'home' repeatedly and it stops within .001"
> each time.
> 
> If I enter my .014 backlash it gets confused.  I'll home it, set the
> incremental jog to .001, hit the jog and it moves .063!  After that first
> move it moves .001 each time but here is where it gets wierd, if I home it
> again it'll home offset almost .200 instead of .1.  I'll try the incremental
> .001 jog and it'll go over .1.  Now if I try to home again I get the message
> ""- limit exeeded' (my soft limit is -0.15) I haven't got a clue whats
> wrong - either I got something wrong with my system or everybody else is
> using zero backlash ball screws and doesn't see the problem.  Could you
> maybe set some backlash on your machine and see if you get this wierd
> behavior too?
> 
> Thanks...
> 
> Joel



Date Index | Thread Index | Back to archive index | Back to Mailing List Page

Problems or questions? Contact