ГОСТ Р МЭК 61131-3—2016
Класс — это программный компонент, разработанный для объектно-ориентированного програм
мирования. По существу, класс содержит переменные и методы. Класс должен инстанцироваться до
того, как его методы смогут вызываться и как можно осуществлять доступ к его переменным.
6.6.5.2 Объявление класса
Свойства объявления класса определены в таблице 48:
1) ключевое слово CLASS с последующим идентификатором, указывающим имя определяемого
класса;
2) завершающее ключевое слово END_CLASS:
3) значения переменных, которые объявлены через конструкцию VAR_EXTERNAL. могут изме
няться из класса:
4) Значения констант, которые объявлены через конструкцию VAR_EXTERNAL CONSTANT, не мо
гут изменяться из класса:
5) конструкция VAR„.END_VAR, при необходимости, указывающая имена и типы переменных
класса:
6) переменные могут быть инициализированы:
7) переменные секции VAR (статические) могут быть объявлены как PUBLIC (общие). К общим
переменным можно получатьдоступ извне класса, используя такой же синтаксис, какдля доступа к вы
ходным переменным функционального блока;
8) для внутренних переменных класса могут использоваться квалификаторы RETAIN и NON_
RETAIN;
9) для объявления внутренних переменных класса может использоваться символ «*», как опреде
лено в таблице 16;
10) переменные могут быть общими PUBLIC, индивидуальными PRIVATE, внутренними INTERNAL
или защищенными PROTECTED. По умолчанию используется спецификатор доступа PROTECTED;
11) класс может поддерживать наследование других классов для расширения базового класса;
12) класс может реализовывать один или более интерфейсов:
13) экземпляры других функциональных блоков, классы и блоки объектно-ориентированныхфунк
ций могут быть объявлены в секциях переменных VAR и VAR_EXTERNAL;
14) экземпляр класса, объявленный внутри класса, не обязан использовать то же имя. как функ
ция (той же области видимости) для предотвращения неопределенностей.
Класс имеет следующие различия от функционального блока:
- ключевые слова FUNCTION_BLOCK и END_FUNCTION_BLOCK заменены ключевыми словами
CLASS и END_CLASS. соответственно.
- переменные объявляются только в секции VAR. Не разрешены секции VARJNPUT. VAR_
OUTPUT, VAR_IN_OUT и VAR_TEMP. У класса нет тела:
- класс может определять только методы;
- вызов экземпляра класса невозможен. Могут вызываться только методы класса.
Реализация классов предоставляет по существу согласующееся подмножество свойств, опреде
ленных в таблице 48.
Таблица 48 — Класс
Н омер
О писание
Клю чсоое слово
О бъяснение
1
CLASS ... END_CLASS
Определение класса
1а
СпецификаторFINAL
Класс не может использоваться в базовом классе
Основанные на функциональном блоке
2а
Определение переменных
VAR ... END_VAR
VAR В: REAL; ENDVAR
2Ь
Инициализация переменных
VAR В: REAL:= 12.1: END_VAR
За
Квалификатор RETAIN для внутренних пе
ременных
VAR RETAIN X: REAL; END_VAR
112