Gestión de archivos de registro de datos

Introducción

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:

G-SE-0001545.1.gif-high.gif

 

 

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

ERROR

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:

G-SE-0003662.1.gif

 

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:

G-SE-0001546.1.gif-high.gif

 

 

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

ERROR

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.