Stateflow - Instanzfähige State-Machines

OP #6883855
Lesenswert?
• ▲
▼
Hallo Zusammen,

weiß jemand von euch ob es möglich ist mit Stateflow ist Instanzfähige 
State-Machines aufzubauen so wie es mit Yakindu SCT 
(https://www.itemis.com/en/yakindu/state-machine/) geht?

Ich würde eine State-Machine mit Stateflow aufbauen die keine "internen" 
variablen im Code hat. Es soll möglich sein alles über ein "Handle" 
(Struct was alle Daten enthält) an die Stateflow State-Machine zu 
übergeben.

Das hat den Vorteil das ich eine State-Machine nur einmal "zeichnen" 
muss und die beliebig oft mit unterschiedlichen "Handles" aufrufen kann.

Wie gesagt bei Yakindu SCT ist das möglich.

Grüße

Patrick
OP #6884771
Lesenswert?
• ▲
▼
Pandur S. schrieb:
> Ja, sicher geht das. Irgendwo muss die Statevariable halt sein.

Ja, aber bietet das Stateflow nativ an? Also ohne irgendein zurecht 
Gefummel?
Mir ist da bis jetzt keine Variante bekannt; was ich blöd finde.

Gerade auch aus Sicht der "Funktionalen Sicherheit" ist es hilfreich 
wenn alle internen Variablen einer State-Machine über eine Handle 
übergeben werden können.
OP #6885679
Lesenswert?
• ▲
▼
Ich glaube ich muss mein Problem vllt. noch ein wenig genauer 
beschreiben.

Ich benutze Yakindu SCT um ein State-Machine einmal zu "zeichen". Der 
eingebaute C Code-Generator generiert mir die entsprechende 
State-Machine.

Die generierte State-Machine wird aus einer bestehenden SW-Komponente 
aufgerufen. Das geschieht über die Funktion runCycle(). Hier habe hier 
mal Beispielhaft etwas herunter gehackt:
1
/* Typedef part of generated State-Machine */
2
typedef struct {
3
    Bool inEvent1;
4
    Bool inEvent2;
5
    TState state;
6
    Bool outEvent1;
7
} TexampleSM;
8

9
/* Declaration part of SW-Component calling State-Machine */
10
TexampleSM exampleSM[3];
11

12
/* runCycle() part of SW-Component calling State-Machine */
13
for(ínt i = 0; i < MAX_SM; i++) {
14
    runCycle(&exampleSM[i]);
15
}

In dem Beispiel sieht man gut das ich die State-Machine immer mit 
unterschiedlichen "handles" aufrufen kann.

Nur möchte ich sowas jetzt mit Stateflow machen und nicht mit Yakindu 
SCT.
Aber irgendwie scheint mir der generierte Code von Stateflow keine 
möglichkeit zu bieten.

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.