Build Thread Tree325 Retrofit Started - Page 27


Page 27 of 27 FirstFirst ... 1724252627
Results 313 to 314 of 314

Thread: Tree325 Retrofit Started

  1. #313
    Member
    Join Date
    May 2012
    Location
    canada
    Posts
    388
    Downloads
    0
    Uploads
    0

    Default Re: Tree325 Retrofit Started

    Quote Originally Posted by TomKerekes View Post

    Hi Murray70,

    Yes that is what I was thinking. But now that I think of it there might be a subtle issue. Take an extreme example: assume there is 0.010 inches backlash in the middle and zero backlash at the ends. Then depending on how the backlash is applied in the middle there could be a shift at the position in the middle. So a move from the end to the middle could be short or long by 0.01 inches. where the backlash is constant this isn't an issue. Do you think this is a problem? Do you know how Fadal handled this? I believe KFLOP's DestOffset could be used to correct this. But it is getting to be very complicated.
    Hi Tom,

    I guess it gets complicated to get things absolutely perfect, but maybe we don't need to worry too much about a slight shift. Anybody who really needs accuracy will obviously fix large mechanical issues anyway. But this might be useful for someone not doing critical work who just needs to get rid of an extra thou or 2 backlash in the middle. A small shift from this probably wont be a major problem and it should interpolate better holes with less problems at quadrants etc.

    Im not really sure how Fadal did it. If your really worried about error I suppose you could look at adding and subtracting counts to keep the error centered instead of just adding counts in a single direction as it is now. That sounds like a lot of work though as it changes the way everything works. And whos the say the wear in the screw is centered anyway? Could be mostly on one side. So maybe dont worry too much about perfection on this issue. Backlash compensation is never the perfect solution anyway. But used in small amounts it is handy, and i think small changes along the length would be handy too. We just cant expect it to work miracles on completely worn out machines.

    If you do go ahead with this, would be sort of nice if the amount was varied proportionally along the way. For exampe, lets say we have 0.002" in middle and no error at the ends. Would be nice if it calculated 0.001" to use at the 25% point.

    Mark



  2. #314
    Member TomKerekes's Avatar
    Join Date
    May 2006
    Location
    USA
    Posts
    3073
    Downloads
    0
    Uploads
    0

    Default Re: Tree325 Retrofit Started

    Hi Mark,

    You might try this:
    Code:
    #include "KMotionDef.h"
    
    // Vary the backlash linearly between 3 points (NegEnd, Middle, PosEnd)
    
    #define XAXIS 0
    #define XRes 10000.0            // counts/inch
    
    #define XNegEndDest ( 0.0 * XRes)    // counts
    #define XPosEndDest (20.0 * XRes)    // counts
    
    #define XNegEndBacklash (0.001 * XRes)    // backlash counts at negative end of travel
    #define XMiddleBacklash (0.005 * XRes)    // backlash counts middle
    #define XPosEndBacklash (0.002 * XRes)    // backlash counts counts at positive end of travel
    
    #define XMiddleDest ((XNegEndDest + XPosEndDest)*0.5)    // counts
    #define XNegSlope ((XMiddleBacklash - XNegEndBacklash) / (XMiddleDest - XNegEndDest))
    #define XPosSlope ((XPosEndBacklash - XMiddleBacklash) / (XPosEndDest - XMiddleDest))
    
    void ServiceBacklashX();
    double Interpolate(double x0, double x, double y0, double Slope);
    
    void main()
    {
        for (;;)
        {
            ServiceBacklashX();
        }
    }
    
    void ServiceBacklashX(void)
    {
        if (chan[XAXIS].Dest < XMiddleDest)  // check which section we are in
            chan[XAXIS].BacklashAmount =
                Interpolate(XNegEndDest, chan[XAXIS].Dest, XNegEndBacklash, XNegSlope);
        else
            chan[XAXIS].BacklashAmount =
                Interpolate(XMiddleDest, chan[XAXIS].Dest, XMiddleBacklash, XPosSlope);
    }
    
    // linear interpolation along line defined by point and slope
    double Interpolate(double x0, double x, double y0, double Slope)
    {
        double y = (x - x0) * Slope + y0;
    
        if (y < 0.0)                // limit to positive
            y = 0.0;
    
        return y;
    }


    Regards
    TK http://dynomotion.com


Page 27 of 27 FirstFirst ... 1724252627

Tags for this Thread

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  


About CNCzone.com

    We are the largest and most active discussion forum for manufacturing industry. The site is 100% free to join and use, so join today!

Follow us on


Our Brands

Tree325 Retrofit Started

Tree325 Retrofit Started