Dynomotion

Group: DynoMotion Message: 12580 From: tapiolarikka Date: 12/10/2015
Subject: SoftLimits&Mach&Lookahead?
Hi Tom,

I ran into a problem with my new machine. Due to incompetent design the limit switches need to be spaced so that after limit switch I have 3mm of free travel, before mechanical stop/obstacle.

Yesterday I discovered that this is not enough for KFlop to react with rapids exceeding 1000 IPM,
luckily nothing broke.

To get around this problem I thought of setting soft limits, but is there a lookahead in soft limits that would
scale according to current speed?

Rgds,
Tapio


Group: DynoMotion Message: 12593 From: TK Date: 12/13/2015
Subject: Re: SoftLimits&Mach&Lookahead?
Attachments :
    Hi Tapio,

    Attached is a User Program Function that can be included and called to monitor the Axis's Velocity and Acceleration and trigger a soft limit feedhold at the right moment to come to a final stop at the Soft Limit position.

    Here is an example of how to include and then call the function in a loop servicing 4 Axes:

    #include "KMotionDef.h"
    #include "AdjustSoftLimits.c"

    // tests functionality of adjusting softlimits feedhold based on
    // Velocity and Acceleration using the CheckDistToStop Calculations

    main()
    {
        for (;;)
        {
            WaitNextTimeSlice();
            CheckDistToStop(ch0);
            CheckDistToStop(ch1);
            CheckDistToStop(ch2);
            CheckDistToStop(ch3);
        }
    }


    HTH
    Regards
    TK

    On 12/10/2015 9:13 AM, tapio.larikka@... [DynoMotion] wrote:
     

    Hi Tom,

    I ran into a problem with my new machine. Due to incompetent design the limit switches need to be spaced so that after limit switch I have 3mm of free travel, before mechanical stop/obstacle.

    Yesterday I discovered that this is not enough for KFlop to react with rapids exceeding 1000 IPM,
    luckily nothing broke.

    To get around this problem I thought of setting soft limits, but is there a lookahead in soft limits that would
    scale according to current speed?

    Rgds,
    Tapio



    Group: DynoMotion Message: 12933 From: ericncn Date: 3/9/2016
    Subject: Re: SoftLimits&Mach&Lookahead?
    I find this feature extremely useful.
    My intention was to test it, I still didn't (I apologize, have been busy with other projects lately) but if it works as expected I think it should be built-in in Kmotion.  I mean, just built in, not an option that could be turned off by accident.

    Having the machine guaranteed to stop AT the soft limit position rather than going on for a "random" distance is so much better at so many levels I can't think any reason one would want to turn this feature off.

    EC

    ---In DynoMotion@yahoogroups.com, <tk@...> wrote :

    Hi Tapio,

    Attached is a User Program Function that can be included and called to monitor the Axis's Velocity and Acceleration and trigger a soft limit feedhold at the right moment to come to a final stop at the Soft Limit position.

    Here is an example of how to include and then call the function in a loop servicing 4 Axes:

    #include "KMotionDef.h"
    #include "AdjustSoftLimits.c"

    // tests functionality of adjusting softlimits feedhold based on
    // Velocity and Acceleration using the CheckDistToStop Calculations

    main()
    {
        for (;;)
        {
            WaitNextTimeSlice();
            CheckDistToStop(ch0);
            CheckDistToStop(ch1);
            CheckDistToStop(ch2);
            CheckDistToStop(ch3);
        }
    }


    HTH
    Regards
    TK


    Group: DynoMotion Message: 12940 From: ericncn Date: 3/10/2016
    Subject: Re: SoftLimits&Mach&Lookahead?
    I'm also wondering, in case this feature is implemented does it still make sense to also add physical limit switches?  And if it does then I have two sub-questions:

    1) where should the physical limit switches be placed, I mean how much after the soft limit and how much before the hard stop? Provided that the soft limits managed that way allow to be placed very close to the hard stop, there may be no practical room for the physical switches (i.e. too late, when they get triggered we're already hitting the hard stop)

    and

    2) how should the physical switches be managed? Decelerate hard? But that's something already done before the soft limit...

    EC




    ---In DynoMotion@yahoogroups.com, <ericnc@...> wrote :

    I find this feature extremely useful.
    My intention was to test it, I still didn't (I apologize, have been busy with other projects lately) but if it works as expected I think it should be built-in in Kmotion.  I mean, just built in, not an option that could be turned off by accident.

    Having the machine guaranteed to stop AT the soft limit position rather than going on for a "random" distance is so much better at so many levels I can't think any reason one would want to turn this feature off.

    EC

    ---In DynoMotion@yahoogroups.com, <tk@...> wrote :

    Hi Tapio,

    Attached is a User Program Function that can be included and called to monitor the Axis's Velocity and Acceleration and trigger a soft limit feedhold at the right moment to come to a final stop at the Soft Limit position.

    Here is an example of how to include and then call the function in a loop servicing 4 Axes:

    #include "KMotionDef.h"
    #include "AdjustSoftLimits.c"

    // tests functionality of adjusting softlimits feedhold based on
    // Velocity and Acceleration using the CheckDistToStop Calculations

    main()
    {
        for (;;)
        {
            WaitNextTimeSlice();
            CheckDistToStop(ch0);
            CheckDistToStop(ch1);
            CheckDistToStop(ch2);
            CheckDistToStop(ch3);
        }
    }


    HTH
    Regards
    TK


    Group: DynoMotion Message: 12941 From: Moray Cuthill Date: 3/10/2016
    Subject: Re: SoftLimits&Mach&Lookahead?
    On industrial machines, limit switches normally form part of the E-Stop circuit, as you should never hit them. If you hit them, it's generally because something has gone wrong, and you want things to shutdown as quickly and safely as possible. That something gone wrong should allow for the possibility that the controller has lost control of that axis, or the controller itself has failed. One question you should ask about your machine is, what would happen if an axis runs away with all controller control lost?

    A stepper driven machine is not likely to do much damage if you do hit a hard stop, but an industrial sized machine with big servos is likely to do a lot of damage.

    Soft limits should be near the hard limits, but the distance between the two will depend on whoever designs the machine, and how much of a safety margin they want to leave.

    Moray

    On Thu, Mar 10, 2016 at 1:38 PM, ericnc@... [DynoMotion] <DynoMotion@yahoogroups.com> wrote:
     

    I'm also wondering, in case this feature is implemented does it still make sense to also add physical limit switches?  And if it does then I have two sub-questions:

    1) where should the physical limit switches be placed, I mean how much after the soft limit and how much before the hard stop? Provided that the soft limits managed that way allow to be placed very close to the hard stop, there may be no practical room for the physical switches (i.e. too late, when they get triggered we're already hitting the hard stop)

    and

    2) how should the physical switches be managed? Decelerate hard? But that's something already done before the soft limit...

    EC




    ---In DynoMotion@yahoogroups.com, <ericnc@...> wrote :


    I find this feature extremely useful.
    My intention was to test it, I still didn't (I apologize, have been busy with other projects lately) but if it works as expected I think it should be built-in in Kmotion.  I mean, just built in, not an option that could be turned off by accident.

    Having the machine guaranteed to stop AT the soft limit position rather than going on for a "random" distance is so much better at so many levels I can't think any reason one would want to turn this feature off.

    EC

    ---In DynoMotion@yahoogroups.com, <tk@...> wrote :

    Hi Tapio,

    Attached is a User Program Function that can be included and called to monitor the Axis's Velocity and Acceleration and trigger a soft limit feedhold at the right moment to come to a final stop at the Soft Limit position.

    Here is an example of how to include and then call the function in a loop servicing 4 Axes:

    #include "KMotionDef.h"
    #include "AdjustSoftLimits.c"

    // tests functionality of adjusting softlimits feedhold based on
    // Velocity and Acceleration using the CheckDistToStop Calculations

    main()
    {
        for (;;)
        {
            WaitNextTimeSlice();
            CheckDistToStop(ch0);
            CheckDistToStop(ch1);
            CheckDistToStop(ch2);
            CheckDistToStop(ch3);
        }
    }


    HTH
    Regards
    TK