Descripción
La instrucción "Rellenar área" rellena un área de memoria (área de destino) con el contenido de un área de memoria diferente (área de origen). La instrucción "Rellenar área" copia el contenido del área de origen en el área de destino hasta que el área de destino quede escrita por completo. La operación de copia se realiza por orden ascendente de direcciones. Las áreas de origen y destino se definen mediante punteros ANY.
|
Nota En esta instrucción solo se pueden utilizar tipos de datos que sean válidos en una CPU de la serie S7-300/400. |
La figura siguiente muestra el principio de la operación de copia:
Ejemplo: el contenido del área MW100 a MW118 debe inicializarse con el contenido de las palabras de marcas MW14 a MW20.
Coherencia de los datos de origen y destino
Tenga en cuenta que al ejecutar la instrucción "Rellenar área" no se modifican los datos de origen, pues de lo contrario no se podría garantizar la coherencia de los datos de destino.
Áreas de memoria
La instrucción "Rellenar área" permite copiar las siguientes áreas de memoria:
-
Áreas de un bloque de datos
-
Marcas
-
Memoria imagen de proceso de las entradas
-
Memoria imagen de proceso de las salidas
Reglas generales para copiar
Las áreas de origen y destino no deben solaparse. Aunque el área de destino que se debe inicializar no sea múltiplo entero de la longitud del parámetro de entrada BVAL, el área de destino se rellenará igualmente hasta el último byte.
Si el área de destino que se debe preasignar es menor que el área de origen, solo se copian los datos que caben en el área de destino.
Si el área de origen o destino realmente existente es menor que el tamaño del área de memoria parametrizada para el área de origen o destino (parámetros BVAL, BLK), los datos no se transfieren.
Si el puntero ANY (origen o destino) es del tipo BOOL, la longitud indicada debe ser divisible por 8. De lo contrario, la instrucción no se ejecutará.
Si el área de destino es del tipo de datos STRING, la instrucción escribe la cadena de caracteres completa, incluida la información de administración.
|
Nota Si el área de origen o destino realmente existente es menor que el área de origen o destino indicada en el parámetro BVAL o BLK, el comportamiento dependerá del tipo de CPU:
|
Reglas para copiar estructuras
Al indicar una estructura a modo de parámetro de entrada, tenga en cuenta que la longitud de una estructura se rige siempre por un número entero de bytes. Si se declara una estructura con un número impar de bytes, esta estructura necesita un byte adicional de espacio en memoria.
Parámetro
La tabla siguiente muestra los parámetros de la instrucción:
|
Parámetros |
Declaración |
Tipo de datos |
Área de memoria |
Descripción |
|---|---|---|---|---|
|
BVAL |
Input |
ANY |
I, Q, M, D, L, P |
Indicación del área de memoria (área de origen) con cuyo contenido se rellena el área de destino en el parámetro BLK. |
|
BLK |
Output 1) |
ANY |
I, Q, M, D, L, P |
Indicación del área de memoria que se rellena con el contenido del área de origen. |
|
Valor de función (RET_VAL) |
INT |
I, Q, M, D, L, P |
Información de error |
|
|
1) El parámetro BLK se declara como Output, pero en la interfaz del bloque debe declararse como InOut. |
||||
Encontrará más información sobre los tipos de datos válidos en "Consulte también".
Parámetro BVAL
Al indicar una estructura a modo de parámetro de entrada, tenga en cuenta que la longitud de una estructura se adapta siempre a un número entero de bytes. Si se declara una estructura con un número impar de bytes, esta estructura necesita un byte adicional de espacio en memoria.
Parámetro RET_VAL
La tabla siguiente muestra el significado de los valores del parámetro RET_VAL:
|
Código de error* |
Explicación |
|---|---|
|
0000 |
Ningún error |
|
8092 |
El área de origen o destino está solo en la memoria de carga. |
|
8xyy |
Encontrará más información de error en "Consulte también". |
|
*En el editor de programas, los códigos de error se pueden representar como valores enteros o hexadecimales. Encontrará más información sobre el cambio de los formatos de visualización en "Consulte también". |
|
Ejemplo
El siguiente ejemplo muestra el funcionamiento de la instrucción:
La instrucción copia el área de origen de MW14 a MW20 y rellena el área de destino de MW100 a MW118 con el contenido de las 4 palabras contenidas en el área de memoria del parámetro BVAL.