FB_BA_MMUX_XX

Der Funktionsbaustein FB_BA_MMUX_XX 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 nSel und der entsprechenden Eingangs-Selektorbedingung nEnxx einen von den Eingangswerten fValxx auf den Ausgang fVal.
Wenn mehrere Eingangs-Selektorbedingungen nEn01...nEn16 gleich sind und der Selektor nSel einer Bedingung entspricht, dann wird der Eingangswert fVal01... fVal16 der tiefsten aktiven Selektorbedingung auf den Ausgang fVal geschaltet. nEn01 ist die tiefste, nEn16 die höchste Selektorbedingung.
Die Ausgangsvariable bQ zeigt an, dass der Selektor nSel mit einer Eingangs-Selektorbedingung nEnxx übereinstimmt.
Die Ausgangsvariable nActvPrio zeigt die aktive Selektorbedingung an.
Ist keine Selektorbedingung aktiv, so wird fReplVal an fVal ausgegeben. bQ ist dann FALSE und nActvPrio zeigt eine 255 an.
Beispiel:
Eingänge | Ausgang | ||
---|---|---|---|
Variable | Wert | Variable | Wert |
bEn | TRUE | bQ | TRUE |
nSel | 5 | fVal | 1,123 |
nEn01 | 4 | nActvPrio | 7 |
fVal01 | 123 |
|
|
nEn02 |
|
|
|
fVal02 |
|
|
|
nEn03 | 3 |
|
|
fVal03 | 321 |
|
|
nEn04 |
|
|
|
fVal04 |
|
|
|
nEn05 | 8 |
|
|
fVal05 | 345 |
|
|
nEn06 |
|
|
|
fVal06 |
|
|
|
nEn07 | 5 |
|
|
fVal07 | 1,123 |
|
|
nEn08 |
|
|
|
fVal08 |
|
|
|
nEn09 | 5 |
|
|
fVal09 | 5,4321 |
|
|
nEn10 |
|
|
|
fVal10 |
|
|
|
nEn11 |
|
|
|
fVal11 |
|
|
|
nEn12 |
|
|
|
fVal12 |
|
|
|
nEn13 |
|
|
|
fVal13 |
|
|
|
nEn14 |
|
|
|
fVal14 |
|
|
|
nEn15 |
|
|
|
fVal15 |
|
|
|
nEn16 |
|
|
|
fVal16 |
|
|
|
fReplVal |
|
|
|
Wenn keine aktive Priorität ansteht, dann wird an dem Ausgang nActvPrio der Wert der globalen Konstanten BA_Globals.nNoActivePrio ausgegeben.
Eingänge
VAR_INPUT
bEn : BOOL;
nSel : UDINT;
nEn01 : UDINT := BA_Globals.nNoActvPrio;
fVal01 : REAL;
nEn02 : UDINT := BA_Globals.nNoActvPrio;
fVal02 : REAL;
nEn03 : UDINT := BA_Globals.nNoActvPrio;
fVal03 : REAL;
nEn04 : UDINT := BA_Globals.nNoActvPrio;
fVal04 : REAL;
nEn05 : UDINT := BA_Globals.nNoActvPrio;
fVal05 : REAL;
nEn06 : UDINT := BA_Globals.nNoActvPrio;
fVal06 : REAL;
nEn07 : UDINT := BA_Globals.nNoActvPrio;
fVal07 : REAL;
nEn08 : UDINT := BA_Globals.nNoActvPrio;
fVal08 : REAL;
nEn09 : UDINT := BA_Globals.nNoActvPrio;
fVal09 : REAL;
nEn10 : UDINT := BA_Globals.nNoActvPrio;
fVal10 : REAL;
nEn11 : UDINT := BA_Globals.nNoActvPrio;
fVal11 : REAL;
nEn12 : UDINT := BA_Globals.nNoActvPrio;
fVal12 : REAL;
nEn13 : UDINT := BA_Globals.nNoActvPrio;
fVal13 : REAL;
nEn14 : UDINT := BA_Globals.nNoActvPrio;
fVal14 : REAL;
nEn15 : UDINT := BA_Globals.nNoActvPrio;
fVal15 : REAL;
nEn16 : UDINT := BA_Globals.nNoActvPrio;
fVal16 : REAL;
fReplVal : REAL;
END_VAR
Name | Typ | Beschreibung |
---|---|---|
bEn | BOOL | Aktivierung der Bausteinfunktion |
nSel | UDINT | Selektor. Intern begrenzt auf Werte von 0 bis 4294967294. |
nEn01…nEn16 | UDINT | Eingangswerte, aus denen gewählt werden soll. |
fReplVal | REAL | Ersatzwert, wenn keine Eingangs-Selektorbedingung aktiv ist. |
Ausgänge
VAR_OUTPUT
bQ : BOOL;
fVal : REAL;
nActvPrio : UDINT;
END_VAR
Name | Typ | Beschreibung |
---|---|---|
bQ | BOOL | Ist TRUE, wenn der Selektor nSel mit einer Eingangs-Selektorbedingung nEnxx übereinstimmt. |
fVal | REAL | Wert der gewählten Eingangs-Selektorbedingung. |
nActvPrio | UDINT | Zeigt an welche Eingangs-Selektorbedingung aktiv ist. Wenn keine aktive Priorität ansteht, dann wird an dem Ausgang nActvPrio der Wert der globalen Konstanten BA_Globals.nNoActivePrio ausgegeben. |
Voraussetzungen
Entwicklungsumgebung | Erforderliche SPS-Bibliothek |
---|---|
TwinCAT ab v3.1.4024.22 | Tc3_BA2 ab v5.2.5.0 |