Введите график или состояние

Стройте диаграмму и утвердите, что запись происходит когда:

  • График активируется впервые. Это называется инициализацией графика.

  • Существует допустимый переход в состояние. Смотрите Оценивают Переходы.

Рабочий процесс для ввода графика или состояния

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

Стройте диаграмму записи

Первый раз, когда ваша диаграмма Stateflow становится активной, называется инициализацией. Когда инициализация вашего графика происходит, график вводится, и Stateflow выполняет любые переходы по умолчанию для исключительного (OR) состояния. Если состояния в верхнем уровне вашего графика параллельны (AND), они становятся активными на основе своего номера заказа.

Если вы хотите, чтобы ваш график взял какие-либо переходы по умолчанию во время, t = 0, в диалоговом окне Chart Properties, устанавливает флажок Execute (enter) Chart At Initialization. Пути к переходу по умолчанию графика затем выполняются во время образцовой фазы инициализации.

Запись состояния

Когда состояние отмечено для записи, действия записи для состояния выполняются. Если ваш график активен и прошел инициализацию, состояние верхнего уровня становится активным. Состояние отмечено для записи одним из этих способов:

  • Входящий переход пересекает государственные границы.

  • Входящий переход заканчивается в государственной границе.

  • Состояние является параллельным дочерним элементом состояния активного состояния.

Действия записи

Действиям записи предшествуют префиксный entry или en, для краткости сопровождаемый необходимым двоеточием (:), и затем сопровождаемые одним или несколькими действиями. Вы разделяете несколько действий при помощи возврата каретки, точка с запятой (;) или запятая (,). Если вы не задаете тип акта государственной власти явным образом для оператора, график обрабатывает тот оператор как entry, действие during.

Введите диаграмму Stateflow

В этом примере, в первый раз, когда график становится активным, происходит инициализация графика.

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

  1. Действия перехода по умолчанию выполняются, и x = 0, y = 0 и z = 0.

  2. StateA отмечен для записи.

  3. StateA не является подсостоянием неактивного родительского элемента. Выполните действия entry для StateA. Теперь x = 1.

  4. StateA является состоянием, которое было первоначально отмечено для записи.

  5. StateA не содержит соединений истории.

  6. Существует переход по умолчанию к подсостоянию, StateA1. Перейдите к Оценивать блок-схеме Переходов.

  7. Следующим Оценивать блок-схема Переходов отметьте StateA1 для entry. Перейдите к Выходной блок-схеме Действий.

  8. Текущее состояние, StateA, является сверхдержавой целевого состояния, StateA1. Возвратитесь к блок-схеме Действий Записи.

  9. StateA1 не является подсостоянием неактивного родительского элемента. Выполните действия entry для StateA1. Теперь x = 3.

  10. StateA1 является состоянием, которое было первоначально отмечено для записи.

  11. StateA1 не содержит соединений истории.

  12. StateA1 не содержит переходов по умолчанию.

  13. StateA1 не содержит одного подсостояний.

  14. График засыпает.

Шаги 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 состояния находятся в этом порядке:

  1. Power_on не является дочерним элементом неактивного родительского элемента.

  2. Нет никаких действий записи для Power_on.

  3. Power_on является состоянием, которое было первоначально отмечено для записи.

  4. В Power_on существуют соединения истории.

  5. High был ранее активным подсостоянием. Теперь p = 2.

  6. High не содержит соединений истории.

  7. High не содержит переходов по умолчанию.

  8. High не содержит одного подсостояний.

  9. График засыпает.

Это завершает действия entry для Power_on и High.

Ввод состояния при помощи суперпереходов

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

Когда состояние вводится посредством суперперехода, прежде чем действия записи для конечного пункта назначения будут выполнены, его сверхдержавы должны быть отмечены активные, и их действия записи должны быть выполнены. В этом примере StateB1 был отмечен для записи от StateA2. На данном этапе x = 5, y = 5 и z = 1.

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

  1. StateB1 является подсостоянием неактивного родительского элемента (StateB).

  2. StateB отмечен как активный.

  3. StateB не является подсостоянием неактивного родительского элемента.

  4. Выполните действия записи для StateB. Теперь x = 4.

  5. StateB не является состоянием, которое было первоначально отмечено для записи.

  6. Выполните действия записи для StateB1. Теперь x = 3.

  7. StateB1 является состоянием, которое было первоначально отмечено для записи.

  8. StateB1 не имеет никаких соединений истории.

  9. StateB1 не содержит переходов по умолчанию.

  10. StateB1 не содержит одного подсостояний.

  11. График засыпает.

Это завершает действия entry для StateB и StateB1.

Похожие темы