7.4 Ejemplo de creación de un error generado asíncronamente
Acerca de este ejemplo
En este ejemplo, se inicia un proceso cambiando do_myproc a 1. A continuación,
se supervisa el proceso, y la señal di_proc_sup cambia a 1 si el proceso falla.
Si se produce un fallo en el proceso durante un movimiento del robot, una
interrupción llama a una rutina TRAP. La instrucción ProcerrRecovery detiene
el movimiento y genera el error ERR_PATH_STOP en todos los programas de
tarea que tengan sus movimientos sincronizados.
El programa de tarea T_HANDLEROB debe tener un gestor de errores que reinicie
el movimiento cuando el error haya sido resuelto en la tarea de programa
T_PROCROB. Para ello se requiere solo una instrucción, StartMoveRetry.
Programa de tarea T_PROCROB
Manual de aplicaciones - MultiMove
3HAC050961-005 Revisión: F
7 Recuperación en caso de errores de RAPID
7.4 Ejemplo de creación de un error generado asíncronamente
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
PROC my_proc_off()
SetDO do_myproc, 0;
IDelete proc_sup_int;
ENDPROC
© Copyright 2004-2021 ABB. Reservados todos los derechos.
Continúa en la página siguiente
91