Main Content

Chart

Implementieren von Steuerlogik mit endlicher Zustandsmaschine

  • Chart block

Bibliotheken:
Stateflow

Beschreibung

Der Block Chart (Diagramm) ist die grafische Darstellung einer endlichen Zustandsmaschine, die auf einem Zustandsübergangsdiagramm basiert. In einem Stateflow®-Diagramm bilden Zustände und Übergänge die Grundbausteine eines sequentiellen Logiksystems. Zustände entsprechen den Betriebsmodi und Übergänge repräsentieren die Wechsel zwischen den Zuständen. Weitere Informationen finden Sie unter Model Finite State Machines by Using Stateflow Charts.

Zum Implementieren einer Steuerlogik können Stateflow-Diagramme MATLAB® oder C als Aktionssprache verwenden. Weitere Informationen finden Sie unter Differences Between MATLAB and C as Action Language Syntax.

Die Diagrammeigenschaften legen fest, wie Ihr Stateflow-Diagramm sich mit dem Simulink®-Modell verbindet. Sie können die Diagrammeigenschaften im Property Inspector, dem Model Explorer oder im Dialogfenster „Chart properties“ ändern. Weitere Informationen finden Sie unter Specify Properties for Stateflow Charts. Alternativ dazu können Sie die Diagrammeigenschaften auch programmatisch mithilfe von Stateflow.Chart-Objekten ändern. Weitere Informationen über die Stateflow-Programmierschnittstelle finden Sie unter Overview of the Stateflow API.

Ports

Eingang

alle erweitern

Wenn Sie Eingangsdaten im Fensterbereich Symbols erzeugen, erstellt Stateflow Eingangsports. Die von Ihnen erzeugten Eingangsdaten haben einen entsprechenden Eingangsport, der erscheint, nachdem Sie die Daten erzeugt haben.

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

Ausgang

alle erweitern

Wenn Sie Ausgangsdaten im Fensterbereich Symbols erzeugen, erstellt Stateflow Ausgangsports. Die von Ihnen erzeugten Ausgangsdaten haben einen entsprechenden Ausgangsport, der erscheint, nachdem Sie die Daten erzeugt haben.

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

Parameter

alle erweitern

Parameter auf der Registerkarte „Code Generation“ erfordern den Simulink Coder™ oder Embedded Coder®.

Haupt

Wählen Sie, wie Portkennzeichnungen auf dem Chart-Blocksymbol angezeigt werden sollen.

none

Portkennzeichnungen nicht anzeigen.

FromPortIcon

Wenn das entsprechende Portsymbol einen Signalnamen anzeigt, den Signalnamen auf dem Chart-Block anzeigen. Andernfalls den Namen des Portblocks anzeigen.

FromPortBlockName

Den Namen des entsprechenden Portblocks auf dem Chart-Block anzeigen.

SignalName

Wenn ein Signalname vorhanden ist, den Namen des mit dem Port verbundenen Signals auf dem Chart-Block anzeigen. Andernfalls den Namen des entsprechenden Portblocks anzeigen.

Programmatische Verwendung

Parameter: ShowPortLabels
Typ: skalare Zeichenfolge oder Zeichenvektor
Wert: "none" | "FromPortIcon" | "FromPortBlockName" | "SignalName"
Standard: "FromPortIcon"

Regeln Sie den Benutzerzugriff auf den Inhalt des Diagramms.

ReadWrite

Ermöglicht das Öffnen und Bearbeiten von Diagramminhalten.

ReadOnly

Ermöglicht das Öffnen, aber nicht das Bearbeiten des Diagramms. Wenn sich das Diagramm in einer Blockbibliothek befindet, können Sie Verknüpfungen zu dem Diagramm erstellen und öffnen. Außerdem können Sie lokale Kopien des Diagramms erstellen und bearbeiten, aber Sie können nicht die Berechtigungen ändern oder den Inhalt der ursprünglichen Bibliotheksinstanz bearbeiten.

NoReadOrWrite

Deaktiviert das Öffnen oder Bearbeiten von Diagrammen. Wenn sich das Diagramm in einer Bibliothek befindet, können Sie Verknüpfungen zu dem Diagramm in einem Modell erstellen, aber Sie können das Diagramm nicht öffnen, bearbeiten, Berechtigungen ändern oder lokale Kopien davon erstellen.

Programmatische Verwendung

Parameter: Permissions
Typ: skalare Zeichenfolge oder Zeichenvektor
Wert: "ReadWrite" | "ReadOnly" | "NoReadOrWrite"
Standard: "ReadWrite"
aus

Versucht nicht, künstliche algebraische Schleifen zu entfernen, die das atomare Unterdiagramm einschließen.

ein

Versucht, alle künstlichen algebraischen Schleifen zu entfernen, die das atomare Unterdiagramm einschließen.

Programmatische Verwendung

Parameter: MinAlgLoopOccurrences
Typ: skalare Zeichenfolge oder Zeichenvektor
Wert: "off" | "on"
Standard: "off"

