ABB机器人调用例行程序方法
Posted xyb617
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ABB机器人调用例行程序方法相关的知识,希望对你有一定的参考价值。
方法一:直接使用例行程序名调用例行程序
太过简单,不加以描述
方法二:%调用
%“proc name”%调用例行程序
代码演示:
MODULE CommonMain PROC main() VAR num pathnum:=0; VAR num targetnum:=0; VAR num targettest:=10; %"MoveRail"% 0,0; !例行程序普通参数测试 %"MoveRail"% 0exact,0; !例行程序带开关参数测试 %"MoveRail"% 0,0 arget:=targettest; !例行程序带可选参数测试 %"Rob1_Side"+NumToStr(pathnum,0)+"_"+NumToStr(targetnum,0)%; !常见路径样式调用测试 ENDPROC PROC MoveRail(num movedistanceswitch exact,num transdisswitch Rhomevar num target) IF Present(exact) THEN TPWrite"2,exact"; ELSE IF Present(target) THEN TPWrite"3,target:="Num:=target; ELSE TPWrite"1,no exact"; ENDIF ENDIF ENDPROC PROC Rob1_Side0_0() TPWrite"Rob1_Side0_0"; ENDPROC ENDMODULE
错误处理,可能存在加载错误
ERROR TEST ERRNO case ERR_LOADED; !报错处理 default: !正常
方法三:CallByVar指令
代码演示:
PROC CallPath(num TrackDistance, string PathNameswitch home) VAR num NumLen:=0; VAR string ProcName; VAR string NumName; VAR num CGrdSpd:=0; VAR bool Check:=FALSE; VAR num MinTrack:=0; IF StrMatch(PathName,1,"Up")<(StrLen(PathName)+1) THEN MinTrack:=MinTrack_up; ELSEIF StrMatch(PathName,1,"Mid")<(StrLen(PathName)+1) THEN MinTrack:=MinTrack_mid; ELSEIF StrMatch(PathName,1,"Down")<(StrLen(PathName)+1) THEN MinTrack:=MinTrack_down; ENDIF NumLen:=StrLen(PathName)-DivideLen; ProcName:=StrPart(PathName, 1, DivideLen); NumName:=StrPart(PathName,DivideLen+1,NumLen); Check:=StrToVal(NumName, ProcNumber); IF TrackDistance+wobj_x_displace<MinTrack THEN rHome; ELSE IF Present(home)=TRUE THEN MoveRail TrackDistance, RailSpeed, wobj_x_displaceRhome; ELSE MoveRail TrackDistance, RailSpeed, wobj_x_displace; ENDIF bladeWobj.uframe.trans.x:=(CarriagePositionActualCom/100-wobj_x_displace); CallByVar ProcName, ProcNumber; ENDIF ENDPROC
以上是关于ABB机器人调用例行程序方法的主要内容,如果未能解决你的问题,请参考以下文章