# Update TCP position from Rapid

Options
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

• Answer ✓
Options
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
• Answer ✓
Options
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.
• Answer ✓
Options
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.
• Answer ✓
Options
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

• Options
Hallo, you might write a routine - triggered from PLC - where you read the current position (CRobT) and save in your original saved position.
• edited October 2023
Options
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
• Options
Thanks again guys for great answers, I think I have what I need for now!