Все верно. Потому что структуры нужно объявлять в особом месте, читаем справку Codesys :
PHP код:
Структуры
Структуры создаются на вкладке Типы данных Организатора Объектов. Объявление должно начинаться с ключевых слов TYPE и STRUCT и заканчиваться строками END_STRUCT и END_TYPE.
Синтаксис:
TYPE <Имя _структуры>:
STRUCT
<Объявление переменной 1>
.
.
<Объявление переменной n>
END_STRUCT
END_TYPE
<Имя _структуры> образует новый тип данных, который может быть использован в любой части проекта наряду с базовыми типами.
Вложенные структуры допускаются. Единственное ограничение заключается в запрете размещения элементов структуры по прямым адресам (AT объявления недопустимы!).
Пример объявления структуры по имени Polygonline:
TYPE Polygonline:
STRUCT
Start:ARRAY [1..2] OF INT;
Point1:ARRAY [1..2] OF INT;
Point2:ARRAY [1..2] OF INT;
Point3:ARRAY [1..2] OF INT;
Point4:ARRAY [1..2] OF INT;
End:ARRAY [1..2] OF INT;
END_STRUCT
END_TYPE
Пример инициализации структуры:
Poly_1:polygonline := ( Start:=3,3, Point1 =5,2, Point2:=7,3, Point3:=8,5, Point4:=5,7, End := 3,5);
Для доступа к элементам структуры используется следующий синтаксис:
<Имя_структуры>.<Имя_компонента>
Например, структура "Week" содержит компонент "Monday", обращение к которому будет выглядеть так:
Week.Monday