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, не является допустимым возрастающим триггером ребра.
Используйте запускаемое фронтом входное событие, чтобы активировать график, когда ваша модель потребует регулярного или периодического выполнения графика. Например, в модели sf_loop_scheduler
, запускаемое фронтом входное событие активирует график Edge to Function равномерно. Для получения дополнительной информации см. Расписание Подсистема Многократно на Одном Шаге.
В любой момент времени продвиньтесь, введите события, проверяются в порядке по возрастанию на основе их номеров портов. График просыпается однажды для каждого допустимого события. Для запускаемых фронтом входных событий несколько ребер могут произойти в том же временном шаге, будя график несколько раз в том временном шаге. В этой ситуации события будят график в порядке возрастания на основе их номеров портов.
Вызов функции ввел причины события диаграмма Stateflow, чтобы выполниться во время шага текущего времени симуляции. С этим типом входного события необходимо также задать вызов функции выходное событие для блока, который вызывает диаграмму Stateflow.
Используйте входное событие вызова функции, чтобы активировать график, когда ваша модель потребует доступа к выходным данным из графика в том же временном шаге как вызов функции. Например, в модели sf_loop_scheduler
, входное событие вызова функции активирует график Looping Scheduler. Для получения дополнительной информации см. Расписание Подсистема Многократно на Одном Шаге.
Поскольку вызов функции ввел события, только одно триггерное событие существует. Вызывающая сторона события явным образом вызывает и выполняет график. Только один вызов функции допустим в одном временном шаге.
Когда вы задаете одно или несколько входных событий в графике, один триггерный порт появляется на главной стороне блока графика. Несколько внешних блоков Simulink могут инициировать входные события через вектор сигналов, соединенных с триггерным портом. Свойство портов входного события задает индекс в вектор управляющего сигнала, который соединяется с триггерным портом.
По умолчанию значения Port появляются в порядке, что вы добавляете входные события. Можно изменить эти присвоения путем изменения Свойства портов событий. Когда вы изменяете свойство Port для входного события, значения Порта для остающихся входных событий автоматически перенумеровывают.
Для нескольких входных событий к триггерному порту все сигналы должны иметь совпадающий тип данных. Используя сигналы различных типов данных как входные события приводит к ошибке в процессе моделирования. Например, можно мультиплексировать два входных сигнала типа double
использовать в качестве входных событий к графику.
Вы не можете мультиплексировать два входных сигнала различных типов данных, такие как boolean
и double
.