Main Content

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

Chart

Implementare la logica di controllo con macchina a stato finito

  • Chart block

Librerie:
Stateflow

Descrizione

Il blocco Chart è una rappresentazione grafica di una macchina a stato finito basata su un diagramma di transizione di stato. In un grafico Stateflow®, gli stati e le transizioni costituiscono i blocchi di costruzione di base di un sistema logico sequenziale. Gli stati corrispondono alle modalità operative e le transizioni rappresentano i percorsi tra gli stati. Per ulteriori informazioni, vedere Model Finite State Machines by Using Stateflow Charts.

Per implementare la logica di controllo, i grafici Stateflow possono utilizzare il linguaggio di azione di MATLAB® o il linguaggio di azione C. Per ulteriori informazioni, vedere Differences Between MATLAB and C as Action Language Syntax.

Le proprietà del grafico specificano come il grafico Stateflow si interfaccia con il modello di Simulink®. È possibile modificare le proprietà del grafico nel Property Inspector, nel Model Explorer o nella finestra di dialogo delle proprietà del grafico. Per ulteriori informazioni, vedere Specify Properties for Stateflow Charts. In alternativa, è possibile modificare le proprietà del grafico in modo programmatico utilizzando gli oggetti Stateflow.Chart. Per ulteriori informazioni sull'interfaccia programmatica di Stateflow, vedere Overview of the Stateflow API.

Porte

Input

espandi tutto

Quando si creano i dati di input nel riquadro Symbols, Stateflow crea le porte di input. I dati di input creati avranno una corrispondente porta di input che apparirà una volta creati i dati.

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

Output

espandi tutto

Quando si creano i dati di output nel riquadro Symbols, Stateflow crea le porte di output. I dati di output creati avranno una corrispondente porta di output che apparirà una volta creati i dati.

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

Parametri

espandi tutto

I parametri della scheda Code Generation (Generazione di codice) richiedono Simulink Coder™ o Embedded Coder®.

Principale

Selezionare come visualizzare le etichette delle porte sull'icona del blocco Chart.

none

Non visualizzare le etichette delle porte.

FromPortIcon

Se l'icona della porta corrispondente visualizza un nome del segnale, visualizzare il nome del segnale sul blocco Chart. Altrimenti, visualizzare il nome del blocco della porta.

FromPortBlockName

Visualizzare il nome del blocco della porta corrispondente sul blocco Chart.

SignalName

Se è presente un nome del segnale, visualizzare il nome del segnale collegato alla porta sul blocco Chart. Altrimenti, visualizzare il nome del blocco della porta corrispondente.

Utilizzo programmatico

Parametro: ShowPortLabels
Tipo: scalare di stringa o vettore di caratteri
Valore: "none""FromPortIcon" | "FromPortBlockName" | "SignalName"
Predefinito: "FromPortIcon"

Controllare l'accesso dell'utente al contenuto del grafico.

ReadWrite

Consentire l'apertura e la modifica del contenuto del grafico.

ReadOnly

Consentire l'apertura del grafico ma non la modifica. Se il grafico si trova in un blocco libreria, è possibile creare e aprire collegamenti al grafico e creare e modificare copie locali dello stesso, ma non è possibile cambiare i permessi o modificare il contenuto dell'istanza della libreria originale.

NoReadOrWrite

Disabilitare l'apertura o la modifica del grafico. Se il grafico si trova in una libreria, è possibile creare collegamenti al grafico in un modello, ma non è possibile aprire, modificare, cambiare i permessi o creare copie locali del grafico.

Utilizzo programmatico

Parametro: Permissions
Tipo: scalare di stringa o vettore di caratteri
Valore: "ReadWrite" | "ReadOnly" | "NoReadOrWrite"
Predefinito: "ReadWrite"
off

Non provare ad eliminare i loop algebrici artificiali che includono il grafico secondario atomico.

on

Provare ad eliminare i loop algebrici artificiali che includono il grafico secondario atomico.

Utilizzo programmatico

Parametro: MinAlgLoopOccurrences
Tipo: scalare di stringa o vettore di caratteri
Valore: "off" | "on"
Predefinito: "off"

