ABB 工业机器人错误处理小记
错误处理
在RAPID中PROC末端使用关键字ERROR
和ENDERROR
即可。
程序指令
name | description |
---|---|
RETRY | 程序指针回到触发错误的地方再试一次 |
RETURN | 程序指针跳出该routine并回到上一级引用该routine的下一行继续 |
TRYNEXT | 程序指针回到触发错误的程序的下一行继续 |
RAISE | 关键字出现在ERROR HANDLER中,且后无其他变量和数据,进入引用该routine的上一级routine的错误处理区域寻求处理 |
EXITCYCLE | 程序指针回到Main程序第一行 |
RAISE也可用在正常程序中,后添加errnum,表示触发自定义错误。
代码实例
实例程序读取组输入信号并计算,若输入信号为0,则等待1s后重试,重试3次后输入信号依旧为0,则程序继续往下执行。
1PROCtest_err()
2 count:=0;
3 reg1:=1/ginput1;
4 TPWrite "finish";
5
6 ERROR
7 IF ERRNO=ERR_DIVZERO THEN
8 IF count<3 THEN
9 count:=count+1;
10 waittime 1;
11 TPWrite "retry "Num:=count;
12 RETRY;
13 ELSE
14 TPWrite "retry more than 3";
15 TRYNEXT;
16 ENDIF
17 ENDIF
18 ENDPROC
代码来源:www.imrobotic.com/news/detail/22562
注意事项
使用错误处理时,程序指针最终不能停留在错误区,必须跳出
,否则会造成系统错误。