На самом деле - и здесь блок AND работает, как ожидалось.
Это можно определить, выполнив команду Отладка - Переключить режим контроля выполнения.
Тогда станет видно, что на самом деле в момент выполнения данного блока AND poolCirculationPumpsEnable равен FALSE.
И это логично - ведь прямо чуть выше на него заведен выход F_TRIG_0, который как раз равен FALSE.
Вложение 65858
На вашем скриншоте в посте выше вы видите, что poolCirculationPumpsEnable равен TRUE потому, что он равен этому значению в конце рабочего цикла, так как далее в программе ему действительно присваивается TRUE:
Вложение 65859
То есть - фактически каждый цикл задачи в poolCirculationPumpsEnable генерируется единичный импульс.
Но таймеру недостаточно импульса - таймеру нужно, чтобы TRUE на входе IN удерживалось в течение всей его работы.
Вам нужно перестроить логику своей программы с учетом всего вышесказанного.

