ГОСТ Р МЭК 61131-3—2016
1 Если тип рестарта — «теплый рестарт», как определено в МЭК 61131-1, то начальные значения
всех переменных в секции переменных с квалификатором RETAIN будут сохраненными значениями.
Данные значения — значения переменных в момент остановки ресурса или конфигурации.
2 Если тип рестарта — «теплый рестарт», то начальные значения всех переменных в секции пере
менных с квалификатором NON_RETAIN инициализируются.
3 Если тип рестарта — «теплый рестарт», и квалификаторы RETAJN и NON_RETAIN не отсутству
ют, то начальные значения определяются разработчиком.
4 Если тип рестарта — «холодный рестарт», начальные значения переменных в секции VAR с
квалификаторами RETAIN и NON_RETAIN инициализируются, как описано ниже.
6.5.6.2 Инициализация
Переменные инициализируются, используя определенные пользователем значения, специфиче
ские для переменной.
Если никакого значения для инициализации переменной явно не определено, используется опре
деленное пользователем начальное значение, специфическоедля переменной. Если ничего не опреде
лено, используется специфическое для типа неявное начальное значение, определенное в таблице 10.
Затем применяются следующие правила:
- переменные, которые представляют входы системы программируемого контроллера, как опре
делено в МЭК 61131-1, инициализируются специфическим для разработчика способом;
- квалификаторы RETAIN и NON_RETAIN могут использоваться для переменных, объявленных
в статических секциях VAR, VAR JNPUT. VAR_OUTPUT и VAR_GLOBAL, но не в секции VAR_IN_OUT:
- разрешено использование квалификаторов RETAIN и NON_RETAIN в объявлениях экземпляров
функционального блока, класса и программы. Поэтому, все переменные образца обрабатываются как
RETAIN или NON_RETAIN. за исключением следующего:
- переменная явно объявлена, как RETAIN или NON_RETAIN в объявлении функционального
блока, класса или типа программы;
- переменная является типом функционального блока или классом. В этом случае применяется
декларация сохранения используемого типа функционального блока или класса.
Разрешено использование квалификаторов RETAIN и NON_RETAIN для экземпляров типов струк
турированных данных. Поэтому, все элементы структуры, а также все элементы вложенных структур
обрабатываются как RETAIN или NON_RETAIN.
Пример —
VARRETAIN
AT %QW5: WORD:= 16UFF00;
OUTARYAT %QW6:ARRAY[0..9JOFINT:=[10(1)];
BITS: ARRAY[0..7] OFBOOL:= [1,1,0,0,0,1,0,0];
END_VAR
VARNONRETAIN
BITS: ARRAY[0..7] OF BOOL;
VALVE_POSAT%QW28: INT:= 100;
END_VAR
6.6 Программные компоненты (POU)
6.6.1 Общие свойства программных компонентов
6.6.1.1 Общие положения
Программными компонентами (POU), установленными в настоящем стандарте, являются функ
ция. функциональный блок, класс и программа. Функциональные блоки и классы могут содержать ме
тоды.
Для достижения модуляризации и структурирования программные компоненты состоят из четко
сформулированных частей программы. Программные компоненты имеют определенный интерфейс с
входами и выходами и может вызываться и выполняться много раз.
Примечание — Упомянутый выше параметрический интерфейс не совпадает с интерфейсом, опреде
ленным в рамкахобъектно-ориентированного подхода.
44