Hauptinhalt

Die Übersetzung dieser Seite ist veraltet. Klicken Sie hier, um die neueste Version auf Englisch zu sehen.

Erkennen von Modellierungsfehlern bei der Bearbeitung

Ist die Prüfung während der Bearbeitung aktiviert, erkennt der Stateflow® Editor potenzielle Fehler und Warnungen, während Sie das Diagramm bearbeiten. Indem Sie diese Probleme früh im Entwicklungsprozess beheben, können Sie Warnungen und Fehler bei der Kompilierung oder Ausführung vermeiden.

Der Stateflow Editor hebt Objekte, die die Prüfungen während der Bearbeitung nicht bestehen, rot (Fehler) oder orange (Warnungen) hervor. Wenn Sie den Mauszeiger über ein hervorgehobenes Objekt bewegen und auf das Fehler- oder Warnungssymbol klicken, zeigt ein Tooltip Details und mögliche Abhilfemaßnahmen an.

Verwalten der Prüfungen während der Bearbeitung

Standardmäßig sind die Prüfungen während der Bearbeitung und die Hervorhebung von Syntaxfehlern aktiviert. Um die Prüfungen während der Bearbeitung zu deaktivieren, deaktivieren Sie auf der Registerkarte Debug das Kontrollkästchen Diagnostics > Edit-Time Errors & Warnings. Prüfungen während der Bearbeitung können zudem mithilfe von edittime.setDisplayIssues (Simulink) deaktiviert werden.

In dieser Tabelle sind Prüfungen während der Bearbeitung aufgeführt, die über einen assoziierten Diagnose-Konfigurationsparameter im Fensterbereich Diagnostics > Stateflow im Konfigurationsparameter-Dialogfeld verfügen.

Sie können den Grad der Diagnoseaktion für diese Prüfungen während der Bearbeitung steuern, indem Sie den Wert ihrer Konfigurationsparameter auf error, warning oder none setzen. Wenn Sie die Einstellung eines Konfigurationsparameters ändern, wird der Diagnosegrad für die entsprechenden Prüfungen während der Bearbeitung ebenfalls geändert. Wenn Sie beispielsweise den Konfigurationsparameter Unreachable execution path auf none setzen, hebt der Stateflow Editor keine nicht verbundenen Übergänge, verdeckten Übergänge (Shadowing) oder nicht erreichbare Zustände hervor.

Prüfungen von Zuständen und Unterdiagrammen während der Bearbeitung

Atomic subchart contains state actions

  • Problem: Zustandsaktionen werden von atomaren Unterdiagrammen nicht unterstützt.

  • Diagnosegrad: Fehler.

  • Lösung: Löschen Sie die Zustandsaktionen oder verschieben Sie sie zu einem Unterzustand des atomaren Unterdiagramms.

    Atomic subchart that contains state actions.

Default transition is missing

  • Problem: In einem Diagramm oder Zustand mit exklusiver (OR) Dekomposition und mindestens zwei Unterzuständen oder Verbindungen ist ein Standardübergang erforderlich, um anzugeben, wo die Ausführung beginnt.

  • Diagnosegrad: Fehler.

  • Lösung: Geben Sie einen Anfangszustand an, indem Sie einen Standardübergang hinzufügen. Weitere Informationen finden Sie unter Verwenden von Standardübergängen zur Angabe der anfänglichen Unterzustandsaktivität.

    Chart with no default transition.

Graphical function contains a state

  • Problem: Da grafische Funktionen vollständig in einem einzigen Zeitschritt ausgeführt werden, dürfen sie keine Zustände enthalten.

  • Diagnosegrad: Fehler.

  • Lösung: Ersetzen Sie die Zustände durch Verbindungen. Weitere Informationen finden Sie unter Reuse Logic Patterns by Defining Graphical Functions.

    Graphical function that contains a state.

