crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

> Инициализация конечного автомата после сбоя, теория и практика
Litkevich Yuriy
  опции профиля:
сообщение 27.10.2015, 12:47
Сообщение #1


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


оговорка: использую Qt и её QStateMachine, но интересует и абстрактная система.

Дано:
- Имеется оборудование с насосами,
- имеется средство двусторонней связи оборудования с компьютером и
- ПО управляющее этим оборудованием.
Программно реализован конечный автомат управления насосами.

Бывают ситуации, когда нужно инициализировать конечный автомат в зависимости от фактического текущего состояния оборудования, например, после аварийного завершения ПО.
Т.е. ПО стартует и должно определить в каком состоянии должен находится автомат, на основе сигналов с оборудования.

Для простоты предположим, что комбинация сигналов однозначно определяет текущее состояние автомата.

В практике программирования автоматов обычно из одного состояния в другое можно перейти только по событию, в частности в QStateMachine реализовано так же.


Проблема:
Т.к. физическая система находится в неком стабильном состоянии, то и событий в ней не происходит.
Как заставить автомат перейти в некое состояние минуя, возможно, многие другие?

Есть ли у кого-нибудь опыт/идеи как это сделать?

Сообщение отредактировал Litkevich Yuriy - 27.10.2015, 12:47
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов
Iron Bug
  опции профиля:
сообщение 31.10.2015, 13:18
Сообщение #2


Профессионал
*****

Группа: Модератор
Сообщений: 1611
Регистрация: 6.2.2009
Из: Yekaterinburg
Пользователь №: 533

Спасибо сказали: 219 раз(а)




Репутация:   12  


я работала конечными автоматами в промышленной автоматизации. обычно система сначала приводится в некое начальное состояние, а потом она переходит из одного состояния в другое, а программа их отслеживает и управляет автоматикой. мы для таких вещей сами писали код на плюсах, он несложный.
очевидно, в случае с QStateMachine это проблемы реализации. видимо, код писали теоретики, которые никогда не работали с железом. в нормальной реализации автомат всегда можно привести в любое его состояние, потому что в реальной жизни в системах случаются сбои и периодически приходится запускать управление из произвольного состояния оборудования. может, тебе лучше поискать другую реализацию или вообще самому написать то, что тебе нужно.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме


Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 24.4.2024, 2:48