Contenu principal

Mux

Combiner des signaux d’entrée de type de données et complexité identiques dans un vecteur virtuel

  • Mux block

Bibliothèques :
Simulink / Commonly Used Blocks
Simulink / Signal Routing
HDL Coder / Commonly Used Blocks
HDL Coder / Signal Routing

Description

Le bloc Mux permet de combiner des signaux d’entrée de type de données et complexité identiques dans un vecteur virtuel. Il est possible d’utiliser plusieurs blocs Mux pour créer un signal mux en plusieurs étapes. Cependant, le résultat sera plat comme si vous aviez utilisé un seul bloc Mux.

Dans l’idéal, utilisez des blocs Mux pour regrouper des signaux d’appel de fonction uniquement.

Même si un bloc Mux permet de créer un vecteur virtuel à partir de signaux de type de données et complexité identiques, il existe d’autres blocs qui regroupent les signaux de manière plus flexible et plus efficace.

  • Pour regrouper des signaux ou des messages, utilisez un bloc Bus Creator plutôt qu’un bloc Mux. Le bloc Bus Creator crée des bus virtuels avec la possibilité de regrouper des éléments dont les types de données et la complexité sont différents. Les bus permettent en outre d’accéder aux éléments par leur nom plutôt que par l’index. Si un bloc nécessite un vecteur virtuel au lieu d’un bus virtuel, le bus est converti en vecteur à la compilation du modèle.

  • Pour concaténer des signaux d’entrée, utilisez un bloc Vector Concatenate plutôt qu’un bloc Mux. Le bloc Vector Concatenate crée un vecteur non virtuel, ce qui améliore l’efficacité du code généré.

Pour comparer les signaux mux, les bus virtuels et les signaux concaténés, consultez Explore Composite Interfaces.

Exemples

Ports

Entrée(s)

développer tout

Signal d’entrée à inclure dans le signal mux, spécifié en tant que scalaire ou vecteur.

Les signaux d’entrée d’un bloc Mux peuvent être des scalaires, des vecteurs ou une combinaison des deux mais ils doivent avoir un type de données et une complexité identiques ou être des signaux d’appel de fonction.

Types de données : single | double | half | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | Boolean | fixed point | enumerated | image
Support des nombres complexes : Oui

Sortie(s)

développer tout

Signal mux de sortie combinant les signaux d’entrée et renvoyé sous forme de vecteur.

Les éléments du signal mux de sortie suivent l’ordre des ports des signaux d’entrée. Pour connaître l’ordre des ports pour différentes orientations de bloc, consultez Identify Port Location on Rotated or Flipped Block.

Types de données : single | double | half | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | Boolean | fixed point | enumerated | image

Paramètres

développer tout

Nombre de signaux d’entrée, spécifié en tant que scalaire, vecteur, cell array ou liste de noms de signaux séparés par des virgules. Certains de ces formats permettent de spécifier le nom et la taille des signaux, comme indiqué dans le tableau suivant.

FormatComportement du bloc

Scalaire

Nombre d’entrées du bloc Mux.

Si vous utilisez ce format, le bloc accepte des signaux scalaires ou vectoriels de toute taille. Le software attribue à chaque entrée le nom signalN, où N est le numéro du port d’entrée.

Vecteur

La longueur du vecteur indique le nombre d’entrées. Chaque élément spécifie la taille de l’entrée correspondante.

Une valeur positive indique que le port correspondant accepte uniquement les vecteurs de cette taille. Par exemple, [2 3] spécifie deux ports d’entrée ayant respectivement une taille de 2 et de 3. Si la largeur d’un signal d’entrée ne correspond pas à celle attendue, un message d’erreur s’affiche. La valeur -1 indique que le port correspondant accepte les scalaires ou vecteurs de toute taille.

Cell array

La longueur du cell array indique le nombre d’entrées. La valeur de chaque cellule spécifie la taille de l’entrée correspondante.

Une valeur scalaire N spécifie un vecteur de taille N. La valeur -1 indique que le port correspondant accepte les signaux scalaires ou vectoriels de toute taille.

Liste de noms de signaux séparés par des virgules

Liste de noms de signaux séparés par des virgules. Le software attribue chaque nom au port et au signal correspondants. Par exemple, si vous saisissez position,velocity, le bloc Mux a deux entrées nommées position et velocity.

La spécification d’une valeur non double telle que single(3) n’est pas supportée.

Conseils

Si vous spécifiez un scalaire pour le paramètre Number of inputs, que tous les ports d’entrée sont connectés et que vous tracez un nouvelle ligne de signal du côté de l’entrée d’un bloc Mux, le software ajoute un port et met à jour le paramètre.

Utilisation programmatique

Pour définir la valeur du paramètre du bloc de manière programmatique, utilisez la fonction set_param.

Paramètre : Inputs
Valeurs : '2' (par défaut) | scalar in quotes | vector in quotes | cell array in quotes | comma-separated list of signal names in quotes
Types de données : char | string

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

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

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

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

Apparence de l’icône du bloc, spécifiée comme bar, signals ou none.

  • bar : aucun texte ne s’affiche

  • signals : les noms des signaux d’entrée s’affichent

  • none : le type de bloc (Mux) s’affiche

Redimensionnez le bloc si nécessaire pour ajuster le texte à l’icône du bloc.

Utilisation programmatique

Pour définir la valeur du paramètre du bloc de manière programmatique, utilisez la fonction set_param.

Paramètre : DisplayOption
Valeurs : 'bar' (par défaut) | 'signals' | 'none'

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

Caractéristiques des blocs

Types de données

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

Traversée directe

oui

Signaux multidimensionnels

non

Signaux de taille variable

non

Détection des passages à zéro

non

Capacités étendues

développer tout

Génération de code PLC
Générez du texte structuré avec Simulink® PLC Coder™.

Historique des versions

Introduit avant R2006a