У вас ошибка в алгоритме: если наступит авария, то перестанут запускаться-останавливаться насосы. Даже рабочие.
Вот пример такого состояния (я его сделал через force write для переменных "pump ok", "pump disabled"):
pump_control_fail.png
Видно, что "isRunning=FALSE" для всех насосов, есть 2 нормальных (3ий и 4ый), но система думает, что "TOO_FEW_PUMPS".
Перерисовал алгоритм (с сохранением этой же ошибки).
На перерисованной картинке эта проблема более заметна: заход в "запуск-останов" происходит только в безошибочном состоянии.
PumpControl.png