🍉 加载中...


ABB 工业机器人错误处理小记

2 minute read

错误处理

在RAPID中PROC末端使用关键字ERRORENDERROR即可。

程序指令

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

注意事项

使用错误处理时,程序指针最终不能停留在错误区,必须跳出,否则会造成系统错误。