How to move endless axis past 180 degrees

  • Robot: KR60HA

    External axis: MG_64_KSP40

    KSS: 8.5.8

    KS: 8.5.465


    I have searched the forum but can't find any conclusive answer as to how to move an endless axis past 180 degrees.


    I have an external axis that I've set to endless. Like many others I have experienced that when you jog the axis there is no problem going past 180 degrees while when you programmatically attempt to move the axis past 180 degrees it simply chooses the shortest route (the opposite direction than intended).


    I've tried:

    1) Moving to an E6POS with E1 = 180+, e.g. 720 deg

    2) ASYPTP {E1 ....} both with and without #AS_PROG


    Does anybody have a suggestion on how to do this?

    A simple trick to make it understand full rotations for absolute positions or maybe just a "start"-signal and then I can stop it based on an interrupt?

  • you are trying to use asynchronous ptp but... is your axis asynchronous? post your code.


    this works. even if axis is starting from -45deg, it spins to +750deg:


    ASYPTP {E1 750.0} #AS_PROG

    1) read pinned topic: READ FIRST...

    2) if you have an issue with robot, post question in the correct forum section... do NOT contact me directly

    3) read 1 and 2

  • Thanks for a fast reply.


    To the best of my knowledge it is. Atm i'm trying out:

    Code
    $Async_Axis = 'B0001'
    $OV_ASYNC = 75
    AsyPos.E1 = 720
       
    ASYPTP AsyPos ;Start rotation of roundtable
       
    WAIT FOR $Async_State == #Idle
    WAIT FOR TRUE
    $Async_Axis = 'B0000'


    I've tried both with and without a tick-mark in the "Asynchronous external axis" option of the "Menu / Configuration / Machine configuration" menu.


    EDIT:
    AsyPos is declared in the .dat file as:


    Code
    DECL E6AXIS AsyPos={A1 0.0,A2 0.0,A3 0.0,A4 0.0,A5 0.0,A6 0.0,E1 0.0,E2 0,E3 0.0,E4 0.0,E5 0.0,E6 0.0}
  • I always split it to rotations lower than 180 degrees. Have a small routine with one parameter that contains the target angle, there the difference between actual pos and target position is splited into movements smaller than 180 degrees.

  • Thanks Hermann, I'll keep that as a backup plan :smiling_face:

    I still believe it should be possible to either ask it to go x amount of degrees from (Rev 0, deg 0) or simply give it a velocity and start/stop signal.

Advertising from our partners