Invalid intersection

  • Problem: Zustände und Verbindungen dürfen nicht überlappen

  • Diagnosegrad: Fehler.

  • Lösung: Vermeiden Sie Überschneidungen, indem Sie Zustände und Verbindungen trennen.

    Invalid intersection between states.

Monitoring leaf or child state activity of parallel states

  • Problem: Diagramme und Zustände mit paralleler (AND) Dekomposition unterstützen keine Überwachung der Leaf-Aktivität oder Aktivität untergeordneter Zustände, da parallele Unterzustände simultan aktiv sind.

  • Diagnosegrad: Warnung.

  • Lösung: Öffnen Sie Property Inspector oder den Model Explorer. Deaktivieren Sie das Kontrollkästchen Create output for monitoring oder wählen Sie aus der Drop-Down-Liste Self activity aus. Weitere Informationen finden Sie unter Monitor State Activity Through Active State Data.

    Parallel substates in a state that monitors child state activity.

State contains a syntax error

  • Problem: Eine Zustandsaktion befolgt die Stateflow-Syntaxregeln nicht. Der Stateflow Editor unterstreicht Syntaxfehler mit einer gewellten roten Linie. Siehe auch Transition Contains a Syntax Error.

  • Diagnosegrad: Fehler.

  • Lösung: Korrigieren Sie den Syntaxfehler in der Zustandsaktion. Weitere Informationen finden Sie unter Definieren von Aktionen in einem Zustand.

    State that contains a syntax error.

    Hinweis

    Im übergeordneten Diagramm werden Unterdiagramme mit Syntaxfehlern rot hervorgehoben und ein Fehlersymbol weist auf den Syntaxfehler hin. Im Unterdiagramm-Editor ist der Syntaxfehler rot unterstrichen, aber es weist kein Symbol auf das Problem hin.

Unreachable state

  • Problem: Ein Zustand ist unerreichbar, wenn kein gültiger Ausführungspfad zu ihm hinführt.

  • Diagnosegrad: Hängt vom Konfigurationsparameter Unreachable execution path (Simulink) ab.

  • Lösung: Verbinden Sie den unerreichbaren Zustand mit einem Übergang von einer erreichbaren Quelle.

    Chart that contains an unreachable state.

Prüfungen von Übergängen während der Bearbeitung

Dangling transition

  • Problem: Jeder Übergang muss ein gültiges Ziel haben.

  • Diagnosegrad: Hängt vom Konfigurationsparameter Unreachable execution path (Simulink) ab.

  • Lösung: Verbinden Sie den Übergang mit einem Zustand, einer Verbindung oder einem Port. Weitere Informationen finden Sie unter Übergang zwischen Betriebsmodi.

    Chart that contains a dangling transition.

Default transition path does not terminate in a state

  • Problem: Bei Diagrammen oder Zuständen mit exklusiver (OR) Dekomposition und mindestens einem Unterzustand gilt Folgendes:

    • Jeder Zweig des Standard-Übergangspfads muss zu einem Unterzustand führen.

    • Es muss mindestens ein Zweig des Standard-Übergangspfads bestehen, der nicht von einer Bedingung geschützt ist oder von einem Ereignis ausgelöst wird.

  • Diagnosegrad: Hängt vom Konfigurationsparameter No unconditional default transitions (Simulink) ab.

  • Lösung: Schließen Sie jeden Zweig des Standard-Übergangspfads in einem Unterzustand ab. Stellen Sie sicher, dass ein Zweig des Standard-Übergangspfads nicht von einer Bedingung geschützt ist oder von einem Ereignis ausgelöst wird.

    Chart without an unconditional default transition branch to a state.

Ungültiger Standard- oder Übergangspfad für die Eingabe

  • Problem: Ein Standardübergangspfad oder ein Standard-Eingangsport darf den übergeordneten Zustand nicht verlassen oder an der Zustandsgrenze oder einer Verlaufsverbindung enden.

  • Diagnosegrad: Fehler.

  • Lösung: Ändern Sie den Standardübergangspfad, um im übergeordneten Zustand zu bleiben oder um nicht an der Zustandsgrenze oder einer Verlaufsverbindung zu enden.

    Transition that contains an invalid entry transition.

