Блок дискретной диаграммы событий аналогичен диаграмме Stateflow ®, но используется для дискретных событий. Блок можно использовать для получения, обработки и отправки объектов SimEvents ®. Блок дискретной диаграммы событий предоставляет графические переходы состояний и язык действий MATLAB ® для создания пользовательских моделей SimEvents.
Отличительной характеристикой блока дискретной диаграммы событий является то, что он выполняется на основе события, а не времени. Для моделирования пользовательских систем дискретных событий используйте следующие варианты блочного поведения диаграммы дискретных событий:
Точное время - временное разрешение для возникновения событий может быть произвольно точным и не ограничено временем выборки модели.
Дополнительные сведения см. в разделе Точное время диаграммы дискретных событий.
Триггер при поступлении - блок выполняется сразу после поступления сообщения. Он не ждет следующего совпадения образца.
Дополнительные сведения см. в разделе Включение блока диаграммы дискретных событий при поступлении сообщения.
Порядок выполнения переменной - блок не имеет фиксированного порядка выполнения с сортировкой. Порядок выполнения зависит от условий выполнения модели.
Дополнительные сведения см. в разделе Динамическое планирование блока диаграммы дискретных событий.
Несколько исполнений за шаг времени - блок может выполнять ноль или несколько раз за один шаг времени.
Дополнительные сведения см. в разделе Динамическое планирование блока диаграммы дискретных событий.
Примечание
С помощью программного обеспечения SimEvents можно просматривать, редактировать и моделировать пользовательский блок дискретной диаграммы событий в модели примера SimEvents. Однако для сохранения модели необходимо иметь лицензию Stateflow.
Для новых моделей без лицензии Stateflow можно просматривать и редактировать модель, но ее нельзя моделировать или сохранять.
Объекты, используемые с диаграммами дискретных событий, могут быть объектами шины или анонимными объектами.
Свойства диаграммы дискретных событий позволяют указать, как диаграмма взаимодействует с Simulink ® и SimEvents. Эти свойства являются подмножеством свойств диаграммы Stateflow.
Чтобы задать свойства для одной диаграммы, выполните следующие действия.
Дважды щелкните диаграмму.
![]()
Щелкните правой кнопкой мыши открытую область диаграммы и выберите «Свойства».
Все диаграммы предоставляют общие свойства и свойства документации.
Обратите внимание, что диаграмма позволяет настраивать только эти свойства на вкладке Общие. Он также поддерживает вкладки «Свойства фиксированной точки» и «Документация».

Дополнительные сведения о свойствах диаграммы см. в разделе Задание свойств для диаграмм Stateflow (Stateflow).
Примечание
SimEvents поддерживает только язык действий MATLAB и всегда поддерживает массивы переменного размера.
Подобно диаграмме Stateflow, можно определить локальные сообщения для диаграммы дискретных событий с помощью редактора Stateflow или проводника моделей.
Чтобы добавить локальное сообщение для диаграммы дискретных событий:
Выберите панель «Символы» и «Создать сообщение».
Выбрать Local Message и переименуйте его в EntityOut.
Чтобы указать свойства локальной очереди сообщений, такие как емкость, политика сортировки и поведение переполнения, щелкните правой кнопкой мыши EntityLocal и выберите Inspect для открытия инспектора свойств.

Диаграммы дискретных событий имеют дополнительные свойства для выходных сообщений и локальных сообщений.
| Свойства порта ввода сообщений | Описание |
|---|---|
| Приоритет | Если два события сообщения происходят одновременно, то для принятия решения о том, какую из них обрабатывать первой, диаграмма дискретных событий использует этот приоритет. Меньшее числовое значение указывает на более высокий приоритет. |
Событие в Stateflow - это объект, запускающий действия. Дополнительные сведения см. в разделе Синхронизация компонентов модели по широковещательным событиям (Stateflow).
Дискретная диаграмма событий SimEvents поддерживает подмножество следующих событий:
Сообщение
Временный
Местный
неявные события, enter, exit, on, change
Дискретная диаграмма событий SimEvents не поддерживает следующие события:
Условия без события
during, tick
Ввод событий из Simulink
Вывод события в Simulink
Примечание
Календарь событий SimEvents отображает и определяет приоритеты сообщений и временные события. События этих типов выполняются в соответствии с календарным расписанием событий.
Календарь событий не отображает и не определяет приоритеты локальных и неявных событий. В среде SimEvents эти события выполняются как зависимые события сообщения или временные события. Для параллельных состояний локальные и неявные события выполняются в порядке выполнения состояния.
При поступлении сообщения или объекта на вход сообщения или в локальную очередь диаграмма дискретных событий реагирует на сообщение следующим образом:
Если диаграмма дискретных событий находится в состоянии ожидания сообщения, диаграмма дискретных событий пробуждается и делает возможные переходы. Диаграмма немедленно пробуждается в порядке приоритета сообщения, обрабатывая сообщение с наивысшим приоритетом. Пример см. в разделе Инициирование блока диаграммы дискретных событий при поступлении сообщения.
Если диаграмма дискретных событий не нуждается в ответе на поступающее сообщение, диаграмма дискретных событий не просыпается и сообщение ставится в очередь.
В диаграмме дискретных событий можно использовать как основанные на событии, так и основанные на абсолютном времени временные логические операторы. При использовании основанных на абсолютном времени временных логических операторов программное обеспечение SimEvents точно использует указанное значение временной задержки. Пример см. в разделе Точное время диаграммы дискретных событий.
Например, активация временной логики 'after(3,sec)' приводит к пробуждению диаграммы через три секунды тактового времени моделирования.

При использовании операторов временной логики абсолютного времени наблюдайте за этими отличиями от среды Stateflow.
| Оператор | Описание |
|---|---|
| Нотацию события можно использовать как в действиях состояния, так и в переходах. |
| При использовании в качестве нотации события перехода нельзя использовать дополнительные нотации условий для этого перехода. Можно применить соединительное соединение для проверки дополнительных условий, если соединительное соединение имеет один безусловный переход. |
В условном обозначении дискретная диаграмма событий поддерживает оба after и before.