Активируйте диаграмму Stateflow путем отправки входных событий

input event происходит вне Stateflow® диаграмма, но видна только на этом графике. Этот тип события включает другой Simulink® блоки, включая другие диаграммы Stateflow, чтобы уведомить определенный график событий, которые происходят вне его. Чтобы определить вход событие:

  1. Добавьте событие к диаграмме Stateflow, как описано в разделе Задать события на графике.

  2. Задайте для свойства Scope для события значение Input from Simulink. Один порт триггера появляется в верхней части блока Stateflow в модели Simulink.

  3. Событие входа может активировать диаграмму Stateflow через изменение сигнала управления (триггер ребра) или вызов функции из блока Simulink.

    • Чтобы задать инициированное ребром входное событие, задайте для свойства Trigger одну из следующих опций:

      • Rising

      • Falling

      • Either

    • Чтобы задать входное событие вызова функции, задайте значение свойства Trigger Function call.

    Вы не можете смешать инициированные и вызываемые функцией входные события в той же диаграмме Stateflow. Смешение этих входных событий приводит к ошибке во время компиляции.

Для получения дополнительной информации смотрите Синхронизация компонентов модели посредством широковещательных событий.

Активируйте диаграмму Stateflow при помощи краевых триггеров

Инициированное ребром входное событие заставляет диаграмму Stateflow выполняться в течение текущего временного шага симуляции. При таком типе входа события изменение управляющего сигнала действует как триггер.

Тип триггера ребра

Описание

Rising

Триггер переднего ребра. График активируется, когда сигнал управления изменяется с нуля или отрицательного значения на положительное значение.

Falling

Триггер падающего ребра. График активируется, когда сигнал управления изменяется с положительного значения или на нуль, или на отрицательное значение.

Either

Триггер поднимающегося или падающего ребра. График активируется, когда сигнал управления переходит нуль, когда он изменяется в любом направлении.

Во всех случаях значение управляющего сигнала должно пересечь нуль, чтобы быть допустимым краевым триггером. Для примера сигнал, который изменяется от -1 до 1, является допустимым триггером восходящего ребра. Сигнал, который изменяется от 1 до 2, не является допустимым триггером восходящего ребра.

Когда использовать Edge-триггерные входные события

Используйте инициированное кромкой входное событие, чтобы активировать график, когда ваша модель требует регулярного или периодического выполнения диаграммы. Для примера в этой модели событие входа, вызванное ребром, активирует Диаграмму Edge to Function с регулярными интервалами. Для получения дополнительной информации смотрите Запланировать несколько раз Подсистему в один шаг.

Поведение нескольких краевых входных событий

На любом заданном временном шаге входные события проверяются в порядке возрастания на основе их номеров портов. График пробуждается один раз для каждого допустимого события. Для вход событий может возникнуть несколько ребер в одном временном шаге, пробуждая график более одного раза в этом временном шаге. В этой ситуации события пробуждают график в порядке возрастания на основе их номеров портов.

Активируйте диаграмму Stateflow при помощи вызовов функций

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

Когда использовать Function-Call Входа События

Используйте входное событие вызова функции для активации графика, когда вашей модели требуется доступ к выходным данным из графика в том же временном шаге, что и вызов функции. Для примера в этой модели входное событие вызова функции активирует Диаграмму Looping Scheduler. Для получения дополнительной информации смотрите Запланировать несколько раз Подсистему в один шаг.

Поведение нескольких событий Входа вызова функции

Для входных событий вызова функции существует только одно событие триггера. Вызывающий абонент события явно вызывает и выполняет график. Только один вызов функции действителен за один временной шаг.

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

Когда вы задаете одно или несколько входных событий на графике, один порт триггера появляется на верхней стороне блока диаграммы. Несколько внешних блоков Simulink могут инициировать входные события через вектор сигналов, соединенных с портом триггера. Свойство Port входного события задает индекс в вектор сигнала управления, который соединяется с портом триггера.

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

Типы данных, разрешенные для входных событий

Для нескольких входных событий в триггерный порт все сигналы должны иметь совпадающий тип данных. Использование сигналов различных типов данных в качестве входных событий приводит к ошибке во время симуляции. Для примера можно объединить два входных сигналов типа double использовать в качестве входных событий на графике.

Simulink model that uses two signals of type double as input events to a Stateflow chart.

Вы не можете объединить два входных сигналов различных типов данных, таких как boolean и double.

Simulink model that uses a signal of type boolean and a signal of type double as input events to a Stateflow chart. This configuration produces a run-time error.

Похожие темы