Reacción a errores en el programa de usuario
En el programa de usuario es posible reaccionar de forma precisa a los errores que aparecen. Para ello se dispone de los siguientes recursos:
-
Los valores de retorno RET_VAL de las instrucciones integradas:
Este valor se vuelve a calcular cada vez que se llama la instrucción.RET_VAL = -1 es un indicador de grupo para un error síncrono en una petición o en la comunicación con el módulo.
-
A cada petición le corresponde un bit de error _ERR como indicador de grupo de un error de la petición o de uno de sus predecesores en la cadena de peticiones:
El bit de errores se activa para una petición de escritura y sus peticiones de continuación si el módulo notifica un error de datos o si se produce un error de comunicación.En el caso de peticiones de lectura, el bit de error se establece para la petición afectada cuando se ha producido un error de comunicación.
La instrucción ABS_CTRL o ABS_CTRL_451 activa de nuevo los bits de error después del procesamiento de una petición. No obstante, estos deben ser retomados por el programa de usuario para una evaluación de errores.
-
La señal de realimentación DATA_ERR como indicador de grupo de un error que el módulo ha detectado durante una petición de escritura. La señal se vuelve a calcular en la siguiente petición de escritura.
-
La señal de realimentación OT_ERR (error de operador) como indicador de grupo de un error que el módulo ha detectado al iniciar un recorrido. El bit de error tiene que ser acusado mediante el OT_ERR_A = 1, una vez solucionada la causa.
-
La señal de realimentación DIAG se activa cuando el contenido del búfer de diagnóstico se ha modificado. Esta señal puede aparecer más tarde que las señales DATA_ERR y OT_ERR.
-
El error de comunicación JOB_ERR contiene el código de error si existe un problema de comunicación entre la instrucción y el módulo. El valor se recalcula después de procesar una petición y se crea en el DB del canal con la instrucción ABS_CTRL o ABS_CTRL_451 o en el DB de diagnóstico con la instrucción ABS_DIAG o ABS_DIAG_451.
-
La instrucción ABS_DIAG o ABS_DIAG_451 para leer el búfer de diagnóstico del módulo. Aquí es posible averiguar las causas de error para eventos síncrono y asíncronos.
-
Las alarmas de diagnóstico para la respuesta rápida a los eventos en el OB de la alarma de diagnóstico (por ejemplo, OB 82).
Evaluación de una alarma de diagnóstico en el programa de usuario
Las siguientes entradas en los datos locales del OB de la alarma de diagnóstico (por ejemplo, OB 82) son activadas por el módulo de posicionamiento. Los errores se introducen en el búfer de diagnóstico (clase de error 128).
|
Dirección |
Nombre |
Tipo |
Comentarios |
|---|---|---|---|
|
0.0 |
OB82_EV_CLASS |
BYTE |
Clase de evento e identificadores: B#16#38: evento saliente B#16#39: evento entrante |
|
1.0 |
OB82_FLT_ID |
BYTE |
Código de error (B#16#42) |
|
2.0 |
OB82_PRIORITY |
BYTE |
Clase de prioridad: B#16#1A en estado operativo RUN B#16#1C en estado operativo ARRANQUE |
|
3.0 |
OB82_OB_NUMBR |
BYTE |
Número de OB (82) |
|
4.0 |
OB82_RESERVED_1 |
BYTE |
Reservado |
|
5.0 |
OB82_IO_FLAG |
BYTE |
Módulo de entrada: B#16#54 |
|
6.0 |
OB82_MDL_ADDR |
INT |
Dirección básica lógica de la tarjeta en la que se ha producido el error. |
|
8.0 |
OB82_MDL_DEFECT |
BOOL |
Fallo del módulo |
|
8.1 |
OB82_INT_FAULT |
BOOL |
Error interno |
|
8.2 |
OB82_EXT_FAULT |
BOOL |
Error externo |
|
8.3 |
OB82_PNT_INFO |
BOOL |
Error de canal existente |
|
8.4 |
OB82_EXT_VOLTAGE |
BOOL |
Falta tensión auxiliar externa |
|
... |
no utilizado |
||
|
10.3 |
OB82_WTCH_DOG_FLT |
BOOL |
Activación de la vigilancia de tiempo |
|
... |
no utilizado |
||
|
12.0 |
OB82_DATE_TIME |
DATE_AND_TIME |
Fecha y hora en la que se ha solicitado el OB |