Contenu principal

Switch Case

Sélectionner l’exécution du sous-système en utilisant une logique semblable à l’instruction switch

  • Switch Case block

Bibliothèques :
Simulink / Ports & Subsystems
HDL Coder / Ports & Subsystems

Description

Le bloc Switch Case, ainsi que les blocs Switch Case Action Subsystem qui contiennent des blocs Action Port, implémente la logique de commutation pour contrôler l’exécution des sous-systèmes. Pour un exemple qui utilise le bloc Switch Case, consultez Select Subsystem Execution.

Model ex_switch_case_block

Un bloc Switch Case est une entrée unique. Pour sélectionner un cas, définissez la valeur d’entrée à l’aide du paramètre Case conditions. Les cas sont évalués de haut en bas en commençant par le premier d’entre eux.

Chaque cas est associé à un port de sortie qui est relié à un bloc Switch Case Action Subsystem. Lorsqu’un cas est sélectionné, le port de sortie associé envoie un signal d’action pour exécuter le sous-système.

Un cas default est sélectionné une fois que toutes les autres conditions de cas sont évaluées comme fausses. La spécification d’un cas default est facultative, y compris si les autres conditions de cas n’épuisent pas toutes les valeurs d’entrée possibles.

Les cas du bloc Switch Case contiennent une pause implicite à l’issue de l’exécution d’un bloc Switch Case Action Subsystem. Par conséquent, il n’y a pas de comportement de chute pour le bloc Simulink® Switch Case lorsqu’il est détecté dans les instructions C switch standard.

Exemples

Limitations

Le bloc Switch Case ne supporte pas les paramètres réglables. Les valeurs de Case conditions ne peuvent pas être réglées pendant une simulation en mode normal ou accélérateur, ni pendant l’exécution du code généré.

Ports

Entrée(s)

développer tout

L’entrée sur le port étiqueté u1 d’un bloc Switch Case peut être :

  • Une valeur scalaire avec un type de données prédéfini supporté par Simulink. Cependant, le bloc Switch Case ne supporte pas les types de données booléens ou à virgule fixe et il tronque les entrées numériques en entiers signés de 32 bits.

  • Une valeur scalaire de tout type de données énuméré.

Types de données : single | double | int8 | int16 | int32 | uint8 | uint16 | uint32 | enumerated

Sortie(s)

développer tout

Les sorties des ports Case et default sont des signaux d’action reliés aux blocs Switch Case Action Subsystem.

Paramètres

développer tout

Spécifiez les valeurs de cas à l’aide de la notation de cellule MATLAB®.

{1}

Spécifiez le port de sortie étiqueté case[1] produit un signal d’action lorsque la valeur du port d’entrée est 1.

liste des ports avec affectations de cas

Spécifiez plusieurs cas et ports à l’aide de la notation de cellule MATLAB. Par exemple, saisir {1,[7,9,4]} indique que le port de sortie case[1] est exécuté lorsque la valeur d’entrée est 1 et que le port de sortie case [7 9 4] est exécuté lorsque la valeur d’entrée est 7, 9, ou 4.

Vous pouvez utiliser la notation à deux-points pour spécifier une plage de conditions de cas d’entier. Par exemple, saisir {[1:5]} indique que le port de sortie case[1 2 3 4 5] est exécuté lorsque la valeur d’entrée est 1, 2, 3, 4, ou 5.

Selon la taille du bloc, les cas d’une longue liste de conditions de cas sont affichés sous forme abrégée sur la face du bloc Switch Case, en utilisant une ellipse de fin (...).

Vous pouvez utiliser le nom d’un type énuméré pour spécifier des conditions de cas qui incluent un cas pour chaque valeur de ce type énuméré.

Utilisation programmatique

Paramètre de bloc : CaseConditions
Type : vecteur de caractères
Valeurs : '{1}' | liste de cas entre apostrophes droits
Par défaut : '{1}'

Contrôlez l’affichage du port de sortie par défaut.

on

Affichez le port de sortie par défaut comme dernier cas sur le bloc Switch Case. Vous pouvez ainsi spécifier un cas par défaut qui s’exécute lorsque la valeur d’entrée ne correspond à aucune des autres valeurs de cas.

off

Masquez le port de sortie par défaut.

Utilisation programmatique

Paramètre de bloc : ShowDefaultCase
Type : vecteur de caractères
Valeurs : 'on' | 'off'
Par défaut : 'on'

Contrôlez la détection des passages par zéro.

on

Détectez les passages par zéro.

off

Ne détectez pas les passages par zéro.

Utilisation programmatique

Paramètre de bloc : ZeroCross
Type : vecteur de caractères
Valeurs : 'on' | 'off'
Par défaut : 'on'

Caractéristiques des blocs

Types de données

double | enumerated | integer | single

Traversée directe

oui

Signaux multidimensionnels

non

Signaux de taille variable

non

Détection des passages à zéro

oui

Capacités étendues

développer tout

Génération de code C/C++
Générez du code C et C++ avec Simulink® Coder™.

Historique des versions

Introduit avant R2006a