exponenta event banner

Создание пользовательских систем очередей с использованием диаграмм статусов дискретных событий

Блок дискретной диаграммы событий аналогичен диаграмме Stateflow ®, но используется для дискретных событий. Блок можно использовать для получения, обработки и отправки объектов SimEvents ®. Блок дискретной диаграммы событий предоставляет графические переходы состояний и язык действий MATLAB ® для создания пользовательских моделей SimEvents.

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

Примечание

С помощью программного обеспечения SimEvents можно просматривать, редактировать и моделировать пользовательский блок дискретной диаграммы событий в модели примера SimEvents. Однако для сохранения модели необходимо иметь лицензию Stateflow.

Для новых моделей без лицензии Stateflow можно просматривать и редактировать модель, но ее нельзя моделировать или сохранять.

Объекты, используемые с диаграммами дискретных событий, могут быть объектами шины или анонимными объектами.

Свойства дискретной диаграммы событий

Свойства диаграммы дискретных событий позволяют указать, как диаграмма взаимодействует с Simulink ® и SimEvents. Эти свойства являются подмножеством свойств диаграммы Stateflow.

Чтобы задать свойства для одной диаграммы, выполните следующие действия.

  1. Дважды щелкните диаграмму.

  2. Щелкните правой кнопкой мыши открытую область диаграммы и выберите «Свойства».

    Все диаграммы предоставляют общие свойства и свойства документации.

  3. Обратите внимание, что диаграмма позволяет настраивать только эти свойства на вкладке Общие. Он также поддерживает вкладки «Свойства фиксированной точки» и «Документация».

    Дополнительные сведения о свойствах диаграммы см. в разделе Задание свойств для диаграмм Stateflow (Stateflow).

Примечание

SimEvents поддерживает только язык действий MATLAB и всегда поддерживает массивы переменного размера.

Определение локальных сообщений

Подобно диаграмме Stateflow, можно определить локальные сообщения для диаграммы дискретных событий с помощью редактора Stateflow или проводника моделей.

Чтобы добавить локальное сообщение для диаграммы дискретных событий:

  1. Выберите панель «Символы» и «Создать сообщение».

  2. Выбрать Local Message и переименуйте его в EntityOut.

  3. Чтобы указать свойства локальной очереди сообщений, такие как емкость, политика сортировки и поведение переполнения, щелкните правой кнопкой мыши EntityLocal и выберите Inspect для открытия инспектора свойств.

Укажите свойства сообщения

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

Свойства порта ввода сообщенийОписание
ПриоритетЕсли два события сообщения происходят одновременно, то для принятия решения о том, какую из них обрабатывать первой, диаграмма дискретных событий использует этот приоритет. Меньшее числовое значение указывает на более высокий приоритет.

Инициирование события

Событие в Stateflow - это объект, запускающий действия. Дополнительные сведения см. в разделе Синхронизация компонентов модели по широковещательным событиям (Stateflow).

Дискретная диаграмма событий SimEvents поддерживает подмножество следующих событий:

  • Сообщение

  • Временный

  • Местный

  • неявные события, enter, exit, on, change

Дискретная диаграмма событий SimEvents не поддерживает следующие события:

  • Условия без события

  • during, tick

  • Ввод событий из Simulink

  • Вывод события в Simulink

Примечание

Календарь событий SimEvents отображает и определяет приоритеты сообщений и временные события. События этих типов выполняются в соответствии с календарным расписанием событий.

Календарь событий не отображает и не определяет приоритеты локальных и неявных событий. В среде SimEvents эти события выполняются как зависимые события сообщения или временные события. Для параллельных состояний локальные и неявные события выполняются в порядке выполнения состояния.

Инициирование сообщений

При поступлении сообщения или объекта на вход сообщения или в локальную очередь диаграмма дискретных событий реагирует на сообщение следующим образом:

  • Если диаграмма дискретных событий находится в состоянии ожидания сообщения, диаграмма дискретных событий пробуждается и делает возможные переходы. Диаграмма немедленно пробуждается в порядке приоритета сообщения, обрабатывая сообщение с наивысшим приоритетом. Пример см. в разделе Инициирование блока диаграммы дискретных событий при поступлении сообщения.

  • Если диаграмма дискретных событий не нуждается в ответе на поступающее сообщение, диаграмма дискретных событий не просыпается и сообщение ставится в очередь.

Временное срабатывание

В диаграмме дискретных событий можно использовать как основанные на событии, так и основанные на абсолютном времени временные логические операторы. При использовании основанных на абсолютном времени временных логических операторов программное обеспечение SimEvents точно использует указанное значение временной задержки. Пример см. в разделе Точное время диаграммы дискретных событий.

Например, активация временной логики 'after(3,sec)' приводит к пробуждению диаграммы через три секунды тактового времени моделирования.

При использовании операторов временной логики абсолютного времени наблюдайте за этими отличиями от среды Stateflow.

ОператорОписание

after

Нотацию события можно использовать как в действиях состояния, так и в переходах.

before

При использовании в качестве нотации события перехода нельзя использовать дополнительные нотации условий для этого перехода. Можно применить соединительное соединение для проверки дополнительных условий, если соединительное соединение имеет один безусловный переход.

В условном обозначении дискретная диаграмма событий поддерживает оба after и before.

См. также

Связанные темы