RobotStudio event

Update TCP position from Rapid

Hi! I need help to trigg "Update position" in rapid. We have a customer who want's to be able to jog the robot to a saved position, then fine tune it from the pendant. Instead of pressing the "Update postion" button in the pendant they want to do this from the HMI (For audit trail reasons). I been looking in robot studio, and the documentation for a solution but haven't found anything. Is there a function i can use to trigg update position? 
I've been in contact with abb support who said this can be done but haven't gotten much help on how to do it.  

Best Answers

  • Braap
    Braap
    Answer ✓
    Hey. Just put integer for X,Y and Z Coordinates (maybe Rotation also) as an integer in your Robot -> PLC Interface and set this signals on a variable and correct them in the offset.

    We use this for Position correction on Welding pins with the Robot.

    https://imgur.com/a/DfhKHgo
    https://imgur.com/a/ulmocKK

    Maybe this can help you out :)

    Greets

    Robotic Software Engineer
  • mandolas
    mandolas
    Answer ✓
    To complement the solution presented by colleague Braap, I would add a calculation to define the position more precisely.
    See the Example, with this calculation it is even possible to change the tool and objects used, very useful for changing different points or using reference points for different objects.
    PERS robtarget P_01:=[[0,0,0],[1,0,0,0],[-1,-1,-2,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];
    PERS robtarget P_02:=[[0,0,0],[1,0,0,0],[-1,-1,-2,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];
    
    ...
    PROC calib()
        P_01:=CalcRobT(CalcJointT(RelTool(P_01_01_01,0+nX_Corr,0+nY_Corr,0+nZ_Corr\Rx:=0\Ry:=10\Rz:=5),tool1\WObj:=wobj1),tool1\WObj:=wobj1);
        P_02:=CalcRobT(CalcJointT(RelTool(P_01_01_01,10+nX_Corr,100+nY_Corr,0+nZ_Corr\Rx:=0\Ry:=0\Rz:=5),tool1\WObj:=wobj1),tool2\WObj:=wobj2);
    ENDPROC
    ...
    
    MoveJ P_01,v2000,Fine,tool1\WObj:=wobj1;
    MoveJ P_02,v2000,Fine,tool2\WObj:=wobj2;
    Calculating the position before use makes it possible to carry out prior treatment in a separate routine and prevent the new position from being reached.
  • mandolas
    mandolas
    Answer ✓
    mack10 said:
    Thank's guys! Really helpfull answers, but i have a question. Is there a benefit to adding an offset to a position vs using cRobT and then save that position to my position constant?
    The benefit is that you can maintain a position as a reference, in case the operator saves a wrong position.
    If this is the case, it will no longer be possible to find the original position and therefore all positions that depend on it will be lost.
  • Braap
    Braap
    Answer ✓
    mandolas said:
    mack10 said:
    Thank's guys! Really helpfull answers, but i have a question. Is there a benefit to adding an offset to a position vs using cRobT and then save that position to my position constant?
    The benefit is that you can maintain a position as a reference, in case the operator saves a wrong position.
    If this is the case, it will no longer be possible to find the original position and therefore all positions that depend on it will be lost.
    Wouldnt find better words like that.

    Pro is that you will never change the original position. And if u visualize it good you will see Original Cords + Offset in X,Y,Z. So its better for everyone.

    I hat the feature with direct Position optimization.. and it went into a brutal chaos because the people didnt look up what Value has been changed in the past and had a huge crashrisk for the robot...

    Robotic Software Engineer

Answers

  • Hallo, you might write a routine - triggered from PLC - where you read the current position (CRobT) and save in your original saved position.
  • mack10
    mack10
    edited October 2023
    Thank's guys! Really helpfull answers, but i have a question. Is there a benefit to adding an offset to a position vs using cRobT and then save that position to my position constant?
    Post edited by mack10 on
  • Thanks again guys for great answers, I think I have what I need for now!