Порты входа и выхода представляют связи в и из состояний и субдиаграмм. Как суперпереходы, порты входа и выхода создают пути к переходу через контуры в Stateflow® иерархия. Однако, потому что порты входа и выхода изолируют логику перехода для ввода и выхода из состояний, они могут использоваться в атомарных субдиаграммах. Порты входа и выхода не поддерживаются в автономных диаграммах Stateflow в MATLAB®.
В редакторе Stateflow порты входа и выхода появляются как стрелы на контуре состояния или субдиаграммы. Каждый порт имеет соответствующее соединение, которое отмечает точку входа или точку выхода в состоянии или субдиаграмме. Значок соединения записи и выходной значок соединения указывают на соединение. Путь к переходу, который приводит к порту записи, продолжается вдоль перехода, соединенного с соответствующим соединением записи. Точно так же путь к переходу, который приводит к выходному соединению, продолжается вдоль перехода, соединенного с соответствующим выходным портом. Например, в этом графике, выходной порт пометил turnOff
представляет выходную связь из субдиаграммы On
.
В субдиаграмме продвижение пути к переходу к выходному соединению задает логику для выхода из субдиаграммы. В этом примере, функциональном warm
должен оценить к true
на двух последовательных временных шагах, прежде чем график делает переход из On
состояние.
Для получения дополнительной информации об этом примере, смотрите Систему Контроля температуры Скорострельного оружия Модели. Для других примеров, которые используют порты входа и выхода, смотрите Изолированный Логика Перехода для Ввода и Выхода из Атомарной Субдиаграммы и Смоделируйте Систему Аварийного прекращения работы Запуска.
Чтобы создать запись или выходной порт, добавьте запись или выходное соединение в состоянии или субдиаграмме.
В палитре объектов кликните по значку Записи или Выходному значку.
На холсте графика кликните по местоположению для новой записи или выходного соединения. Соответствующий порт записи или выхода появляется на контуре состояния или субдиаграммы, которая содержит новую запись или выходное соединение.
Введите метку для соединения и соответствующего порта. Смотрите Добавляют Метки, чтобы Идентифицировать Соответствие с Соединениями и Портами.
Соединения входа и выхода поддерживаются только в исключительном (OR) состояния и атомарные субдиаграммы. Не добавляйте запись или выходите из соединений к графикам верхнего уровня, параллель (AND) состояния или поля.
Метки на портах входа и выхода указывают, какое соединение соединяется с который порт. Добавление метки является дополнительным, когда состояние содержит только одну запись или выходное соединение. Уникальные метки требуются, когда состояние содержит больше чем одно соединение записи или больше чем одно выходное соединение.
Чтобы гарантировать, что график успешно вводит или выходит из состояния без отслеживания в обратном порядке, каждое соединение записи и выходной порт должны иметь путь, который не охраняет условие или инициировало событие. Пути к переходу от соединений записи и выходных портов должны привести к состояниям и не должны содержать терминальные соединения.
Пути к переходу, которые запускаются на перекрестках записи или конце на выходных перекрестках, должны содержаться в родительском состоянии.
И внутренние пути к переходу по умолчанию не должны соединяться с выходным соединением.
Оба суперперехода и порты входа и выхода позволяют вам преодолеть разные уровни в иерархии графика. Которые приближаются к вам, выбор зависит от ваших конструктивных требований.
Сценарий | Рекомендация |
---|---|
Переход между подсостояниями двух одноуровневых состояний, ни одно из которых не является субдиаграммой | Используйте суперпереход. Можно создать суперпереход, который не пересекает контуров субдиаграммы путем простого нажатия на контур исходного состояния и перетаскивания указателя к целевому состоянию. |
Переход к или от подсостояния нормальной субдиаграммы | Используйте или суперпереход или выходной порт или запись.
|
Переход к или от подсостояния атомарной субдиаграммы | Используйте выходной порт или запись. Суперпереходы не могут пересечь контур атомарных субдиаграмм. |