Transition contains a syntax error

  • Problem: Bei einem Übergang befolgt eine Bedingung oder Aktion die Stateflow-Syntaxregeln nicht. Der Stateflow Editor unterstreicht Syntaxfehler mit einer gewellten roten Linie. Siehe auch State Contains a Syntax Error.

  • Diagnosegrad: Fehler.

  • Lösung: Korrigieren Sie den Syntaxfehler in der Übergangsbedingung oder -Aktion. Weitere Informationen finden Sie unter Definieren von Aktionen bei einem Übergang.

    Transition that contains a syntax error.

Transition action precedes a condition action along this path

  • Problem: Wenn ein Übergang mit einer Bedingungsaktion auf einen Übergang mit einer Übergangsaktion folgt, werden die Aktionen nicht in Reihenfolge der Übergänge ausgeführt. Stateflow-Diagramme führen Bedingungsaktionen aus, wenn die assoziierte Bedingung wahr ist. Im Gegensatz hierzu führen Diagramme Übergangsaktionen nur aus, wenn der Übergangspfad vollständig ausgeführt wurde. Wenn ein Diagramm also einen Übergangspfad akzeptiert, werden die Bedingungsaktionen vor den Übergangsaktionen ausgeführt.

  • Diagnosegrad: Hängt vom Konfigurationsparameter Transition action specified before condition action (Simulink) ab.

  • Lösung: Platzieren Sie die Übergangsaktion nach der letzten Bedingungsaktion im Pfad.

    Transition path in which a transition action precedes a condition action.

Transition begins or ends in a parallel state

  • Problem: In Diagrammen und Zuständen mit paralleler (AND) Dekomposition sind alle benachbarten Unterzustände zugleich aktiv oder inaktiv.

  • Diagnosegrad: Warnung.

  • Lösung: Entfernen Sie die Übergänge oder ändern Sie die Dekomposition des übergeordneten Zustands in exklusiv (OR).

    Transitions that begin or end in a parallel states.

Transition connects to a box

  • Problem: Übergänge dürfen nur mit Zuständen und Verbindungen verbunden werden.

  • Diagnosegrad: Fehler.

  • Lösung: Verschieben oder löschen Sie die mit der Box verbundenen Übergänge.

    Chart with a transition that connects to a box.

Transition enters or exits graphical function

  • Problem: Übergänge dürfen nicht in grafische Funktionen eintreten oder diese verlassen. Flussdiagramme in grafischen Funktionen müssen sich vollständig innerhalb der Funktion befinden.

  • Diagnosegrad: Fehler.

  • Lösung: Löschen Sie den Übergang, der in die grafische Funktion eintritt oder diese verlässt.

    Chart containing transitions that enter and exit a graphical function.

Transition is not connected to entry/exit port

  • Problem: Der Übergang ist im Bereich der Quelle oder des Ziels nicht mit dem Eingangs- oder Ausgangsport verbunden.

  • Diagnosegrad: Warnung.

  • Lösung: Verbinden Sie den Übergang mit dem Port oder verschieben Sie die Übergangsquelle oder das Übergangsziel an einen anderen Ort.

    Entry port that is located near the destination point of a default transition.

Transition loops outside natural parent

  • Problem: Wenn ein Übergang zwischen Quelle und Ziel den übergeordneten Zustand verlässt, führt das Diagramm die exit- und entry-Aktionen des übergeordneten Zustands aus, bevor der Zielzustand aktiv wird.

  • Diagnosegrad: Hängt vom Konfigurationsparameter Transition outside natural parent (Simulink) ab.

  • Lösung: Verschieben Sie den Übergang, sodass dieser im übergeordneten Zustand enthalten ist.

    Transition between substates that goes outside the boundary of the parent state.

