Hauptinhalt

Switch Case

Auswahl der Subsystem-Ausführung mithilfe von switch-Ausdrücken ähnlicher Logik

  • Switch Case block

Bibliotheken:
Simulink / Ports & Subsystems
HDL Coder / Ports & Subsystems

Beschreibung

Der Switch Case-Block mit Switch Case Action Subsystem-Blöcken, die Action Port-Blöcke enthalten, implementiert Schalterlogik, um die Subsystem-Ausführung zu steuern. Ein Beispiel, bei dem der Switch Case-Block zum Einsatz kommt, finden Sie unter Select Subsystem Execution.

Model ex_switch_case_block

Ein Switch Case-Block hat einen einzigen Eingang. Um einen Fall auszuwählen, definieren Sie den Eingangswert mit dem Parameter Case conditions. Die Fälle werden beginnend mit dem ersten Fall in absteigender Reihenfolge evaluiert.

Jeder Fall ist mit einem Ausgangsport verknüpft, der an einen Block Switch Case Action Subsystem angehängt ist. Wenn ein Fall ausgewählt wird, sendet der verknüpfte Ausgangsport ein Aktionssignal, um das Subsystem auszuführen.

Ein default-Fall wird ausgewählt, nachdem alle anderen Fallbedingungen „falsch“ ergeben haben. Die Angabe eines default-Falls ist optional, selbst wenn die anderen Fallbedingungen nicht jeden möglichen Eingangswert abdecken.

Fälle für den Block Switch Case enthalten einen implizierten Break, nachdem ein Block Switch Case Action Subsystem ausgeführt wird. Daher gibt es kein Fall-Through-Verhalten für den Simulink®-Block Switch Case, wie es bei switch-Standardausdrücken in C der Fall ist.

Beispiele

Einschränkungen

Der Block Switch Case unterstützt keine abstimmbaren Parameter. Werte für Case conditions können während einer Simulation im normalen Modus oder Beschleunigermodus oder beim Ausführen von generiertem Code nicht abgestimmt werden.

Ports

Eingabe

alle erweitern

Die Eingabe für den mit u1 bezeichneten Port eines Blocks Switch Case kann die folgende Form annehmen:

  • Ein Skalarwert mit einem eingebauten Datentyp, der von Simulink unterstützt wird. Der Block Switch Case unterstützt jedoch keine booleschen oder Festkomma-Datentypen und numerische Eingaben werden auf vorzeichenbehaftete 32-Bit-Ganzzahlen gekürzt.

  • Ein Skalarwert mit einem beliebigen enumerierten Datentyp.

Datentypen: single | double | int8 | int16 | int32 | uint8 | uint16 | uint32 | enumerated

Ausgabe

alle erweitern

Ausgaben von den Case-, - und default-Ports sind Aktionssignale, die mit Switch Case Action Subsystem-Blöcken verbunden sind.

Parameter

alle erweitern

Geben Sie die Fallwerte mithilfe MATLAB®-Zellennotation an.

{1}

Legt fest, dass der mit case[1] bezeichnete Ausgangsport ein Aktionssignal sendet, wenn der Wert des Eingangsports 1 ist.

Liste von Ports mit Fallzuweisungen

Legen Sie mithilfe von MATLAB-Zellennotation mehrere Fälle und Ports fest. Wenn Sie beispielsweise {1,[7,9,4]} eingeben, legt dies fest, dass der Ausgangsport case[1] ausgeführt wird, wenn der Eingangswert 1 ist und der Ausgangsport case [7 9 4] ausgeführt wird, wenn der Eingangswert 7, 9 oder 4 ist.

Mittels Doppelpunkt-Notation können Sie einen Bereich von Ganzzahl-Fallbedingungen festlegen. Wenn Sie beispielsweise {[1:5]} eingeben, legt dies fest, dass der Ausgangsport case[1 2 3 4 5] ausgeführt wird, wenn der Eingangswert 1, 2, 3, 4 oder 5 ist.

Abhängig von der Blockgröße werden Fälle aus einer langen Liste an Fallbedingungen in verkürzter Form (mittels angehängten drei Punkten ...) auf dem Switch Case-Block angezeigt.

Sie können den Namen eines enumerierten Typs verwenden, um Fallbedingungen anzugeben, die einen Fall für jeden Wert in diesem enumerierten Typ enthalten.

Programmatische Verwendung

Blockparameter: CaseConditions
Typ: Zeichenvektor
Werte: '{1}' | Liste der Fälle in Anführungszeichen
Standardwert: '{1}'

Steuert die Anzeige des Standard-Ausgangsports.

ein

Zeigt den Standard-Ausgangsport als letzten Fall im Switch Case-Block an. Dies ermöglicht es Ihnen, einen Standardfall festzulegen, der ausgeführt wird, wenn der Eingangswert nicht mit den anderen Fallwerten übereinstimmt.

aus

Blendet den Standard-Ausgangsport aus.

Programmatische Verwendung

Blockparameter: ShowDefaultCase
Typ: Zeichenvektor
Werte: 'on' | 'off'
Standardwert: 'on'

Regelt die Detektion von Nulldurchgängen.

ein

Nulldurchgänge erkennen.

aus

Nulldurchgänge nicht erkennen.

Programmatische Verwendung

Blockparameter: ZeroCross
Typ: Zeichenvektor
Werte: 'on' | 'off'
Standardwert: 'on'

Blockeigenschaften

Datentypen

double | enumerated | integer | single

Direct Feedthrough

ja

Mehrdimensionale Signale

nein

Signale mit variabler Größe

nein

Erkennung von Nulldurchgängen

ja

Erweiterte Fähigkeiten

alle erweitern

C/C++ Codegenerierung
Generieren von C und C++ Code mit Simulink® Coder™.

Versionsverlauf

Eingeführt vor R2006a