Bloco que reorganiza os bytes de uma variável.
Representação Ladder

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.
|
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

Exemplo em Ladder

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);
|
|---|