exponenta event banner

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

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

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

Примечание

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

Сведения об отладке диаграмм Stateflow в моделях Simulink см. в разделе Отладка диаграмм Stateflow.

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

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

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

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

Чтобы задать точку останова на диаграмме, щелкните правой кнопкой мыши внутри диаграммы и выберите Задать точку останова в записи диаграммы. Этот тип точки останова приостанавливает выполнение перед входом в диаграмму.

Чтобы удалить точку останова, щелкните правой кнопкой мыши внутри диаграммы и снимите флажок «Задать точку останова на элементе диаграммы».

Точки останова в состояниях и переходах

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

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

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

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

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

Переход

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

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

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

Чтобы удалить точку останова, щелкните правой кнопкой мыши состояние или переход и выберите Очистить точку останова. Чтобы удалить все точки останова в диаграмме, щелкните правой кнопкой мыши внутри диаграммы и выберите «Очистить все точки останова в диаграмме».

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  • Кнопки на вкладке «Отладка»

  • Окно команд MATLAB

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

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

dbcontCtrl + T

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

Шаг за шагом

dbstepF10

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

  • Введите диаграмму

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

  • Активировать состояние

  • Выполнение действия состояния

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

Шаг в

dbstep inF11

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

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

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

Выйти

dbstep outShift + F11

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

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

Стоп

dbquitCtrl + Shift + T

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

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

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

Примечание

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

Проверка и изменение значений данных диаграммы

Когда Stateflow находится в режиме отладки, на панели Символы (Symbols) отображается значение каждого объекта данных в диаграмме. Можно также проверить значения данных, указав на состояние или переход на диаграмме. Всплывающая подсказка отображает значение каждого объекта данных, используемого в выбранном состоянии или переходе.

Чтобы проверить поведение диаграммы, на панели Символы (Symbols) можно изменить значение объекта данных во время выполнения. В ответ на запрос отладки введите новое значение с помощью ключевого слова. this вместо имени объекта диаграммы. Например, для изменения значения локальных данных x, введите:

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

Примечание

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

Связанные темы