Bloque que convierte un valor de una escala a otra.
Representación Ladder

Estructura del Bloque
Tipo de Variable |
Nombre |
Tipo de Dato |
Descripción |
VAR_INPUT |
EN |
BOOL |
Habilitación del bloque |
Value |
BYTE USINT SINT WORD UINT INT DWORD UDINT DINT REAL |
Variable de entrada a ser convertida |
|
MAX_IN |
BYTE USINT SINT WORD UINT INT DWORD UDINT DINT REAL |
Variable de escala máximo para entrada |
|
MIN_IN |
BYTE USINT SINT WORD UINT INT DWORD UDINT DINT REAL |
Variable de escala mínimo para entrada |
|
MAX_OUT |
BYTE USINT SINT WORD UINT INT DWORD UDINT DINT REAL |
Variable máximo de escala de salida |
|
MIN_OUT |
BYTE USINT SINT WORD UINT INT DWORD UDINT DINT REAL |
Variable mínimo de escala de salida |
|
VAR_OUTPUT |
ENO |
BOOL |
Fin de operación |
Result |
BYTE USINT SINT WORD UINT INT DWORD UDINT DINT REAL |
Variable de salida na nueva escala |
Operación
Este bloque, cuando tiene un valor TRUE en EN, a través de la definición de los valores mínimo y máximo de la variable a ser convertida y de los valores mínimo y máximo de la variable de nueva escala, definida por el usuario, efectúa la función Scale para la conversión de la variable conforme a la ecuación:
![]()
Donde:
![]()
y
![]()
El gráfico siguiente representa la recta linearizada:

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! - El valor MAXin debe ser mayor que el valor de MINin; - El valor MAXout debe ser mayor que el valor de MINout; - Valor en Value de acuerdo con: MINin ≤ Value ≤ MAXin. |
Diagrama de Flujo del Bloque
![]()
Ejemplo en Ladder

El ejemplo de arriba almacena el valor de la variable VALUE 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 : 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);
|
|---|