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

错误处理

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

程序指令

name description
RETRY 程序指针回到触发错误的地方再试一次
RETURN 程序指针跳出该routine并回到上一级引用该routine的下一行继续
TRYNEXT 程序指针回到触发错误的程序的下一行继续
RAISE 关键字出现在ERROR HANDLER中,且后无其他变量和数据,进入引用该routine的上一级routine的错误处理区域寻求处理
EXITCYCLE 程序指针回到Main程序第一行

RAISE也可用在正常程序中,后添加errnum,表示触发自定义错误。

代码实例

实例程序读取组输入信号并计算,若输入信号为0,则等待1s后重试,重试3次后输入信号依旧为0,则程序继续往下执行。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
PROCtest_err()
       count:=0;
       reg1:=1/ginput1;
       TPWrite "finish";

   ERROR
       IF ERRNO=ERR_DIVZERO THEN
           IF count<3 THEN
               count:=count+1;
               waittime 1;
               TPWrite "retry "Num:=count;
               RETRY;
           ELSE
               TPWrite "retry more than 3";
               TRYNEXT;
           ENDIF
       ENDIF
   ENDPROC

代码来源:www.imrobotic.com/news/detail/22562

注意事项

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