Bloque que realiza una permuta entre los bytes impares y los bytes pares consecutivos en Value y envía el valor a Result.
Representación Ladder
![]()
Estructura del Bloque
Tipo de Variable |
Nombre |
Tipo de Dato |
Descripción |
VAR_INPUT |
EN |
BOOL |
Habilitación del bloque |
Value |
WORD DWORD |
Variable de entrada a ser permutada |
|
VAR_OUTPUT |
ENO |
BOOL |
Fin de operación |
Result |
BYTE USINT SINT WORD UINT INT DWORD UDINT DINT REAL(*) |
Valor de salida |
Operación
Este bloque, cuando tiene un valor TRUE en EN, intercambia los valores entre los bytes impares (1, 3, 5 y 7) y los bytes pares consecutivos (2, 4, 6 y 8, respectivamente) de la variable Value, almacenando el resultado en Result.
Cuando EN tiene valor FALSE, Result permanece inalterado.
El valor de ENO pasa al próximo bloque Ladder el valor de EN luego de finalizada la operación.
|
NOTA! Atención al utilizar en Result una variable del tipo REAL, pues el bloque no realiza conversión de tipo, es decir, hace sólo la inversión de los bytes en la memoria. |
Diagrama de Flujo del Bloque

Ejemplo en Ladder

El ejemplo cambia la posición del valor del byte 1 de VALUE (0x44) con el byte 2 de VALUE (0x3D), almacenando el resultado final (0x44_3D) en RESULT. El bloque finaliza exitosamente y la salida ENO es activada.

El ejemplo cambia la posición del valor del byte 1 de VALUE (0x96) con el byte 2 de VALUE (0xA8) y del byte 3 de VALUE (0x0D) con el byte 4 de VALUE (0x00), almacenando el resultado final (0x0D_00_96_A8) en RESULT. El bloque finaliza exitosamente y la salida ENO es activada.
Ejemplo en ST
El siguiente ejemplo muestra las instrucciones para aplicar el ejemplo anterior en el lenguaje ST.
VAR VALUE : DWORD := 16#3d44; RESULT : DINT; END_VAR
RESULT := FB_SWAP(EN:=DI1, Value:=VALUE, ENO=>DO1);
|
|---|