Отладка автономной диаграммы Stateflow

Автономный Stateflow® график является MATLAB® класс, который задает поведение конечного конечного автомата. Автономные диаграммы реализуют классическую семантику графика с MATLAB в качестве языка действий. Можно запрограммировать график, используя полную функциональность MATLAB, включая те функции, которые ограничены для генерации кода в Simulink®. Для получения дополнительной информации смотрите Создание диаграмм Stateflow для выполнения в качестве объектов MATLAB.

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

Примечание

При отладке автономной диаграммы, которую вы выполняете из скрипта MATLAB, сначала откройте Редактора Stateflow. Попытка отладить автономную диаграмму перед открытием редактора хотя бы один раз может привести к неожиданным результатам.

Для получения информации об отладке диаграмм Stateflow в моделях Simulink, см. «Отладка диаграмм Stateflow».

Установка точек останова и ясные точки останова

Точки останова появляются как округлые красные значки. Для примера этот график содержит точки останова в состоянии A и на переходе от A на B.

Можно задать точки останова на графиках, состояниях и переходах.

Точки останова на графиках

Чтобы задать точку останова на графике, щелкните правой кнопкой мыши внутри диаграммы и выберите Set Breakpoint on Chart Entry. Этот тип точек по оси Х останавливает выполнение перед входом на график.

Чтобы удалить точку останова, щелкните правой кнопкой мыши внутри графика и очистите Set Breakpoint on Chart Entry опции.

Контрольные точки по состояниям и переходам

Можно задать различные типы точек прерывания в состояниях и переходах.

ОбъектТип точки останова
Государство

On State Entry - Приостановить выполнение перед выполнением entry состояния действия.

During State - Приостановить выполнение перед выполнением during состояния действия.

On State Exit - Приостановить выполнение после выполнения exit состояния действия.

Переход

When Transition is Tested - Приостановите выполнение перед тестированием, что переход является допустимым путем. Если условие на переходе не существует, этот тип точки останова недоступен.

When Transition is Valid - Приостановить выполнение после того, как переход будет действительным, но перед выполнением перехода.

Чтобы задать точку останова в состоянии или переходе, щелкните правой кнопкой мыши состояние или переход и выберите Set Breakpoint. Для состояний по умолчанию являются On State Entry и During State. Для переходов точка прерывания по умолчанию является When Transition is Valid. Чтобы изменить тип точек по оси Х, щелкните значок точек Х и выберите другое строение точек Х. Для получения дополнительной информации см. раздел Управление типами точек по оси Х и условиями.

Чтобы удалить точку останова, щелкните правой кнопкой мыши состояние или переход и выберите Clear Breakpoint. Чтобы удалить все точки по оси Х на графике, щелкните правой кнопкой мыши внутри диаграммы и выберите Clear All Breakpoints In Chart.

Управление типами и условиями точек по оси Х

Значок точки по оси Х может представлять несколько типов точек по оси Х. Чтобы увидеть подсказку, в которой перечислены типы точек по оси Х, заданные в состоянии или переходе, укажите на ее значок. В этом примере значок на состоянии A представляет два типа точек по оси Х: On State Entry и During State.

Чтобы изменить тип точек по оси Х объекта, щелкните значок точки Х. В диалоговом окне «Точки по оси Х» можно выбрать другое строение точек по оси Х в зависимости от типа объекта. Снятие всех флажков в диалоговом окне «Точки по оси Х» удаляет точку по оси Х.

Чтобы ограничить количество раз, когда выполнение останавливается в точке останова, добавьте условие к точке останова. По умолчанию диаграмма Stateflow останавливается каждый раз, когда она достигает точки останова. Когда вы добавляете условие к точке останова, график останавливается в точке останова только тогда, когда условие верно. Для примера с этими условиями точки останова на состоянии A приостановить выполнение графика только тогда, когда значение x отрицательно.

Чтобы задать условие для точки останова, можно использовать любое допустимое выражение MATLAB, которое объединяет числовые значения и объекты данных Stateflow, которые находятся в возможности в точке останова.

Управление выполнением диаграммы после точки останова

Когда выполнение останавливается в точке останова, Stateflow входит в режим отладки.

  • Командная строка MATLAB изменяется на K>>.

  • На панели «Символы» отображается значение каждого объекта данных на графике.

  • На графике выделены активные элементы синего цвета, а выполняющегося в данного момента объект - зеленого цвета.

Для примера, когда выполнение останавливается в точке останова в состоянии A, границу государства и первый оператора в состоянии entry действие выделено зеленым цветом.

Значок состояния выполнения появляется в графическом объекте, где выполнение останавливается.

ЗначокОписание

Выполнение приостановлено перед вводом графика или в состоянии entry действие.

Выполнение приостановлено в состоянии during действие.

Выполнение приостановлено в состоянии exit действие.

Выполнение приостановлено перед тестированием перехода.

Выполнение приостановлено перед выполнением допустимого перехода.

Когда график приостановлен в точке останова, можно продолжить выполнение с помощью:

  • Кнопки на вкладке Debug

  • Командное окно MATLAB

  • Горячие клавиши

ДействиеВкладка отладкиКоманда MATLABГорячая клавишаОписание
Продолжить

dbcontCtrl+T

Продолжите выполнение до следующей точки останова.

Переход

dbstepF10

Переходите к следующему шагу на графике выполнения. На уровне графика возможные шаги включают:

  • Введите график

  • Выполните действие перехода

  • Активируйте состояние

  • Выполните состояние активности

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

Шаг внутрь

dbstep inF11

От состояния или переходного действия, которое вызывает функцию, переходите к первому исполняемому оператору в функции.

Из оператора в функции, содержащей другой вызов функции, переходите к первому исполняемому оператору во второй функции.

В противном случае перейдите к следующему шагу выполнения графика. (См. опцию «Шаг вверх».)

Выход

dbstep outShift+F11

После вызова функции вернитесь к оператору, вызывающему функцию.

В противном случае перейдите к следующей точке выполнения. (См. опцию «Продолжить».)

Стоп

dbquitCtrl+Shift+T

Выход из режима отладки и прерывание выполнения.

Когда вы выполняете автономную диаграмму из редактора Stateflow, это действие удаляет объект графика из рабочего пространства MATLAB.

В состоянии или переходных операциях, содержащих более одного оператора, можно пройти через отдельные операторы по одному, выбрав Step Over. Редактор Stateflow подсвечивает каждый оператора перед ее выполнением.

Примечание

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

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

Когда Stateflow находится в режиме отладки, на панели «Символы» отображается значение каждого объекта данных на графике. Можно также изучить значения данных, указав на состояние или переход на графике. Подсказка отображает значение каждого объекта данных, используемого в выбранном состоянии или переходе.

Чтобы проверить поведение вашего графика, на панели «Символы» можно изменить значение объекта данных во время выполнения. Кроме того, в приглашении отладки введите новое значение с помощью ключевого слова this вместо имени объекта графика. Например, чтобы изменить значение локальных данных x, введите:

this.x = 7
Новое значение появится на панели «Символы».

Примечание

При отладке графика в модели Simulink не используйте ключевое слово this. Вместо этого вы можете получить доступ ко всем данным Stateflow непосредственно по приглашению отладки. Для получения дополнительной информации смотрите Просмотр и изменение данных в Командном окне MATLAB.

Похожие темы