/
Multiplexer (Modulbaustein)

Multiplexer (Modulbaustein)

Selektiert einen Wert aus einer Auswahl

Syntax

["Multiplexer", ["$In1", "$In2",... ,"$In_n"],"$Out","$Select"]

Funktion

Legt abhängig vom Selektor ("$Select") einen bestimmten Wert aus dem Eingangsarray auf den Ausgang.

Eingänge

  • ["$In1", "$In2",... ,"$In_n"]: Array der zur Verfügung stehenden Elemente, bestehend aus einer oder mehreren Variablen vom Typ bool, integer, float oder string

  • "$Select"(integer oder float): Selektor, trifft die Auswahl.

Ausgänge

  • "$Out" (bool, integer, float oder string): Ergebnis der Berechnung

Besonderheiten

  • Der erste Wert im Array wird über den Selektor 0 (und nicht über 1) adressiert.

  • Falls der Wert des Selektors grösser ist als die Anzahl der Eingänge, wird immer der letzte/höchste Eingang selektiert; damit ist es bspw. möglich, auf den letzten Eingang einen Default-Wert zu legen, der für alle Selektoren über einem bestimmten Grenzwert zur Anwendung kommt.
    Formal dargestellt gilt somit bei einem Multiplexer mit n Eingängen (E0, E1, ... ,En-1), einem Ausgang (A) und einem Selektor (S) folgendes:
    Ausgang Bedingung
    A = E0 S < 0
    A = ES 0 <= S < n
    A = En-1 S >= n

  • Wenn einzelne Eingänge nicht verwendet werden, kann anstellen einer Variable eine 0 verwendet werden (bspw. ["Multiplexer",["$Val_A",0, "$DefVal",0,0,"$Val_D","$DefVal"],"$Out","$Select"]). Wird ein mit 0 bezeichneter Eingang selektiert, hängt das Ergebnis vom Datentyp ab:

    • bool: false

    • integer: 0

    • float: 0.0

    • string: "" (d.h. Leerstring)

  • Das Beispiel im vorstehenden Lemma zeigt gleichzeitig auch einen Weg auf, wie man einen Defaultwert (hier über die Variable "$DefVal") auf mehrere Eingänge legt.

  • Falls der Ausgang nicht verändert werden soll, sofern ein unerwarteter Wert für den Selektor auftaucht, kann die Ausgangsvariable (im Beispiel: “$Out”) auch als Ausgang verwendet werden (im nachfolgenden Bsp. sollten die unterstrichenen Werte durch den Selektor nicht adressierbar sein): unterstrichenen Werte durch den Selektor nicht adressierbar sein):
    ["Multiplexer",["$Out","$Out","$Val_A","$Val_B", "$Out", "$Val_C", "$Val_D","$Out"],"$Out","$Select"]

Praktische Anwendungsbeispiele

Entsprechendes Logik-Modul

 Multiplexer (Logik-Module)

Weitere Informationen zur Funktionsweise eines Multiplexers: Wikipedia-Artikel

Beispiel Fensteranzeige: Über einen Zahlenwert (0-3) vier Binärausgänge schalten

(stammt von https://forum.timberwolf.io/app.php/kb/viewarticle?a=116)

  • $In ist ein Integer-Eingang mit möglichen Werten von 0 bis 3.

  • $Offen, $Gekippt, $Geschlossen, $Stoerung sind boolsche Ausgänge

["Multiplexer",["$true", 0, 0, 0],"$Offen","$In“], ["Multiplexer",[0, "$true", 0, 0],"$Gekippt","$In“], ["Multiplexer",[0, 0, "$true", 0],"$Geschlossen","$In“], ["Multiplexer",[0, 0, 0, "$true"],"$Stoerung","$In“]

 

Related content

Multiplexer (Logik-Module)
Multiplexer (Logik-Module)
More like this
BinaryMultiplexer (Modulbaustein)
BinaryMultiplexer (Modulbaustein)
More like this
Interpolation (Modulbaustein)
Interpolation (Modulbaustein)
More like this
Or (Modulbaustein)
Or (Modulbaustein)
More like this
And (Modulbaustein)
And (Modulbaustein)
More like this
Multiplikation (Logik-Modul)
Multiplikation (Logik-Modul)
More like this

2019 - 2024 by Elaborated Networks GmbH / Impressum / Datenschutzerklärung