Событие - это неграфический объект, который может вызвать действия в диаграмме Stateflow ®. Дополнительные сведения см. в разделе Синхронизация компонентов модели путем трансляции событий.
Диаграммы статофлоу реагируют на события циклически.
Событие пробуждает неактивную диаграмму.
Диаграмма реагирует на событие, выполняя переходы и действия состояния сверху вниз по иерархии диаграммы. Начиная с уровня диаграммы:
Диаграмма проверяет допустимые переходы между состояниями.
Диаграмма выполняется during и on действия для активного состояния.
Диаграмма переходит на следующий уровень вниз по иерархии.
Диаграмма становится неактивной, пока не получит следующее событие.

Дополнительные сведения см. в разделе Выполнение диаграммы потока состояний.
В моделях Simulink ® диаграммы Stateflow получают входные события из других блоков модели.
При обработке события действие состояния или перехода может генерировать явные или неявные события, которые запускают дополнительные шаги. Например:
В каждом случае диаграмма прерывает текущее действие для обработки нового события. Когда действие, вызванное новым событием, завершается, диаграмма возвращается к действию, которое происходило до прерывания.
Примечание
В модели Simulink выполнение событий выходного краевого триггера эквивалентно переключению значения выходных данных между 0 и 1. Этот тип события не прерывает текущую активность диаграммы. Вместо этого принимающий блок обрабатывает событие в следующий раз, когда модель выполняет блок. Дополнительные сведения см. в разделе Активация блока Simulink путем отправки выходных событий.
Результаты обработки локального события могут конфликтовать с действием, которое выполнялось до создания события. В зависимости от типа действия диаграммы разрешают эти конфликты с помощью логики раннего возврата.
Тип действия | Логика раннего возврата |
|---|---|
Государство entry действие | Если после обработки локального события состояние перестает быть активным, диаграмма останавливает процесс входа в состояние. Диаграмма не выполняет остальные инструкции в entry действия. |
Государство during действие | Если после обработки локального события состояние перестает быть активным, диаграмма прекращает его выполнение. Диаграмма не выполняет остальные инструкции в during действия. |
Государство exit действие | Если после обработки локального события состояние перестает быть активным, диаграмма останавливает процесс выхода из состояния. Диаграмма не выполняет остальные инструкции в exit действие или какие-либо действия и состояние перехода entry действия, которые являются результатом выхода из состояния. |
| Действие условия | Если исходное состояние внутреннего или внешнего пути перехода или родительское состояние пути перехода по умолчанию больше не активны после обработки локального события, диаграмма останавливает процесс перехода. Диаграмма не выполняет остальные действия по пути перехода или состоянию exit и entry действия, которые являются результатом перехода. |
| Переходное действие | Если родитель пути перехода неактивен или у родителя есть активное подсостояние, диаграмма останавливает процесс перехода. Диаграмма не выполняет остальные действия по пути перехода или состоянию entry действия, которые являются результатом перехода. |
Например, на этой диаграмме входное событие E и локальное событие F инициировать переходы между состояниями.

Предположим, что это состояние A активен, когда диаграмма получает событие E. Диаграмма отвечает на событие следующими шагами:
Диаграмма определяет, что переход из активного состояния A указывать B действителен в результате события E.
Диаграмма выполняет действие условия действительного перехода и передает событие F.
Диаграмма прерывает переход из состояния A указывать B и начинает обрабатывать событие F.
Диаграмма определяет, что переход из активного состояния A указывать C действителен в результате события F.
Государство A выполняет его exit действия.
Государство A становится неактивным.
Государство C становится активным.
Государство C выполняет его entry действия.
После того, как диаграмма обработает событие F, состояние C - активное состояние диаграммы. Потому что состояние A больше не активен, диаграмма использует логику раннего возврата и останавливает переход из состояния A указывать B.
Совет
Избегайте использования неориентированных трансляций локальных событий. Неориентированные трансляции локальных событий могут вызвать нежелательное рекурсивное поведение в диаграмме. Вместо этого отправляйте локальные события с помощью направленных широковещательных передач. Дополнительные сведения см. в разделе Широковещательная рассылка локальных событий для синхронизации параллельных состояний.
Можно задать уровень диагностики для обнаружения неориентированных трансляций локальных событий. В диалоговом окне Параметры конфигурации (Configuration Parameters) откройте панель Диагностика (Diagnostics) > Поток состояний (Stateflow) и задайте для параметра Undirected event broadcasts значение none, warning, или error. Значение по умолчанию: warning.
Автономные диаграммы Stateflow получают входное событие при вызове step функция или входная функция события в MATLAB ®.
Автономные диаграммы также получают неявные события от MATLAB timer объекты, связанные с временными логическими операторами абсолютного времени after, at, и every. Эти операторы определяют временную логику в терминах времени настенных часов. Если состояние, связанное с оператором временной логики, становится неактивным до того, как диаграмма обрабатывает неявное событие, событие не пробуждает диаграмму.
Если диаграмма обрабатывает другую операцию при получении события, то она ставит событие в очередь для выполнения после завершения текущего шага. Можно указать размер очереди событий, задав опцию конфигурации. -eventQueueSize при создании объекта диаграммы. Дополнительные сведения см. в разделе Параметры конфигурации объектов диаграммы.
Например, на этой диаграмме входные события E и F инициировать переходы между состояниями. Предположим, что SendF - функция в пути MATLAB, вызывающая входную функцию события F.

Предположим, что это состояние A активен, когда диаграмма получает событие E. Диаграмма отвечает на событие следующими шагами:
Диаграмма определяет, что переход из активного состояния A указывать B действителен в результате события E.
Диаграмма выполняет действие условия допустимого перехода и вызывает функцию. SendF.
SendF вызывает функцию входного события F. Поскольку диаграмма занята обработкой действия условия, она ставит событие в очередь F.
Диаграмма завершает выполнение действия условия.
Государство A выполняет его exit действия.
Государство A становится неактивным.
Государство B становится активным.
Государство B выполняет его entry действия.
Диаграмма начинает обработку события в очереди F.
Диаграмма определяет, что переход из активного состояния B указывать D действителен в результате события F.
Государство B выполняет его exit действия.
Государство B становится неактивным.
Государство D становится активным.
Государство D выполняет его entry действия.
После того, как диаграмма обработает событие F, состояние D - активное состояние диаграммы.
после | в | изменение | войти | каждый | выход | послать | timer