WSR: Guardar datos en el registro de desplazamiento (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
WSR: Guardar datos en el registro de desplazamiento

Descripción

La instrucción "Guardar datos en el registro de desplazamiento" escribe datos en un registro de desplazamiento desde el origen indicado. Todo elemento del registro se desplaza a la siguiente dirección. Los datos contenidos en la última dirección del registro de desplazamiento se pierden tras la operación de desplazamiento.

Cada vez que la instrucción se ejecuta con el valor "0" en el parámetro RESET, se leen datos nuevos del origen (S_DATA) y se desplazan a la dirección inicial (START) del registro de desplazamiento. El parámetro LEN indica el número de elementos que deben desplazarse. El tipo de datos de los elementos se define en el parámetro E_TYPE. Si se indica un tipo de datos no admisible en el parámetro E_TYPE, no se procesa la instrucción.

Si el parámetro RESET está a "1" al ejecutarse la instrucción, se borra el registro. El parámetro Q se pone al estado lógico "1" si el registro de desplazamiento está ocupado con ceros o si se borra.

Parámetros

La tabla siguiente muestra los parámetros de la instrucción:

Parámetro

Declaración

Tipo de datos

Área de memoria

Descripción

RESET

Input

BOOL

I, Q, M, D, L

Entrada de reset

S_DATA

Input

POINTER

I, Q, M, D

Apunta al elemento de origen que se desplaza a la dirección inicial (START).

En el direccionamiento indirecto por registro interárea, el puntero debe indicarse en formato de palabra doble.

START

Input

POINTER

I, Q, M, D

Apunta a la dirección inicial del registro.

En el direccionamiento indirecto por registro interárea, el puntero debe indicarse en formato de palabra doble.

LEN

Input

WORD

I, Q, M, D, L, P

Número de elementos que deben desplazarse.

E_TYPE

Input

BYTE

I, Q, M, D, L, P

Indica el tipo de datos de los elementos que deben desplazarse. Los siguientes tipos de datos son admisibles:

  • W#16#04 = WORD

  • B#16#05 = INT

  • B#16#06 = DWORD

  • B#16#07 = DINT

  • B#16#08 = REAL

Q

Output

BOOL

I, Q, M, D, L

Indica "0" si el parámetro RESET está activado (1) o si todos los elementos que deben desplazarse tienen el valor "0".

Valor de función

VOID

I, Q, M, D, L

Valor de función vacío

Ejemplo

En el ejemplo siguiente se desplazan cuatro elementos del tipo de datos WORD a partir de la dirección indicada en el parámetro START. Una vez desplazado el primer elemento del registro a la siguiente dirección, la primera dirección se ocupará con los datos a los que señala el puntero en el parámetro S_DATA. El valor del último elemento del registro se pierde entonces.

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

WSR(RESET := "Tag_Input_Reset",

    S_DATA := "Tag_Input_DataSource",

    START := "Tag_Input_StartAddress",

    LEN := "Tag_Input_Length",

    E_TYPE := "Tag_Input_ElementType",

    Q => "Tag_Output_Q");

No se transfiere ningún valor de función.

Las tablas siguientes muestran el funcionamiento de la instrucción con valores concretos.

Antes de la ejecución

En este ejemplo se utilizan los siguientes valores para los parámetros de entrada y salida:

Parámetro

Operando

Valor

RESET

Tag_Input_Reset

0

S_DATA

Tag_Input_DataSource

DB2.DBX6.0

DW0 = W#16#1111

DW2 = W#16#2222

DW4 = W#16#3333

DW6 = W#16#4444

START

Tag_Input_StartAddress

DB1.DBX0.0

DW6 = W#16#1234

LEN

Tag_Input_Length

W#16#04

E_TYPE

Tag_Input_ElementType

W#16#04

Q

Tag_Output_Q

1

Después de la ejecución

Una vez ejecutada la instrucción, los valores siguientes se escriben en los parámetros de salida:

Parámetro

Operando

Valor

RESET

Tag_Input_Reset

0

S_DATA

Tag_Input_DataSource

DB2.DBX6.0

DW0 = W#16#1234

DW2 = W#16#1111

DW4 = W#16#2222

DW6 = W#16#3333

START

Tag_Input_StartAddress

DB1.DBX0.0

DW6 = W#16#1234

LEN

Tag_Input_Length

W#16#04

E_TYPE

Tag_Input_ElementType

B#16#04

Q

Tag_Output_Q

1