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

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

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

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

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

Для получения дополнительной информации, Различия в виде на море Между сообщениями Stateflow, Событиями и Данными.

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

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

Можно добавить сообщения в диаграмму Stateflow при помощи панели Символов, меню Stateflow Editor или Model Explorer.

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

  1. Во вкладке Modeling, под Design Data, выбирают Symbols Pane.

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

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

    • Input Message

    • Local Message

    • Output Message

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

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

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

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

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

    ОсциллографОпция
    Входной параметрВо вкладке Modeling, под Design Data, выбирают Message Input.
    Вывод Во вкладке Modeling, под Design Data, выбирают Message Output.
    ЛокальныйВо вкладке Modeling, под Design Data, выбирают Message.

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

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

  1. Во вкладке Modeling, под Design Data, выбирают Model Explorer.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  • Атомарные субдиаграммы

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

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

Смотрите также

| | | | | |

Похожие темы