PacDrive 3 proporciona un concepto de diagnóstico de tres capas para las bibliotecas. Este concepto es válido para las bibliotecas de tecnología o del módulo del sistema PacDrive 3 (por ejemplo, la biblioteca PD_PacDrive.lib) y usa enumeraciones para la codificación del diagnóstico.
En principio, la información de diagnóstico tiene las siguientes capas:
Información general sobre la excepción. No se necesitan conocimientos específicos sobre la funcionalidad POU.
Mensajes de diagnóstico y de estado específicos de POU (parte 1): Información detallada sobre la activación desde el origen de los mensajes de diagnóstico o estado.
Mensajes de diagnóstico y de estado específicos de POU (parte 2): Información detallada y dinámica sobre la activación desde el origen de los mensajes de diagnóstico o estado.
Esta información cambia durante el tiempo de ejecución (por ejemplo, información sobre el estado de los parámetros de entrada). Esta salida de diagnóstico es opcional para las POU.
El concepto de diagnóstico para la familia de bibliotecas de PacDrive 3 ofrece las siguientes ventajas:
Visualización online de los mensajes de diagnóstico
Precisión detallada de los eventos de diagnóstico por medio de la disponibilidad de los códigos de diagnóstico
Descripción general del estado o condición de excepción de una POU
Soluciones pertinentes para corregir las causas de condiciones de excepción
Mensajes de diagnóstico enumerados para facilitar la compatibilidad multilingüe para las pantallas de la HMI
La salida de diagnóstico q_etDiag del tipo GD.ET_Diag proporciona información de diagnóstico independiente de la biblioteca (por ejemplo, InputParameterInvalid
). La información puede recomendar una solución para la causa del diagnóstico.
En función del valor de GD.ET_Diag, es una descripción de estado o un mensaje de excepción. Un valor distinto a GD.ET_Diag.Ok corresponde a un mensaje de diagnóstico.
La enumeración GD.ET_Diag y sus elementos se encuentran en la biblioteca PD_GlobalDiagnostics. También contiene una función de conversión para la enumeración GD.ET_Diag.
El espacio de nombre predeterminado de la biblioteca PD_GlobalDiagnostics es GD. Las POU, las estructuras de datos, las enumeraciones y las constantes se deben direccionar con este espacio de nombres.
La información de diagnóstico de las POU está diseñada de manera que se puede expresar una condición de excepción o una condición interna (estado) durante el funcionamiento normal de la POU (por ejemplo, WaitForStart). La información (estado o condición de excepción) se notifica a través de la misma salida (q_etDiagExt). La salida q_etDiag indica si se está notificando un estado o una excepción.
Los bloques de funciones tienen tres salidas q_etDiag, q_etDiagExt y q_sMsg opcional. Las salidas se muestran agrupadas; es decir, definidas en la POU una tras otra.
Utilizando la estructura de POU esquemática, a continuación se muestra un ejemplo de un bloque de funciones:
Salida |
Tipo de datos |
Significado |
---|---|---|
q_etDiag |
GD.ET_Diag |
Instrucción general sobre el diagnóstico (por ejemplo,
NOTA: Si es posible, GD.ET_Diag contiene códigos de diagnóstico formulados generales (por ejemplo,
DriveConditionInvalid e InputParameterInvalid ). Cada elemento de la enumeración está representado no sólo por un nombre, sino también por un valor. Luego, la HMI puede utilizar este valor de manera que se pueda seguir manteniendo el esfuerzo que supone la traducción en una solución neutra por lo que respecta al idioma.
|
q_etDiagExt |
ET_DiagExt |
Información de diagnóstico ampliada codificada en un valor de la función o servicio que se realizan en la POU. Por ejemplo, se puede mostrar q_etDiagExt proporciona el valor numérico que sirve como índice de una indicación más detallada de la causa de la salida y se puede utilizar posteriormente como un índice en una conjunto multilingüe de mensajes de visualización. |
q_sMsg |
STRING[80] |
Mensaje opcional desencadenado por un evento que ofrece información más detallada sobre la condición de diagnóstico (por ejemplo, q_sMsg proporciona una cadena dinámica que contiene información variable sobre el diagnóstico en inglés.
q_sMsg se modifica en tiempo de ejecución. Por ejemplo, por medio de la excepción Durante el funcionamiento normal de las POU (q_etDiag=GD.ET_Diag.Ok), q_sMsg puede proporcionar información referente al estado (por ejemplo, el tiempo de sellado restante). |
Ejemplo de información de diagnóstico:
Las funciones también tienen las salidas q_etDiag, q_etDiagExt y q_sMsg opcional.
El resultado de la función lo proporciona el valor de retorno directo en caso de un resultado. Si una función tiene varios resultados, el valor de retorno directo es una estructura que contiene los resultados.
De manera alternativa, los resultados de la función se pueden devolver a través de diversas salidas; en este caso, el valor de retorno directo de la función es un valor BOOL aleatorio que no se puede interpretar.
Lea el valor q_etDiag para asegurarse de que se ha llamado correctamente a la función. El valor de retorno directo de la función no contiene esta información.
Si el valor de retorno es <> GD.ET_Diag.Ok, existe una excepción. Las funciones se procesan por completo en la tarea de llamada para poder evaluar su estado y notifican si el procesamiento ha sido correcto por medio de q_etDiag y q_etDiagExt.