Сохранение состояния автомата при выключении либо сброс с исходное
состояние
При использовании библиотеки блоков конечных автоматов может быть два варианта включения и
выключения конечного автомата:
- Выключенный автомат запоминает состояние при выключении, и включается с сохраненного
состояния.
- Автомат при выключении сбрасывается в начальное состояние.
Заморозка конечного автомата с сохранением состояния
Блок 10_konechnye_avtomaty/4101.dita#, создан на
основе стандартной субмодели SimInTech, поэтому он может быть включен и выключен из работы
блоком Substruktury/3062.dita#.
В качестве примера рассмотрим блок переключения режимов работы двигателя. На верхнем уровне
в блок подается логический сигнал
A16_enable, который отвечает за включение и
выключение блока, смотри
Рисунок 1.
Рисунок 1. Блок «Карта состояний конечного автомата»
Внутри конечного автомата вход подключен к стандартному блоку Substruktury/3062.dita# (см.
Рисунок 2).
Рисунок 2. Блок «Карта состояний…», с выполнением по условию
Данная схема работает следующим образом. В случае когда значение
A16_enable =
Да, блок работает и осуществляет переключение состояний согласно заданному
алгоритму. В случае, когда значение логического сигнала
A16_enable =
Нет, блок
выключается из расчета, его вычисление не выполняется, при этом состояние автомата не
изменяется.
Прим.: Использование блока «Условие выполнения субмодели» не изменяет состояние
автомата. При включении автомата его состояние будет точно таким же как при выключении.
Сброс состояния автомата в начальное состояние
Если при работе необходимо отключать автомат таким образом, чтобы при включении он
находился в начальном состоянии, необходимо вместо выключения автомата явно переводить его в
начальное состояние. Пример реализации такого состояния приведен на
Рисунок 3:
Рисунок 3. Блок «Карта состояний…» с сбросом в начальное состояние
В этом случае вместо заморозки всего блока по условию, данное условие используется для
перехода в состояние «Выключено» из текущего состояния. На рисунке 4 Приведена логика
переходя для состояния 2. В случае когда значение логического сигнала
A16_enable =
Нет, срабатывает переход в состояние выключено (см.
Рисунок 4).
Рисунок 4. Логика работы состояние 2 перехода в состояние «Выключено»
В состоянии «выключено» автомат находится все время, пока значение сигнала
A16_enable равно
Нет. Как только сигнал меняется на
Да,
осуществляется переход в начальное состояние. Таким образом реализуется выключение автомата
с переводом его в начальное состояние при включении (см.
Рисунок 5).
Рисунок 5. Логика работы в состоянии «Выключено»