Valeur limite pour variable d’entrée
Dans LIMIT, la 1ère variable d’entrée représente la valeur limite inférieure et la 3ème variable d’entrée la valeur limite supérieure. Si la 2ème variable d’entrée est située dans cette limite, elle est transférée à la variable de sortie. Si elle est supérieure à cette limite, la valeur limite supérieure est transférée ; si elle est inférieure à cette limite, la valeur limite inférieure est transférée.
Entrée
1e entrée : valeur limite inférieure
2e entrée : valeur comparée à la valeur limite supérieure et inférieure
3e entrée : valeur limite supérieure
Sortie
Sortie comme entrée : résultat, 2ème valeur d’entrée si elle est située entre la limite inférieure et supérieure, ou la limite supérieure ou la limite inférieure
Toutes les variables d’entrée et de sortie utilisées pour programmer cette fonction ont été déclarées dans l’en-tête du POU. Le même en-tête de POU est utilisé pour tous les langages de programmation.
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
Dans cet exemple, les variables d’entrée (lower_limit_val, comparison_value et upper_limit_val) ont été déclarées. Vous pouvez aussi entrer directement une constante au contact d’entrée d’une fonction.
lower_limit_val et upper_limit_val déterminent la plage dans laquelle la valeur de comparaison comparison_value doit être située pour être transférée dans result.
Si la valeur comparison_value est supérieure à la valeur upper_limit_val, la valeur de upper_limit_val est transférée dans result.
Si elle est inférieure à lower_limit_val, la valeur de lower_limit_val est transférée dans 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 |