Пока диаграмма Stateflow ® находится в режиме отладки, можно проверить состояние диаграммы, проверив значения данных, сообщений и выражений временной логики. Можно также проверить структуру диаграммы путем изменения значений данных и отправки локальных и выходных сообщений. В этой таблице представлены интерфейсы, которые можно использовать для выполнения этих задач отладки. Дополнительные сведения см. в разделе Отладка диаграмм статусов.
| Задача отладки | Редактор потока состояний | Область символов | Точки останова и окно наблюдения | Окно команд MATLAB ® |
|---|---|---|---|---|
| Проверка значений данных и сообщений | Да | Да | Да | Да |
| Проверка выражений временной логики | Да | Нет | Нет | Нет |
| Изменение значений данных и сообщений | Нет | Да | Нет | Да |
| Отправка сообщений | Нет | Нет | Нет | Да |
Во время приостановки моделирования в точке останова можно проверить значения данных, указав на состояние, переход или функцию на диаграмме. В подсказке отображается значение данных и сообщений, используемых выбранным объектом.
| Тип объекта | Информация всплывающей подсказки |
|---|---|
| Состояния и переходные процессы | Значения данных, сообщений и выражений временной логики, используемых объектом |
| Графическая таблица, таблица истинности и функции MATLAB | Значения локальных данных, сообщений, входов и выходов в области действия функции |
Например, точка останова на этой диаграмме приостанавливает моделирование, когда second состояние оценивает его during действия. Указание на сверхсостояние gear отображает подсказку, отображающую значения:
Выражения временной логики duration(speed >= up_threshold) и duration(speed <= down_threshold).
Данные, в том числе speed, up_threshold, и up.

Примечание
Если выбрать свойства диаграммы Экспортировать функции уровня диаграммы и Считать экспортированные функции глобально видимыми, всплывающая подсказка не отображает временные логические данные.
Пока диаграмма находится в режиме отладки, на панели Символы (Symbols) отображается значение каждого объекта данных и сообщения в диаграмме. Например, когда эта диаграмма приостанавливается в точке останова, можно увидеть значения всех данных диаграммы, перечисленных в столбце Значение. Выделенные значения изменились на последнем шаге времени.

На панели «Символы» можно изменить значение:
Память хранения данных, локальные и выходные данные.
Локальные и выходные сообщения.
Щелкните поле Значение для объекта данных или сообщения, чтобы ввести новое значение.
Во время моделирования нельзя изменять значения констант, параметров, входных данных и сообщений.
Дополнительные сведения см. в разделе Управление данными, событиями и сообщениями в области символов.
В окне Точки останова и контроль состояния (Stateflow Breakpoints and Watch) можно просмотреть текущие данные и значения сообщений, пока моделирование приостановлено в точке останова. Чтобы открыть окно Breakpoints and Watch, на вкладке Debug щелкните Breakpoints List. Либо откройте диалоговое окно Точки останова (Breakpoints) и щелкните ссылку Список точек останова (Breakpoints List).
Для просмотра списка всех точек останова и связанных с ними условий выберите вкладку Точки останова. Дополнительные сведения см. в разделах Управление точками останова через окна точек останова и наблюдения.
Для проверки данных и значений сообщений выберите закладку Контроль.
Окно Точки останова и Наблюдение можно использовать для:
Добавление объектов данных и сообщений в контрольный список.
Отслеживание значений, измененных с момента последнего шага времени.
Разверните сообщение для просмотра значений очереди сообщений и данных сообщения.
Например, можно добавить speed, up_threshold, и up в контрольный список и отслеживать их значения по мере выполнения моделирования. Выделение указывает, что значения speed и up_threshold изменено во время последнего временного шага.

Чтобы добавить объект данных или сообщения в контрольный список, откройте инспектор свойств или обозреватель моделей. Выберите данные или объект сообщения, который требуется просмотреть, и щелкните ссылку Добавить в окно просмотра.
Кроме того, в редакторе потока состояний щелкните правой кнопкой мыши состояние или переход, в котором используются данные или сообщение. Выберите Добавить в окно наблюдения и выберите имя переменной из раскрывающегося списка.
Чтобы изменить формат отображения данных наблюдения, выберите значок зубчатого колеса
в верхней части окна. Используйте раскрывающиеся списки для выбора формата MATLAB для каждого типа данных.

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

