Ok, so here is my issue that I can't wrap my head around.
Robot is in a loop. Tool_data[1] is set to the tool TCP. When the program starts, it goes to a position, then starts a loop where it will move to another position. When it gets to that position, it's A value is off by double the A value in tool_data[1], and when it returns to the original position (which has not been altered) it is also off by this new A offset. The offset is ALWAYS double my tool data, even when I change it to and obscure number.
The actual positions (frames) remain unchanged, the tool and base remain unchanged throughout, but when it comes back, the $POS_ACT does not match the position it just went to.
If I reset the program, all is well for the very first round, then it's off again after the first cycle through the loop. I have stripped away as much extra code as possible to force the issue, and it is below:
DEF MAIN( )
GLOBAL INTERRUPT DECL 3 WHEN $STOPMESS==TRUE DO IR_STOPM ( )
INTERRUPT ON 3
BAS (#INITMOV,0 )
PTP $POS_ACT
$TOOL=TOOL_DATA[1]
$ADVANCE=1
PTP HOVER_POS
;Main Loop
LOOP
IF TRUE THEN
LIN PICK_POS
WAIT SEC PICK_WAIT
LIN HOVER_POS
CLEAR_POS=APP_POS
CLEAR_POS.Z=HOVER_POS.Z
PTP CLEAR_POS
PTP HOVER_POS
ENDIF
ENDLOOP
END
Display More
I'm at an utter loss here. Any ideas out there?