ABB工业机器人程序反向处理器解析
声明:本媒体部分图片、文章来源于网络,
版权归原作者所有,如有侵权,请与我联系删除
声明:本媒体部分图片、文章来源于网络,
版权归原作者所有,如有侵权,请与我联系删除
反向处理器
步退执行
描述
有时执行程序可后退一项指令。步退执行时遇到的有效常规限制如下:
•步退时无法退出IF、FOR、WHILE 和 TEST 语句。
•到达某一例行程序的开头时将无法以步退方式退出该例行程序。
•运动设置指令和其他可影响运动的指令不能向后执行。若试图执行这样的指令,
企业程序使用如下:
MODULEZoneControl() 干涉区模块
CONST stringT_TXT_INTERLOCK{4}:=["Waiting For Interlock zone "," Be Free","Wrong Interlock Zone Number : ",". Please check again...."]; !
PERS NUM nZoneBusTime:=0.6;
PERS num NumZone
PERS string ZoneInfo
PROC EnterZone(numNumZone,string ZoneInfo)
VAR string szstring;
WHILE ( NumZone>32 OR NumZone<1) DO szstring:=T_TXT_INTERLOCK{3}+ValToStr(NumZone)+T_TXT_INTERLOCK{4};
SetDoPrgFault;
SetGO GoRobInfo,21;
UiMsgBox\Header:="21-Zone Number Out OfRange",szstring\Buttons:=BtnOkCancel\Icon:=icon Error;
ResetDoPrgFault;
SetGOGoRobInfo,0;
ENDWHILE
TEST NumZone !NumZone =16
CASE 16: !
TakeInterlockNumZone,DiZone16Free,DoReqZone16,DoOutOfZone16;
TakeInterlock(NUM NumZone,VAR signaldi DiFreeZ,VAR signaldo
DoReqZ,VARsignaldo DoOutOfZ)程序,
......省略其他case
ENDTEST
BACKWARD
ExitZone NumZone;
ENDPROC
LOCAL PROC TakeInterlock(NUM NumZone,VAR signaldi DiFreeZ,VAR signaldo DoReqZ,VARsignaldo DoOutOfZ)
VAR stringszstring;
.......
Set DoReqZ;
IF DiFreeZ=0 THEN
TPwrite"Waiting For Zone "+ValToStr(NumZone)+" Be Free";
ENDIF!如果DiFreeZ=0,
WaitUntilDiFreeZ=1;
Reset DoOutOfZ;
Reset DoReqZ;
!Recheck Zone Free
WaitUntilDiFreeZ=1;
TPWrite"Robot Move Into Zone "\num:=NumZone;
ENDPROC
PROC ExitZone(numNumZone)
VAR stringszstring;
.........
TEST NumZone
CASE 1:
SetDODoOutOfZone1,1;
.....
DEFAULT:
........
ENDTEST
TPWrite"Robot Move Out Zone "\num:=NumZone;
TPWrite "Zone"+ValToStr(NumZone)+" Free";
BACKWARD !
TPWrite "Becareful!! Robot Move intoZone "+ValToStr(NumZone)+" Again!";
TPWrite"BackWard Processing - Start Remove Into Zone "+ValToStr(NumZone);
EnterZoneNumZone,"Back to Zone"+ValToStr(NumZone);
ENDPROC
ENDMODULE
BACKWARD 步退处理机制
程序执行至机器人退出干涉区ExitZone(1)时(干涉信号释放),此时发现p20点需要重新示教,或位置需要修改,或者需要执行步退。
如果ExitZone(1)里面没有写BACKWARD,点击步退按钮机器人则不会跳出ExitZone(1)程序去p20点。如果手动将指针选择p20点,实际p20的位置在干涉区以内,这样会很危险(干涉信号已释放),同时跳出程序也很繁琐,指针容易丢失,导致程序在自动情况下,很难再次启动。如果使用BACKWARD。当点击后退时,机器人优先按顺序执行BACKWARD下面的程序(再次请求进入干涉区),执行完成以后跳出ExitZone(1)程序,执行p20点。操作结束以后机器人依然可以继续运行。
如果正常运行或者使用步进时,机器人将不会执行BACKWARD下面的程序。
机器人步退执行ExitZone(1)时,按下面的程序顺序执行,写屏。
“Becareful!! Robot Move into Zone 1,!机器人再次返回进入干涉区,在后退到p20点。
BACKWARD
TPWrite"Becareful!! Robot Move into Zone "+ValToStr(NumZone)+"Again!";
TPWrite "BackWard Processing -Start Remove Into Zone "+ValToStr(NumZone);
EnterZone NumZone,"Back toZone"+ValToStr(NumZone);
更多ABB机器人咨询请点击:http://www.abb-lndustrialrobots.gongboshi.com/