Всем доброго дня!

Есть следующее описание выходных переменных некоего FB под названием ANALOGIN :

Код:
VAR_OUTPUT
	Valueout		:	AIValueOut;
        testval              :      WORD := 111;
END_VAR
где,
AIValueOut является структурой:
Код:
TYPE AIValueOut :
STRUCT
	code		:	WORD;
	qvalue	:	BOOL;
END_STRUCT
END_TYPE
Пытаюсь считать данные в теле основной программы, где я объявлял экземпляр этого FB ANALOGIN:
Код:
val := ANALOGIN.Valueout.code,
получаю 0, чтобы я ни присвоил в:
Код:
Valueout.code := XXX внутри FB ANALOGIN;
При этом, если я считываю переменную testval, то получаю 111.
И, если я присваиюваю code := 1, то при считывании:

Код:
val := ANALOGIN.Valueout.code,
получаю 1

Очевидно, что я не могу присвоить Valueout.code внутри FB ANALOGIN никакое значение. Почему так? Как это правильно сделать?