Документация Engee

Состояния

Состояние (state) — это один из блоков конечного автомата (КА). Внутри блока задаются действия, описывающие поведение системы в этом состоянии в виде программного кода на Julia, графа переходов или вложенного КА и могут быть настроены с помощью групп операторов.

stateflow actions

Блоки состояния подчиняются логике работы КА:

  1. В модели КА в любой момент времени может быть активно одно или несколько состояний, если используется иерархия состояний. В этом случае активными являются состояния от наиболее вложенного до его самого внешнего родительского состояния (подробнее см. здесь);

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

Состояния поддерживают иерархию (подробнее здесь).

Синтаксис состояний

Правило Ошибка при нарушении условия

У каждого состояния должно быть название.

Ошибка цикла обработки результатов в router: ErrorException('имя_модели/Chart': state name ' ' is incorrect.)

  • Имя состояния может состоять из:

    • Букв латинского алфавита в любом регистре.

    • Цифр.

    • Символа подчеркивания.

  • Имя должно начинаться с буквы латинского алфавита.

  • Имя не должно повторяться на одном уровне вложенности.

Ошибка цикла обработки результатов в router: ErrorException('имя_модели/Chart': state name 'пример некорректного имени' is incorrect.)

Группы операторов поддерживают только операции на языке Julia.

Ошибка инициализации модели: [EXEC] Ошибка инициализации модели id_модели id_симуляции: UndefVarError(:некорректный синтаксис)

Код, написанный в состоянии без указания префиксов entry:, during: или exit:, выполняется как при активации состояния, так и на каждом шаге модели, пока состояние остается активным и называется кодом с анонимной группой операторов. Такая группа операторов сочетает поведение префиксов entry: и during:. Например, блок состояния с циклом for выглядит так:

stateflow cycles variables

В блоках состояний можно оставлять комментарии как и в любом коде на языке Julia:

stateflow commentary 2