Transition shadowing

  • Problem: Wenn ein unbeschränkter Übergang vor anderen ausgehenden Übergangen derselben Quelle ausgeführt wird, verhindert dies eine Ausführung der anderen Übergänge.

  • Diagnosegrad: Hängt vom Konfigurationsparameter Unreachable execution path (Simulink) ab.

  • Lösung: Erstellen Sie nicht mehr als einen unbeschränkten Übergang von jedem Zustand oder jeder Verbindung. Legen Sie explizit fest, dass der unbeschränkte Übergang nach Übergängen mit Bedingungen ausgeführt wird. Weitere Informationen finden Sie unter Transition Evaluation Order.

    Chart with an unconditional transition that shadows a conditional transition.

Unconditional path out of state with during actions or child states

  • Problem: Unbeschränkte Übergänge, die aus einem Zustand führen, verhindern eine Ausführung der during-Aktionen im Zustand und Übergänge zwischen untergeordneten Zuständen.

  • Diagnosegrad: Hängt vom Konfigurationsparameter Transition outside natural parent (Simulink) ab.

  • Lösung: Fügen Sie dem Übergang eine Bedingung hinzu oder entfernen Sie „During“-Aktionen und untergeordnete Zustände aus dem Zustand.

    Chart with one transition out of a state with during actions and another transition out of a state with child states.

Prüfungen von Verbindungen während der Bearbeitung

Cycle contains transitions with transition actions

  • Problem: Zyklen sollten keine Übergänge mit Übergangsaktionen umfassen.

  • Diagnosegrad: Fehler.

  • Lösung: Entfernen Sie die Übergangsaktion oder entfernen Sie den Zyklus, indem Sie einen Übergang löschen.

    Flow chart with a transition action in a cycle.

Invalid history junction

  • Problem: Eine Verlaufsverbindung ist ungültig, wenn:

    • Die Verlaufsverbindung auf Diagrammebene der Hierarchie enthalten ist.

    • Die Verlaufsverbindung in einem Zustand mit paralleler (AND) Dekomposition enthalten ist.

    • Die Verlaufsverbindung in einer grafischen Funktion enthalten ist.

    • Ein Zustand enthält mehrere Verlaufsverbindungen.

    • Die Verlaufsverbindung ist die Quelle eines Übergangs.

  • Diagnosegrad: Fehler.

  • Lösung: Entfernen Sie die Verlaufsverbindung aus der Diagrammebene der Hierarchie, einem Zustand mit paralleler (AND) Dekomposition oder einer grafischen Funktion. Entfernen Sie alle bis auf eine Verlaufsverbindung aus dem Zustand. Verschieben Sie die Übergangsquelle zu einer Verbindung oder einem Zustand. Weitere Informationen finden Sie unter Wiederaufnahme früherer Aktivitäten unterhalb der Zustandsebene durch Verwendung von Verlaufsknoten.

    Chart that contains an invalid history junction.

Invalid intersection

  • Problem: Verbindungen und Zustände dürfen nicht überlappen

  • Diagnosegrad: Fehler.

  • Lösung: Vermeiden Sie Überschneidungen, indem Sie Zustände und Verbindungen trennen.

    Invalid intersection between junctions.

Junction has no unconditional escape from cycle

  • Problem: Eine Verbindung muss über einen uneingeschränkten Pfad aus einem Zyklus zu einem Zustand oder einer terminalen Verbindung verfügen.

  • Diagnosegrad: Fehler.

  • Lösung: Erstellen Sie einen unbeschränkten Pfad von der Verbindung zu einem Zustand oder einer terminalen Verbindung.

    Junction with no unconditional escape from a cycle.

Transition paths from same source have different parents

  • Problem: Der Übergang beginnt mit demselben Quellenzustand, weist jedoch verschiedene übergeordnete Elemente auf.

  • Diagnosegrad: Fehler.

  • Lösung: Modifizieren Sie die Übergangspfade so, dass sie dasselbe übergeordnete Element aufweisen.

    Junction with two incoming transition paths from the same source but with different parents.

