Camino:  Equipo (Dispositivos) > SCA06 > Ladder > Data Transfer >

SWAP2

Reorganizador de Bytes

Previous pageReturn to chapter overviewNext page

Bloque que reorganiza los bytes de una variable.

 

Representación Ladder

 

SWAP2_block

 

Estructura del Bloque

 

Tipo de Variable

Nombre

Tipo de Dato

Descripción

VAR_INPUT

EN

BOOL

Habilitación del bloque

Value

WORD UINT INT

DWORD UDINT DINT

Variable de entrada a ser reorganizada

Type

BYTE

Variable que define lo tipo de conversión conforme la Tabla 2

VAR_OUTPUT

ENO

BOOL

Fin de operación

Result

WORD UINT INT DWORD UDINT DINT REAL(*)

Valor de salida

Tabla 1. Variables del bloque.

 

Type

WORD UINT INT

ENO

DWORD UDINT DINT

ENO

0

AB->AB*

TRUE

ABCD->ABCD

TRUE

1

AB->BA

TRUE

ABCD->DCBA

TRUE

2

-

FALSE

ABCD->CDAB

TRUE

3

-

FALSE

ABCD->BADC

TRUE

4 ...

-

FALSE

-

FALSE

Tabla 2. Tipo de conversión (*las letras A, B, C e D representan BYTES).

 

Operación

 

Este bloque, cuando tiene un valor TRUE en EN, reorganiza los bytes de la variable Value, almacenando el resultado en Result.

Type define la forma en que se reorganizarán los bytes según Tabla 2.

Observe que para variables de 16 bits, sólo las opciones 0 y 1 son válidas.

Para variables de 32 bits, las opciones 0, 1, 2 y 3 son válidas.

 

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, si Type es válido.

Las opciones no válidas de Type asignan FALSE a ENO y no cambian el valor de Result.

 

wpshelp_common_fig_note

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

 

SWAP2_flowchart

 

Ejemplo en Ladder

 

SWAP2_example01

 

El ejemplo organiza la posición del valor VALUE_IN de acuerdo con el tipo TYPE_IN = 1 (AB-> BA), almacenando el resultado final en RESULT. El bloque finaliza con éxito y la salida ENO está activada.

 

Ejemplo en ST

 

 El siguiente ejemplo muestra las instrucciones para aplicar el ejemplo anterior en el lenguaje ST.

 

 

VAR

   VALUE_IN : INT := 16#2501;

   TYPE_IN : BYTE := 1;

   RES_OUT : INT;

END_VAR

 

RES_OUT := FB_SWAP2(

   EN:=DI1,

   Value:=VALUE_IN,

   Type:=TYPE_IN,

  ENO=>DO1);