Hauptinhalt

Die Übersetzung dieser Seite ist veraltet. Klicken Sie hier, um die neueste Version auf Englisch zu sehen.

Mux

Kombinieren von Eingaben desselben Datentyps und derselben Komplexität zu einem virtuellen Vektor

  • Mux block

Bibliotheken:
Simulink / Commonly Used Blocks
Simulink / Signal Routing
HDL Coder / Commonly Used Blocks
HDL Coder / Signal Routing

Beschreibung

Der Mux-Block kombiniert Eingaben mit demselben Datentyp und derselben Komplexität zu einem virtuellen Vektor. Sie können mehrere Mux-Blöcke verwenden, um ein Mux-Signal in Stufen zu erzeugen, aber das Ergebnis ist flach, als hätten Sie einen einzelnen Mux-Block verwendet.

Verwenden Sie idealerweise Mux-Blöcke, um nur Funktionsaufrufsignale zu gruppieren.

Während ein Mux-Block einen virtuellen Vektor aus Signalen mit demselben Datentyp und derselben Komplexität erstellen kann, gruppieren andere Blöcke Signale auf eine Weise, die mehr Flexibilität und Effizienz bietet.

  • Um Signale oder Nachrichten zu gruppieren, verwenden Sie einen Bus Creator-Block anstelle eines Mux-Blocks. Der Bus Creator-Block erstellt virtuelle Busse, die Ihnen die Flexibilität bieten, Elemente unterschiedlicher Datentypen und Komplexität zu gruppieren. Virtuelle Busse ermöglichen Ihnen auch den Zugriff auf Elemente anhand ihres Namens statt anhand ihres Index. Wenn für einen Block ein virtueller Vektor anstelle eines virtuellen Busses erforderlich ist, wird der Bus bei der Modellkompilierung in einen Vektor umgewandelt.

  • Um Eingaben zu verketten, verwenden Sie einen Vector Concatenate-Block anstelle eines Mux-Blocks. Der Vector Concatenate-Block erzeugt einen nicht virtuellen Vektor, der die Effizienz des generierten Codes verbessert.

Einen Vergleich von Mux-Signalen, virtuellen Bussen und verketteten Signalen finden Sie unter Explore Composite Interfaces.

Beispiele

Ports

Eingabe

alle erweitern

Eingabe eines Signals, das in das MUX-Signal aufgenommen werden soll, angegeben als Skalar oder Vektor.

Die Eingaben für einen Mux-Block können aus einer beliebigen Kombination von Skalaren und Vektoren bestehen, müssen jedoch denselben Datentyp und dieselbe Komplexität aufweisen oder Funktionsaufrufsignale sein.

Datentypen: single | double | half | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | Boolean | fixed point | enumerated | image
Unterstützung komplexer Zahlen: Ja

Ausgabe

alle erweitern

Ausgabe-Multiplexsignal, das aus den kombinierten Eingaben besteht und als Vektor zurückgegeben wird.

Die Reihenfolge der Elemente des Ausgabe-Multiplexsignals ergibt sich aus der Reihenfolge der Eingaben. Eine Beschreibung der Portreihenfolge für verschiedene Blockausrichtungen finden Sie unter Identify Port Location on Rotated or Flipped Block.

Datentypen: single | double | half | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | Boolean | fixed point | enumerated | image

Parameter

alle erweitern

Die Anzahl der Eingabesignale, die als Skalar, Vektor, Zellenarray oder kommagetrennte Liste von Signalnamen angegeben werden. Bei einigen dieser Formate können Sie die Signalnamen und -größen angeben, wie in dieser Tabelle beschrieben.

FormatBlock-Verhalten

Skalar

Die Anzahl der Eingaben in den Mux-Block.

Wenn Sie dieses Format verwenden, akzeptiert der Block Skalar- oder Vektorsignale beliebiger Größe. Die Software weist jeder Eingabe den Namen signalN zu, wobei N die Nummer des Eingangsports ist.

Vektor

Die Länge des Vektors gibt die Anzahl der Eingaben an. Jedes Element gibt die Größe der entsprechenden Eingabe an.

Ein positiver Wert gibt an, dass der entsprechende Port nur Vektoren dieser Größe akzeptieren kann. Zum Beispiel spezifiziert [2 3] zwei Eingabeports der Größen 2 und 3. Wenn die Breite eines Eingabesignals nicht der erwarteten Breite entspricht, wird eine Fehlermeldung angezeigt. Ein Wert von -1 gibt an, dass der entsprechende Port Skalare oder Vektoren beliebiger Größe akzeptieren kann.

Zellenarray

Die Länge des Zellenarrays gibt die Anzahl der Eingaben an. Der Wert jeder Zelle gibt die Größe der entsprechenden Eingabe an.

Ein Skalarwert N gibt einen Vektor der Größe N an. Ein Wert von -1 bedeutet, dass der entsprechende Port Skalar- oder Vektorsignale beliebiger Größe akzeptieren kann.

Kommagetrennte Liste der Signalnamen

Eine Liste von Signalnamen, die durch Kommas getrennt sind. Die Software ordnet jeden Namen dem entsprechenden Port und Signal zu. Wenn Sie beispielsweise position,velocity eingeben, hat der Mux-Block zwei Eingaben mit den Namen position und velocity.

Die Angabe eines nicht doppelten Wertes, wie z. B. single(3), wird nicht unterstützt.

Tipps

Wenn Sie einen Skalar für den Parameter Number of inputs angeben und alle Eingabeports verbunden sind, fügt die Software beim Zeichnen einer neuen Signalleitung in der Nähe der Eingabeseite eines Mux-Blocks einen Port hinzu und aktualisiert den Parameter.

Programmatische Verwendung

Um den Wert des Blockparameters programmatisch festzulegen, verwenden Sie die Funktion set_param.

Parameter: Inputs
Werte: '2' (Standardeinstellung) | scalar in quotes | vector in quotes | cell array in quotes | comma-separated list of signal names in quotes
Datentypen: char | string

Beispiel: set_param(gcb,'Inputs','5')

Beispiel: set_param(gcb,'Inputs','[2 3]')

Beispiel: set_param(gcb,'Inputs','{3}')

Beispiel: set_param(gcb,'Inputs','position,velocity')

Darstellung des Block-Symbols, angegeben als bar, signals oder none.

  • bar – zeigt keinen Text an

  • signals – zeigt die Namen der Eingaben an

  • none – zeigt den Typ des Blocks an (Mux)

Passen Sie die Größe des Blocks nach Bedarf an, damit der Text auf das Blocksymbol passt.

Programmatische Verwendung

Um den Wert des Blockparameters programmatisch festzulegen, verwenden Sie die Funktion set_param.

Parameter: DisplayOption
Werte: 'bar' (Standardeinstellung) | 'signals' | 'none'

Beispiel: set_param(gcb,'DisplayOption','signals')

Blockeigenschaften

Datentypen

Boolean | double | enumerated | fixed point | half | integer | single

Direct Feedthrough

ja

Mehrdimensionale Signale

nein

Signale mit variabler Größe

nein

Erkennung von Nulldurchgängen

nein

Erweiterte Fähigkeiten

alle erweitern

PLC-Codegenerierung
Generieren strukturierten Textcodes mit Simulink® PLC Coder™.

Versionsverlauf

Eingeführt vor R2006a