ГОСТ Р МЭК 61131-3—2016
6.6.6.5.3 Пример
В примерах 1 и 2 показаны объявление и использование интерфейсов как типа переменной.
Пример 1 — Тип функционального блока с вызовом методов интерфейса
// Объявление
INTERFACEROOM
И вызывается в дневное время
И вызывается в ночное время
METHOD DAYTIMEEND_METHOD
METHOD NIGHTTIMEEND_METHOD
ENDJNTERFACE
CLASS LIGHTROOMIMPLEMENTSROOM
VARLIGHT: BOOL: END_VAR
METHOD PUBLICDAYTIME
LIGHT- FALSE;
END_METHOD
METHOD PUBLICNIGHTTIME
LIGHT— TRUE;
END_METHOD
END_CLASS
FUNCTlON_BLOCK ROOM_CTRL
VARJNPUT RM: ROOM; END_VAR// Интерфейс ROOMкак тип (входной) переменной
VARJEXTERNAL
Actual_TOD: TOD; ENDJ/AR
И Определение глобального времени
//Важно: тест на действительную ссылку!
IF (RM =NULL)
THENRETURN;
ENDJF;
IF Actual_TOD >= TOD#20:15OR
Actual_TOD <= TOD#06:00
THENRM.NIGHTTIMEQ;И Вызов метода RMELSE RM.
DAYTIMEQ;
ENDJF;
END^FUNCTION_BLOCK
И Использование
PROGRAMВ
VAR
My_Room:
My_Room_Ctrl
ENDVAR
И Инстанцирование
UGHTROOM;
UC
m
. LIGHTROOMIMPLEMENTSROOM
ROOM_CTRL;
//C
m
. ROOM_CTRL выше
My_Room_Ctrl(RM:= My_Room);
И Вызов FB с передачей экземпляра класса в качестве
входной переменной
END_PROGRAM
130