Main Content

Mux

Combinare segnali di input dello stesso tipo di dati e complessità in vettore virtuale

  • Mux block

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

Descrizione

Il blocco Mux combina gli input con lo stesso tipo di dati e la stessa complessità in un vettore virtuale. È possibile utilizzare più blocchi Mux creare un segnale mux in più fasi, ma si otterrebbe un risultato piatto come se si utilizzasse un singolo blocco Mux.

L'ideale è utilizzare i blocchi Mux per raggruppare solo i segnali di chiamata di funzione.

Mentre un blocco Mux può creare un vettore virtuale da segnali che hanno lo stesso tipo di dati e la stessa complessità, altri blocchi raggruppano i segnali in modi che offrano una maggiore flessibilità ed efficienza.

  • Per raggruppare segnali o messaggi, utilizzare un blocco Bus Creator anziché un blocco Mux. Il blocco Bus Creator crea bus virtuali che forniscono la flessibilità di raggruppare elementi di diversi tipi di dati e di diversa complessità. I bus virtuali consentono inoltre di accedere agli elementi per nome anziché per indice. Se un blocco richiede un vettore virtuale invece di un bus virtuale, la compilazione del modello converte il bus in un vettore.

  • Per concatenare i segnali di input, utilizzare un blocco Vector Concatenate anziché un blocco Mux. Il blocco Vector Concatenate crea un vettore non virtuale, che migliora l'efficienza del codice generato.

Per un confronto tra segnali mux, bus virtuali e segnali concatenati, vedere Explore Composite Interfaces.

Porte

Input

espandi tutto

Segnale di input da includere nel segnale mux specificato come scalare o vettore.

I segnali di input per un blocco Mux possono consistere in qualsiasi combinazione di scalari e vettori, ma devono avere lo stesso tipo di dati e la stessa complessità o essere segnali di chiamata di funzione.

Tipi di dati: single | double | half | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | Boolean | fixed point | enumerated | image
Supporto numeri complessi:

Output

espandi tutto

Segnale mux di output composto da segnali di input combinati, restituito come vettore.

Gli elementi del segnale mux di output sono ordinati in base all'ordine delle porte dei segnali di input. Per una descrizione dell'ordine delle porte per i vari orientamenti dei blocchi, vedere Identify Port Location on Rotated or Flipped Block.

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

Parametri

espandi tutto

Numero di segnali di input specificato come scalare, vettore, array di celle o elenco separato da virgole dei nomi dei segnali. Alcuni di questi formati consentono di specificare i nomi e le grandezze dei segnali, come descritto nella tabella seguente.

FormatoComportamento del blocco

Scalare

Il numero di input del blocco Mux.

Quando si utilizza questo formato, il blocco accetta segnali scalari o vettoriali di qualsiasi grandezza. Il software assegna a ciascun input il nome signalN, dove N è il numero della porta di input.

Vettore

La lunghezza del vettore specifica il numero di input. Ciascun elemento specifica la grandezza dell'input corrispondente.

Un valore positivo specifica che la porta corrispondente può accettare solo vettori di quella grandezza. Ad esempio, [2 3] specifica due porte di input rispettivamente di grandezza 2 e 3. Se la larghezza di un segnale di input non corrisponde a quella prevista, viene visualizzato un messaggio di errore. Un valore di -1 specifica che la porta corrispondente può accettare scalari o vettori di qualsiasi grandezza.

Array di celle

La lunghezza dell'array di celle specifica il numero di input. Il valore di ciascuna cella specifica la grandezza dell'input corrispondente.

Un valore scalare N specifica un vettore di grandezza N. Un valore di -1 indica che la porta corrispondente può accettare segnali scalari o vettoriali di qualsiasi grandezza.

Elenco separato da virgole dei nomi dei segnali

Un elenco dei nomi dei segnali separati da virgole. Il software assegna ciascun nome alla porta e al segnale corrispondenti. Ad esempio, se si inserisce position,velocity, il blocco Mux ha due input, denominati position e velocity.

Suggerimenti

Se si specifica uno scalare per il parametro Number of inputs e tutte le porte di input sono collegate, quando si disegna una nuova linea di segnale vicino al lato di input di un blocco Mux, il software aggiunge una porta e aggiorna il parametro.

Utilizzo programmatico

Per impostare il valore del parametro del blocco in modo programmatico, utilizzare la funzione set_param.

Parametro: Inputs
Valori: '2' (predefinito) | scalar in quotes | vector in quotes | cell array in quotes | comma-separated list of signal names in quotes
Tipi di dati: char | string

Esempio set_param(gcb,'Inputs','5')

Esempio set_param(gcb,'Inputs','[2 3]')

Esempio set_param(gcb,'Inputs','{3}')

Esempio set_param(gcb,'Inputs','position,velocity')

Aspetto dell'icona del blocco, specificato come bar, signals o none.

  • bar: non viene visualizzato alcun testo

  • signals: vengono visualizzati i nomi dei segnali di input

  • none: viene visualizzato il tipo di blocco (Mux)

Ridimensionare il blocco secondo le necessità per adattare il testo all'icona del blocco.

Utilizzo programmatico

Per impostare il valore del parametro del blocco in modo programmatico, utilizzare la funzione set_param.

Parametro: DisplayOption
Valori: 'bar' (predefinito) | 'signals' | 'none'

Esempio set_param(gcb,'DisplayOption','signals')

Caratteristiche del blocco

Tipi di dati:

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

Passaggio diretto

Segnali multidimensionali

no

Segnali di dimensioni variabili

no

Rilevamento zero-crossing

no

Funzionalità estese

Generazione di codice PLC
Genera codice di testo strutturato con Simulink® PLC Coder™.

Cronologia versioni

Introduzione prima di R2006a