ABB
机器人的错误处理
ABB
机器人的错误处理
errnum
数据类型
errnum
用于描述在执行过程中,发生的所有可恢复的错误。例如程序执行时,被零除。
如果机器人程序执行过
程中检测到一个错误,
错误非致命,
可以被错误处理程序处理。
这类错误的典型例子是过大的值或者被零除。
errnum
类型的系统变量
errno
,根据不同的错误性质,分配不同的值。错误处理程序可以通过读取这个变量来纠正错误,然后
执行程序可以正确的方式继续运行。
错误也可以通过使用
RAISE
指令在程序中创建。错误处理程序通过指定一个能检测到该特定类型的错误号(范围
1-90
内或通过
BookErrNo
指令预订)作为
RAISE
的参数。
示例:
reg1 := reg2 / reg3;
...
ERROR
IF
ERRNO = ERR_DIVZERO
THEN
reg3 := 1;
RETRY;
ENDIF
如果
REG3= 0
,机器人除法时检测到发生的错误。这个错误可以被检测并通过分配
REG3
的值为
1
予以纠正。因此
除法可再次被执行,程序可以继续执行。
CONST errnum machine_error := 1;
...
IF di1=0 RAISE machine_error;
...
ERROR
IF ERRNO=machine_error RAISE;
机器人通过信号
DI1
检测出现的错误。
跳转到错误处理程序。
调用的错误处理程序调,
纠正这个错误。
machine_error
作为一个常数,用来让错误处理程序确切知道发生的是哪种错误的类型。
预定义的错误类型
系统变量
ERRNO
可以用于读取最后一次发生的错误。
许多预定义常量可以用来确定发生的错误类型。
(
ABB
编程手册
1179 page
)
关于
raise