FB_BA_MMUX_XX

FB_BA_MMUX_XX 1:

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.

FB_BA_MMUX_XX 2: 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.

FB_BA_MMUX_XX 3: 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