Bloque que calcula el módulo de Value, 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 |
Variable de referencia para la operación |
|
VAR_OUTPUT |
Done |
BOOL |
Fin de operación |
Result |
BYTE USINT SINT WORD UINT INT DWORD UDINT DINT REAL |
Variable que almacena el resultado de la operación |
Operación
Este bloque, cuando tiene un valor TRUE en EN, envía a la salida Result el valor absoluto de la variable Value. No habiendo errores, la variable Done es ajustada. En caso de que haya algún error en la operación, Done no será ajustada, permaneciendo en estado FALSE, mientras que Result permanecerá con su valor inalterado.
Cuando EN tiene valor FALSE, Result permanece inalterado y Done permanece en FALSE.
Diagrama de Flujo del Bloque

Ejemplo en Ladder

El ejemplo de arriba calcula el valor absoluto de la variable VALUE, cuyo valor inicial es -45, almacenando el resultado final, 45, en RESULT.

El ejemplo de arriba calcula el valor absoluto de la variable VALUE, cuyo valor inicial es -45. El resultado final, 128, no puede ser almacenado en RESULT, ya que está fuera de los límites de valores aceptados por el tipo SINT. Por eso, RESULT permanece inalterado y la salida queda deshabilitada.
Ejemplo en ST
El siguiente ejemplo muestra las instrucciones para aplicar el ejemplo anterior en el lenguaje ST.
VAR VALUE : SINT := 45; RESULT : SINT; END_VAR
RESULT := FB_ABS(EN:=DI1, Value:=VALUE, Done=>DO1);
|
|---|