Управляйте символами в редакторе Stateflow

В панели Символов можно просмотреть и управлять данными, событиями и сообщениями при работе в Stateflow® Редактор. Во вкладке Modeling выберите Symbols Pane.

От панели Символов вы можете:

  • Добавьте и удалите данные, события и сообщения.

  • Установите тип объекта и осциллограф.

  • Измените номер порта.

  • Отредактируйте имя объекта и обновите все экземпляры имени объекта в графике.

  • Отмените и восстановите изменения в типе, имени и номере порта.

  • Обнаружьте неиспользуемые объекты.

  • Обнаружьте и зафиксируйте неразрешенные объекты.

  • Проследите между объектами в окне и где объекты используются в графике.

  • Просмотрите и отредактируйте свойства объектов в Property Inspector.

Symbols pane showing input, output, and local data, an input event, and an output message.

Строки в Символах разделяют иерархию экранных объектов на области. Расширьте объект в окне, чтобы видеть данные, события и сообщения, порожденные тем объектом. По умолчанию все неграфические объекты в графике перечислены в окне. Чтобы просмотреть только объекты, которые используются на текущем уровне иерархии и ниже, выберите значок. Чтобы искать определенные символы, введите в поле поиска Filter.

Добавьте и измените данные, События и сообщения

Добавить неграфический объект в блок Stateflow, в панели Символов:

  1. Выберите один из этих значков.

    ЗначокОписание
    Добавьте данные
    Addevent
    Добавьте сообщение

  2. В строке для нового объекта, под TYPE, выбирают тип объекта.

  3. Отредактируйте имя объекта.

  4. Для объектов ввода и вывода, под PORT, выбирают номер порта.

  5. Чтобы просмотреть объект в Property Inspector, щелкните правой кнопкой по объекту и выберите Inspect.

  6. В Property Inspector измените свойства объектов.

После того, как вы добавляете объекты через панель Символов, объекты появляются как неиспользованные, пока вы не ссылаетесь на них в своем проекте Stateflow.

В панели Символов можно изменить имя, ввести, и номер порта объектов Stateflow. Отредактируйте имя объектов в поле NAME. Когда вы переименуете объект, выберите Shift+Enter, чтобы переименовать все экземпляры объекта в конечном автомате. Чтобы изменить тип или номер порта объекта, кликните по соответствующему полю и выбору из доступных параметров. Чтобы удалить объект из конечного автомата, щелкните правой кнопкой по объекту и выберите Delete.

Обнаружьте неиспользованные данные в панели символов

Символами, которые появляются в вашем графике, но что вы не добавили как данные, события или сообщения, является undefined или unresolved. Панель Символов указывает на неиспользованные данные, сообщения, функции и события с желтым значком предупреждения. Можно разрешить неопределенные символы при помощи панели Символов или Мастера Символа.

Symbols pane showing unused data.

Следующие типы неиспользованных данных не обнаруживаются:

  • Порожденные машиной данные

  • Вводы и выводы MATLAB® функции

  • Данные параметра определяют объем в графике, который содержит атомарные субдиаграммы

Для каждого неопределенного символа, на основе использования символа в графике, Stateflow выводит эти свойства:

  • Размер

  • Ввод

  • Сложность

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

Разрешите символы через панель символов

Когда вы редактируете свой график, Stateflow обнаруживает неопределенные символы и отмечает их в панели Символов с красным значком ошибки. Для каждого неопределенного символа отображения столбца TYPE класс и осциллограф выведены из использования в графике. Можно разрешить неопределенные символы индивидуально или коллективно.

  • Чтобы задать символ с выведенным классом и осциллографом, кликните по значку ошибки и выберите Fix.

  • Чтобы задать символ с различным классом или осциллографом, выберите другую комбинацию класса и осциллографа от TYPE выпадающий список.

  • Чтобы разрешить все неопределенные символы с их выведенными классами и осциллографами, нажмите кнопку Resolve undefined symbols.

Разрешите символы через мастер символа

Если ваш график содержит какие-либо неопределенные символы, когда вы обновляете график, обновляете модель или симулируете модель, Мастер Символа открывает и перечисляет неопределенные символы. Для каждого неопределенного символа Class и столбцы Scope отображают класс и определяют объем выведенный из использования в графике. Можно принять, изменить или отклонить каждое определение символа, которое предлагает Мастер Символа.

  • Чтобы принять определение с выведенным классом и определить объем, установите флажок перед символом.

  • Чтобы изменить определение, выберите различный класс или осциллограф от Class или Scope выпадающие списки.

  • Чтобы отклонить определение, снимите флажок перед символом.

