Ответ: Ротация
Позволю себе немного критики.
1. Лишние обратные переключения при сбросе аварии.
Вот включился "Уровень 1" - запустился Насос 1.
Во время работы по какой-то причине пришел аварийный сигнал "Авария 1" - Насос 1 отключился, включился Насос 2.
Пришел дежурный, аварию сбросил. По хорошему Насос 2 должен продолжить работу, а Насос 1 - ждать своей очереди. В обратном переключении нет смысла.
Но ваш макрос обратно переключает на Насос 1.
2. Неравномерная ротация при аварии одного насоса.
Если один из насосов находится в аварии, счетчик ротации не пропускает его номер, а дважды включает следующий за ним насос.
Например:
- Авария Насоса 1;
- Включаем Уровень 1 - Запускается Насос 2 (т.к. счетчик ротации указывает на Насос 1, но тот в аварии);
- Выключаем Уровень 1 - насосы останавливаются;
- Включаем Уровень 1 - Повторно запускается Насос 2 (т.к. счетчик указывает на Насос 2);
следующим будет Насос 3, затем два раза Насос 2 и т.д.
Считаю, что если какой-либо насос находится в аварии, то остальные два должны ротироваться между собой также равномерно: Насос 2 - Насос 3 - Насос 2 - Насос 3 - ...
3. Включение насосов в ручном режиме.
Данный вопрос дискуссионный. Однако, я считаю, что при ручном запуске какого-либо насоса, автоматический запуск должен отключаться.
4. Ротация по наработке часов, количеству запусков.
Ну, собственно, её нет. Ротация по порядку не обеспечивает равномерной работы насосов. А исходя из пункта 2, может возникнуть дисбаланс в наработке между насосами.
5. Оформление макроса
Название связей "Out (bool)2", "out2", "out_2" и в таком духе не способствует эффективному исследованию устройства макроса.
|