MUX

Überblick

IEC-Auswahloperator für Multiplex-Operationen.

OUT := MUX(K, IN0,...,INn)) bedeutet:

OUT := INk

IN0, ...,INn und OUT können einem beliebigen identischen Datentyp entsprechen. Stellen Sie sicher, dass Variablen mit identischem Datentyp an diesen Positionen eingesetzt werden, insbesondere bei der Verwendung benutzerdefinierter Datentypen. Bei der Übersetzung wird die Identität der Typen geprüft und es werden entsprechende Übersetzungsfehler zurückgegeben. Die Zuweisung von Funktionsbausteininstanzen zu Schnittstellenvariablen wird nicht unterstützt.

K muss BYTE, WORD, DWORD, LWORD, SINT, USINT, INT, UINT, DINT, LINT, ULINT oder UDINT sein.

MUX wählt aus einer Menge von Werten den K-ten aus.

Beispiel in AWL/IL

Das Ergebnis ist 30.

LD     0
MUX    30     ,
       40     ,
       50     ,
       60     ,
       70     ,
       80
ST     Var1

Beispiel in ST

Var1:=MUX(0,30,40,50,60,70,80); (* Result is 30 *);
HINWEIS: Ein Textausdruck, der vor einem anderen Eingang als INk auftritt, wird nicht verarbeitet.

Bei grafischen Programmiersprachen, in denen ein Feld, ein Sprung, eine Rückkehr (Return), Linienverzweigung oder Flankenerkennung mit IN0 oder INn verbunden ist, werden diese Anweisungen immer verarbeitet, unabhängig vom Eingang K. Das kann sich auf den Umfang des ausgeführten Codes und damit auf die Leistung auswirken. Prüfen Sie Ihren Code sorgfältig, um zu ermitteln, ob die mit den Eingängen IN0 und INn verbundenen Ausdrücke immer oder nur in Abhängigkeit vom Eingang K ausgeführt werden sollen.

Ein Beispiel zur Illustration dieses Problems finden Sie unter SEL-Operator.