Показать сообщение отдельно
Старый 14.04.2020, 13:49   #1
alekseydav
Новичок
 
Регистрация: Apr 2020
Сообщения: 2
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
По умолчанию Ротация насосов

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

Задача такая: Реализовать ротацию 3 насосов, причем может работать как один насос, так и все три сразу в зависимости от количества потребителей. При возникновении аварии одного насоса автоматически переключаемся на другой насос. Если получается такая ситуация, что необходимо включить 2 насоса из 3-х, но работоспособен только один, то выдаем дискретный сигнал об аварии или в любой другой ситуации, когда необходимое количество насосов включить невозможно. В этом случае насосы, которые возможно включить работают. Для ротации на вход макроса подается сигнал смещения, благодаря которому обеспечивается ротация. Фактически это порядковый номер базового насоса, с которого происходит включение.

Входы и выходы макроса вижу так:

Входы:
Пуск(Int) - необходимое кол-во насосов, которое необходимо включить
Смещение(Int) - адрес базового насоса для ротации. На вход будет подаваться сигнал с блока GetDays(abs) -> MOD%3. Каждый день базовый адрес насоса будет циклически меняться 0 -> 1 -> 2 -> 0 -> 1 и т.д.
Авария 1(Bool) - авария 1 насоса
Авария 2(Bool) - авария 2 насоса
Авария 3(Bool) - авария 3 насоса

Выходы:
Пуск 1(bool) - пуск 1 насоса
Пуск 2(bool) - пуск 2 насоса
Пуск 3(bool) - пуск 3 насоса
Авария(bool) - авария насосной группы

Заранее благодарен за помощь)
alekseydav вне форума   Ответить с цитированием