Для обмена данными внутри и между диаграммами Stateflow ® в модели Simulink ® используйте сообщения. Сообщение - это объект Stateflow, который обменивается данными локально или между диаграммами. Из диаграммы отправителей можно отправить или переслать сообщение, содержащее данные. На диаграмме приема очередь получает сообщение и удерживает его до тех пор, пока диаграмма не сможет оценить его.

Сообщения объединяют некоторые функциональные возможности данных и событий. Подобно данным, сообщения могут передавать числовую и текстовую информацию. Как и события, сообщения могут инициировать действия перехода и состояния. Однако:
Сообщения не запускают диаграммы для пробуждения. Вместо этого сообщения ставятся в очередь до тех пор, пока диаграмма не проснется. Когда диаграмма пробуждается, она может отвечать на сообщения в очереди.
Сообщения не теряются, если диаграмма получателей не может ответить немедленно.
Дополнительные сведения см. в разделе Просмотр различий между сообщениями Stateflow, событиями и данными.
Когда операция перехода или состояния диаграммы оценивает сообщение, диаграмма определяет, содержит ли очередь какие-либо сообщения. В этом случае диаграмма удаляет сообщение из очереди. Сообщение остается действительным до конца временного шага или до тех пор, пока диаграмма не перенаправит или не отбросит его. Пока сообщение является действительным, другие переходы или действия могут получить доступ к данным сообщения, и диаграмма не удаляет другое сообщение из очереди. Диаграмма уничтожает все допустимые сообщения в конце текущего шага времени.
Добавить сообщения в диаграмму потока состояний можно с помощью панели Символы (Symbols), меню Редактор потока состояний (Stateflow Editor) или Проводника моделей (Model Explorer).
На вкладке «Моделирование» в разделе «Данные проекта» выберите «Панель обозначений».
Щелкните значок Создать сообщение.![]()
В строке нового сообщения в разделе ТИП щелкните значок и выберите:
Input Message
Local Message
Output Message
Измените имя сообщения.
Для ввода и вывода сообщений щелкните по полю PORT и выберите номер порта.
Чтобы задать свойства сообщения, откройте инспектор свойств. На панели «Символы» щелкните правой кнопкой мыши строку сообщения и выберите «Обзор». Дополнительные сведения см. в разделе Настройка свойств сообщения.
В редакторе Stateflow выберите параметр, соответствующий области добавляемого сообщения.
| Объем | Выбор |
|---|---|
| Вход | На вкладке «Моделирование» в разделе «Данные проекта» выберите «Ввод сообщений». |
| Продукция | На вкладке «Моделирование» в разделе «Данные проекта» выберите «Вывод сообщения». |
| Местный | На вкладке «Моделирование» в разделе «Данные конструкции» выберите «Сообщение». |
В диалоговом окне «Сообщение» укажите свойства данных. Дополнительные сведения см. в разделе Настройка свойств сообщения.
На вкладке Моделирование (Modeling) в разделе Данные конструкции (Design Data) выберите Обозреватель моделей (Model Explorer).
На панели Иерархия модели (Model Hierarchy) выберите объект в иерархии Stateflow, где необходимо сделать новое сообщение видимым. Выбранный объект становится родителем нового сообщения.
В меню Проводника моделей выберите Добавить (Add) > Сообщение (Message). Новое сообщение с определением по умолчанию появится на панели Содержимое (Contents) Проводника моделей (Model Explorer).
На панели «Сообщение» укажите свойства сообщения. Дополнительные сведения см. в разделе Настройка свойств сообщения.
Сообщение Stateflow имеет конечное время жизни. Время жизни начинается при отправке сообщения в очередь получения с помощью send оператор. Сообщение остается в очереди до перехода или состояния on действие оценивает его или диаграмма получает его с помощью receive оператор.
Сообщение становится действительным, когда диаграмма оценивает или получает его. Сообщение остается действительным до:
Пока сообщение является действительным, другие переходы и действия могут оценить сообщение и получить доступ к его данным. Чтобы проверить правильность сообщения, используйте isvalid оператор.
Чтобы просмотреть обмен сообщениями во время моделирования, добавьте блок просмотра последовательностей в модель Simulink. В блоке «Просмотр последовательности» отображаются:
Отправленные сообщения
Полученные сообщения
Переадресованные сообщения
Отброшенные сообщения
Уничтоженные сообщения
Отброшенные сообщения
Дополнительные сведения см. в разделе Использование средства просмотра последовательностей для визуализации сообщений, событий и сущностей.
Вы не можете использовать сообщения в:
Графики Мура
Атомарные подшаблоны
Выражения условий точки останова
В диаграммах, использующих C в качестве языка действий, сообщения не поддерживают многословные данные с фиксированной точкой.
брак | отправить | isvalid | получить | послать | Просмотр последовательности | Очередь (Simulink)