Unexpected backtracking

  • Problem: Es kann zu einem unerwarteten Backtracking der Kontrollstrukturen kommen, wenn mehrere Übergangspfade aus derselben Quelle zu einer Verbindung führen und die Verbindung keinen unbeschränkten Pfad zu einem Zustand oder einer terminalen Verbindung aufweist.

  • Diagnosegrad: Hängt vom Konfigurationsparameter Unexpected backtracking (Simulink) ab.

  • Lösung: Erstellen Sie einen unbeschränkten Pfad von der Verbindung zu einem Zustand oder einer terminalen Verbindung. Weitere Informationen finden Sie unter Backtrack in Flow Charts.

    Die hervorgehobene Verbindung auf diesem Diagramm verfügt beispielsweise nicht über einen unbeschränkten Pfad zum Zustand A. Wenn ConditionA und ConditionB wahr sind und ConditionC falsch ist, tritt im Diagramm mehrmals ein Backtracking zur ersten Verbindung im Pfad auf. Dementsprechend führt das Diagramm die drei Bedingungsaktionen aus.

    Chart with unexpected backtracking.

    Um ein Backtracking zu vermeiden, kombinieren Sie die Bedingungen und erstellen Sie einen unbeschränkten Pfad von der zweiten Verbindung zum Zielzustand. Nach der Änderung führt das Diagramm nur eine Bedingungsaktion aus.

    Chart with no unexpected backtracking.

Unreachable junction

  • Problem: Eine Verbindung wird als unerreichbar betrachtet, wenn kein gültiger Ausführungspfad zu ihr führt.

  • Diagnosegrad: Hängt vom Konfigurationsparameter Unreachable execution path (Simulink) ab.

  • Lösung: Verbinden Sie die unerreichbare Verbindung mit einem Übergang aus einer erreichbaren Quelle.

    Chart that contains an unreachable junction.

Prüfungen von Funktionen während der Bearbeitung

Function is unused

  • Problem: Eine Funktion ist unbenutzt, wenn ein Diagramm über keine Ausdrücke verfügt, die diese Funktion aufrufen.

  • Diagnosegrad: Warnung.

  • Lösung: Rufen Sie die Funktion von einer Zustands- oder Übergangsaktion oder einer anderen Funktion auf.

    Chart containing an unused function.

Invalid use of keywords as function arguments

  • Problem: Eine Funktionsdefinition verwendet ein reserviertes Schlüsselwort als Argument.

  • Diagnosegrad: Fehler.

  • Lösung: Benennen Sie das Argument der Funktion um. Eine Liste der reservierten Schlüsselwörter finden Sie unter Anleitung zur Benennung von Stateflow-Objekten.

    Function that uses a reserved keyword as an argument.

Prüfungen von Eingangs- und Ausgangsports während der Bearbeitung

Entry junctions must have an unconditional path to a state

  • Problem: Eine Eingangsverbindung muss mindestens einen Übergangspfad aufweisen, der nicht von einer Bedingung geschützt ist oder von einem Ereignis ausgelöst wird.

  • Diagnosegrad: Fehler.

  • Lösung: Fügen Sie einen unbeschränkten Pfad von der Eingangsverbindung zu einem Zustand hinzu.

    Entry junction that connects to a single conditional path to a state.

Entry junctions must have outgoing transitions

  • Problem: Eine Eingangsverbindung hat keine Verbindung mit einem ausgehenden Übergangspfad.

  • Diagnosegrad: Fehler.

  • Lösung: Verbinden Sie Übergänge mit der Eingangsverbindung oder entfernen Sie die Verbindung.

    Entry junction that does not connect to a transition path.

Exit ports must have an unconditional path to a state

  • Problem: Ein Ausgangsport muss mindestens einen Übergangspfad aufweisen, der nicht von einer Bedingung geschützt ist oder von einem Ereignis ausgelöst wird.

  • Diagnosegrad: Fehler.

  • Lösung: Fügen Sie einen unbeschränkten Pfad vom Ausgangsport zu einem Zustand hinzu.

    Exit port that connects to a single conditional path to a state.

Exit ports must have outgoing transitions

  • Problem: Ein Ausgangsport hat keine Verbindung mit einem ausgehenden Übergangspfad.

  • Diagnosegrad: Fehler.

  • Lösung: Verbinden Sie Übergänge mit dem Ausgangsport oder entfernen Sie den Port.

    Exit port that does not connect to a transition path.

Invalid entry or exit junction

  • Problem: Eingangs- und Ausgangsverbindungen werden nur in exklusiven (OR) Zuständen und atomaren Unterdiagrammen unterstützt.

  • Diagnosegrad: Fehler.

  • Lösung: Verschieben Sie die Verbindung zu einem exklusiven (OR) Zustand oder atomaren Unterdiagram oder löschen Sie die Verbindung.

    Entry and exit junctions in parallel (AND) states.

Missing entry or exit junction

  • Problem: Ein Eingangs- oder Ausgangsport muss über eine entsprechende Eingangs- oder Ausgangsverbindung verfügen.

  • Diagnosegrad: Fehler.

  • Lösung: Löschen Sie den Port oder erstellen Sie eine entsprechende Verbindung mit derselben Kennzeichnung.

    Entry and exit ports that do not have a matching junction.

Multiple entry or exit junctions with same label

  • Problem: Eingangs- und Ausgangsverbindungen im selben übergeordneten Element müssen einzigartige Kennzeichnungen aufweisen.

  • Diagnosegrad: Fehler.

  • Lösung: Löschen Sie eine der Verbindungen oder ändern Sie eine Kennzeichnung.

    Two entry junctions that have the same label in1.

Path from entry junction contains a terminal junction

  • Problem: Jeder Pfad von einer Eingangsverbindung muss zu einem Zustand führen.

  • Diagnosegrad: Fehler.

  • Lösung: Ersetzen Sie die terminale Verbindungsstelle durch einen Zustand.

    Entry junction that connects to a terminal junction.

Path from exit port contains a terminal junction

  • Problem: Jeder Pfad von einem Ausgangsport muss zu einem Zustand führen.

  • Diagnosegrad: Fehler.

  • Lösung: Ersetzen Sie die terminale Verbindungsstelle durch einen Zustand.

    Exit port that connects to a terminal junction.

Transition path from an inner transition to an exit junction

  • Problem: Die inneren Übergangspfade dürfen nicht mit einer Ausgangsverbindung verbunden sein.

  • Diagnosegrad: Fehler.

  • Lösung: Entfernen Sie den Pfad vom inneren Übergang zur Ausgangsverbindung.

    State that contains an inner transition to an exit port.

Transition path from entry junction or to exit junction must be contained in parent

  • Problem: Übergangspfade, die bei Eingangsverbindungen beginnen oder bei Ausgangsverbindungen enden, müssen im übergeordneten Zustand enthalten sein.

  • Diagnosegrad: Fehler.

  • Lösung: Modifizieren Sie den Übergangspfad so, dass er im übergeordneten Zustand enthalten ist.

    Transition path that exits and re-enters a state before connecting to an exit junction.

Unreachable port or junction

  • Problem: Ein Port oder eine Verbindung wird als unerreichbar betrachtet, wenn kein gültiger Ausführungspfad zum Port/der Verbindung führt.

  • Diagnosegrad: Hängt vom Konfigurationsparameter Unreachable execution path (Simulink) ab.

  • Lösung: Verbinden Sie den unerreichbaren Eingangsport oder die Ausgangsverbindung mit einem Übergang aus einer erreichbaren Quelle.

    Chart that contains an unreachable entry junction and port.

Siehe auch

Themen