После того, как вы отредактируете определения символа, добавьте символы в иерархию Stateflow путем нажатия на OK.

Обнаружьте определения символа в пользовательском коде

Обнаружение символов, заданных в пользовательском коде, зависит от параметра конфигурации модели Import custom code.

  • Если вы выбираете Import custom code, синтаксический анализатор Stateflow пытается найти неразрешенные символы графика в пользовательском коде. Если пользовательский код не задает эти символы, они появляются в Мастере Символа.

  • Если вы не выбираете Import custom code, синтаксический анализатор Stateflow рассматривает неразрешенные символы данных в графике, как задано в пользовательском коде. Если пользовательский код не задает эти символы, симулируя и генерируя код от результатов модели по ошибке.

Опция Import custom code не доступна для графиков, которые используют MATLAB в качестве языка действия. Для получения дополнительной информации см. пользовательский код Импорта (Simulink).

Проследите данные, События и сообщения

Stateflow обеспечивает трассируемость между конечным автоматом и неграфическими символами. Когда вы выбираете символ в панели Символов, Stateflow подсвечивает разделы графика тот доступ тот символ. Когда вы выбираете объект в своем графике, Stateflow подсвечивает символы, которые использует объект.

Чтобы управлять, когда объекты и символы будут подсвечены, выберите кнопку preference. Появляется выпадающее меню.

Для Stateflow, чтобы подсветить символы в панели Символов, которую использует объект, выберите Highlight used symbols. Если вы хотите, чтобы Stateflow подсветил объекты в графике, которые используют символ, выбирают Highlight uses on diagram. С Highlight uses on diagram можно принять решение подсветить:

  • Все использование символа в вашем графике.

  • Объекты от того, где символ читается.

  • Объекты туда, где символ записан.

Например, откройте модель sf_tetris2 и дважды кликните график TetrisLogic. В панели Символов, когда вы выбираете постоянный ARENA_HEIGHT, состояния и функции то использование ARENA_HEIGHT подсвечены.

Видеть использование постоянного ARENA_HEIGHT, откройте функциональный freeze.

Можно также выбрать графический объект, такой как состояние, переход, или функционировать в графике и просмотреть символы, которые использует объект. Например, в графике TetrisLogic, расширьте символ MainArea в панели Символов. Если вы выбираете FreezeShape состояния в графике, затем локальные данные shape и функциональный freeze() подсвечены в панели Символов. Это выделение указывает, что те объекты используются в FreezeShape состояния.

Когда в режиме отладки, значения каждых данных отображены в столбце VALUE панели Символов. Stateflow обновляет значения периодически, когда симуляция запускается. Изменения подсветок столбца значений в значениях данных как изменения происходят. Когда отладчик останавливается в точке останова, можно обновить начальное значение или изменить значение символы или в командной строке или в панели Символов.

Данные или сообщениеОбновите начальное значениеОбновитесь во время отладки
Входной параметрНетНет
Вывод ДаДа
ПараметрНетНет
ПостоянныйДаНет
Память хранилища данныхНетДа
ЛокальныйДаДа

Для элементов шины можно изменить значение символы или в командной строке или в панели Символов.

Соедините шиной элементОбновите начальное значениеОбновитесь во время отладки
Входной параметрНетНет
Вывод НетДа
ПараметрНетНет
ПостоянныйНетНет
Память хранилища данныхНетДа
ЛокальныйНетДа

В панели Символов многомерные массивы появляются как тип данных и размер массива. Если массив не превышает больше чем 100 элементов, наводит на символ, чтобы просмотреть элементы. Для массивов, которые содержат больше чем 100 элементов, просмотрите элементы при помощи командной строки.

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

Ограничения панели символов

Вы не можете добавить данные, события, или передаете панель Символов, если они:

  • Порожденный состоянием.

  • В функции.

  • Порожденный конечным автоматом.

Данные и события, порожденные конечным автоматом, также не видимы в панели Символов. Чтобы добавить эти типы объектов, используйте Model Explorer. Как лучшая практика, избегайте использования порожденных машиной данных.

  • Когда вы изменяете код в функции MATLAB, изменения не обновляются в панели Символов, пока вы не сохраняете функцию MATLAB.

  • Вы не можете отменить или восстановить изменения во вводе и выводе для функций MATLAB.

  • Вы не можете восстановить удаленные данные, события или сообщения из таблицы изменения состояния.

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

  • Вы не можете отменить переименование объекта для таблиц истинности.

  • Когда вы удаляете данные для объектов, содержавшихся в основанном на Simulink состоянии, объект остается в вашем основанном на Simulink состоянии, и символ данных показывают как неопределенный в панели Символов.

Похожие темы