Т.к. мы с capzap отвечаем практически одинаково, на всякий случай добавлю -
На неработающем блоке ненулевой выход. Мне это представляется немного странным.
1.Выходы на ФБ выставляет сам ФБ, и если он (код) не работает (EN = false), то кто будет их обнулять ?
2.EN относиться к полному действию : передать входы, вызвать код, забрать выходы и присвоить - т.е. пока EN=false переменным на которые падают выходы можно присваивать что угодно при любом состоянии этих выходов. Но если эти выходы падают на кодосодержащие объкты (поу, операторы) - то ими принимается текущее состояние этих выходов

Эквивалент этого на ST :

ФБ1.ENO:=ФБ1.EN; (*это делает система*)
if ФБ1.EN then
ФБ1( IN := ...., OUT =>X); (*X при ФБ1.EN=false кладет на ФБ1.OUT*)
end_if

ФБ2( IN:=ФБ1.OUT ); (*ФБ2 кладет на ФБ1.EN*)