Hello,
Since Fanuc Doesn't have A TCP Position output. There is some Bglogic I found that Was able to Output real time TCP position.
There are variables to monitor TCP speeds from the robot though brute force. By wright System Variables to group outputs. keep in mind the robot outputs in MM and can only send an max of one unsigned integer. so what I did was scaled it into CM via*10 and send it over. I ended up not using W.P.R. A small issue is, these values only update when a program is ran, not when being Jogged.
(Although if you wanted to monitor these values and compare them to last time they were update, you can catch maintenance driving the robot around and trying to start it up in a different location
1: ;
2: R[20:X POS OUT]=($SCR_GRP[1].$MCH_POS_X) ;
3: R[21:Y POS OUT]=($SCR_GRP[1].$MCH_POS_Y) ;
4: R[22:Z POS OUT]=($SCR_GRP[1].$MCH_POS_Z) ;
5: R[23:W POS OUT]=($SCR_GRP[1].$MCH_POS_W) ;
6: R[24:P POS OUT]=($SCR_GRP[1].$MCH_POS_P) ;
7: R[25:R POS OUT]=($SCR_GRP[1].$MCH_POS_R) ;
8: ;
9: R[20:X POS OUT]=R[20:X POS OUT]*10 ;
10: R[21:Y POS OUT]=R[21:Y POS OUT]*10 ;
11: R[22:Z POS OUT]=R[22:Z POS OUT]*10 ;
12: R[23:W POS OUT]=R[23:W POS OUT] ;
13: R[24:P POS OUT]=R[24:P POS OUT] ;
14: R[25:R POS OUT]=R[25:R POS OUT] ;
15: ;
16: ;
17: GO[3]=R[20:X POS OUT] ;
18: GO[4]=R[21:Y POS OUT] ;
19: GO[5]=R[22:Z POS OUT] ;
20: GO[6]=R[23:W POS OUT] ;
21: GO[7]=R[24:P POS OUT] ;
22: GO[8]=R[25:R POS OUT] ;