input event происходит вне Stateflow® диаграмма, но видна только на этом графике. Этот тип события включает другой Simulink® блоки, включая другие диаграммы Stateflow, чтобы уведомить определенный график событий, которые происходят вне его. Чтобы определить вход событие:
Добавьте событие к диаграмме Stateflow, как описано в разделе Задать события на графике.
Задайте для свойства Scope для события значение Input from Simulink
. Один порт триггера появляется в верхней части блока Stateflow в модели Simulink.
Событие входа может активировать диаграмму Stateflow через изменение сигнала управления (триггер ребра) или вызов функции из блока Simulink.
Чтобы задать инициированное ребром входное событие, задайте для свойства Trigger одну из следующих опций:
Rising
Falling
Either
Чтобы задать входное событие вызова функции, задайте значение свойства Trigger Function call
.
Вы не можете смешать инициированные и вызываемые функцией входные события в той же диаграмме Stateflow. Смешение этих входных событий приводит к ошибке во время компиляции.
Для получения дополнительной информации смотрите Синхронизация компонентов модели посредством широковещательных событий.
Инициированное ребром входное событие заставляет диаграмму Stateflow выполняться в течение текущего временного шага симуляции. При таком типе входа события изменение управляющего сигнала действует как триггер.
Во всех случаях значение управляющего сигнала должно пересечь нуль, чтобы быть допустимым краевым триггером. Для примера сигнал, который изменяется от -1 до 1, является допустимым триггером восходящего ребра. Сигнал, который изменяется от 1 до 2, не является допустимым триггером восходящего ребра.
Используйте инициированное кромкой входное событие, чтобы активировать график, когда ваша модель требует регулярного или периодического выполнения диаграммы. Для примера в этой модели событие входа, вызванное ребром, активирует Диаграмму Edge to Function с регулярными интервалами. Для получения дополнительной информации смотрите Запланировать несколько раз Подсистему в один шаг.
На любом заданном временном шаге входные события проверяются в порядке возрастания на основе их номеров портов. График пробуждается один раз для каждого допустимого события. Для вход событий может возникнуть несколько ребер в одном временном шаге, пробуждая график более одного раза в этом временном шаге. В этой ситуации события пробуждают график в порядке возрастания на основе их номеров портов.
Входное событие вызова функции заставляет диаграмму Stateflow выполняться в течение текущего временного шага симуляции. С помощью этого типа входа события вы также должны задать событие выхода вызова функции для блока, который вызывает диаграмму Stateflow.
Используйте входное событие вызова функции для активации графика, когда вашей модели требуется доступ к выходным данным из графика в том же временном шаге, что и вызов функции. Для примера в этой модели входное событие вызова функции активирует Диаграмму Looping Scheduler. Для получения дополнительной информации смотрите Запланировать несколько раз Подсистему в один шаг.
Для входных событий вызова функции существует только одно событие триггера. Вызывающий абонент события явно вызывает и выполняет график. Только один вызов функции действителен за один временной шаг.
Когда вы задаете одно или несколько входных событий на графике, один порт триггера появляется на верхней стороне блока диаграммы. Несколько внешних блоков Simulink могут инициировать входные события через вектор сигналов, соединенных с портом триггера. Свойство Port входного события задает индекс в вектор сигнала управления, который соединяется с портом триггера.
По умолчанию Port значения появляются в том порядке, в котором вы добавляете входные события. Можно изменить эти назначения, изменив свойство Port событий. При изменении свойства Port для события входа значения Port для остальных событий входа автоматически перенумеруются.
Для нескольких входных событий в триггерный порт все сигналы должны иметь совпадающий тип данных. Использование сигналов различных типов данных в качестве входных событий приводит к ошибке во время симуляции. Для примера можно объединить два входных сигналов типа double
использовать в качестве входных событий на графике.
Вы не можете объединить два входных сигналов различных типов данных, таких как boolean
и double
.