Я хочу использовать глобальный метод для устранения дребезга цифровых входов, передав IO и желаемое время устранения дребезга методу и используя возвращаемое значение для установки Bool-Variable. Сам метод работает, но мне нужно создать функциональный блок для каждого входа. Я хотел бы дополнительно оптимизировать, устранив необходимость создания экземпляра.
Есть ли возможность настроить функциональный блок/метод, чтобы среда выполнения выделяла память и создавала экземпляр метода всякий раз, когда он вызывается?
METHOD NO : BOOL
VAR_INPUT
IN : BOOL;
T : TIME;
END_VAR
VAR_INST
_timer : TON;
END_VAR
_timer (IN := IN, PT := T);
IF _timer.Q
THEN
NO := TRUE;
ELSIF _timer.ET < T
THEN
RETURN;
ELSE
NO := FALSE;
END_IF
Вызов:
debouncedInput := debounce.NO(digitalInput, T#500MS);
где Debounce — локальный экземпляр функционального блока.
Заранее спасибо за конструктивные ответы.