Gestión de archivos de registro de datos
Se proporciona un bloque de funciones, LogRecord, para escribir entradas de cadenas de texto en el archivo de registro de datos. Este bloque de funciones almacena la cadena de entrada en un búfer interno. Cuando el búfer alcanza el 80 % de capacidad, se traslada al archivo real del controlador. Puede forzar este mecanismo para guardar utilizando el bloque de funciones Dump.
Cuando se desconecta la alimentación, se pueden perder los datos del búfer interno o aumentar el tiempo de ciclo hasta que se vacíe el búfer.
AVISO |
PÉRDIDA DE DATOS |
oNo desconecte la alimentación del controlador hasta que toda la información del búfer interno se haya transferido al sistema de archivos actual. oSi los datos que está registrando son importantes para la aplicación, defina el tamaño del búfer interno en 1. |
El incumplimiento de estas instrucciones puede causar daño al equipo. |
Adición de un registro con el bloque de funciones LogRecord
Este bloque de funciones está disponible para registrar una cadena UNICODE en un registro específico:
Parámetros de entrada
Parámetro |
Tipo |
Comentario |
---|---|---|
xExecute |
BOOL |
La función se ejecuta en el flanco ascendente de esta entrada. NOTA: si xExecute se establece en TRUE en el primer ciclo de tarea en ejecución después de un reseteo en frío o en caliente, el flanco ascendente no se detecta. |
wsRecord |
WSTRING |
Esta cadena de texto UNICODE específica del usuario se escribe en el archivo de registro de datos. NOTA: El tipo WSTRING está disponible en la biblioteca Standard64.lib que se inserta automáticamente cuando se añade el gestor del registro de datos a la aplicación. |
Parámetros de salida
Parámetro |
Tipo |
Comentario |
---|---|---|
xDone |
BOOL |
Esta salida se establece en TRUE cuando el registro se guarda correctamente en el búfer interno sin mensajes de error. |
xBusy |
BOOL |
Esta salida permanece en TRUE mientras LogRecord está ocupado (hasta que se completa la transferencia al búfer). |
xError |
BOOL |
Esta salida se establece en TRUE cuando se produce un error (por ejemplo, cuando el búfer interno está lleno). |
eError |
Esta salida contiene el código de error cuando xError es TRUE: oNO_ERROR oINIT_ERROR oDUMP_ERROR oBUFFER_FULL_ERROR oFILE_FULL_ERROR oDUMP_INCOMPLETED oINPUT_ERROR oFILE_OPEN_ERROR oFILE_SETPOINTER_ERROR oFILE_WRITE_ERROR oFILE_CLOSE_ERROR |
NOTA: Si el registro supera la longitud configurada, se trunca.
Las salidas xDone y xError permanecen en TRUE siempre que xExecute sea TRUE. Cuando se establece xExecute en FALSE antes de que se establezca xDone o xError en TRUE (xBusy permanece en TRUE), se establece uno de cada en TRUE cuando se completa el bloque de funciones durante un ciclo de controlador de manera que la aplicación detecte este punto:
1 Un ciclo como Ex es FALSE.
El bloque de funciones LogRecord incluye una instancia que corresponde a cada archivo de registro de datos configurado.
NOTA: No declare de forma explícita una instancia del bloque de funciones, ya que la instancia se declara automáticamente. Si declara explícitamente una instancia del bloque de funciones, aparecerá un mensaje (Declaración de variable repetida [2 time variable declaration]) y el bloque de funciones dejará de estar operativo.
Añada el bloque de funciones a la POU y especifique la instancia del archivo de registro de datos adecuada (consulte Cómo añadir LogRecord).
Forzar una operación de almacenamiento con el método Dump
Puede utilizar el método Dump (un método puede considerarse una subfunción de un bloque de funciones, en este caso LogRecord) para forzar que los datos de la aplicación trasladen los recursos almacenados en el búfer interno al archivo real del sistema de archivos del controlador:
Parámetros
Entrada |
Tipo |
Comentario |
---|---|---|
xExecute |
BOOL |
La función de guardar se ejecuta en el flanco ascendente de esta entrada. NOTA: Cuando xExecute se establece en 1 en el primer ciclo de tareas del controlador, el flanco ascendente no se detecta. |
Salida |
Tipo |
Comentario |
---|---|---|
xDone |
BOOL |
Esta salida se establece en TRUE cuando los registros se guardan correctamente sin mensajes de error. |
xBusy |
BOOL |
Esta salida sigue siendo TRUE mientras Dump está ocupado (hasta que el archivo se ha escrito por completo). |
xError |
BOOL |
Esta salida se establece en TRUE cuando se detecta un error (por ejemplo, cuando el archivo de registro de datos está lleno). |
eError |
Esta salida contiene el código de error cuando xError es TRUE: oNO_ERROR oINIT_ERROR oDUMP_ERROR oBUFFER_FULL_ERROR oFILE_FULL_ERROR oDUMP_INCOMPLETED oINPUT_ERROR oFILE_OPEN_ERROR oFILE_SETPOINTER_ERROR oFILE_WRITE_ERROR oFILE_CLOSE_ERROR |
Consulte Cómo añadir un método de volcado para la implementación del método Dump.
Almacenamiento automático en el archivo de registro de datos
Cuando se utiliza el bloque de funciones LogRecord, el sistema traslada automáticamente los datos del búfer interno al archivo de registro de datos cuando este búfer se encuentra lleno en un 80 %. El bloque de funciones Dump permite forzar este desplazamiento antes de que se alcance el 80 %. Este límite del 80 % permite que comience el proceso de escritura antes de que se llene el búfer y mientras se añade un nuevo registro.
En esta tabla se muestra el número de registros en el que se almacena el archivo para un tamaño de búfer configurado determinado (80 % del tamaño de búfer redondeado al entero inferior más próximo):
Tamaño del búfer |
Límite del 80 % |
Comentario |
---|---|---|
1 |
1 |
La operación de almacenamiento en el archivo de registro de datos se activa en cuanto se añade un registro con un slot adicional disponible para un nuevo registro que llega durante este proceso de almacenamiento. |
2 |
1 |
La operación de almacenamiento en el archivo de registro de datos se activa cuando el búfer llega al 80 % con un slot adicional disponible para un nuevo registro que llega durante este proceso de almacenamiento. |
3 |
2 |
|
4 |
3 |
|
5 |
4 |
La operación de almacenamiento en el archivo de registro de datos se activa cuando el búfer llega al 80 % con más slots disponibles para nuevos registros que lleguen durante este proceso de almacenamiento. |
6 |
4 |
|
7 |
5 |
|
8 |
6 |
|
... |
|
En el caso de un almacenamiento explícito (Dump) o automático (80 %), el archivo de registro de datos se cierra después de cada registro (o grupo de registros) en el caso de que haya un fallo posterior de alimentación externa.