Ventana comparadora
En LIMIT la primera y la tercera variable representan los límites inferior y superior respectivamente. Si la segunda variable de entrada está dentro de este límite, se transfiere a la variable de salida. Si es mayor que el límite superior, se transfiere a la salida el valor del límite superior; si es inferior al límite inferior, se transfiere el valor del límite inferior.
Entrada
Primera entrada: límite inferior
Segunda entrada: valor a comparar
Tercera entrada: límite superior
Salida
Salida: resultado, el valor de la segunda variable si está entre el límite superior y el límite inferior, en caso contrario el límite correspondiente
Todas las variables de entrada y de salida utilizadas para la programación de esta función han sido declaradas en la Cabecera de la POU. Se utiliza la misma cabecera de la POU para todos los lenguajes de programación.
VAR
lower_limit_val: INT:=0;
(*all types allowed*)
comparison_value: INT:=0;
(*all types allowed*)
upper_limit_val: INT:=0;
(*all types allowed*)
result: INT:=0;
(*all types allowed*)
END_VAR
En este ejemplo se han declarado las variables de entrada (lower_limit_val, comparison_value y upper_limit_val). Sin embargo, se puede introducir una constante directamente en la entrada de una función.
comparison_value tiene que estar entre lower_limit_val y upper_limit_val para que su valor se transfiera a result.
Si comparison_value es mayor que upper_limit_val, el valor de upper_limit_val se transfiere a result.
Si es menor que lower_limit_val, el valor de lower_limit_val se copiará en result
BODY
WORKSPACE
NETWORK_LIST_TYPE := NWTYPELD ;
ACTIVE_NETWORK := 0 ;
END_WORKSPACE
NET_WORK
NETWORK_TYPE := NWTYPELD ;
NETWORK_LABEL := ;
NETWORK_TITLE := ;
NETWORK_HEIGHT := 5 ;
NETWORK_BODY
B(B_VARIN,,lower_limit_val,9,1,11,3,);
B(B_VARIN,,comparison_value,9,2,11,4,);
B(B_VARIN,,upper_limit_val,9,3,11,5,);
B(B_VAROUT,,result,16,1,18,3,);
B(B_F,LIMIT!,Instance,11,0,16,5,,?DMN?DIN?DMX?C);
L(1,0,1,5);
END_NETWORK_BODY
END_NET_WORK
END_BODY
result:=LIMIT(MN:=lower_limit_val, IN:=comparison_value, MX:=upper_limit_val);
LD |
lower_limit_val |
LIMIT |
comparison_value, upper_limit_val |
ST |
result |