ГОСТ Р МЭК 61131-3—2016
Использование этого свойства требует, чтобы положение структурированной переменной, объ
явленной таким образом, было полностью определено внутри конструкции VAR_CONFIG...END_VAR
конфигурации для каждого экземпляра охватывающего типа.
Переменные такого типа немогут использоваться всекциях VARJNPUT. VAR_!N_OUT и VAR_TEMP.
Ошибка возникает, если отсутствует какая-либо полная спецификация в конструкции VAR_
CONFIG...END_VAR для какой-либо неполной спецификации адреса, выраженной символом «*» в лю
бом экземпляре программы или функционального блока, который содержит такие неполные специфи
кации.
6.4.4.9 Прямо порожденный тип данных
6.4.4.9.1 Общие положения
Определенные пользователем типы данных могут быть прямо порождены из элементарного типа
данных или определенного пользователем типа данных.
Это может быть использовано для определения специфических для типа начальных значений.
Пример — Прямо порожденный тип данных
TYPE
mylnt1123: INT:= 123;
myNewArrayType: ANALOG_16_INPUT_DATA :=[8(-1023), 8(1023)];
Com3_data: Com2_data:= (head.—3. length—40);
END_TYPE
R1: REAL- 1.0;
R2: R1;
6 4.4.9.2 Инициализация
Неявное начальное значение равно начальному значению типа данных, из которого порожден но
вый тип. Пользователь может инициализировать тип данных определенным пользователем значением.
Такая инициализация имеет приоритет.
Определенное пользователем начальное значение элементов структуры может быть объявлено в
перечне, заключенном в скобки и следующим за идентификатором типа данных. Элементы, начальное
значение которых не перечислено в перечне инициализации, имеют неявные начальные значения, объ
явленные для них в объявлении оригинального типа данных.
Пример 1— Использование определенных пользователем типов данных
С учетом объявлений ANALOG_16_INPUT_DATA в таблице 11 и объявления VAR INS: ANALOG_16_
INPUT_DATA; END_VARпеременные от INS(1]до INS[16]могут использоваться везде, где могут исполь
зоваться переменные типа INT.
Пример 2
Аналогично, с учетом объявления Com_data в таблице 11 и. дополнительно, объявления VAR
telegram: Com_data; END_VAR переменная telegram.length может использоваться везде, где может ис
пользоваться тип USINT.
Пример 3
Это правило может применяться рекурсивно:
С учетом объявления ANALOG_16_ INPUT_CONFIGURATION. ANALOG_CHANNEL_CONFIGURATION и
ANALOG_DATA в таблице 11 и объявления VAR CONF: ANALOG_16_INPUT_CONFIGURATION; END_VAR пе
ременная CONF.CHANNEL[2].MIN_SCALE может использоваться везде, где может использоваться тип
INT.
6.4.4.10 Указатели
6.4.4.10.1 Объявление указателя
Указатель — это переменная, которая содержит только ссылку на переменную или на экземпляр
функционального блока. Указатель может иметь значение NULL, то есть он не ссылается ни на что.
Указатели объявляются для определенных типов данных, используя ключевое слово REF_TO и
ссылочный тип данных — тип данных, на который производится ссылка. Ссылочный тип данных уже
должен быть определен. Им может являться элементарный тип данных или определенный пользова
телем тип данных.
Примечание — Указатели безпривязки к типуданных выходят за пределы настоящего стандарта.
31