FB_BA_MMUX_XX
Der Funktionsbaustein schaltet in Abhängigkeit eines Selektors und der entsprechenden Eingangs-Selektorbedingung einen Eingangswert auf den Ausgang.
Die Multiplexer-Bausteine existieren für verschiedene Variablentypen ( BOOL, INT, LREAL, REAL, USINT, UINT und UDINT) und in verschiedenen Eingangsgrößen (4, 8, 12, 16 und 24), haben jedoch alle die gleiche Funktionalität.
Exemplarisch wird hier der Baustein FB_BA_MMUX_R16 beschrieben.
Funktionsbeschreibung
Der Funktionsbaustein schaltet im aktivierten Zustand (bEn=TRUE) in Abhängigkeit eines Selektors udiSel und der entsprechenden Eingangs-Selektorbedingung udiEnxx einen von den Eingangswerten rValxx auf den Ausgang rVal.
Wenn mehrere Eingangs-Selektorbedingungen udiEn01...udiEn16 gleich sind und der Selektor udiSel einer Bedingung entspricht, dann wird der Eingangswert rVal01...rVal16 der tiefsten aktiven Selektorbedingung auf den Ausgang rVal geschaltet. udiEn01 ist die tiefste, udiEn16 die höchste Selektorbedingung.
Die Ausgangsvariable bQ zeigt an, dass der Selektor udiSel mit einer Eingangs-Selektorbedingung udiEnxx übereinstimmt.
Die Ausgangsvariable udiActvPrio zeigt die aktive Selektorbedingung an.
Ist keine Selektorbedingung aktiv, so wird rReplVal an rVal ausgegeben. bQ ist dann FALSE und udiActvPrio zeigt eine 255 an.
Beispiel:
Eingänge | Ausgang | ||
---|---|---|---|
Variable | Wert | Variable | Wert |
bEn | TRUE | bQ | TRUE |
udiSel | 5 | rVal | 1,123 |
udiEn01 | 4 | udiActvPrio | 7 |
rVal01 | 123 |
|
|
udiEn02 |
|
|
|
rVal02 |
|
|
|
udiEn03 | 3 |
|
|
rVal03 | 321 |
|
|
udiEn04 |
|
|
|
rVal04 |
|
|
|
udiEn05 | 8 |
|
|
rVal05 | 345 |
|
|
udiEn06 |
|
|
|
rVal06 |
|
|
|
udiEn07 | 5 |
|
|
rVal07 | 1,123 |
|
|
udiEn08 |
|
|
|
rVal08 |
|
|
|
udiEn09 | 5 |
|
|
rVal09 | 5,4321 |
|
|
udiEn10 |
|
|
|
rVal10 |
|
|
|
udiEn11 |
|
|
|
rVal11 |
|
|
|
udiEn12 |
|
|
|
rVal12 |
|
|
|
udiEn13 |
|
|
|
rVal13 |
|
|
|
udiEn14 |
|
|
|
rVal14 |
|
|
|
udiEn15 |
|
|
|
rVal15 |
|
|
|
udiEn16 |
|
|
|
rVal16 |
|
|
|
rReplVal |
|
|
|
Ein-/Ausgänge
VAR_INPUT
bEn : BOOL;
udiSel : UDINT;
udiEn01 : UDINT := 255;
rVal01 : REAL;
udiEn02 : UDINT := 255;
rVal02 : REAL;
udiEn03 : UDINT := 255;
rVal03 : REAL;
udiEn04 : UDINT := 255;
rVal04 : REAL;
udiEn05 : UDINT := 255;
rVal05 : REAL;
udiEn06 : UDINT := 255;
rVal06 : REAL;
udiEn07 : UDINT := 255;
rVal07 : REAL;
udiEn08 : UDINT := 255;
rVal08 : REAL;
udiEn09 : UDINT := 255;
rVal09 : REAL;
udiEn10 : UDINT := 255;
rVal10 : REAL;
udiEn11 : UDINT := 255;
rVal11 : REAL;
udiEn12 : UDINT := 255;
rVal12 : REAL;
udiEn13 : UDINT := 255;
rVal13 : REAL;
udiEn14 : UDINT := 255;
rVal14 : REAL;
udiEn15 : UDINT := 255;
rVal15 : REAL;
udiEn16 : UDINT := 255;
rVal16 : REAL;
rReplVal : REAL;
bEn: Aktivierung der Bausteinfunktion
udiSel: Selektor
udiEn01..udiEn16: Eingangs-Selektorbedingung
Die Eingangsvariablen sind auf den Wert 255 vorinitialisiert.
rVal01...rVal16: Eingangswerte, aus denen gewählt werden soll.
rReplVal: Ersatzwert, wenn keine Eingangs-Selektorbedingung aktiv ist.
VAR_OUTPUT
bQ : BOOL;
rVal : REAL;
udiActvPrio : UDINT;
bQ: Ist TRUE, wenn der Selektor udiSel mit einer Eingangs-Selektorbedingung udiEnxx übereinstimmt.
rVal: Wert der gewählten Eingangs-Selektorbedingung
udiActvPrio: Zeigt an, welche Eingangs-Selektorbedingung aktiv ist.
Voraussetzungen
Entwicklungsumgebung | Zielsystem | erforderliche Bibliothek | erforderliches Supplement |
---|---|---|---|
TwinCAT 2.11 R3/x64 | PC/CX | TcBA-Bibliothek ab V1.0.0 | TS8040 | TwinCAT Building Automation ab V1.0.0 |