7 RAPID error recovery
7.4. Example of creating asynchronously raised error
3HAC021272-001 Revision: H94
© Copyright 2004-2008 ABB. All rights reserved.
7.4. Example of creating asynchronously raised error
About this example
In this example, a process is started by setting
do_myproc to 1. The process is then
supervised and the signal
di_proc_sup is set to 1 if the process fails.
If a process failure occurs during a robot movement, an interrupt calls a trap routine. The
instruction
ProcerrRecovery will stop the movement and raise the error
ERR_PATH_STOP in all task programs with synchronized movements.
The T_HANDLEROB task program must have an error handler that restarts the movement
when the error has been resolved in the T_PROCROB task program. This only requires one
instruction,
StartMoveRetry.
T_PROCROB task program
VAR intnum proc_sup_int;
PROC main()
...
SyncMoveOn, sync1, motion_tasks;
my_proc_on;
MoveL p101\ID:=10, v100, z10, gun1 \WObj:=wobj_handlerob;
MoveL p102\ID:=20, v100, fine, gun1 \WObj:=wobj_handlerob;
my_proc_off;
SyncMoveOff sync2;
...
ERROR
IF ERRNO = ERR_PATH_STOP THEN
my_proc_on;
StartMoveRetry;
ENDIF
ENDPROC
TRAP iprocfail
my_proc_off;
ProcerrRecovery \SyncLastMoveInst;
RETURN;
ENDTRAP
PROC my_proc_on()
SetDO do_myproc, 1;
CONNECT proc_sup_int WITH iprocfail;
ISignalDI di_proc_sup, 1, proc_sup_int;
ENDPROC
Continues on next page