Автономный 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 опции.
Можно задать различные типы точек прерывания в состояниях и переходах.
Объект | Тип точки останова |
---|---|
Государство |
|
| |
| |
Переход |
|
|
Чтобы задать точку останова в состоянии или переходе, щелкните правой кнопкой мыши состояние или переход и выберите 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
действие выделено зеленым цветом.
Значок состояния выполнения появляется в графическом объекте, где выполнение останавливается.
Значок | Описание |
---|---|
| Выполнение приостановлено перед вводом графика или в состоянии |
| Выполнение приостановлено в состоянии |
| Выполнение приостановлено в состоянии |
| Выполнение приостановлено перед тестированием перехода. |
| Выполнение приостановлено перед выполнением допустимого перехода. |
Когда график приостановлен в точке останова, можно продолжить выполнение с помощью:
Кнопки на вкладке Debug
Командное окно MATLAB
Горячие клавиши
Действие | Вкладка отладки | Команда MATLAB | Горячая клавиша | Описание |
---|---|---|---|---|
Продолжить |
| dbcont | Ctrl+T | Продолжите выполнение до следующей точки останова. |
Переход |
| dbstep | F10 | Переходите к следующему шагу на графике выполнения. На уровне графика возможные шаги включают:
Для получения дополнительной информации смотрите Выполнение диаграммы Stateflow. |
Шаг внутрь |
| dbstep in | F11 | От состояния или переходного действия, которое вызывает функцию, переходите к первому исполняемому оператору в функции. Из оператора в функции, содержащей другой вызов функции, переходите к первому исполняемому оператору во второй функции. В противном случае перейдите к следующему шагу выполнения графика. (См. опцию «Шаг вверх».) |
Выход |
| dbstep out | Shift+F11 | После вызова функции вернитесь к оператору, вызывающему функцию. В противном случае перейдите к следующей точке выполнения. (См. опцию «Продолжить».) |
Стоп |
| dbquit | Ctrl+Shift+T | Выход из режима отладки и прерывание выполнения. Когда вы выполняете автономную диаграмму из редактора Stateflow, это действие удаляет объект графика из рабочего пространства MATLAB. |
В состоянии или переходных операциях, содержащих более одного оператора, можно пройти через отдельные операторы по одному, выбрав Step Over. Редактор Stateflow подсвечивает каждый оператора перед ее выполнением.
Примечание
Поскольку автономные диаграммы определяют временную логику с точки зрения времени нахождения на стене, оператор временной логики может стать действительным, когда график приостановлен в точке остановки. В этом случае график выходит из режима отладки, и выполнение продолжается до следующей точки останова.
Когда Stateflow находится в режиме отладки, на панели «Символы» отображается значение каждого объекта данных на графике. Можно также изучить значения данных, указав на состояние или переход на графике. Подсказка отображает значение каждого объекта данных, используемого в выбранном состоянии или переходе.
Чтобы проверить поведение вашего графика, на панели «Символы» можно изменить значение объекта данных во время выполнения. Кроме того, в приглашении отладки введите новое значение с помощью ключевого слова this
вместо имени объекта графика. Например, чтобы изменить значение локальных данных x
, введите:
this.x = 7
Примечание
При отладке графика в модели Simulink не используйте ключевое слово this
. Вместо этого вы можете получить доступ ко всем данным Stateflow непосредственно по приглашению отладки. Для получения дополнительной информации смотрите Просмотр и изменение данных в Командном окне MATLAB.