ASYPTP moving E1

  • Hi everyone.
    I'm very new to KUKA, so I set up an easy piece of code to understand how asynchronous motion works:

    Code
    ;TEST 1: Movement ASYPTP
       ASYPTP {E1 500}
       
       WHILE $POS_ACT.E1 <> 500
          ;Stay here
       ENDWHILE

    Unfortunately, nothing happens. Instead of the WHILE I was using HALT, but figured that could have been the cause for the robot not moving (even though that doesn't convince me, really).
    I read about $EX_KIN in another thread, but its setting seems fine.

    I'm running the code on Officelite, KSS 8.6.2.
    Any help is deeply appreciated.

  • There exist several requirements for asyptp movements:

    - there must be configured a external axis

    - the external axis must be configured/switched as asynchronous

    Hi hermann, thanks for answering.
    The external axis is configured correctly, I can jog it and it can be moved synchronously.

    Before I could test my code I thought that I had to switch the ext axis to asynchronous to execute an ASYPTP. However, on KUKA's document about ext axis I read this:

    Which made me believe the switch was executed directly from the ASYPTP instruction... Am I wrong?

  • ASYPTP and $EX_KIN are basically mutually exclusive. A kinematically integrated external axis cannot be switched into the Async mode that allows ASYPTP.

    Hi SkyeFire and thanks for answering.
    My settings for $EX_KIN are:

    Code
    DECL EX_KIN $EX_KIN={ET1 #EASYS,ET2 #NONE,ET3 #NONE,ET4 #NONE,ET5 #NONE,ET6 #NONE}

    Should I change something? The external axis is used synchronously in some parts of the program (which was made by someone else, I'm modifying it), so I'm afraid that changing something will create some problems. However, if that's the only way, I'll make the required changes.

  • Did you read the refered chapter 8.6.1? Think there should be explained, that when you have

    $EX_AX_ASYNC=1

    external axis E1 only can be moved asynchronous by asyptp without doing any extra step. Otherwise you have to set $ASYNC_AXIS=1 before moving E1 by asyptp.

  • If you can move the axis synchronously (assuming you mean kinematically integrated), then you can't use ASYPTP. One or the other, not both.

    It is possible to switch kinematically integrated external axis to asynchronous, not for base kinematics, but for example for a turn table. See the chapter about "$ASYNC_AXIS".

    We use it in several cells, with a simple turn table with two positions on which there are mounted two external axis. The external axis are switched frequently from synchronous (and intergrated) to asynchronous. The synchronous part does some kind of deburring, the asynchronous does the load/unload process.

  • It is possible to switch kinematically integrated external axis to asynchronous (not for base kinematics), but for example for a turn table. See the chapter about "$ASYNC_AXIS".

    Yes, actually I was using $ASYNC_AXIS in another part of code but I couldn't test it at the time. Some time after, I read that part of the KUKA document I uploaded before which seems to say that ASYPTP automatically switches the axis to asynchronous.

    However, everything works setting $ASYNC_AXIS, so thanks a lot to both you and SkyeFire

Advertising from our partners