Измените язык действия для графика

Графики Stateflow® в моделях Simulink® имеют свойство языка действия, которое задает синтаксис для действий перехода и состояния. Значок в нижнем левом углу холста графика указывает на язык действия для графика.

  • MATLAB® как язык действия.

  • C как язык действия.

Можно изменить язык действия графика в поле Action Language диалогового окна Свойств диаграммы. Для получения дополнительной информации смотрите Различия Между MATLAB и C как Синтаксис языка Действия.

Измените язык действия по умолчанию

MATLAB является синтаксисом языка действия по умолчанию для новых диаграмм Stateflow. Создавать график, который использует C в качестве языка действия, введите:

sfnew -C

Чтобы изменить язык действия по умолчанию новых графиков, используйте эти команды.

КомандаРезультат
sfpref('ActionLanguage','MATLAB')Все новые созданные графики имеют MATLAB как язык действия, если в противном случае не задано в sfnew.
sfpref('ActionLanguage','C')Все новые созданные графики имеют C как язык действия, если в противном случае не задано в sfnew.

Для получения дополнительной информации смотрите sfpref.

Автоматическая коррекция при использовании MATLAB как язык действия

Диаграммы Stateflow, которые используют MATLAB в качестве языка действия автоматически, корректируют общие построения C к синтаксису MATLAB:

  • Постепенно увеличьте и постепенно уменьшите операции, такие как a++ и a--. Например, a++ изменяется на a = a+1.

  • Операции присвоения, такие как a += b, a –= b, a *= b, и a /= b. Например, a += b изменяется на a = a+b.

  • Операции оценки, такие как a != b и !a. Например, a != b изменяется на a ~= b.

  • Прокомментируйте маркеры // и /* */ изменяются на %.

Чтобы отключить эту настройку, можно использовать sfpref функционируйте и следующая команда:

sfpref('EnableLabelAutoCorrectionForMAL',0)
Для получения дополнительной информации смотрите sfpref.

C к преобразованию синтаксиса MATLAB

Для непустых графиков, после того, как вы измените свойство языка действия от C до MATLAB, уведомление появляется наверху графика. Уведомление предоставляет возможность преобразовывать часть Синтаксиса C к синтаксису MATLAB. В уведомлении щелкните по ссылке, чтобы иметь Stateflow, преобразуют синтаксис в графике. Построения синтаксиса C, которые преобразованы, включают:

  • Основанная на нуле индексация.

  • Постепенно увеличьте и постепенно уменьшите операции, такие как a++ и a--. Например, a++ изменяется на a = a+1.

  • Операции присвоения, такие как a += b, a –= b, a *= b, и a /= b. Например, a += b изменяется на a = a+b.

  • Бинарные операции, такие как a %% b, a >> b, и a << b. Например, a %% b изменяется на rem(a,b).

  • Битовые операции, такие как a ^ bA, B , и a | b. Например, если свойство диаграммы Enable C-bit operations выбрано, то a ^ b изменяется на bitxor(a,b).

  • C разрабатывают маркеры комментария. Например, // и /* */ изменяются на %.

Если график содержит построения C, которые не могут быть преобразованы в MATLAB, Stateflow показывает сообщение в диалоговом окне. Нажмите на ссылку предупреждений, чтобы вывести предупреждения в Диагностическом Средстве просмотра. Выберите, продолжить ли преобразование поддерживаемого синтаксиса. C построения, не преобразованные в MATLAB, включайте:

  • Явный тип бросает с cast и type

  • Операторы, такие как &, * и :=

  • Пользовательские данные

  • Доступ к переменным рабочей области с помощью ml оператор

  • Функции, не поддерживаемые в генерации кода

  • Обозначение шестнадцатеричной и одинарной точности

  • Контекстно-зависимые константы

Правила для Использования MATLAB как язык действия

 Используйте уникальные имена для данных в графике

 Используйте уникальные имена для функций в графике

 Включайте префикс типа для идентификаторов перечисляемых значений

 Используйте формат MATLAB для комментариев

 Используйте индексацию на основе одну для векторов и матриц

 Используйте круглые скобки вместо скобок, чтобы индексировать в векторы и матрицы

 Не используйте логику потока управления в действиях условия и действиях перехода

 Не используйте действия перехода в графических функциях

 Заключите действия перехода с фигурными скобками

 Не объявляйте глобальные или персистентные переменные в состояниях активности

 Чтобы сгенерировать код из вашей модели, используйте функции языка MATLAB, поддерживавшие для генерации кода

 Присвойте начальное значение локальным и выходным данным