Стройте диаграмму и утвердите, что запись происходит когда:
График активируется впервые. Это называется инициализацией графика.
Существует допустимый переход в состояние. Смотрите Оценивают Переходы.
Эта блок-схема показывает прогрессию событий, что Stateflow® берет для записи в график или состояние. В этой блок-схеме текущее состояние относится к состоянию, в котором происходят решение или процесс.
Первый раз, когда ваша диаграмма Stateflow становится активной, называется инициализацией. Когда инициализация вашего графика происходит, график вводится, и Stateflow выполняет любые переходы по умолчанию для исключительного (OR) состояния. Если состояния в верхнем уровне вашего графика параллельны (AND), они становятся активными на основе своего номера заказа.
Если вы хотите, чтобы ваш график взял какие-либо переходы по умолчанию во время, t = 0
, в диалоговом окне Chart Properties, устанавливает флажок Execute (enter) Chart At Initialization. Пути к переходу по умолчанию графика затем выполняются во время образцовой фазы инициализации.
Когда состояние отмечено для записи, действия записи для состояния выполняются. Если ваш график активен и прошел инициализацию, состояние верхнего уровня становится активным. Состояние отмечено для записи одним из этих способов:
Входящий переход пересекает государственные границы.
Входящий переход заканчивается в государственной границе.
Состояние является параллельным дочерним элементом состояния активного состояния.
Действиям записи предшествуют префиксный entry
или en
, для краткости сопровождаемый необходимым двоеточием (:
), и затем сопровождаемые одним или несколькими действиями. Вы разделяете несколько действий при помощи возврата каретки, точка с запятой (;
) или запятая (,
). Если вы не задаете тип акта государственной власти явным образом для оператора, график обрабатывает тот оператор как entry
, действие during
.
В этом примере, в первый раз, когда график становится активным, происходит инициализация графика.
Следующим Рабочий процесс для Ввода Графика или состояния до графика засыпает, шаги для инициализации графика находятся в этом порядке:
Действия перехода по умолчанию выполняются, и x = 0
, y = 0
и z = 0
.
StateA
отмечен для записи.
StateA
не является подсостоянием неактивного родительского элемента. Выполните действия entry
для StateA
. Теперь x = 1
.
StateA
является состоянием, которое было первоначально отмечено для записи.
StateA
не содержит соединений истории.
Существует переход по умолчанию к подсостоянию, StateA1
. Перейдите к Оценивать блок-схеме Переходов.
Следующим Оценивать блок-схема Переходов отметьте StateA1
для entry
. Перейдите к Выходной блок-схеме Действий.
Текущее состояние, StateA
, является сверхдержавой целевого состояния, StateA1
. Возвратитесь к блок-схеме Действий Записи.
StateA1
не является подсостоянием неактивного родительского элемента. Выполните действия entry
для StateA1
. Теперь x = 3
.
StateA1
является состоянием, которое было первоначально отмечено для записи.
StateA1
не содержит соединений истории.
StateA1
не содержит переходов по умолчанию.
StateA1
не содержит одного подсостояний.
График засыпает.
Шаги 1 - 14 происходят в начальном временном шаге. Это завершает процесс инициализации графика.
Если вы хотите, чтобы ваша диаграмма Stateflow помнила и возвратилась к подсостоянию, которое было ранее активно, независимо от перехода по умолчанию, используйте соединение истории. Размещение соединения истории в состоянии заменяет продвижение перехода по умолчанию к исключительному (OR) подсостояния. После размещения соединения истории в состоянии, после записи, ваша диаграмма Stateflow помнит и вводит ранее активное подсостояние. Соединение истории применяется только к уровню иерархии, в которой это появляется.
В этом примере свет может быть включен или прочь. Эти опции обозначаются состояниями Power_on
и Power_off
. Опциями управляют входные события switch_on
и switch_off
. Когда свет включен, это может быть dim или яркий. На эти опции обозначают состояния Low
и High
и управляют входные события switch_low
и switch_high
.
Первоначально, график спит. Power_off
состояния активен. Когда Power_on
состояния был в последний раз активен, High
был ранее активным подсостоянием. Событие switch_on
происходит, и Power_on
состояния отмечен для записи. В это время p = 0
.
Следующим Рабочий процесс для Ввода Графика или состояния до графика засыпает, шаги выполнения для ввода Power_on
состояния находятся в этом порядке:
Power_on
не является дочерним элементом неактивного родительского элемента.
Нет никаких действий записи для Power_on
.
Power_on
является состоянием, которое было первоначально отмечено для записи.
В Power_on
существуют соединения истории.
High
был ранее активным подсостоянием. Теперь p = 2
.
High
не содержит соединений истории.
High
не содержит переходов по умолчанию.
High
не содержит одного подсостояний.
График засыпает.
Это завершает действия entry
для Power_on
и High
.
Суперпереход является переходом между разными уровнями в графике. Суперпереход может быть между состоянием в графике верхнего уровня и состоянием в одном из его подграфиков, или между состояниями, находящимися в различных подграфиках на тех же или разных уровнях в графике. Можно создать суперпереходы, которые охватывают любое количество уровней в графике.
Когда состояние вводится посредством суперперехода, прежде чем действия записи для конечного пункта назначения будут выполнены, его сверхдержавы должны быть отмечены активные, и их действия записи должны быть выполнены. В этом примере StateB1
был отмечен для записи от StateA2
. На данном этапе x = 5
, y = 5
и z = 1
.
Следующим Рабочий процесс для Ввода Графика или состояния до графика засыпает, шаги выполнения для ввода StateB1
состояния находятся в этом порядке:
StateB1
является подсостоянием неактивного родительского элемента (StateB
).
StateB
отмечен как активный.
StateB
не является подсостоянием неактивного родительского элемента.
Выполните действия записи для StateB
. Теперь x = 4
.
StateB
не является состоянием, которое было первоначально отмечено для записи.
Выполните действия записи для StateB1
. Теперь x = 3
.
StateB1
является состоянием, которое было первоначально отмечено для записи.
StateB1
не имеет никаких соединений истории.
StateB1
не содержит переходов по умолчанию.
StateB1
не содержит одного подсостояний.
График засыпает.
Это завершает действия entry
для StateB
и StateB1
.