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

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren