Instrucciones TIA Portal

Desplazamiento y Rotación
Manipulación de Bits

Optimice el procesamiento de sus registros. Desde el cálculo matemático ultra rápido hasta la gestión de protocolos de comunicación complejos, domine el movimiento de los bits.

¿Por qué desplazar o rotar bits?

Las operaciones de desplazamiento (Shift) y rotación (Rotate) permiten mover los bits de una palabra hacia la izquierda o hacia la derecha. En la industria, se utilizan para extraer información precisa de un telegrama de comunicación, crear registros de desplazamiento para el seguimiento de piezas en transportadores, o realizar multiplicaciones/divisiones por potencias de 2 de manera extremadamente eficiente.

La diferencia principal radica en el tratamiento de los bits 'salientes': mientras que el desplazamiento (Shift) los descarta y los reemplaza por ceros, la rotación (Rotate) los reinyecta por el otro lado de la palabra, creando un bucle circular continuo.

Desplazamiento (Shift)

Movimiento lineal con pérdida de bits

SHL / SHR — Desplazamiento Izquierda/Derecha

SHL

Qué hace

Mueve los bits hacia la izquierda (SHL) o la derecha (SHR) un número de posiciones definido por la entrada N. Los bits que salen del registro se pierden, y los nuevos bits entrantes se ponen a 0.

Cuándo usarlo

Multiplicación rápida por 2 (SHL), división por 2 (SHR), o aislamiento de un byte específico en una palabra de 32 bits.

Consejos Pro

Desplazar un entero 1 bit a la izquierda equivale a multiplicarlo por 2 sin usar la unidad de cálculo matemático.

Para tipos con signo (Int, DInt), SHR a menudo conserva el bit de signo (desplazamiento aritmético).

Si N es mayor que el tamaño de la palabra (ej: N=20 para un WORD), el resultado será 0.

Rotación (Rotate)

Movimiento circular sin pérdida

ROL / ROR — Rotación Izquierda/Derecha

ROL

Qué hace

Hace pivotar los bits de manera circular. El bit que sale por un lado (ej: izquierda para ROL) entra inmediatamente por el otro (derecha). No se pierde ningún dato.

Cuándo usarlo

Creación de patrones luminosos giratorios, encriptación simple de datos o gestión de buffers circulares (FIFO).

Consejos Pro

Ideal para alternar prioridades en un grupo de bombas o motores.

A diferencia del desplazamiento, una rotación completa (ej: 16 bits para un WORD) devuelve el valor inicial.

Use ROL/ROR para reorganizar el orden de los bytes (Endianness) en intercambios de datos.

Shift vs Rotate: El duelo

Comprender el impacto en sus datos

PropiedadDesplazamiento (SHL/SHR)Rotación (ROL/ROR)
EstructuraLinealCircular
Bits salientesDescartados (Perdidos)Reinyectados al opuesto
Bits entrantesSiempre 0Bits salientes reciclados
Uso MatemáticoMultiplicación / DivisiónPermutación de bits
Ejemplo realSeguimiento de piezaSecuenciador / Luces
RiesgoVaciado del registroNinguno (datos preservados)

Preguntas Frecuentes

¿Por qué usar SHL en lugar de una multiplicación por 2?

La instrucción SHL es ejecutada mucho más rápido por el procesador del PLC que una operación MUL, ya que trabaja directamente sobre el registro sin pasar por la ALU compleja.

¿Cómo crear un registro de desplazamiento para un transportador?

Use SHR con cada pulso de un encoder. Si se detecta una pieza a la entrada, fuerce el bit 0 a 1. Al desplazar la palabra, sigue la posición de la pieza bit a bit.

¿Cuál es el impacto del tipo de datos (Byte, Word, DWord)?

La instrucción se adapta al tamaño. Un ROR en un Byte hará reaparecer el bit 7 en posición 0 tras 1 desplazamiento. En un Word, será el bit 15 el que vuelva a 0.

¿Se pueden desplazar variables en SCL?

Sí, mediante las funciones SHL(IN:=var, N:=n) o usando los operadores bitwise estándar si su versión de TIA Portal lo permite.

Automatice sus manipulaciones binarias

¿Necesita aislar bits o crear un secuenciador complejo? T-IA Connect genera sus redes de desplazamiento y rotación al instante.