Можно было проще, вернее без суммирования. Я например для механизма с 32мя возможными авариями делаю так:
AlarmSum:=false
Далее в цикле:
If alarm(i) then alarmSum:=true
Условие "иначе" не ставлю, просто взвел бит и все.
И в итоге ваш код почти такой же, но не суммирую и не проверяю что больше нуля.