Instrucciones avanzadas
9.9 Recetas y registros de datos
Si hay registros vacíos en el archivo de registro circular, la instrucción DataLogWrite escribe el
siguiente registro vacío disponible. Si todos los registros están llenos, la instrucción
DataLogWrite sobrescribe el registro más antiguo.
ATENCIÓN
Las operaciones de creación de registro deben finalizarse antes empezar una operación
de escritura de registro.
Las operaciones de creación de archivos de registro DataLogCreate y DataLogNewFile se
extienden a lo largo de varios ciclos. El tiempo real requerido para la creación de un archivo de
registro depende de la estructura y del número de registros. La lógica de programa debe
observar y capturar la transición del bit DONE al estado TRUE, que indica que ha finalizado la
creación del archivo de registro. Si se ejecuta una instrucción DataLogWrite antes de finalizar
una operación de creación de registro, la operación de escritura no podrá escribir un registro
nuevo.
Nota
Efecto de los registros en la memoria interna de la CPU
Cada escritura en el registro consume como mínimo 2 KB de memoria. Si el programa escribe
pequeñas cantidades de datos con frecuencia, consume al menos 2 KB de memoria en cada
escritura. Sería mejor acumular los pequeños elementos de datos en un bloque de datos (DB) y
escribir el bloque de datos en el registro en intervalos menos frecuentes.
Si el programa escribe muchas entradas en el registro con mucha frecuencia, es aconsejable
utilizar una tarjeta de memoria SD extraíble.
ATENCIÓN
Potencial de pérdida de datos de registros durante un fallo de alimentación de la CPU
Si se produce un fallo de alimentación durante una operación DataLogWrite incompleta, se
podría perder el registro que se estuviera transfiriendo al registro.
Tabla 9-209
Valores de ERROR y STATUS
ERROR
STATUS (W#16#)
0
0000
0
0001
0
7000
0
7001
0
7002
1
8070
1
8092
1
80B0
498
Descripción
No hay error
Indica que el registro está lleno: Cada registro se crea con un número máximo
específico de registros. Se ha escrito el último registro del número máximo. La
siguiente tarea de escritura sobrescribirá el registro más antiguo.
Llamada sin flanco REQ: BUSY = 0, DONE = 0
Primera llamada con flanco de REQ (en curso): BUSY = 1, DONE = 0
Llamada N
(en curso): BUSY = 1, DONE = 0
ª
Se está utilizando toda la memoria de instancia interna.
El registro no existe.
El archivo de registro no está abierto (solo para modo de abertura explícita).
Controlador programable S7-1200
Manual de sistema, V4.5 05/2021, A5E02486683-AO