Specificare se tutti i blocchi di questo grafico devono essere eseguiti alla stessa velocità o se possono essere eseguiti a velocità diverse.

  • Se i blocchi nel grafico possono essere eseguiti a velocità diverse, specificare il tempo di campionamento del grafico come ereditato (-1).

  • Se tutti i blocchi devono essere eseguiti alla stessa velocità, specificare il tempo di campionamento corrispondente a tale velocità come valore del parametro Sample time.

  • Se uno dei blocchi del grafico indica un tempo di campionamento differente (diverso da -1 o inf), Simulink visualizza un messaggio di errore quando si aggiorna o si simula il modello. Ad esempio, si supponga che tutti i blocchi del grafico debbano essere eseguiti 5 volte al secondo. Per garantire questo tempo, specificare il tempo di campionamento del grafico come 0.2. In questo esempio, se uno dei blocchi del grafico indica un tempo di campionamento diverso da 0.2, -1 o inf, Simulink visualizza un errore quando si aggiorna o si simula il modello.

-1

Specificare il tempo di campionamento ereditato. Se i blocchi del grafico possono essere eseguiti a velocità diverse, utilizzare questo tempo di campionamento.

[Ts 0]

Specificare il tempo di campionamento periodico.

Utilizzo programmatico

Parametro: SystemSampleTime
Tipo: scalare di stringa o vettore di caratteri
Valore: "-1" | "[Ts 0]"
Predefinito: "-1"

Generazione di codice

Selezionare il formato del codice generato per un grafico secondario atomico (non virtuale).

Auto

Simulink Coder sceglie il formato ottimale per il sistema in base al tipo e al numero di istanze del grafico presenti nel modello.

Inline

Simulink Coder incorpora il grafico in modo incondizionato.

Nonreusable function

Simulink Coder genera esplicitamente una funzione separata in un file distinto. I grafici con questa impostazione generano funzioni che potrebbero avere argomenti dipendenti dall'impostazione dei parametri dell'interfaccia della funzione in Code Generation (Simulink). È possibile assegnare un nome alla funzione e al file generati utilizzando rispettivamente i parametri nome della funzione e nome file (senza estensione), da Code Generation (Simulink). Queste funzioni non sono rientranti.

Reusable function

Simulink Coder genera una funzione con argomenti che consente di riutilizzare il codice del grafico quando un modello include più istanze del grafico.

Questa opzione genera una funzione con argomenti che consente di riutilizzare il codice del grafico nel codice generato di una gerarchia di riferimento del modello che include più istanze di un grafico attraverso i modelli di riferimento. In questo caso, il grafico deve essere una libreria.

Suggerimenti

  • Quando si desidera che più istanze di un grafico siano rappresentate come un'unica funzione riutilizzabile, è possibile definire ciascuna di esse come Auto o come Reusable function. È preferibile utilizzare solo un'opzione poiché l'utilizzo di entrambe crea due funzioni riutilizzabili, una per ogni definizione. I risultati di queste scelte differiscono solo quando il riutilizzo non è possibile. La selezione di Auto non consente di controllare la funzione o il nome del file per il codice del grafico.

  • Le opzioni Reusable function e Auto determinano entrambe se sono presenti più istanze di un grafico e se il codice può essere riutilizzato. Le opzioni hanno un comportamento diverso quando è impossibile riutilizzare il codice. In questo caso, Auto produce codice incorporato o, nel caso in cui le circostanze impediscano l'incorporazione, produce funzioni separate per ciascuna istanza del grafico.

  • Se si seleziona l'opzione Reusable function mentre il codice generato è sottoposto al controllo sorgente, impostare File name options su Use subsystem name, Use function name o User specified. Altrimenti, i nomi del file di codice cambiano ogni volta si modifica il modello, impendendo quindi il controllo della sorgente sui file.

Dipendenza

  • Questo parametro richiede Simulink Coder.

  • Impostando questo parametro su Nonreusable function o Reusable function si abilitano i seguenti parametri:

    • Function name options

    • File name options

    • Sezione di memoria per le funzioni di inizializzazione/termine (richiede Embedded Coder e un file di destinazione di sistema basato su ERT)

    • Sezione di memoria per le funzioni di esecuzione (richiede Embedded Coder e un file di destinazione di sistema basato su ERT)

  • Impostando questo parametro su Nonreusable function si abilita Function with separate data (richiede una licenza per Embedded Coder e un file di destinazione di sistema basato su ERT).

Utilizzo programmatico

Parametro: RTWSystemCode
Tipo: scalare di stringa o vettore di caratteri
Valore: "Auto" | "Inline" | "Nonreusable function" | "Reusable function"
Predefinito: "Auto"

Funzionalità estese

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

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

Conversione a virgola fissa
Progetta e simula sistemi a virgola fissa con Fixed-Point Designer™.

Cronologia versioni

Introduzione prima di R2006a

espandi tutto