KUKA loop and move in Z

  • then don't do it in DAT file, make changes to inline forms in SRC using HMI editor.


    if your program already uses base 18, then keep it as base 18. this can be the working base.

    but remove anything that alters base 4. this could be your reference base data (measured).

    then at the begin of your program copy base 4 to base 18 so you always start with clean slate bit never modify reference.... you can manipulate base 18 all you like. next program start will bring it to initial value again.


    also set $ADVANCE to 1 so you can see changes early.

    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

  • Hi there again,


    I have modified my code already and I can already make it turn in the same direction all the time, for this I had to set the points manually and erase the base_data thing. Now, since we weren't able to manage with the base_data thing the idea is to program every single one of the points in the seams (not efficient but at least we get it to work).


    So, that doubt is still there. I have written:

    BASE_DATA[14]=BASE_DATA[18]

    *- Here all the CIRC AND LIN moves I need (let's say we have a 200mm radius circle)

    BASE_DATA[14]=BASE_DATA[18]+{X 0,Y 0,Z 100,A 0,B 0,C 0}

    *-Here same moves as above(which is supposed to be done shifted 100m)


    (Of course I have modified in the controller inline form All of the bases in the movements to base 4).

    The problem I get now Is already at the very first movement with an error that says the robot can not reach that position which I now it can because when I use BASE18 it does.


    In case this isn't enough I can upload the code later on since I'm not close to the robot at the moment.


    Thanks

  • i don't know what your expectations are but you claim to use base 4 in your motions and modify base 14...!? robots are machines and they do exactly what they are told.


    and you cannot add frames like that.


    and you really need to post messages as they are. exactly as they are. read pinned topic READ FIRST.


    also base is just a variable but value is important too. of course robot cannot reach some point if base is to far or if used point needs robot joints to turn wrong way etc. this is what status and turn are for.


    and this is why formal training is highly recommended. forum is not replacement for it

    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

  • sorry, i misspelled a couple of things. I am using base 4, not 14. there is no 14 in my code and I am also not using a +, I am using the geometric operator ':'

  • I apologize,


    What I meant is that I wrote that, not copied it from the code so I, at that moment wrote it wrong.


    It is actually:

    BASE_DATA[4]=BASE_DATA[18]

    *- Here all the CIRC AND LIN moves I need (let's say we have a 200mm radius circle)

    BASE_DATA[4]=BASE_DATA[18]:{X 0,Y 0,Z 100,A 0,B 0,C 0}

    *-Here same moves as above(which is supposed to be done shifted 100m)


    Again, sorry.

  • well, sorry from my side as well. i was answering without checking what you wrote originally. i just actually read your posts and realize now that your base is not stationary - you are using kinematically coupled positioner that is moving during process. simple frame offset of the base as discussed in this thread will not be suitable here since your base is kinematically coupled and keeps on changing (geometric operator does add offset but this is only instantaneous change). this is why adding offsets has no effect.


    for this to work in your case, you may want to try different approach such as recalculate points or modify frame in which positioner is etc.

    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

  • This method for recalculating points is what I am going to do, I have the circle split in two parts and I program them like:


    -XP1 aproximation point

    -XP2 positioning of first point

    -XP3 and XP4 each with a rotation of 90º and recalculating points (first circ movement)

    -XP5 and XP6 same as avobe for second circ movement

    -XP7 for Z movement (let's say 5mm)


    and then start over with new points with different Z values.

    Since they are A LOT of values I wrote a small C code program that will do both .dat and .src for me depending on the parameters I input such as radius, number of seams, start position...


    By the way, one thing I realized is that when I was trying to do this movements I first configured the rotations of the turntable as:

    180º->90º->0->-90º->-180º

    this works but then in the next cycle when i move with lin in Z to do a new seam take into account (if someone tries this) that the position of the turntable has to go again to 180, just in the dat, the turntable will not move but if it is left at -180 when it tries to go to 0 through +90 the rotation is not going to be as desired.


    Thanks for the help. I have everything working now

Advertising from our partners