FILL: Rellenar área (S7-300, S7-400) - STEP 7

SCL (S7-300, S7-400)

ft:publication_title
SCL (S7-300, S7-400)
Product
STEP 7
Version
V20
Publication date
11/2024
Language
es-ES
FILL: Rellenar área

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:

  • Para las CPU S7-300 rige lo siguiente:

    No se transfieren datos. En el parámetro RET_VAL se devuelve el código de error W#16#837F. Este código de error debe evaluarse en el programa de usuario.

  • Para las CPU V4 del S7-400 (V4, CPU H V4 y CPU H V4.5 se aplica lo siguiente:

    No se transfieren datos. En el parámetro RET_VAL se devuelve el código de error W#16#8122 o W#16#8323. Este código de error debe evaluarse en el programa de usuario.

  • Para las restantes CPU S7-400 rige:

    Se transfieren datos. En el parámetro RET_VAL se devuelve el código de error W#16#8122 o W#16#8323. Este código de error debe evaluarse en el programa de usuario.

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*
(W#16#...)

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:

SCL Copia el código de programa siguiente en el portapapeles.

"Tag_RetVal" := FILL(BVAL := P#M14.0 WORD 4,

                     BLK => P#M100.0 WORD 10);

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.