Свяжитесь с диаграммами Stateflow путем отправки сообщений

Чтобы связаться в и между графиками Stateflow® в модели Simulink®, используйте сообщения. message является объектом Stateflow, который передает данные локально или между графиками. Из графика отправителя можно отправить или передать сообщение. В графике получения очередь получает сообщение и содержит его, пока график не может оценить его.

Сообщения ставятся в очередь, пока график не просыпается. Когда график просыпается, он может ответить на сообщения в очереди.

  • Сообщения не инициировали графики, чтобы проснуться.

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

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

Задайте сообщения в графике

Можно добавить сообщения в диаграмму Stateflow при помощи меню Chart в редакторе Stateflow через окно Symbols, или через Model Explorer.

Добавьте сообщения при помощи меню редактора Stateflow

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

    ОсциллографПункт меню
    Входной параметрChart> Add Inputs & Outputs> Message Input From Simulink
    Вывод Chart> Add Inputs & Outputs> Message Output To Simulink
    ЛокальныйChart> Add Other Elements> Local Message

  2. В диалоговом окне сообщения задайте свойства данных. Для получения дополнительной информации смотрите Set Properties для сообщения.

Добавьте сообщения через окно символов

  1. Чтобы открыть окно Symbols, выберите View> Symbols.

  2. Кликните по значку Create Message.

  3. В строке для нового сообщения, под TYPE, кликните по значку и выберите:

    • Input Message

    • Local Message

    • Output Message

  4. Отредактируйте имя сообщения.

  5. Для сообщений ввода и вывода кликните по полю PORT и выберите номер порта.

  6. Чтобы задать свойства для сообщения, откройте Property Inspector. В окне Symbols щелкните правой кнопкой по строке для сообщения и выберите Explore. Для получения дополнительной информации смотрите Set Properties для сообщения.

Добавьте сообщения через Model Explorer

  1. В редакторе Stateflow выберите View> Model Explorer.

  2. В панели Model Hierarchy выберите объект в иерархии Stateflow, где вы хотите сделать новое сообщение видимым. Объект, который вы выбираете, становится родительским элементом нового сообщения.

  3. В меню Model Explorer выберите Add> Message. Новое сообщение с определением по умолчанию появляется в панели Содержимого Model Explorer.

  4. В панели Message задайте свойства сообщения. Для получения дополнительной информации смотрите Set Properties для сообщения.

Время жизни сообщения Stateflow

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

Сообщение становится допустимым, когда график оценивает или получает его. Сообщение остается допустимым до:

  • Конец шага текущего времени, когда график уничтожает любые остающиеся допустимые сообщения.

  • График передает сообщение другой очереди. Сообщение продолжает свое время жизни в очереди получения.

  • График отбрасывает сообщение.

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

Чтобы просмотреть обмен сообщениями во время симуляции, добавьте блок Sequence Viewer в свою модель Simulink. Отображения блока Sequence Viewer:

  • Отправленные сообщения

  • Полученные сообщения

  • Переданные сообщения

  • Пропущенные сообщения

  • Уничтоженные сообщения

  • Отброшенные сообщения

Для получения дополнительной информации смотрите Использование Блок Sequence Viewer, чтобы Визуализировать сообщения, События и Сущности.

Ограничения для сообщений

Вы не можете использовать сообщения в:

  • Мур строит диаграмму

  • Атомарные подграфики

  • Установите точки останова выражения условия

  • Вводы и выводы модели - ссылки

Сообщения не поддерживают данные фиксированной точки.

Связанные примеры

Больше о

Для просмотра документации необходимо авторизоваться на сайте