Hauptinhalt

Die Übersetzung dieser Seite ist veraltet. Klicken Sie hier, um die neueste Version auf Englisch zu sehen.

Ä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 -C

Um 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++ und a--. Zum Beispiel wird a++ in a = a+1 geändert.

  • Zuweisungsvorgänge wie a += b, a –= b, a *= b und a /= b. Zum Beispiel wird a += b in a = a+b geändert.

  • Evaluierungsvorgänge wie a != b und !a. Zum Beispiel wird a != b in a ~= b geä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++ und a--. Zum Beispiel wird a++ in a = a+1 geändert.

  • Zuweisungsvorgänge wie a += b, a –= b, a *= b und a /= b. Zum Beispiel wird a += b in a = a+b geändert.

  • Binäre Operationen wie a %% b, a >> b und a << b. Zum Beispiel wird a %% b in rem(a,b) geändert.

  • Bitweise Operationen wie a ^ b, a & b und a | b. Wenn beispielsweise die Diagrammeigenschaft Enable C-bit operations ausgewählt wird, wird a ^ b in bitxor(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 cast und type

  • Operatoren wie &, * und :=

  • Benutzerdefinierte Daten

  • Zugriff auf Arbeitsbereichsvariablen mit dem Operator ml

  • Bei der Codegenerierung nicht unterstützte Funktionen

  • Hexadezimale und einfache Genauigkeitsnotation

  • Kontextabhängige Konstanten

Siehe auch

Themen