ГОСТ Р МЭК 61131-3—2016
В данном примере класс CIRCLE содержит внутренний вызов своего метода PI с низкой точно
стью для вычисления длины окружности (CF).
Порожденный класс CIRCLE2 переопределяет этот метод более точным определением PI.
Вызов метода Pl() ссылается либо на CIRCLE.PI, либо на CIRCLE2.PI. в соответствии с типом
экземпляра, в котором выполнялся вызов метода CF. Здесь значение CUMF2 точнее значения CUMF1.
Пример 2— Графическая иллюстрация приведенного выше текстового примера (упрощенная)
Объявление
ССIR1)
CLASS CIRCLE
METHOD PUBLIC PI
И3 ^ 4 1 5 ,-
\
METHOD PUBLIC* СГ
V7iR INPUT Diameter
CF- : - THIS.PI () *D laneter;
Г
РАСШИРЯЕТ
(CIR2I
CLASS CIRCLE2 EXTENDS CIRCLE
METHOD Р ф Ы С OVERRIDE PI
\
PI 3.1445926535897;
\ ♦ --------"
METHOD P0BLI
c
\
f
/ / in h e r it e d
VAR INPUT Diameter
CF := TH IS.PIO ‘ Diam eter;
PROGRAM TEST
VAR
CIR1:CIRCLE;
CIR2:CIRCLE2;
CUMF1C IR l. СГ( 1 .0 ) ;
/ / COMF1 - 3.1415
C0MF2CIR2. CF( 1 .0 ) ;
/ / CUMF2 - 3.1415926535897
6.6.5.7 Вызов метода собственного или базового класса (THIS. SUPER)
6.6.5.7.1 Общие положения
Для доступа к методу, определенному внутри или вне собственного класса, используются ключе
вые слова THIS и SUPER.
6.6.5.7.2 THIS
THIS обеспечивает ссылку на экземпляр собственного класса.
С ключевым словом THIS метод экземпляра собственного класса может быть вызван любым дру
гим методом экземпляра этого класса.
THIS может быть передан переменной типа INTERFACE.
Ключевое слово THIS не может использоваться с другим экземпляром, например, выражение
mylnstance. THIS не разрешено.
Пример — Использование ключевого слова THIS
Для удобства данные примеры копируются из приведенных выше примеров.
INTERFACEROOM
METHOD DAYTIMEEND_METHOD//Вызывается в дневное время METHOD NIGHTTIMEEND_METHOD
//Вызывается в ночное время
И
// Интерфейс ROOMкактипа входной переменной
ENDJNTERFACE
FUNCTION_BLOCKROOMjCTRL
VARJNPUT
RM: ROOM;
END_VAR
122