Просмотр данных продолжается во время сеанса MATLAB. При закрытии модели ее список данных наблюдения остается в окне Точки останова (Breakpoints) и Окно наблюдения (Watch Window). При повторном открытии модели во время той же сессии MATLAB список данных наблюдения для этой модели восстанавливается.
Можно сохранить точки останова и просмотреть списки данных и перезагрузить их в более позднем сеансе MATLAB. Чтобы сохранить снимок списка точек останова и данных наблюдения, в верхней части окна точек останова и наблюдения щелкните значок Сохранить текущие точки останова и наблюдения. Чтобы восстановить снимок, щелкните значок Загрузить точки останова и наблюдения.
Во время приостановки моделирования в точке останова в командной строке MATLAB изменяется на debug>>. По этому запросу можно проверять и изменять значения данных Stateflow, отправлять локальные и выходные сообщения и взаимодействовать с рабочей областью MATLAB.
Например, предположим, что предыдущая диаграмма достигла точки останова. Для просмотра данных, видимых в текущей области, используйте whos команда.
whos
Name Size Bytes Class Attributes TWAIT 1x1 1 uint8 down 1x1 1 logical down_th 1x1 8 double down_threshold 1x1 8 double gear 1x1 4 gearType speed 1x1 8 double throttle 1x1 8 double up 1x1 1 logical up_th 1x1 8 double up_threshold 1x1 8 double
Проверка значений speed и up_threshold, введите:
speed
speed = 26.3383
up_threshold
up_threshold = 41.3601
По запросу отладки можно изменить значение памяти хранилища данных, локальных и выходных данных. Например, на предыдущей диаграмме можно изменить значение up_threshold, up, и gear:
up_threshold = 25;
up = true;
gear = gearType.third;
Чтобы изменить векторы и матрицы, используйте синтаксис MATLAB для индексирования независимо от свойства языка действий диаграммы. См. раздел Индексирование нотации.
Например, чтобы изменить элемент в диагонали матрицы 2 на 2 u, введите:
u(1,1) = 6.022e23; u(2,2) = 6.626e-34
Размеры данных переменного размера можно изменять до тех пор, пока новый размер находится в пределах границ размеров, заданных для данных. Например, предположим, что v является массивом переменного размера с максимальным размером [16 16]. Изменение значения v в массив 5 на 7, введите:
v = ones(5,7);
Чтобы изменить перечисляемые данные, явно укажите перечисляемый тип с помощью префиксных идентификаторов. См. раздел Нотация для перечисляемых значений.
Например, предположим, что w имеет перечисляемый тип данных Colors. Изменение значения w к перечисляемому значению Red, введите:
w = Colors.Red
Чтобы изменить числовые данные, приведите их к явному типу данных с помощью функции преобразования типа MATLAB. Явная заливка не требуется для данных типа double. См. раздел Операции литейной формы.
Например, предположим, что x имеет тип single, y имеет тип int32, и z имеет тип fixdt(1,16,12). Для изменения значения этих объектов данных введите:
x = single(98.6); y = int32(100); z = fi(0.5413,1,16,12);
Невозможно изменить значения констант, параметров или входных данных в запросе отладки.
Примечание
Изменение данных типа int64 или uint64, используйте функцию fi (Конструктор фиксированных точек) для приведения нового значения к типу фиксированных точек.
По запросу отладки можно отправлять локальные и выходные сообщения. Например, на этой диаграмме локальное сообщение M определяет, какое состояние становится активным после состояния DecisionPoint. Если диаграмма получает сообщение M с положительным значением, состояние Received становится активным, и диаграмма выводит значение true. В противном случае состояние Missed становится активным, и диаграмма выводит значение false .

Начальное значение сообщения равно нулю. Чтобы изменить значение поля данных на положительное и отправить сообщение в локальную очередь, введите:
M = 5; send(M);
Received. Дополнительные сведения см. в разделе Выполнение контрольной диаграммы после точки останова.При отправке сообщений из запроса отладки следуйте следующим правилам:
Для чтения или записи в поле данных действительного сообщения используйте имя объекта сообщения. Не используйте синтаксис точечных обозначений.
Сообщение из запроса отладки можно отправить только тогда, когда диаграмма явно отправит сообщение, вызвав send оператор.
Нельзя отправлять входные сообщения из запроса отладки.
Дополнительные сведения см. в разделе Активность управляющего сообщения в диаграммах потока состояний.
В запросе отладки можно ввести другие команды MATLAB, но результаты выполняются в рабочей области Stateflow. Например, можно сохранить все переменные диаграммы в MAT-файле с помощью save функция:
save(chartVars)
Для ввода команды в базовое рабочее пространство MATLAB используйте команду evalin команда с первым аргументом 'base'. Например, чтобы перечислить переменные в рабочем пространстве MATLAB, используйте команду:
evalin('base','whos')
evalin | save | послать | whos