Автономный график 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
.
Чтобы изменить тип точки останова на объекте, кликните по значку точки останова. В диалоговом окне Breakpoints можно выбрать различную настройку точек останова, в зависимости от типа объекта. Очистка всех флажков в диалоговом окне Breakpoints удаляет точку останова.
Чтобы ограничить число раз что остановки выполнения в точке останова, добавьте условие в точку останова. По умолчанию диаграмма 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
В то время как Stateflow находится в режиме отладки, переменной this
рабочей области содержит указатель на объект диаграммы. Чтобы избежать неожиданного поведения, не перезаписывайте
this
с различным значением.