Bloco que converte um valor de uma escala de dados para outra.
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 |
BYTE USINT SINT WORD UINT INT DWORD UDINT DINT REAL |
Valor de entrada a ser convertido |
|
MAX_IN |
BYTE USINT SINT WORD UINT INT DWORD UDINT DINT REAL |
Valor máximo da escala de entrada |
|
MIN_IN |
BYTE USINT SINT WORD UINT INT DWORD UDINT DINT REAL |
Valor mínimo da escala de entrada |
|
MAX_OUT |
BYTE USINT SINT WORD UINT INT DWORD UDINT DINT REAL |
Valor máximo da escala de saída |
|
MIN_OUT |
BYTE USINT SINT WORD UINT INT DWORD UDINT DINT REAL |
Valor mínimo da escala de saída |
|
VAR_OUTPUT |
ENO |
BOOL |
Fim de operação |
Result |
BYTE USINT SINT WORD UINT INT DWORD UDINT DINT REAL |
Valor de saída na nova escala |
Funcionamento
Este bloco, quando tem um valor TRUE em EN, através da definição dos valores mínimo e máximo da variável a ser convertida e dos valores mínimo e máximo da variável de nova escala, definida pelo usuário, efetua a função Scale para conversão da variável conforme a equação da reta:
![]()
Onde:
![]()
e
![]()
O gráfico abaixo representa a reta linearizada:

Quando EN possui valor FALSE, Result permanece inalterado.
O valor de ENO repassa para o próximo bloco Ladder o valor de EN após finalizada a operação.
|
NOTA! - O valor MAXin deve ser maior que o valor de MINin; - O valor de MAXout deve ser maior que o valor de MINout; - Valor em Value conforme: MINin ≤ Value ≤ MAXin. |
Fluxograma do Bloco
![]()
Exemplo em Ladder

O exemplo acima armazena o valor da variável VALUE em Result. O bloco utiliza a fórmula descrita acima e finaliza com sucesso, ativando a saída ENO.
Exemplo em ST
O exemplo abaixo, exibe as instruções para aplicação do exemplo acima na linguagem ST.
VAR VALUE : INT := 8; MAX_IN : INT := 12; MIN_IN : INT := 5; MAX_OUT : INT := 5; MIN_OUT : INT := 0; RESULT : INT; END_VAR
RESULT := FB_SCALE( EN:=DI1, Value:=VALUE, MAX_IN:=MAX_IN, MIN_IN:=MIN_IN, MAX_OUT:=MAX_OUT, MIN_OUT:=MIN_OUT, ENO=>DO1);
|
|---|