Geben Sie an, ob alle Blöcke in diesem Diagramm mit der gleichen Geschwindigkeit ausgeführt werden müssen oder mit unterschiedlichen Geschwindigkeiten ausgeführt werden können.

  • Wenn die Blöcke im Diagramm mit unterschiedlichen Geschwindigkeiten ausgeführt werden können, geben Sie die Abtastzeit des Diagramms als vererbt an (-1).

  • Wenn alle Blöcke mit der gleichen Geschwindigkeit ausgeführt werden müssen, geben Sie die dieser Geschwindigkeit entsprechende Abtastzeit als Wert des Parameters Sample time an.

  • Wenn einer der Blöcke im Diagramm eine andere Abtastzeit (als -1 oder inf) angibt, zeigt Simulink eine Fehlermeldung an, wenn Sie das Modell aktualisieren oder simulieren. Nehmen wir zum Beispiel an, dass alle Blöcke in der Tabelle 5 Mal pro Sekunde ausgeführt werden müssen. Um diese Zeit sicherzustellen, geben Sie für die Abtastzeit des Diagramms 0.2 an. Wenn in diesem Beispiel einer der Blöcke im Diagramm eine andere Abtastzeit als 0.2, -1 oder inf angibt, zeigt Simulink einen Fehler an, wenn Sie das Modell aktualisieren oder simulieren.

-1

Gibt die vererbte Abtastzeit an. Wenn die Blöcke im Diagramm mit unterschiedlichen Geschwindigkeiten ausgeführt werden können, verwenden Sie diese Abtastzeit.

[Ts 0]

Gibt die periodische Abtastzeit an.

Programmatische Verwendung

Parameter: SystemSampleTime
Typ: skalare Zeichenfolge oder Zeichenvektor
Wert: "-1" | "[Ts 0]"
Standard: "-1"

Codegenerierung

Wählen Sie das generierte Codeformat für ein atomares (nicht-virtuelles) Unterdiagramm.

Auto

Simulink Coder wählt das optimale Format für Ihr System anhand des Typs und der Anzahl der Instanzen des Diagramms, die im Modell vorhanden sind.

Inline

Simulink Coder führt den Inline-Vorgang des Diagramms bedingungslos aus.

Nonreusable function

Simulink Coder erzeugt explizit eine separate Funktion in einer separaten Datei. Diagramme mit dieser Einstellung erzeugen Funktionen, die je nach Einstellung der Funktionsschnittstelle in der Parametereinstellung Code Generation (Simulink) Argumente haben können. Sie können die erzeugte Funktion und die Datei mit den Parametern Function name und File name (no extension) benennen, jeweils aus Code Generation (Simulink). Diese Funktionen sind nicht reentrant (wiedereintrittsfähig).

Reusable function

Simulink Coder generiert eine Funktion mit Argumenten, die die Wiederverwendung von Diagrammcode ermöglicht, wenn ein Modell mehrere Instanzen des Diagramms enthält.

Diese Option generiert eine Funktion mit Argumenten, die die Wiederverwendung von Diagrammcode im generierten Code einer Modellreferenzhierarchie ermöglicht, die mehrere Instanzen eines Diagramms über referenzierte Modelle hinweg enthält. In diesem Fall muss sich das Diagramm in einer Bibliothek befinden.

Tipps

  • Wenn Sie mehrere Instanzen eines Diagramms als eine wiederverwendbare Funktion darstellen wollen, können Sie jede einzelne als Auto oder als Reusable function bezeichnen. Es empfiehlt sich, nur eine davon zu verwenden, da durch die Verwendung beider Funktionen zwei wiederverwendbare Funktionen entstehen, eine für jede Bezeichnung. Die Ergebnisse dieser Entscheidungen unterscheiden sich nur dann, wenn eine Wiederverwendung nicht möglich ist. Wenn Sie Auto wählen, können Sie die Funktion oder den Dateinamen für den Diagrammcode nicht steuern.

  • Die Optionen Reusable function und Auto geben vor, ob mehrere Instanzen eines Diagramms existieren und ob der Code wiederverwendet werden kann. Die Optionen verhalten sich unterschiedlich, wenn der Code nicht wiederverwendet werden kann. In diesem Fall liefert Auto Inline-Code oder, wenn die Umstände eine Inline-Ersetzung nicht zulassen, separate Funktionen für jede Diagramminstanz.

  • Wenn Sie die Option Reusable function auswählen, während sich Ihr generierter Code unter der Versionsverwaltung befindet, setzen Sie File name options auf Use subsystem name, Use function name oder User specified. Andernfalls ändern sich die Namen Ihrer Codedateien bei jeder Änderung Ihres Modells, wodurch keine Versionsverwaltung Ihrer Dateien möglich ist.

Abhängigkeit

  • Dieser Parameter erfordert den Simulink Coder.

  • Wenn Sie diesen Parameter auf Nonreusable function oder Reusable function setzen, werden die folgenden Parameter aktiviert:

    • Function name options

    • File name options

    • Speicherabschnitt für Funktionen zum Initialisieren/Beenden (erfordert Embedded Coder und eine ERT-basierte System-Zieldatei)

    • Speicherabschnitt für Funktionen zum Ausführen (erfordert Embedded Coder und eine ERT-basierte System-Zieldatei)

  • Wenn Sie diesen Parameter auf Nonreusable function setzen, wird Function with separate data aktiviert (erfordert eine Lizenz für Embedded Coder und eine ERT-basierte System-Zieldatei).

Programmatische Verwendung

Parameter: RTWSystemCode
Typ: skalare Zeichenfolge oder Zeichenvektor
Wert: "Auto" | "Inline" | "Nonreusable function" | "Reusable function"
Standard: "Auto"

Erweiterte Fähigkeiten

C/C++ Codegenerierung
Generieren von C und C++ Code mit Simulink® Coder™.

PLC-Codegenerierung
Generieren strukturierten Textcodes mit Simulink® PLC Coder™.

Festkommakonvertierung
Entwerfen und Simulieren von Festkommasystemen mit Fixed-Point Designer™.

Versionsverlauf

Eingeführt vor R2006a

alle erweitern