У меня всего одна программа, подпограмм я не делал, поэтому под словом блок я имею в виду переменную класса VAR типа CTUD Функциональный блок ‘инкрементный / декрементный счетчик’ в составе программы, именно эту переменную я объявил retain. Под словом блок я не имел ввиду новый POU. Мы друг друга правильно понимаем?
Я объявлял выход CTUD как retain класса VAR и var global и ничего не полуалось. Не пробовал как var output.