Axis block

  • Hello everyone,


    KRC 4, KSS 8.3 there. So, my question is next - is there any way to block external axis from movement?


    My first thought was around ex_ax_decouple, but seems it works only when the axis is in 0 position. Because I have unlimited rotation, I cant hit 0 everytime.
    Second thought was about using override speed variable, but in that case all axis of the robot will have 0 speed. What do I really need is to block external axis from jogging and moving while,for example, some signals are true.


    Thanks for the help in advance!

  • Maby you can set this external axis speed to 0


    3.219 $VEL_EXTAX[]
    Description: Velocity of the external axes in the advance run
    The variable contains the programmed axis velocity as a percentage of the
    maximum motor speed $VEL_AXIS_MA[] (variable in the file …R1\Mada\$machine.dat).


    Syntax: $VEL_EXTAX[Axis number]=Velocity


    (source: KSS System Variables documentation)

  • Is your E1 axis synchronous or asynchronous?


    If the former, then (as FishBoy stated), setting $ASYNC_AXIS=1 will cause E1 to be "ignored" by regular PTP/LIN commands, even if they include E1 values. Setting $ASYNC_AXIS back to 0 will put E1 back under control of the PTP/LIN commands.


    Long story very short: if an external axis is set to Async mode, it can only be moved by ASYPTP commands. I have found this convenient in situations where I have a force-sensing gripper using E1, and need to ensure that my motion path between Pickup and Dropoff never moves E1, no matter what later operators did when touching-up the various points.


    If you need to switch E1 between Async and Sync modes, you can do that by changing the first bit of $ASYNC_AXIS.


    One caveat: $ASYNC_AXIS can be reset automatically sometimes. So I had situations where the robot "squeezed" a part by using E1, then (before it reached Dropoff) someone halted the robot, put it into Teach mode, and did a Line Select before putting the robot back into Auto. At that point, $ASYNC_AXIS could end up having been reset, and whatever E1 value was programmed in the next few motion points would cause E1 to move unpredictably. So you may need to protect against that.

  • Well,actually I know how to make that robot will ignore the axis while moving. The point is, how to do that even jogging from smartpad wont work?


    $VEL_EXTAX[] works but only while program is running,jogging from the smartpad is still available

    Edited once, last by Acapulka ().

  • if you don't want external axis to move with robot, you need to make it asynchronous.
    this can be setup differently and requires knowing what the goals are and making correct setup.
    for example it is possible to make axis permanently async.

    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


  • Well,actually I know how to make that robot will ignore the axis while moving. The point is, how to do that even jogging from smartpad wont work?


    $VEL_EXTAX[] works but only while program is running,jogging from the smartpad is still available


    You want to block jogging? That's... substantially more difficult. I'm not sure there is a good way to accomplish that. You might be able to add code to the SPS that would detect when someone tries to jog E1 and temporarily set $OV_JOG to 0, but that's a fairly janky solution.


  • sounds like a job for safe operation


    as a non safe solution you could set the soft ends +/- of the ex axis to the actual value +/- 0.1° after you have reached the position you want to stay in.
    but before you want to move the ex-axis, you'll have to change the soft-limits of the ex-axis back to the default value


    kind regards,
    NoMad

  • as a non safe solution you could set the soft ends +/- of the ex axis to the actual value +/- 0.1° after you have reached the position you want to stay in.
    but before you want to move the ex-axis, you'll have to change the soft-limits of the ex-axis back to the default value


    Ooooh, I like that idea. It'd have to be done from the SPS, and setting all the conditions for opening/closing the range limits would be a bear, but for a non-safety solution, that could really work.

Advertising from our partners