Ändern der Aktionssprache für ein Diagramm
Stateflow®-Diagramme in Simulink®-Modellen haben eine Aktionsspracheigenschaft, die die Syntax für Zustands- und Übergangsaktionen definiert. Ein Symbol in der linken unteren Ecke des Diagramms zeigt die Aktionssprache für das Diagramm an.
MATLAB® als Aktionssprache.
C als Aktionssprache.
Sie können die Aktionssprache eines Diagramms im Feld Action Language des Dialogfelds für die Diagrammeigenschaften ändern. Weitere Informationen finden Sie unter Unterschiede zwischen MATLAB und C als Aktionssprache-Syntax.
Ändern der Standard-Aktionssprache
MATLAB ist die Standard-Aktionssprache für neue Stateflow-Diagramme. Um ein Diagramm zu erstellen, das C als Aktionssprache verwendet, geben Sie Folgendes ein:
sfnew -CUm die Standardsprache für neue Diagramme zu ändern, verwenden Sie die Funktion sfpref. Um beispielsweise C als Aktionssprache für neue Diagramme festzulegen, geben Sie Folgendes ein:
sfpref(ActionLanguage="C");Autokorrektur bei Verwendung von MATLAB als Aktionssprache
Stateflow-Diagramme, die MATLAB als Aktionssprache verwenden, korrigieren automatisch gängige C-Konstrukte auf MATLAB-Syntax:
Inkrement- und Dekrementoperationen wie
a++unda--. Zum Beispiel wirda++ina = a+1geändert.Zuweisungsvorgänge wie
a += b,a –= b,a *= bunda /= b. Zum Beispiel wirda += bina = a+bgeändert.Evaluierungsvorgänge wie
a != bund!a. Zum Beispiel wirda != bina ~= bgeändert.Kommentarzeichen
//und/* */werden in%geändert.
Um diese Einstellung zu deaktivieren, verwenden Sie die Funktion sfpref:
sfpref(EnableLabelAutoCorrectionForMAL=false);
C-zu-MATLAB-Syntaxkonvertierung
Bei nicht leeren Diagrammen wird nach dem Ändern der Aktionsspracheneigenschaft von C zu MATLAB oben im Diagramm eine Benachrichtigung angezeigt. Die Benachrichtigung bietet die Möglichkeit, einen Teil der C-Syntax in MATLAB-Syntax umzuwandeln. Klicken Sie in der Benachrichtigung auf den Link, um die Syntax im Diagramm in Stateflow umzuwandeln. Zu den Syntaxkonstrukten, die konvertiert werden, gehören:
Nullbasierte Indizierung.
Inkrement- und Dekrementoperationen wie
a++unda--. Zum Beispiel wirda++ina = a+1geändert.Zuweisungsvorgänge wie
a += b,a –= b,a *= bunda /= b. Zum Beispiel wirda += bina = a+bgeändert.Binäre Operationen wie
a %% b,a >> bunda << b. Zum Beispiel wirda %% binrem(a,b)geändert.Bitweise Operationen wie
a ^ b,a & bunda | b. Wenn beispielsweise die Diagrammeigenschaft Enable C-bit operations ausgewählt wird, wirda ^ binbitxor(a,b)geändert.Kommentarzeichen im Stil C. Zum Beispiel werden
//und/* */in%geändert.
Wenn das Diagramm C-Konstrukte enthält, die nicht in MATLAB umgewandelt werden können, zeigt Stateflow eine Meldung in einem Dialogfeld an. Klicken Sie auf den Warnungslink, um die Warnungen im Diagnostic Viewer anzuzeigen. Wählen Sie aus, ob Sie mit der Konvertierung der unterstützten Syntax fortfahren möchten oder nicht. Zu den Konstrukten, die nicht in MATLAB konvertiert werden, gehören:
Explizite Typumwandlungen mit
castundtypeOperatoren wie
&,*und:=Benutzerdefinierte Daten
Zugriff auf Arbeitsbereichsvariablen mit dem Operator
mlBei der Codegenerierung nicht unterstützte Funktionen
Hexadezimale und einfache Genauigkeitsnotation
Kontextabhängige Konstanten