ГОСТ Р МЭК 61131-3—2016
Топ1: Standard.Timers.TON;
(‘ запускает таймер передним фронтом, сбрасывает таймер задним фронтом‘)
Топ2: PUBUC.TON; (’ использует стандартный таймер ‘)
bTest: BOOL;
END_VAR
Ton1(ln:= bTest. PT:- t»5s);
END_FUNCTION_BLOCK
6.9.4 Директива USING пространства имен
Директива USING может задаваться вслед за именем пространства имен, программным компо
нентом. именем и объявлением результата функции или метода. Если директива USING используется
внутри функционального блока, класса или структуры, она следует непосредственно за именем типа.
Если директива USING используется внутри функции или метода, она непосредственно следует
за объявлением типа результата функции или метода.
Директива USING начинается с ключевого слова USING, за которым следует одно или несколько
полностью уточненных имен пространств имен, как показано в таблице 64. свойство 2. Это разрешает
использование элементов языка, содержащихся в заданных пространствах имен, непосредственно в
окружающем пространстве имен соответствующего программного компонента. Окружающее простран
ство имен также может являться глобальным пространством имен.
В пределах объявления членов в пространстве имен, которое содержит директиву пространства
имен USING, на типы, содержащиеся в заданном пространстве имен, можно ссылаться прямо. В приве
денном ниже примере в пределах объявления членов пространства имен Infeed, члены типа
Standard. Timers прямо доступны, и. поэтому, функциональный блок Uses_Timer может объявлять
переменную экземпляра функционального блока TON без квалификации.
В примерах 1 и 2 ниже показано использование директивы пространства имен USING.
Пример 1 —Директива пространства имен USING
NAMESPACECounters
FUNCTION_BLOCK CUP
II... объявление и операции
END_FUNCTION_BLOCK
END_NAMESPACE(‘Standard. Counters ‘)
NAMESPACEStandard.Timers
FUNCTION BLOCK TON
И... объявление и операции
END_FUNCTION_BLOCK
END_NAMESPACE(‘Standard.Timers‘)
NAMESPACEInfeed
FUNCTION_BLOCK Uses_Std
USING Standard.Timers;
VAR
Toni: TON;
(’ запускает таймер с передним фронтом, сбрасывает таймер с задним фронтом‘)
Cnt1: Counters.CUP;
bTest: BOOL:
END_VAR
Ton1(ln:= bTest. PT:= tH5s);
END_FUNCT!ON_BLOCK
END_NAMESPACE
187