ГОСТ Р МЭК 61131-3—2016
целым литералом без знака в диапазоне от 0 до 7. В относительном адресе не допускаются пробель
ные символы.
Компоненты структуры не должны перекрываться в расположении памяти, за исключением ситу
ации. когда в объявлении имеется ключевое слово OVERLAP.
Перекрытие строк находится вне области применения настоящего стандарта.
Примечание — Отсчет битового смещения начинается отсамогоправогобита с 0. Отсчет битовогосме
щенияначинается от началаструктуры с 0.
Пример — Относительные адреса и перекрытие в структуре
TYPE
Com1_data: STRUCT
headAT %B0:INT;Ив положении 0
length AT %B2:USINT=26;//в положении 2
flaglAT%X3.0:
BOOL;He положении 3.0
end
AT VoB25:
END_STRUCT;
BYTE;//в положении 25, оставляя разрыв
Com2_data: STRUCTOVERLAP
head
AT VoBO:
INT;// в положении 0
length AT %B2:
USINT; // в положении 2
flag2AT
VoX3.3:
BOOL; //в положении 3.3
datal AT %B5:
data2 AT %B5:
endAT %B19:
BYTE; // в положении 5, перекрывается
REAL; Ив положении от 5 до 8
BYTE; Uпо адресу 19, оставляя разрыв
END_STRUCT;
Com_data: STRUCTOVERLAP// С1 и C2перекрываются
C1 at
VoBO:
Com1_data:
C2at VoBO: Com2_data:
ENOBSTRUCT;
END_TYPE
6.4.4.7.2 Инициализация
Структуры с перекрытием не могут явно инициализироваться.
6.4.4.8Прямо представленные компоненты структуры — частично определенные с использова
нием «*»
Символ звездочки «*» в таблице 11 может использоваться, чтобы обозначить еще не полностью
определенные адреса для прямо представленных компонентов структуры.
Пример — Присваивание компонентов структуры еще не локализованным входным и выходным
переменным.
TYPE
HW_COMP: STRUCT:
INAT %T: BOOL;
VALAT %/*; DWORD:
OUTAT %Q’: BOOL; OUT_VARAT %Q’: WORD:
ITNL_VAR: REAL;//еще нелокализован END_STRUCT;
ENDJTYPE
В случае, когда прямо представленный компонент структуры используется для назначения распо
ложения в части объявлений программы, типа функционального блока или класса, на месте префикса
размера и целого со знаком может использоваться звездочка «*» для указания того, что прямое пред
ставление еще не полностью определено.
30