Robot axis and external axis

  • Hi people,

    i am working with KRC4 where there are 3 axis of robot A1, A2 and A3 and 5 other external axis E1 to E5.

    i am making HMI for manual cruising of those external axis. I have managed to use HMI to control the External axes.

    But now i have to control the A1, A2 and A3 with HMI.

    All 8 motors were supposed to be external axes but while adding them I realized that at least three motors have to be main axis.

    Acting just like robot axis. I have never controlled a robot axis with HMI, but now I have a task where I would need to control,

    those 3 motors A1, A2, and A3. so I am looking for advice.

    External axis (individual axis) can be run with ASYPTP { E1 xxx} but would A1 also work the same way with ASYPTP?

    I tried ASYPTP, PTP on A1 only didn't work.

    Currently I need to know if we can control individual axis of robot just like we do with external axis?

    if yes how?

  • Could you post your machine.dat and robcor.dat so we can see how your robot part is configured. If it is configured as xyz portal with x representing a1 y representing a2 ... I think you should be able to control them independently using ptp.


    Fubini

  • Just checked the files and they look like expected for me. Can you provide some more information what works and what not? Can you e.g. jog those axes manually in axis and Cartesian mode? It would be especially interesting if incremental jogging works because internally this is solved by the same calculations as a ptp.


    If used with a ptp do they really move not at all or just very very slow? This might indicate a Gear Ratio problem. Checkout $axis_act in display variable single when running a ptp. I assume robot interpreter status is green when commanding a ptp? Or does it get red?


    Whats the value of $pathtime (calculated trajectory duration in advance run) for this ptp. Not sure from memory whether this is set only for sptp. But anyway you could check it out with sptp as well.


    ...


    Just a few ideas. Anything might be useful maybe also a screenshot when running a ptp.


    Fubini

  • hi fubini,

    they can be manually jogged with the control pad. and yes incremental jogging with continuous mode works.

    i tried this code:

    $ACC_AXIS[1]=100


    $VEL_AXIS[1]=100



    if $out[315]==true then


       PTP{A1 30}


       if A1_POS == $AXIS_ACT.A1 then


    $out[315]=false


       endif


    endif


    do you think this should work??

  • Then it should work in a program as well. Have you checked that override ($OV_PRO) is not set to zero somewhere?


    BTW

    if A1_POS == $AXIS_ACT.A1 then


    is unsafe. Evaluating two REALs with "==" can fail. You should check with (maybe absolute) difference being smaller as small epsilon.


    Fubini

  • hey Fubini

    it seems like this program works that i have attached here. only the target position needs to be changed. I realised lots of things while working with this one, one of main thing was you can never call or write robot motion code in SPS sub, may be we can but i have no idea how. (if there is how can I do that can you suggest me those.)


    DEF  Module ( )


    E6AXIS A2_POS

    $VEL_AXIS[1]=100

    $ACC_AXIS[1]=100

    $VEL_AXIS[2]=100

    $ACC_AXIS[2]=100

    $VEL_AXIS[3]=100

    $ACC_AXIS[3]=100

    A2_POS= $AXIS_ACT

    $OV_PRO=50


    if $out[320]==true then

    A2_POS.A2 = 200

    PTP A2_POS

    if $Axis_Act.A2==200 then

    $out[320]= false

    endif

    endif


    END

  • ok i understood that, but what if i have to command a robot to move to certain location just by triggering one signal in T1 or T2 mode, i believe i need to manually run it there. otherwise robot wouldnt do anything even the signal is on.

    am i right?

Advertising from our partners