Для связи внутри и между Stateflow® графики в Simulink® моделировать, использовать сообщения. message является объектом Stateflow, который передает данные локально или между графиками. Из графика отправителя можно отправить или переслать сообщение, содержащее данные. На диаграмме приема очередь получает сообщение и удерживает его до тех пор, пока график не сможет его вычислить.
Сообщения объединяют некоторые функциональные возможности данных и событий. Как и данные, сообщения могут передавать числовую и текстовую информацию. Как и события, сообщения могут запускать переходы и состояния активности. Однако:
Сообщения не вызывают пробуждение графиков. Вместо этого сообщения ставятся в очередь до тех пор, пока график не проснется. Когда график просыпается, он может реагировать на сообщения в очереди.
Сообщения не теряются, если график приемника не может ответить немедленно.
Для получения дополнительной информации смотрите Просмотр различий между сообщениями Stateflow, Событиями и данными.
Когда переход на графике или состояние активности оценивает сообщение, график определяет, содержит ли очередь какие-либо сообщения. Если это так, график удаляет сообщение из очереди. Сообщение остается в силе до конца временного шага или до тех пор, пока график не переадресовывает или не отбрасывает его. В то время как сообщение является действительным, другие переходы или действия могут получить доступ к данным сообщения, и график не удаляет другое сообщение из очереди. График уничтожает все действительные сообщения в конце текущего временного шага.
Можно добавить сообщения на диаграмму Stateflow с помощью панели «Символы», меню «Редактор Stateflow» или «Model Explorer».
На вкладке Modeling, под Design Data, выберите Symbols Pane.
Щелкните значок Create Message.
В строке нового сообщения под TYPE щелкните значок и выберите:
Input Message
Local Message
Output Message
Измените имя сообщения.
Для входа и выхода сообщений щелкните по полю PORT и выберите номер порта.
Чтобы задать свойства сообщения, откройте Property Inspector. На панели «Символы» щелкните правой кнопкой мыши строку сообщения и выберите «Исследовать». Для получения дополнительной информации смотрите Задать свойства сообщения.
В редакторе Stateflow выберите опцию, соответствующий возможностям сообщения, которое вы хотите добавить.
Возможности | Опция |
---|---|
Вход | На вкладке Modeling, под Design Data, выберите Message Input. |
Выход | На вкладке Modeling, под Design Data, выберите Message Output. |
Местный | На вкладке Modeling, под Design Data, выберите Message. |
В диалоговом окне «Сообщение» задайте свойства данных. Для получения дополнительной информации смотрите Задать свойства сообщения.
На вкладке Modeling, под Design Data, выберите Model Explorer.
На панели Model Hierarchy выберите объект в иерархии Stateflow, где вы хотите сделать новое сообщение видимым. Выбранный объект становится родительским элементом нового сообщения.
В меню Model Explorer выберите Add > Message. Новое сообщение с определением по умолчанию появится на панели Содержимое (Contents) Обозревателя моделей (Model Explorer).
На панели Message задайте свойства сообщения. Для получения дополнительной информации смотрите Задать свойства сообщения.
Сообщение Stateflow имеет конечное время жизни. Время жизни начинается, когда вы отправляете сообщение в очередь приема с send
оператор. Сообщение остается в очереди до перехода или состояния on
действие оценивает его или график получает его при помощи receive
оператор.
Сообщение становится действительным, когда график оценивает или получает его. Сообщение остается в силе до:
В то время как сообщение является действительным, другие переходы и действия могут оценить сообщение и получить доступ к его данным. Чтобы проверить, является ли сообщение допустимым, используйте isvalid
оператор.
Чтобы просмотреть обмен сообщениями во время симуляции, добавьте блок Sequence Viewer к своей модели Simulink. Блок Sequence Viewer отображает:
Отправленные сообщения
Полученные сообщения
Пересланные сообщения
Сброшенные сообщения
Уничтоженные сообщения
Отброшенные сообщения
Дополнительные сведения см. в разделе Использование Sequence Viewer для визуализации сообщений, событий и сущностей.
Вы не можете использовать сообщения в:
Диаграммы Мура
Атомарные субдиаграммы
Выражения условий точек по оси Х
В графиках, которые используют C в качестве языка действий, сообщения не поддерживают многословие данных с фиксированной точкой.
discard | forward | isvalid | receive | send | Sequence Viewer | Queue (Simulink)