ГОСТ Р МЭК 61131-3—2016
Пример — Класс реализует интерфейс.
И Объявление
END_METHOD
И Вызывается в дневное время
END_METHOD
И Вызывается в ночное время
INTERFACEROOM
METHOD DATTIME
METHODNIGHTTIME
ENDJNTERFACE
CLASS LIGHTROOMIMPLEMENTSROOM
VAR LIGHT: BOOL: END_VAR
METHODPUBLICDAYTIME
LIGHT:* FALSE:
END_METHOD
METHOD PUBLICNIGHTTIME
LIGHT- TRUE;
END_METHOD
END_CLASS
IIИспользование (посредством внешнего вызова метода)
PROGRAMА
VARMyRoom: LIGHTROOM; END_VAR;/I Инстанцирование класса
VAR_EXTERNALActual_TOD: TOD; END_VAR:// определение глобального времени
IF Actual_TOD >= TODU20:15 ORActual_TOD <= TOD»6:00
THENMyRoom.NIGHTTIMEQ;
ELSE MyRoom.DAYTIMEf);
ENDJF;
END_PROGRAM
6.6.6.5 Использование интерфейса как типа переменной
6.6.6.5.1 Общие положения
Интерфейс может использоваться как тип переменной. Затем данная переменная становится ука
зателем на экземпляр класса, реализующего интерфейс. Переменной должна быть назначена ссылка на
экземпляр класса до того, как она может использоваться. Данное правило применяется во всех слу чаях,
где может использоваться переменная.
Переменной типа INTERFACE могут быть назначены следующие значения.
1
) экземпляр класса, реализующего интерфейс;
2) экземпляр класса, порожденного (посредством EXTENDS) из класса, реализующего интерфейс;
3) другая переменная того же порожденного типа INTERFACE;
4) специальное значение NULL, указывающее на недопустимую ссылку. Данное значение также
является начальным переменной, если она не инициализирована иным образом.
Переменная типа INTERFACE может сравниваться на равенство с другой переменной того же
типа. Результат имеет значение TRUE, если переменные ссылаются на один и тот же экземпляр или
если значения обоих переменных равны NULL.
6.6.6.5.2 Ошибка
Значение переменной типа интерфейс должно быть присвоено до ее использования, и должна
быть проведена проверка, что оно указывает на действительный экземпляр класса. В противном слу
чае возникает ошибка времени выполнения.
Примечание — Для предотвращения ошибки времени выполнения, инструментальные программные
средствадолжны предоставитьнеявный«пустой» метод.Другойспособсостоитв предварительной проверкетого,
чтоназначендействительный экземпляр класса.
1 29