$ASYNC_AXIS

  • Our system is KRC4 8.5.7 HF1 and KR 90 R3100 extra HA.
    We also have some external axes : KP1 and KP2 manipulators.
    During some part of the process the external axes will have to be synchronous axes, during other parts of the proces they will have to be asynchronous.
    I can switch between synchronous and asynchronous with the $async_axis command.
    If the external axes are switched to asynchronous mode, there are some situations where they can switch automatically back to synchronous mode.
    This is the case for block selection. But the solution to prevent this should be setting the variabel $ASYNC_MODE to 2.
    If the active program is cancelled or reset, this also causes a switchback to synchronous mode, but in that case you can write the $async_axis command at the beginning of the starting program.
    On this forum I read some posts where they say that f.i. an Estop also can cause a switchback to sychronous mode. This would be more difficult to reswitch to asynchronous mode when program runs again : motion will probably continue where it was stopped, and I learned that the $async_axis command cannot be executed in the submit interpreter or in an interrrupt routine.
    Can anyone confirm if an ESTOP will cause a switchback to sychronous mode? And are there other situations where an automatic switch from sychronous mode is done?
    The fact is that in one part of my program I want in any circumstances that my external axes stay asynchronous, in the other part they will have to be synchronous.

  • I can't say for certain offhand if an E-Stop will change the sync/async state of axes. But there are a few things you can do to "safety net" this.


    In a default-template KRL module, Interrupt 3 is used to call IR_STOPM whenever an E-Stop (or similar fault stop) occurs. IR_STOPM includes sections you can add your own code to execute during the controlled stop, and during the resume. So you could, for example, add a command to set $ASYNC_MODE to what you want in the resume section of IR_STOPM.


    Another thing you could do is, in the SPS, add code that will force $OV_PRO to 0 (and maybe post an error message) if $ASYNC_MODE is not what it should be at any given time.

Advertising from our partners