У вас в первом же условии проверка, после которой может ничего не выполняться.
Сигналы bValveOpenIN и bValveCloseIN присутствуют? Иначе просто переключится на ручной режим и всё.Код:IF bValveOpenIN AND bValveCloseIN THEN
bPermit := TRUE;
END_IF
Вам на другом форуме дали несколько советов.
В первую очередь формализуйте для себя словами, как должна работать задвижка. Т.е. составить ТЗ.
Представьте, что ваш алгоритм это чёрный ящик. Посмотрите, какие сигналы есть на входе, что есть на выходе. Опишите, что должно быть на выходе, если на входе то и это.
Составьте таблицу истинности в конце концов. Потом пишите код и проверяйте по таблице, всё ли у вас совпадает и все ли возможные комбинации проверены.
