Чтобы связаться в и между графиками Stateflow® в модели Simulink®, используйте сообщения. message является объектом Stateflow, который передает данные локально или между графиками. Из графика отправителя можно отправить или передать сообщение, содержащее данные. В графике получения очередь получает сообщение и содержит его, пока график не может оценить его.
Сообщения комбинируют часть функциональности данных и событий. Как данные, сообщения могут передать числовую и текстовую информацию. Как события, сообщения могут инициировать переход и состояния активности. Однако:
Сообщения не инициировали графики, чтобы проснуться. Вместо этого сообщения ставятся в очередь, пока график не просыпается. Когда график просыпается, он может ответить на сообщения в очереди.
Сообщения не потеряны, если график получателя не может сразу ответить.
Для получения дополнительной информации, Различия в виде на море Между сообщениями 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 | получить | отправка