Contenuto principale

La traduzione di questa pagina non è aggiornata. Fai clic qui per vedere l'ultima versione in inglese.

Switch Case

Selezionare l'esecuzione del sottosistema utilizzando una logica simile alla dichiarazione switch

  • Switch Case block

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

Descrizione

Il blocco Switch Case con i blocchi Switch Case Action Subsystem, che contengono i blocchi Action Port, implementa la logica di commutazione per controllare l'esecuzione del sottosistema. Per un esempio che utilizza il blocco Switch Case, vedere Select Subsystem Execution.

Model ex_switch_case_block

Un blocco Switch Case presenta un singolo input. Per selezionare un caso, definire il valore di input utilizzando il parametro Case conditions. I casi vengono valutati dall'alto verso il basso, a partire dal primo caso.

Ciascun caso è associato a una porta di output collegata a un blocco Switch Case Action Subsystem. Quando viene selezionato un caso, la porta di output associata invia un segnale di azione per eseguire il sottosistema.

Un caso default viene selezionato dopo che tutte le altre condizioni del caso risultano false. L'inclusione di un caso default è opzionale, anche se le altre condizioni del caso non esauriscono tutti i possibili valori di input.

I casi per il blocco Switch Case contengono un'interruzione implicita dopo l'esecuzione di un blocco Switch Case Action Subsystem. Pertanto, non esiste un comportamento di esecuzione a cascata per il blocco Simulink® Switch Case come si riscontra nelle dichiarazioni switch standard in C.

Esempi

Limitazioni

Il blocco Switch Case non supporta parametri sincronizzabili. I valori di Case conditions non possono essere sincronizzati durante una simulazione in modalità normale o di accelerazione, né durante l'esecuzione del codice generato.

Porte

Input

espandi tutto

L'input alla porta etichettata u1 di un blocco Switch Case può essere:

  • Un valore scalare con un tipo di dati integrato supportato da Simulink. Tuttavia, il blocco Switch Case non supporta i tipi di dati booleani o in virgola fissa e tronca gli input numerici a numeri interi con segno a 32 bit.

  • Un valore scalare di qualsiasi tipo di dati enumerato.

Tipi di dati: single | double | int8 | int16 | int32 | uint8 | uint16 | uint32 | enumerated

Output

espandi tutto

Gli output delle porte Case e default sono segnali di azione collegati ai blocchi Switch Case Action Subsystem.

Parametri

espandi tutto

Specificare i valori dei casi utilizzando la notazione delle celle MATLAB®.

{1}

Specificare che la porta di output etichettata case[1] generi un segnale di azione quando il valore della porta di input è 1.

elenco delle porte con assegnazioni di casi

Specificare più casi e porte utilizzando la notazione delle celle di MATLAB. Ad esempio, inserendo {1,[7,9,4]} si specifica che la porta di output case[1] venga eseguita quando il valore di input è 1 e che la porta di output case [7 9 4] venga eseguita quando il valore di input è 7, 9 o 4.

È possibile utilizzare la notazione dei due punti per specificare un intervallo di condizioni del caso intero. Ad esempio, inserendo {[1:5]} si specifica che la porta di output case[1 2 3 4 5] venga eseguita quando il valore di input è 1, 2, 3, 4 o 5.

A seconda delle dimensioni del blocco, i casi di un lungo elenco di condizioni vengono visualizzati in forma abbreviata sulla faccia del blocco Switch Case, utilizzando un'ellissi finale (...).

È possibile utilizzare il nome di un tipo enumerato per specificare le condizioni del caso che includono un caso per ciascun valore del tipo enumerato.

Utilizzo programmatico

Parametro dei blocchi: CaseConditions
Tipo: vettore di caratteri
Valori: '{1}' | elenco dei casi tra virgolette
Impostazione predefinita: '{1}'

Controllare la visualizzazione della porta di output predefinita.

on

Visualizzare la porta di output predefinita come ultimo caso del blocco Switch Case. Questo consente di specificare un caso predefinito che viene eseguito quando il valore di input non corrisponde a nessuno degli altri valori del caso.

off

Nascondere la porta di output predefinita.

Utilizzo programmatico

Parametro dei blocchi: ShowDefaultCase
Tipo: vettore di caratteri
Valori: 'on' | 'off'
Impostazione predefinita: 'on'

Controllare il rilevamento dello zero-crossing.

on

Rilevare gli zero-crossing.

off

Non rilevare gli zero-crossing.

Utilizzo programmatico

Parametro dei blocchi: ZeroCross
Tipo: vettore di caratteri
Valori: 'on' | 'off'
Impostazione predefinita: 'on'

Caratteristiche del blocco

Tipi di dati:

double | enumerated | integer | single

Passaggio diretto

Segnali multidimensionali

no

Segnali di dimensioni variabili

no

Rilevamento zero-crossing

Funzionalità estese

espandi tutto

Generazione di codice C/C++
Genera codice C e C++ con Simulink® Coder™.

Cronologia versioni

Introduzione prima di R2006a