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
Ja, sicher geht das. Irgendwo muss die Statevariable halt sein.
:
Bearbeitet durch User
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.
Patrick L. schrieb: > Ja, aber bietet das Stateflow nativ an? Ja. Guck halt in die Doku rein: https://www.itemis.com/en/yakindu/state-machine/documentation/user-guide/codegen_c_code_generator?hsLang=de#codegen_c_code_generator
MaWin schrieb: > Ja. Guck halt in die Doku rein: > > https://www.itemis.com/en/yakindu/state-machine/documentation/user-guide/codegen_c_code_generator?hsLang=de#codegen_c_code_generator Ich will ja nicht wissen wie es mit Yakindu geht. Da weiß ich ja wie es geht. Ich möchte Wissen ob es irgendwie mit Stateflow geht :-)
Ist natürlich sehr sinnvoll den Link zu dem Produkt anzugeben, von dem man nichts wissen will und den Link zu dem Produkt von dem man Informationen will nicht anzugeben...
MaWin schrieb: > Ist natürlich sehr sinnvoll den Link zu dem Produkt anzugeben, von dem > man nichts wissen will und den Link zu dem Produkt von dem man > Informationen will nicht anzugeben... Bitteschön: https://de.mathworks.com/products/stateflow.html
Hat noch irgend jemand irgendwelche sachdienlichen Hinweise?
Das hier könnte ein paar Hinweise liefern: https://de.mathworks.com/help/stateflow/gs/stateflow-charts.html https://de.mathworks.com/help/stateflow/ug/sf4ml-change-example.html
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.
Ich glaube ich habe die Lösung evtl. schon selber gefunden. So wie es aussieht muss es beim generieren des Codes eingestellt werden. Das Feature heißt "Multi-Instance" beim Embedded Coder (Code Generator). Ich werde das mal ausprobieren.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.