Цитата Сообщение от Вова13 Посмотреть сообщение
Добрый день,прошу "подкинуть идею" .Есть четыре насоса,ротация по времени (один в работе остальные "ждут") ,а так же возможность выводить из каскада насосы ,которые в ремонте или аварии.
С переключением по времени проблем как бы не возникло а вот с выводом ремонтных насосов из каскада ,вот ту споткнулся.
Вопрос:как организовать алгоритм когда аварийном насосу присваивается число "3",второму аварийному число "2" те которые остались в каскаде "0" и "1"
Вот для примера картинки.
1.jpg на первом рисунке аварийных и ремонтных насосов нет,выходы = 0,1,2,3
2.jpg на втором рисунке аварийный насос №1 ему присваивается число 3
3.jpg на третьем рисунке аварийных насосов два(№1 и №2)им присваивается число 2 и 3 соответственно
4.jpg на это рисунке аварийный насос №2 и ему присваивается "3"


Вот в общем что нужно соорудить,а знаний не хватает
Добрый день.
Я вижу, что не один из предложенных алгоритмов Вас не устроил.
Распишите пожалуйста как можно более подробно словами задачу, которую Вы решаете.

Если я не прав, поправьте пожалуйста. Я вижу задачу так:
Есть блок управления N насосами.

Входные параметры блока:
  1. Разрешить работу;
  2. Время ротации;
  3. Запретить запуск насоса 1;
  4. Запретить запуск насоса 2;
  5. ...
  6. Запретить запуск насоса N;


Выходные параметры:
  1. Ошибка - нет исправных насосов;
  2. Состояние насоса 1;
  3. Состояние насоса 2;
  4. ...
  5. Состояние насоса N;


В начальный момент времени все насосы остановлены и работа блока запрещена.

1) Разрешили работу блока;
1.1) Включился первый из списка насос, у которого не запрещена работа;
1.2) Если истекло время ротации или работу текущего насоса запретили
1.2.1) отключить текущий насос;
1.2.2) включить следующий насос из списка у которого разрешена работа;
1.3) Если в списке нет исправных насосов - включить выход "Ошибка".

2) Запретили работу блока
2.1) Отключить текущий насос.

3) Опять разрешили работу блока
аналогично 1.1 - 1.3

Если я правильно понял, то Валенок предлагает Вам п.1. переделать таким образом:
1.1) Включить насос с минимальной наработкой и незапрещенной работой;
1.2) Если истекло время ротации или работу текущего насоса запретили:
1.2.1) отключить текущий насос;
1.2.2) включить насос с минимальной наработкой и незапрещенной работой;
1.3) Если в списке нет исправных насосов - включить выход "Ошибка".
Такой алгоритм используется чаще и позволяет избежать ситуации когда у "первого" насоса ресурс уже выработан, а 2-N насосы еще новые.

Уточните, пожалуйста, какой из вариантов Вам подходит (или опишите свой).
Постараемся помочь.