ГОСТ Р МЭК 61131-3—2016
rinstBase1:= REF(instBase);
rinstBase2:= REF(instDerived);
rinstDerivedl ?- rinstBasel;
rinstDerived2 ?- rinstBase2:
//rinstbasel ссылается на базовый класс
//rinstbase2 ссылается на порожденный класс
//rinstDerivedl — NULL
//rinstDerived2 будет содержать действительную
// ссылку на instDerived
interfl:= instbase;
// interfl является ссылкойна базовый класс
interf2:~ instderived;
И interf2 является ссылкой на порожденный класс
rinstDerived3 7- interfl; // rinstDerived3 = NULL
rinstDerived4 ?-interf2; //rinstDerived4 будет содержать действительную
//ссылку на instDerived
END PROGRAM
Результат попытки присваивания подтверждается отличием от значения NULL перед использова
нием.
Таблица 52— Попытка присваивания
НомерОписание
Пример
1
Попыткаприсваивания интерфейсов, используя «?=»
См. выше
2
Попытка присваивания интерфейсов, используя «?=»
См. выше
6.6.7 Объектно-ориентированные свойства функциональных блоков
6.6.7.1 Общие положения
Концепция функциональных блоков МЭК 61131-3 расширенадля поддержки объектно-ориентиро
ванной парадигмы в том объеме, как она определена для классов:
- в функциональных блоках дополнительно используются методы;
- функциональными блоками дополнительно реализуются интерфейсы.
- поддерживается наследование функциональных блоков.
В объектно-ориентированных функциональных блоках поддерживаются все свойства, определен
ные в таблице 40.
Кроме того, разработчик объектно-ориентированных функциональных блоков предоставляет вну
тренне согласованное подмножество свойств объектно-ориентированных функциональных блоков,
определенное в таблице 53.
Таблица 53— Объектно-ориентированный функциональныйблок
НоОписание
мер Ключевое слово
Объяснение
1
Объектно-ориентированный
функциональный блок
Объектно-ориентированное расширение концепции функциональных
блоков
1
аСпецификатор FINAL
Функциональный блок не может использоваться как базовый функцио
нальный блок
Методы и спецификаторы
5METHOD...END_METHOD
Определение метода
5аСпецификатор PUBLIC
Методможетвызываться откуда угодно
5ЬСпецификатор PRIVATE
Метод может вызываться только внутри определяющего программного
компонента
5сСпецификатор INTERNAL
Метод может вызываться изодного и тогоже пространства имен
5dСпецификатор PROTECTED
Метод может вызываться только из определяющего программного ком
понента и егонаследников (неявно)
135