У вас в первом же условии проверка, после которой может ничего не выполняться.
Код:
IF bValveOpenIN AND bValveCloseIN THEN
  bPermit := TRUE;
END_IF
Сигналы bValveOpenIN и bValveCloseIN присутствуют? Иначе просто переключится на ручной режим и всё.

Вам на другом форуме дали несколько советов.
В первую очередь формализуйте для себя словами, как должна работать задвижка. Т.е. составить ТЗ.
Представьте, что ваш алгоритм это чёрный ящик. Посмотрите, какие сигналы есть на входе, что есть на выходе. Опишите, что должно быть на выходе, если на входе то и это.
Составьте таблицу истинности в конце концов. Потом пишите код и проверяйте по таблице, всё ли у вас совпадает и все ли возможные комбинации проверены.