Operator: MUX
Der IEC-Operator dient als Multiplexer.
OUT := MUX(K, IN0,...,INn)
Das bedeutet: OUT = IN_K
Erlaubte Datentypen für K
: BYTE
, WORD
, DWORD
, LWORD
, SINT
, USINT
, INT
, UINT
, DINT
, LINT
, ULINT
UDINT
IN0
, …, INn
und OUT
: Beliebiger, identischer Datentyp
Achten Sie speziell bei der Verwendung von benutzerdefinierten Datentypen darauf, dass an allen drei Positionen Variablen mit identischem Typ verwendet werden. Der Compiler prüft die Typgleichheit und gibt Übersetzungsfehler aus. Insbesondere die Zuweisung von Instanzen eines Funktionsbausteins an Schnittstellen(variablen) wird nicht unterstützt.
MUX
wählt aus einer Menge von Werten den K-ten aus. Der erste Wert entspricht K=0. Wenn K
größer als die Anzahl der weiteren Eingänge (n) ist, so gibt CODESYS den letzten Wert weiter (INn
).
Wichtig
Zum Zweck der Laufzeitoptimierung berechnet CODESYS nur den Ausdruck, den Sie IN_K
vorgeschaltet haben. In der Simulation dagegen berechnet CODESYS alle Zweige.
Ergebnis in Var1
: 30
ST
Var1 := MUX(0,30,40,50,60,70,80);