A way to set outputs during spline movement ?

  • Hi

    KR 3 R540 / KRC4 Compact / KSS8.6.6


    I'm working on an application that needs complex and curved paths so I'm using Spline blocs.

    I want to set outputs during the movement of the robot ( between XPoint_8 and XPoint_7) but this is not allowed.

    Is there another way to do that ?

    It's really difficult to predict the approximate positioning ranges when using SPTP movements,that's why I've chosen Spline blocs.


    Thank you in advance.

  • I ran into a similar problem once.

    I wanted to create a ball throwing robot and wanted to release the gripper while the robot was still moving.


    TRIGGER WHEN PATH=-100 DELAY=0 DO...

    Only works with linear or circular motions. Calculating the length of a path that is a weird shape is something that KUKA cannot handle I guess.

  • Spline ptp also supports path triggers. Actually path triggers is the only type of trigger any spline movement type knows. But you can also write down distance triggers as well. Internally they are transferred to the equal path trigger. But the path value for a sptp is not the Cartesian distance on the path. Instead it is proportional to the axis distance. You can use $dist_next or $dist_last to get the path values. Or simply run your program to where you want to fire the trigger and use the touch up trigger function ILF.

  • Correct!


    But you can use TRIGGER WHEN DISTANCE together with PTP motions...

    Hmm... for my ball throwing demo I should try it.


    TRIGGER WHEN DISTANCE=0 DELAY=1234 DO $OUT[1]=TRUE


    So after 1234 milliseconds the output is switched while the robot is still moving.

    The thing to notice is that the variable tricks you into thinking that distance is actually distance... but its just either "0" or "1" meaning just the starting point or end point.


    Plus... if the end point is approximated and I use no delay, the TRIGGER switches "in the middle of the approximate positioning arc"

    TRIGGER WHEN DISTANCE=1 DELAY=0 DO $OUT[1]=TRUE

    So is might be the optimum place when throwing things.


    But to answer @Ayoub,

    You can use the TRIGGER WHEN PATH inside splines but they have to be SCIRC or SLIN.

Advertising from our partners