Bloque que realiza una rutina de saturación del valor encontrado en Value de acuerdo con los límites estipulados en Minimum y Maximum, almacenando el resultado en Result.
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 |
Valor de referencia |
|
Minimum |
BYTE USINT SINT WORD UINT INT DWORD UDINT DINT REAL |
Valor de saturación inferior |
|
Maximum |
BYTE USINT SINT WORD UINT INT DWORD UDINT DINT REAL |
Valor de saturación superior |
|
VAR_OUTPUT |
Q |
BOOL |
Indicador de que hubo saturación en el proceso |
Result |
BYTE USINT SINT WORD UINT INT DWORD UDINT DINT REAL |
Resultado de la operación |
Operación
Este bloque, cuando tiene un valor TRUE en EN, realiza la comparación de Value con Minimum y Maximum. Si Value está en el rango entre Minimum y Maximum, Result recibe el valor de Value y Q permanece FALSE. En caso de que Value sea mayor que Maximum, Result recibe Maximum y Q recibe TRUE. En caso de que Value sea menor que Minimum, Result recibe Minimum y Q recibe TRUE. Habiendo algún error en la operación, Q no será ajustado, permaneciendo en estado FALSE, mientras que Result permanecerá con su valor inalterado.
Cuando EN tiene valor FALSE, Result permanece inalterado y Q permanece en FALSE.
Diagrama de Flujo del Bloque

Ejemplo en Ladder

El ejemplo de arriba pasa el valor de VALUE para RESULT, visto que éste no es inferior a MINIMUM o superior a MAXIMUM. El bloque finaliza exitosamente y la salida Q es desactivada ya que no hubo saturación.

El ejemplo de arriba pasa el valor de MAXIMUM para RESULT, visto que VALUE es superior a MAXIMUM. El bloque finaliza exitosamente y la salida Q es activada, ya que hubo saturación.

El ejemplo de arriba pasa el valor de MINIMUM para RESULT, visto que VALUE es inferior a MINIMUM. El bloque finaliza exitosamente y la salida Q es activada, ya que hubo saturación.

El ejemplo de arriba pasa el valor de MAXIMUM para RESULT, visto que VALUE es superior a MAXIMUM. El bloque finaliza exitosamente y la salida Q es activada, ya que hubo saturación.
Ejemplo en ST
El siguiente ejemplo muestra las instrucciones para aplicar el ejemplo anterior en el lenguaje ST.
VAR VALUE : INT := 700; MINIMUM : INT := 300; MAXIMUM : INT := 500; RESULT : INT; END_VAR
RESULT := FB_SAT( EN:=DI1, Value:=VALUE, Minimum:=MINIMUM, Maximum:=MAXIMUM, Q=>DO1);
|
|---|