Библиотека "Конечные автоматы" предназначена для разработки алгоритмов работы конечных
автоматов и условий перехода в другие состояния. Любой конечный автомат, созданный с помощью
данной библиотеки, возможно исключить из расчета следующими способами:
С сохранением последнего активного состояния автомата.
Со сбросом в начальное состояние автомата.
Блок "Карта состояний", в котором задается алгоритм работы конечного автомата, создан
с помощью субмодели SimInTech. Поэтому для управления его запуском на расчет возможно
использовать блок "Условие выполнения субмодели". В этом случае при исключении автомата
из расчета будет сохранено его последнее активное состояние и промежуточные результаты работы
алгоритма.
Если требуется исключить конечный автомат из расчета таким образом, чтобы при следующем
включении он находился в заданном начальном состоянии, то необходимо явно переводить его в это
состояние.
Пример исключения конечного автомата из расчета
Для демонстрации возможности исключения конечного автомата из расчетов предназначен
демонстрационный пример "Работа с состояниями конечного автомата.prt" (Рисунок 1).
Рис. 1. Демонстрационный пример "Работа с состояниями конечного автомата"Блок "Меандр" формирует логический сигнал для управления запуском на расчет
конечного автомата. Управляющий сигнал записывается в переменную sf_enable. Условие
запуска на расчет конечного автомата:
Если управляющий сигнал "sf_enable" равен "0", то конечный автомат
исключается из расчета.
Если управляющий сигнал "sf_enable" равен "1", то конечный автомат
включается в расчет.
Блоки "В память" и "Из памяти" предназначены для хранения данных об
управляющем сигнале и результатах работы алгоритма конечного автомата.
Блок "Карта состояний" с подписью "Обычный конечный автомат" (Рисунок 2)
содержит граф перехода конечного автомата с тремя состояниями. Предназначен для демонстрации
работы автомата без исключения из расчета. Для задания условий перехода между состояниями
используется блок "Выдержка состояния". Результатом работы алгоритма конечного
автомата является вывод с помощью блока "Выход данных состояния" номера активного
состояния, заданного блоком "Константа".
Рис. 2. Блок "Карта состояний" с подписью "Обычный конечный автомат"
Сохранение последнего активного состояния
Блок "Карта состояний" с подписью "Конечный автомат с сохранением состояния"
(Рисунок 3)
содержит блок "Условие выполнения субмодели" и граф перехода конечного автомата с
тремя состояниями. Предназначен для демонстрации работы автомата при исключении его из
расчета с сохранением последнего активного состояния. Для задания условий перехода между
состояниями используется блок "Выдержка состояния". Результатом работы алгоритма
конечного автомата является вывод с помощью блока "Селектор данных состояния" номера
активного состояния, заданного блоком "Константа".
Блок "Условие выполнения субмодели" предназначен для управления запуском на
расчет данного конечного автомата. Если управляющий сигнал "sf_enable" равен
"0", то конечный автомат исключается из расчетов, алгоритм его работы не
выполняется, а состояние не изменяется. При повторном включении автомата, если управляющий
сигнал "sf_enable" равен "1", конечный автомат продолжит работу с момента
остановки.
Рис. 3. Блок "Карта состояний" с "Конечный автомат с сохранением состояния"
Сброс в начальное состояние
Блок "Карта состояний" с подписью "Конечный автомат со сбросом состояния"
(Рисунок 4)
содержит граф перехода конечного автомата с четырьмя состояниями: тремя рабочими — "State
1", "State 2" и "State 3", и одним "Выключено" — "State
4". Предназначен для демонстрации работы автомата при исключении его из расчета со
сбросом в начальное состояние. Для задания условий перехода между рабочими состояниями
используется блок "Выдержка состояния". Результатом работы алгоритма конечного
автомата для рабочих состояний является вывод с помощью блока "Селектор данных
состояния" номера активного состояния, заданного блоком "Константа".
Рис. 4. Блок "Карта состояний" с подписью "Конечный автомат со сбросом состояния"
Если управляющий сигнал "sf_enable" равен "0", то конечный автомат
исключается из расчетов путем перехода в состояние "Выключено" ("State 4")
из любого рабочего состояния. Алгоритм работы состояния "State 2" приведен на
рисунке (Рисунок
5).
Рис. 5. Алгоритм состояния "State 2"
В состоянии "Выключено" автомат находится все время, пока значение управляющего
сигнала "sf_enable" равно "0". При повторном включении автомата, если
управляющий сигнал "sf_enable" равен "1", конечный автомат перейдет из
выключенного состояния в "Начальное состояние". Алгоритм работы состояния "State
4" приведен на рисунке (Рисунок 6).