LIMIT

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.

Paramètres

Entrée

MN (INT, DINT, UINT, UDINT, REAL, LREAL)

1e entrée : valeur limite inférieure

IN (INT, DINT, UINT, UDINT, REAL, LREAL)

2e entrée : valeur comparée à la valeur limite supérieure et inférieure

MX (INT, DINT, UINT, UDINT, REAL, LREAL)

3e entrée : valeur limite supérieure

Sortie

VAR_OUT (INT, DINT, UINT, UDINT, REAL, LREAL)

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

Exemple

En-tête du POU

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.

Corps en LD

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

Corps en ST

result:=LIMIT(MN:=lower_limit_val, IN:=comparison_value, MX:=upper_limit_val);

Corps en IL

LD

lower_limit_val

LIMIT

comparison_value, upper_limit_val

ST

result

Modifié le : 2022-09-26Feedback on this pagePanasonic hotline