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, UDINT und DINT) 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.
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 Eingangwert 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 |
|
|
|
Wenn keine aktive Priorität ansteht, dann wird an dem Ausgang udiActvPrio der Wert der globalen Konstanten Const.udiNoActvPrio ausgegeben.
VAR_INPUT
bEn : BOOL;
udiSel : UDINT;
udiEn01 : UDINT := Const.udiNoActvPrio;
rVal01 : REAL;
udiEn02 : UDINT := Const.udiNoActvPrio;
rVal02 : REAL;
udiEn03 : UDINT := Const.udiNoActvPrio;
rVal03 : REAL;
udiEn04 : UDINT := Const.udiNoActvPrio;
rVal04 : REAL;
udiEn05 : UDINT := Const.udiNoActvPrio;
rVal05 : REAL;
udiEn06 : UDINT := Const.udiNoActvPrio;
rVal06 : REAL;
udiEn07 : UDINT := Const.udiNoActvPrio;
rVal07 : REAL;
udiEn08 : UDINT := Const.udiNoActvPrio;
rVal08 : REAL;
udiEn09 : UDINT := Const.udiNoActvPrio;
rVal09 : REAL;
udiEn10 : UDINT := Const.udiNoActvPrio;
rVal10 : REAL;
udiEn11 : UDINT := Const.udiNoActvPrio;
rVal11 : REAL;
udiEn12 : UDINT := Const.udiNoActvPrio;
rVal12 : REAL;
udiEn13 : UDINT := Const.udiNoActvPrio;
rVal13 : REAL;
udiEn14 : UDINT := Const.udiNoActvPrio;
rVal14 : REAL;
udiEn15 : UDINT := Const.udiNoActvPrio;
rVal15 : REAL;
udiEn16 : UDINT := Const.udiNoActvPrio;
rVal16 : REAL;
rReplVal : REAL;
bEn: Aktivierung der Bausteinfunktion.
udiSel: Selektor. Intern begrenzt auf Werte von 0 bis 4294967294.
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. Wenn keine aktive Priorität ansteht, dann wird an dem Ausgang udiActvPrio der Wert der globalen Konstanten Const.udiNoActvPrio ausgegeben.
Voraussetzungen
Entwicklungsumgebung | Erforderliche SPS-Bibliothek |
---|---|
TwinCAT ab v3.1.4024.7 | Tc3_BA ab v1.1.6.0 |