Рекомендации по работе с библиотекой блоков конечных автоматов

Сохранение состояния автомата при выключении либо сброс с исходное состояние

При использовании библиотеки блоков конечных автоматов может быть два варианта включения и выключения конечного автомата:

  1. Выключенный автомат запоминает состояние при выключении, и включается с сохраненного состояния.
  2. Автомат при выключении сбрасывается в начальное состояние.

Заморозка конечного автомата с сохранением состояния

Блок Карта состояний конечного автомата, создан на основе стандартной субмодели SimInTech, поэтому он может быть включен и выключен из работы блоком Условие выполнения субмодели.

В качестве примера рассмотрим блок переключения режимов работы двигателя. На верхнем уровне в блок подается логический сигнал A16_enable, который отвечает за включение и выключение блока, смотри Рисунок 1.

Рисунок 1. Блок «Карта состояний конечного автомата»

Внутри конечного автомата вход подключен к стандартному блоку Условие выполнения субмодели (см. Рисунок 2).

Рисунок 2. Блок «Карта состояний…», с выполнением по условию

Данная схема работает следующим образом. В случае когда значение A16_enable = Да, блок работает и осуществляет переключение состояний согласно заданному алгоритму. В случае, когда значение логического сигнала A16_enable = Нет, блок выключается из расчета, его вычисление не выполняется, при этом состояние автомата не изменяется.
Примечание: Использование блока «Условие выполнения субмодели» не изменяет состояние автомата. При включении автомата его состояние будет точно таким же как при выключении.

Сброс состояния автомата в начальное состояние

Если при работе необходимо отключать автомат таким образом, чтобы при включении он находился в начальном состоянии, необходимо вместо выключения автомата явно переводить его в начальное состояние. Пример реализации такого состояния приведен на Рисунок 3:

Рисунок 3. Блок «Карта состояний…» с сбросом в начальное состояние

В этом случае вместо заморозки всего блока по условию, данное условие используется для перехода в состояние «Выключено» из текущего состояния. На рисунке 4 Приведена логика переходя для состояния 2. В случае когда значение логического сигнала A16_enable = Нет, срабатывает переход в состояние выключено (см. Рисунок 4).

Рисунок 4. Логика работы состояние 2 перехода в состояние «Выключено»

В состоянии «выключено» автомат находится все время, пока значение сигнала A16_enable равно Нет. Как только сигнал меняется на Да, осуществляется переход в начальное состояние. Таким образом реализуется выключение автомата с переводом его в начальное состояние при включении (см. Рисунок 5).

Рисунок 5. Логика работы в состоянии «Выключено»