LIMIT

Valore limite della variabile di ingresso

In LIMIT la 1a variabile di ingresso costituisce il valore limite inferiore e la 3a variabile di ingresso il valore limite superiore. Se la 2a variabile di ingresso rientra in questo limite, verrà trasferita nella variabile di uscita. Se supera questo limite, verrà trasferito il valore limite superiore; se è al di sotto di questo limite verrà trasferito il valore limite inferiore.

Parametri

Ingresso

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

1° ingresso: limite inferiore

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

2° ingresso: valore confrontato con il limite superiore e inferiore

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

3° ingresso: limite superiore

Uscita

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

Uscita come ingresso: risultato, 2° valore di ingresso se compreso tra il limite superiore e quello inferiore, altrimenti il limite superiore o inferiore

Esempio

Intestazione del POU

Tutte le variabili di ingresso e uscita utilizzate per programmare questa funzione sono state dichiarate nell'intestazione del POU. La stessa intestazione del POU è utilizzata per tutti i linguaggi di programmazione.

	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

In questo esempio sono state dichiarate le variabili di ingresso (lower_limit_val, comparison_value e upper_limit_val). Al loro posto potete inserire una costante direttamente nel contatto di ingresso di una funzione.

Corpo LD

lower_limit_val e upper_limit_val formano l'intervallo nel quale deve trovarsi comparison_value per poter essere trasferito in result.

  • Se comparison_value è superiore a upper_limit_val, il valore di upper_limit_val verrà trasferito in result.

  • Se è inferiore a lower_limit_val, il valore di llower_limit_val verrà trasferito in 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

Corpo ST

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

Corpo IL

LD

lower_limit_val

LIMIT

comparison_value, upper_limit_val

ST

result

L'ultima revisione: 2022-11-14Feedback su questa paginaPanasonic hotline