Caminho:  Equipamentos (Dispositivos) > SCA06 > Ladder > Data Transfer >

SWAP2

Reorganizador de Bytes

Previous pageReturn to chapter overviewNext page

Bloco que reorganiza os bytes de uma variável.

 

Representação Ladder

 

SWAP2_block

 

Estrutura do Bloco

 

Tipo de Variável

Nome

Tipo de Dado

Descrição

VAR_INPUT

EN

BOOL

Habilitação do bloco

Value

WORD UINT INT

DWORD UDINT DINT

Variável de entrada a ser reorganizada

Type

BYTE

Variável que define o tipo de conversão conforme Tabela 2

VAR_OUTPUT

ENO

BOOL

Fim de operação

Result

BYTE USINT SINT WORD UINT INT DWORD UDINT DINT

REAL(*)

Valor de saída

Tabela 1. Variáveis do bloco.

 

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

Tabela 2. Tipo de conversão (*as letras A, B, C e D representam BYTES).

 

Funcionamento

 

Este bloco, quando tem um valor TRUE em EN, reorganiza os bytes da variável Value, armazenando o resultado em Result.

Type define a forma como os bytes serão reorganizados, conforme Tabela 2.

Observar que para variáveis de 16bits, apenas as opções 0 e 1 são válidas.

Para variáveis de 32bits as opções 0, 1, 2 e 3 são válidas.

 

Quando EN possui valor FALSE, Result permanece inalterado.

 

O valor de ENO repassa para o próximo bloco Ladder o valor de EN depois de finalizada a operação se Type for válido.

Opções inválidas de Type atribuem FALSE para ENO e não alteram o valor de Result.

 

wpshelp_common_fig_note

NOTA!

Atenção ao utilizar em Result uma variável do tipo REAL pois o bloco não realiza conversão de tipo, ou seja, faz apenas a inversão dos bytes na memória.

 

Fluxograma do Bloco

 

SWAP2_flowchart

 

Exemplo em Ladder

 

SWAP2_example01

 

O exemplo organiza a posição do valor VALUE_IN de acordo com o type TYPE_IN = 1 (AB->BA), armazenando o resultado final em RESULT. O bloco finaliza com sucesso e a saída ENO é ativada.

 

Exemplo em ST

 

 O exemplo abaixo, exibe as instruções para aplicação do exemplo acima na linguagem 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);