Change speed between points while retaining continual motion

  • I am trying to change the speed while retaining continuous motion.

    $OV_PRO breaks the advance run

    Code
    $OV_PRO = 50
    LIN_REL {X 100} C_DIS
    $OV_PRO = 10
    LIN_REL {Y 100}

    Is this possible?

  • Lemster68

    Approved the thread.
  • Have you tried to use the CONTINUE instruction? It should force the pointer to move forward, just insert it before the ÕV_PRO instruction and check if this still happens.

    Also... if you need to do it with a fixed value on the movement, why don't you use the $VEL.CP instruction?



    Also, check this thread: Kuka LIN Motion Dynamic Speed

    Skyefire provides a hint on how you can do this if you need to do this adjustment on the fly, but it seems you may need to control the speed using the SPS in order to adjust the override speed on the fly, not by editing the speed directly on the path program.

  • CONTINUE command would cause the $OV_PRO change well in advance (well, $ADVANCE) of where it's programmed.


    If you don't want to use the SPS, using a TRIGGER command to set $OV_PRO should be a workable option.

  • Thanks!

    For some reason this threw an exception: "$OV_PRO variable write-protected in module .."

    Code
    $OV_PRO = 50
    LIN_REL {X 100} C_DIS
    TRIGGER WHEN PATH=0 ONSTART DELAY=10 DO $OV_PRO=10
    LIN_REL {Y 100}


    I had to wrap the command in a sub-program for it to work

    Code
    $OV_PRO = 50
    LIN_REL {X 100} C_DIS
    TRIGGER WHEN PATH=0 ONSTART DELAY=10 DO ChangeSpeed(10) PRIO = 10
    LIN_REL {Y 100}
    Code
    def ChangeSpeed(speed:in)
       int speed;
       $OV_PRO = speed;
    end

Advertising from our partners