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