Смотрите и измените данные и сообщения во время отладки

В то время как ваш Stateflow® график находится в режиме отладки, можно изучить состояние диаграммы путем проверки значений данных, сообщений и временных логических выражений. Можно также протестировать проект графика путем изменения значений данных и отправки локальных и выходных сообщений. В этой таблице представлены интерфейсы, которые можно использовать для выполнения этих задач отладки. Для получения дополнительной информации см. «Отладка диаграмм Stateflow».

Задача отладкиРедактор StateflowПанель символовОкна точек по оси Х и часыMATLAB® Командное окно
Осмотрите значения данных и сообщенийДаДаДаДа
Смотрите временные логические выраженияДаНетНетНет
Изменение значений данных и сообщенийНетДаНетДа
Отправка сообщенийНетНетНетДа

Просмотр данных в редакторе Stateflow

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

Тип объектаИнформация о подсказке
Состояния и переходыЗначения данных, сообщений и временных логических выражений, которые использует объект
Графические, таблицы истинности и функции MATLABЗначения локальных данных, сообщений, входов и выходов в возможности функции

Например, точка останова на этом графике останавливает симуляцию, когда second состояние оценивает его during действия. Указание на суперштатную gear отображает всплывающую подсказку, в которой показаны значения:

  • Временные логические выражения duration(speed >= up_threshold) и duration(speed <= down_threshold).

  • Данные, включая speed, up_threshold, и up.

Примечание

Если вы выбираете свойства графика Export chart level functions и Treat exported functions as globally visible, подсказка не отображает временные логические данные.

Просмотр и изменение данных в панели символов

Пока график находится в режиме отладки, на панели «Символы» отображается значение каждого объекта данных и сообщений на графике. Для примера, когда этот график пауз в точке останова, можно увидеть значения всех данных графиков, перечисленных в столбце Value. Подсвеченные значения изменились во время последнего временного шага.

На панели «Символы» можно изменить значение:

  • Память хранилища данных, локальные и выходные данные.

  • Локальные и выходные сообщения.

Щелкните поле Value для объекта данных или сообщения, чтобы ввести новое значение.

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

Для получения дополнительной информации см. раздел «Управление данными, событиями и сообщениями» на панели символов.

Просмотр данных в окне точек по оси Х и Часы

В окне Stateflow Breakpoints and Watch можно просмотреть текущие данные и значения сообщений во время паузы симуляции в точке останова. Чтобы открыть окно Breakpoints and Watch, на вкладке Debug, нажмите Breakpoints List. Также откройте диалоговое окно Breakpoints и щелкните ссылку Breakpoints List.

  • Чтобы просмотреть список всех точек по оси Х и связанных с ними условий, выберите вкладку Breakpoints. Для получения дополнительной информации см. Раздел «Управление точками по оси Х» и «Окно просмотра».

  • Для просмотра данных и значений сообщений выберите вкладку Watch.

Отследите данные в списке часов

Вы можете использовать окна Breakpoints и Watch, чтобы:

  • Добавьте объекты данных и сообщений в список часов.

  • Отслеживайте значения, которые изменились с момента последнего временного шага.

  • Разверните сообщение, чтобы просмотреть очередь сообщений и значения данных сообщений.

Для примера можно добавить speed, up_threshold, и up в список часов и отслеживать их значения во время шага симуляции. Подсветка указывает, что значения speed и up_threshold изменен во время последнего временного шага.

Чтобы добавить объект данных или сообщения в список часов, откройте Property Inspector или Model Explorer. Выберите данные или объект сообщения, который вы хотите просмотреть, и щелкните ссылку Add to Watch Window.

Кроме того, в редакторе Stateflow щелкните правой кнопкой мыши состояние или переход, который использует данные или сообщение. Выберите Add to Watch Window и выберите имя переменной из раскрывающегося списка.

Форматирование Отображения

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

Удаление данных из списка часов

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

Сохраните и восстановите данные часов

Данные просмотра сохраняются во время сеанса работы с MATLAB. Когда вы закрываете модель, ее список данных о часах остается в окне Breakpoints и Watch Window. Если вы снова открываете модель во время того же сеанса работы с MATLAB, список данных часов для этой модели восстанавливается.

Можно сохранить точку останова и просмотреть списки данных и перезагрузить их в более позднем сеансе работы с MATLAB. Чтобы сохранить снимок точки останова и просмотреть списки данных, в верхней части окна Breakpoints and Watch Window щелкните значок Save current breakpoints and watches. Чтобы восстановить снимок, щелкните значок Load breakpoints and watches.

Просмотр и изменение данных в Командном окне 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 (Fixed-Point Designer), чтобы привести новое значение к типу с фиксированной точкой.

Отправка сообщений с помощью приглашения отладки

В приглашении отладки можно отправлять локальные и выходные сообщения. Для примера в этом графике локальное сообщение M определяет, какое состояние становится активным после состояния DecisionPoint. Если график получает сообщение M при положительном значении состояние Received становится активным, и график выводит значение true. В противном случае состояние Missed становится активным, и график выводит значение false .

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

M = 5;
send(M);
Когда вы переходите к следующему шагу симуляции, сообщение запускает переход в состояние Received. Для получения дополнительной информации смотрите Управление выполнением диаграммы после точки останова.

Следуйте следующим правилам при отправке сообщений из приглашения отладки:

  • Для чтения или записи в поле данных сообщения действительного сообщения используйте имя объекта сообщения. Не используйте синтаксис записи через точку.

  • Вы можете отправить сообщение из приглашения отладки, только когда график явным образом отправляет сообщение, вызывая send оператор.

  • Вы не можете отправить входные сообщения из приглашения отладки.

Для получения дополнительной информации смотрите Действие Управляющего сообщения в Диаграммах Stateflow.

Доступ к рабочему пространству MATLAB во время отладки

В приглашение отладки можно ввести другие команды MATLAB, но результаты выполняются в рабочей области Stateflow. Например, можно сохранить все переменные графики в MAT-файле с помощью save функция:

save(chartVars)

Чтобы ввести команду в базовом рабочем пространстве MATLAB, используйте evalin команда с первым аргументом 'base'. Для примера, чтобы перечислить переменные в рабочем пространстве MATLAB, используйте команду:

evalin('base','whos')

См. также

| | |

Похожие темы