Desplazamiento de bit a la derecha (BSR)

En esta tabla se especifican los controladores y las aplicaciones compatibles con esta instrucción.
Arquitectura
Aplicaciones estándar
Aplicaciones de seguridad
Controladores CompactLogix 5370, ControlLogix 5570, Compact GuardLogix 5370 y GuardLogix 5570
Sí
No
Controladores CompactLogix 5380, ControlLogix 5580, Compact GuardLogix 5380, GuardLogix 5580 y ControlLogix 5590
Sí
Sí
La instrucción BSR desplaza los bits especificados en la matriz una posición a la derecha. Cuando está habilitada, la instrucción descarga el valor del bit 0 de la matriz en el bit .UL, desplaza los bits restantes una posición hacia la derecha y carga el bit de la dirección de bit.
IMPORTANTE: Pruebe y confirme que la instrucción modificó los datos pertinentes. La instrucción BSR opera en la memoria continua. Si una matriz es una matriz de miembros, la instrucción podría desplazar más allá del límite de la matriz hasta otros miembros que la sigan. Asegúrese de seleccionar una longitud que no haga que se produzca esta situación.
La instrucción BSR opera en posiciones continuas de memoria de datos.
Si la instrucción intenta leer más allá del final de una matriz (el valor de LEN es demasiado grande), la instrucción establece el bit .ER y genera un fallo grave.
Idiomas disponibles
Diagrama de lógica de escalera
Operandos
Existen reglas de conversión de datos para utilizar tipos de datos mixtos en una instrucción. Consulte Conversión de datos.
Diagrama de lógica de escalera
Operando
Tipo de datos
Formato
Descripción
Array
DINT
ARRAY
etiqueta
Matriz a modificar
Especifica el primer elemento que se debe desplazar.
Control
CONTROL
etiqueta
Estructura de control para la operación
Source Bit
BOOL
etiqueta
Bit a cargar dentro de la posición vacante.
Length
DINT
inmediato
Número de bits en la matriz a desplazar
Estructura de CONTROL
Mnemónico
Tipo de datos
Descripción
.EN
BOOL
El bit de habilitación indica que la instrucción BSR está habilitada.
.DN
BOOL
El bit de efectuado se establece para indicar que los bits se desplazaron una posición a la derecha.
.UL
BOOL
El bit de descarga es la salida de la instrucción. El bit .UL almacena el estado del bit que se desplazó el rango de bits.
.ER
BOOL
El bit de error se establece cuando .LEN < 0.
.LEN
DINT
La longitud especifica el número de bits de la matriz que se van a desplazar.
Afecta a las marcas de estado matemáticas
No
Condiciones de fallo
Esta tabla muestra un fallo mayor específico de la instrucción BSR.
Código de error
Tipo
Descripción
20
4
Se produce un fallo mayor si el primer bit especificado más el número de bits a desplazar pasa el final de la matriz.
Ejecución
Diagrama de lógica de escalera
Condición/estado
Acción realizada
Pre-escaneado
El bit .EN se borra y se establece en falso.
El bit .DN se borra y se establece en falso.
El bit .ER se borra y se establece en falso.
Se borra el valor de .POS.
La condición de entrada de renglón es falsa
El bit .EN se borra y se establece en falso.
El bit .DN se borra y se establece en falso.
El bit .ER se borra y se establece en falso.
Se borra el valor de .POS.
La condición de entrada de renglón es verdadera
Consultar el siguiente Diagrama de flujo de BSR (Verdadero)
Post-escaneado
N/A
Diagrama de flujo de BSR (Verdadero)
Ejemplos
Ejemplo 1
Cuando está habilitada, la instrucción BSR copia array_dint[0].0 en el bit .UL, desplaza 0-9 a la derecha y carga input_1 dentro de array_dint[0].9. Los bits restantes (10-31) no son válidos, lo que indica que no se pueden modificar los bits.
Diagrama de lógica de escalera
Ejemplo 2
Cuando está habilitada, la instrucción BSR copia array_dint[0].0 en el bit .UL, desplaza 0-9 a la derecha y carga input_1 dentro de array_dint[1].25.. Los bits restantes (31-26 en dint_array[1]) no son válidos, lo que indica que los bits no se pueden modificar. Observa como array_dint[1].0 se desplaza por las palabras de array_dint[0].31.
Diagrama de lógica de escalera
Entregue su opinión
¿Tiene dudas o comentarios acerca de esta documentación? Por favor deje su opinión aquí.
Normal