Típicamente, un DB se almacena tanto en memoria de carga (flash) como en memoria de
trabajo (RAM). Los valores de arranque (valores iniciales) siempre se almacenan en
memoria de carga, y los valores actuales siempre se almacenan en memoria de trabajo.
READ_DBL se puede utilizar para copiar un conjunto de valores de arranque de la memoria
de carga a los valores actuales de un DB en memoria de trabajo que se referencia mediante
el programa. WRIT_DBL se puede utilizar para actualizar los valores de arranque guardados
en la memoria de carga interna o en una Memory Card a partir de los valores actuales de la
memoria de trabajo.
Nota
Evite excesivas operaciones de escritura en memoria flash (WRIT_DBL)
La instrucción WRIT_DBL realiza operaciones de escritura en una memoria flash (memoria
de carga interna o Memory Card). WRIT_DBL debe utilizarse para actualizaciones poco
frecuentes según cambia un proceso de producción.
Antes de poder utilizar estas instrucciones es necesario que los bloques de datos utilizados
por READ_DBL y WRIT_DBL hayan sido creados previamente por STEP 7. Si el DB de
origen se crea como tipo "estándar", el DB de destino también debe tener el tipo "estándar".
Si el bloque de datos de origen se crea como tipo "optimizado", el bloque de datos de
destino también debe tener el tipo "optimizado".
Si los DB son estándar, se puede especificar un nombre de etiqueta o un valor de P#. El
valor de P# permite especificar y copiar cualquier número de elementos del tamaño
especificado (Byte, Word o DWord). De este modo, se puede copiar todo un DB o parte de
él. Si los DB están optimizados, solamente se puede especificar un nombre de variable; no
se puede utilizar el operador P#. Si se especifica un nombre de variable para los DB
estándar u optimizados (o para otros tipos de memoria de trabajo), entonces se copia lo que
referencie este nombre de variable, sea lo que sea. Puede ser un tipo definido por el
usuario, una matriz o un elemento básico. El tipo Struct sólo puede ser utilizado por estas
instrucciones si el DB es estándar y no optimizado. Se debe utilizar un tipo definido por el
usuario (UDT) si es una estructura en memoria optimizada. Sólo un tipo definido por el
usuario garantiza que los "tipos de datos" sean exactamente los mismos para las
estructuras de origen y destino.
Nota
Uso de estructuras (tipo de datos Struct) en un DB "optimizado"
Al usar un tipo de datos Struct con DB "optimizados", primero debe crearse un tipo de datos
definido por el usuario (UDT) para la Struct. Después, se configuran los DB de origen y de
destino en el UDT. El UDT asegura que los tipos de datos dentro de la Struct sean
coherentes para ambos DB.
Para DB "estándar", se usa la Struct sin crear un UDT.
READ_DBL y WRIT_DBL se ejecutan de forma asíncrona respecto al ciclo del programa. El
procesamiento se extiende en varias llamadas de READ_DBL y WRIT_DBL. La tarea de
transferencia de DB se inicia llamando con REQ = 1 y a continuación controlado las salidas
BUSY y RET_VAL para determinar cuándo se ha completado la transferencia de datos y si
lo ha hecho correctamente.
Controlador programable S7-1200
Manual de sistema, 04/2012, A5E02486683-06
Instrucciones avanzadas
8.8 Control de bloques de datos
349