Hi…
You could use a combination of functions to achieve the result. I don’t know if this is the best way, as there are very good force and torque tools on the market, but here is a possible solution.
Use the ‘SearchL’ instruction, for the stop parameter use a persistent ‘pers1’ that will be set if the ‘GetMotorTorque’ function returns the torque you want.
Something like…
Create a service task…
! Task T_Service
MODULE ModuleServ
PERS bool pers1:=FALSE;
PROC main()
WHILE TRUE DO
WaitTime 0.1;
IF GetMotorTorque(2)>100 THEN
pers1:=TRUE;
ELSE
pers1:=FALSE;
ENDIF
ENDWHILE
ENDPROC
ENDMODULE
In the main task…
! Task T_ROB
MODULE ModuleMain
CONST robtarget P_1:=[[1460.18,0.03,891.70],[1.7032E-05,-1.20961E-05,-1,-3.00855E-05],[-1,0,-2,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];
CONST robtarget P_2:=[[1460.18,0.03,191.70],[1.7032E-05,-1.20961E-05,-1,-3.00855E-05],[-1,0,-2,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];
PERS bool pers1;
PROC main()
SearchL pers1,P_1,P_2,v100,tool0;
ENDPROC
ENDMODULE
Maybe it needs changes, but that’s the idea, test it and get feedback.