LIMIT

Grenzwert für Eingangsvariable

In LIMIT bildet die 1. Eingangsvariable den unteren und die 3. Eingangsvariable den oberen Grenzwert. Wenn die 2. Eingangsvariable innerhalb dieser Grenze liegt, wird die 2. Eingangsvariable an die Ausgangsvariable übertragen. Wenn die 2. Eingangsvariable darüber liegt, wird der obere, falls sie darunter liegt, der untere Grenzwert übertragen.

Parameter

Eingang

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

1. Eingang: unterer Grenzwert

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

2. Eingang: Wert, der mit oberem und unterem Grenzwert verglichen wird

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

3. Eingang: oberer Grenzwert

Ausgang

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

Ausgang wie Eingang: Ergebnis ist die zweite Eingangsvariable, falls sie zwischen dem oberen und dem unteren Grenzwert liegt, sonst der obere oder untere Grenzwert

Beispiel

POE-Kopf

Im POE-Kopf werden alle Ein- und Ausgangsvariablen deklariert, die für die Programmierung dieser Funktion verwendet werden. Für alle Programmiersprachen wird der gleiche POE-Kopf verwendet.

	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 diesem Beispiel wurden die Eingangsvariablen (lower_limit_val, comparison_value und upper_limit_val) deklariert. Stattdessen können Sie im Rumpf eine Konstante auch direkt an den Eingang der Funktion schreiben.

KOP-Rumpf

lower_limit_val und upper_limit_val bilden den Bereich, in dem sich der Vergleichswert comparison_value befinden muss, wenn er in result übertragen werden soll.

  • Liegt der Vergleichswert comparison_value über dem oberen Grenzwert upper_limit_val, wird der Wert aus upper_limit_vall in result übertragen.

  • Liegt der Vergleichswert unter dem unteren Grenzwert lower_limit_val, wird der Wert aus lower_limit_val in result übertragen.

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

ST-Rumpf

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

AWL-Rumpf

LD

lower_limit_val

LIMIT

comparison_value, upper_limit_val

ST

result

Letzte Änderung am: 2022-11-11Feedback zu dieser SeitePanasonic Hotline