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