SHRB: Desplazar bit al 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
SHRB: Desplazar bit al registro de desplazamiento

Descripción

La instrucción "Desplazar bit al registro de desplazamiento" escribe un bit en un registro de desplazamiento desde el origen indicado (DATA). Cada vez que la instrucción se ejecuta con el valor "0" en el parámetro RESET, se leen datos nuevos del origen y se desplazan a la dirección inicial (S_BIT) del registro de desplazamiento. Los restantes bits se desplazan una posición. El bit de la última dirección (S_BIT + N) se pierde tras el desplazamiento. Si el parámetro RESET está a "1" mientras se ejecuta la instrucción, las direcciones del registro de desplazamiento se ponen a "0" y no se desplazan.

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

DATA

Input

BOOL

I, Q, M, D, L

Bit de origen

RESET

Input

BOOL

I, Q, M, D, L

Entrada de reset

S_BIT

Input

POINTER

I, Q, M, D

Apunta al primer bit del registro de desplazamiento.

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

N

Input

WORD

I, Q, M, D, L, P

Número de bits que deben desplazarse.

Valor de función

VOID

I, Q, M, D, L

Valor de función vacío

Ejemplo

En el ejemplo siguiente, el parámetro N se pone al valor 14 ("E" en notación hexadecimal), con lo que 14 bits se desplazan a partir de la dirección indicada en el parámetro S_BIT. Una vez desplazados los bits, la primera dirección se ocupa con los datos del origen del parámetro DATA. El último valor de bit se pierde.

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

SHRB(DATA := "Tag_Input_Data",

     RESET := "Tag_Input_Reset",

     S_BIT := "Tag_Input_BitSource",

     N := "Tag_Input_Number");

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

DATA

Tag_Input_Data

0

S_BIT

Tag_Input_BitSource

DB1.DBX1.4

N

Tag_Input_Number

B#16#0E

Antes de ejecutarse la instrucción, los siguientes estados lógicos están almacenados en los 14 bits del registro:

Después de la ejecución

Una vez ejecutada la instrucción, los siguientes estados lógicos se almacenan en los 14 bits del registro: