Ausführungsreihenfolge für parallele Zustände
Obwohl parallele (AND) Zustände gleichlaufend ausgeführt werden, muss das Stateflow®-Diagramm ermitteln, wann der jeweilige Zustand während der Simulation aktiviert werden soll. Diese Reihenfolge legt fest, wann jeder paralleler Zustand die Aktionen durchführt, die ihn durch alle Phasen der Ausführung bringen.
Reihenfolge paralleler Zustände
Diagramme weisen jedem parallelen Zustand eine Prioritätsnummer zu. Je niedriger die Nummer, desto schneller wird der Zustand ausgeführt. Die Prioritätsnummer erscheint in der oberen rechten Ecke jedes Zustands.
Wenn Sie ein neues Diagramm oder ein Diagramm ohne parallele Zustände öffnen, weist das Diagramm den parallelen Zuständen automatisch in Reihenfolge der Erstellung Prioritätsnummern zu. Die Nummerierung beginnt mit der nächsten verfügbaren Nummer im übergeordneten Container.
Um die Ausführungsreihenfolge eines parallelen Zustands zu ändern:
Rechtsklicken Sie auf den parallelen Zustand.
Klicken Sie auf Execution Order und wählen Sie die neue Prioritätsnummer aus.
Wenn Sie die Prioritätsnummer eines parallelen Zustands ändern, nummeriert das Diagramm automatisch die anderen parallelen Zustände um, um deren relative Priorität zu bewahren.
In aus Diagrammen generiertem Code mit parallelen Zuständen wird jeder Zustand auf Grundlage seiner jeweiligen Priorität ausgeführt.
Bewahrung der Reihenfolge paralleler Zustände
Wenn Sie parallele Zustände entfernen, neu nummerieren oder hinzufügen, priorisiert das Diagramm die parallelen Zustände neu, um:
Die Lücken in der Sequenz zu füllen, sodass die Reihenfolge kontinuierlich ist.
Sicherzustellen, dass keine zwei Zustände dieselbe Priorität aufweisen.
Die beabsichtigte relative Priorität zu bewahren.
Betrachten Sie dieses Beispiel:
Standardmäßig werden der Zustand und die Unterzustände in der Reihenfolge der Erstellung nummeriert. Nehmen Sie beispielsweise die folgenden Änderungen am Diagramm vor:
Ändern Sie die Priorität des Zustands auf oberster Ebene
b
auf 3.Fügen Sie einen Zustand auf oberster Ebene
g
hinzu.Entfernen Sie den Unterzustand
e
.
Das Diagramm bewahrt die Priorität, die Sie explizit für den Zustand auf oberster Ebene b
festlegen, nummeriert jedoch alle anderen parallelen Zustände neu, um die vorherige relative Reihenfolge zu bewahren.
Ausführungsprioritäten bei wiederhergestellten Zuständen
Es gibt Situationen, in denen Sie einen parallelen Zustand wiederherstellen müssen, nachdem Sie ihn aus einem Stateflow-Diagramm entfernt haben. Ein Diagramm kann jedoch nicht immer die ursprüngliche Ausführungspriorität wiederherstellen. Das hängt davon ab, wie Sie den Zustand wiederherstellen.
Wenn Sie einen Zustand entfernen durch... | Und den Zustand wiederherstellen durch... | Was ist die Priorität? |
---|---|---|
Löschen, Ausschneiden, Ziehen aus den Rändern des übergeordneten Zustands oder Ziehen, sodass die Ränder den übergeordneten Zustand überlappen | Verwenden des Befehls „Rückgängig“ | Die ursprüngliche Priorität wird wiederhergestellt. |
Ziehen aus den Rändern des übergeordneten Zustands oder Ziehen, sodass die Ränder den übergeordneten Zustand überlappen und Loslassen der Maustaste | Ziehen zurück in den übergeordneten Zustand | Die ursprüngliche Priorität geht verloren. Das Stateflow-Diagramm behandelt den wiederhergestellten Zustand als den letzten erstellten Zustand und weist ihm die niedrigste Ausführungspriorität zu. |
Ziehen aus den Rändern des übergeordneten Zustands oder Ziehen, sodass die Ränder den übergeordneten Zustand überlappen, ohne Loslassen der Maustaste | Ziehen zurück in den übergeordneten Zustand | Die ursprüngliche Priorität wird wiederhergestellt. |
Ziehen, sodass die Ränder einen oder mehrere benachbarten Zustände überlappen | Ziehen zu einer Stelle ohne überlappende Ränder im selben übergeordneten Zustand | Die ursprüngliche Priorität wird wiederhergestellt. |
Ausschneiden | Einfügen | Die ursprüngliche Priorität geht verloren. Das Stateflow-Diagramm behandelt den wiederhergestellten Zustand als den letzten erstellten Zustand und weist ihm die niedrigste Ausführungspriorität zu. |
Ausführungsreihenfolge paralleler Zustände in Boxen und Unterdiagrammen
Wenn Sie parallele Zustände in einer Box gruppieren, behalten die Zustände ihre relative Ausführungsreihenfolge bei. Zudem weist das Stateflow-Diagramm der Box eine eigene Priorität zu, die auf den Standard-Reihenfolgeregeln basiert. Diese Priorität legt fest, wann das Diagramm die parallelen Zustände innerhalb der Box aktiviert.
Wenn Sie einen Zustand mit paralleler Dekomposition in ein Unterdiagramm umwandeln, behalten die Unterzustände ihre relative Ausführungsreihenfolge bei.