MetaKit Руководство по компонентам

Delay — задержка включения сигнала

Delay ждёт заданное время перед включением выхода. Например, с его помощью можно убедиться, что расход воды появился и сохраняется 5 секунд, прежде чем разрешить нагрев.

Если входной сигнал исчез, выход выключается сразу, а отсчёт сбрасывается. Для запоминания аварии до сброса оператором используйте SignalsFilter, для повторяющихся включений — Pulse.

Состав и связи

Delay: Выход включается после выдержки, а при исчезновении входа выключается сразу. После повторного появления сигнала отсчёт начинается заново.
В рамке — состав компонента, снаружи — подключения проекта. Нажмите на схему, чтобы открыть её крупнее.

Выход включается после выдержки, а при исчезновении входа выключается сразу. После повторного появления сигнала отсчёт начинается заново.

Первое подключение

Заполняйте пример в таблице «Параметры» (Params) добавленного компонента. Как добавить компонент и где искать настройки.

Перед включением нагрева нужно дождаться устойчивого расхода воды. В примере bFlowConfirmed = TRUE означает, что расход есть. Если он сохраняется 5 секунд, Delay разрешит продолжение.

1. Заполните параметры

Параметр Значение для примера
DelayId FlowReady
DelayComment Подтверждение устойчивого расхода
DelayParent CabinetController_Inst
DelayEn bFlowConfirmed

2. Задайте задержку

Настройка Значение для примера
Conf.FlowReady_Delay_diTime 5
Conf.FlowReady_Delay_diMultiplier 1000

Время задержки в миллисекундах равно diTime × diMultiplier. В примере получается 5 × 1000 = 5000 мс, то есть 5 секунд.

3. Используйте результат

Используйте FlowReady_Delay_Inst.out_bQ как разрешение следующего действия. В примере это означает, что расход подтверждён и можно переходить к нагреву.

Событие Результат
Появился bFlowConfirmed Начался отсчёт
Условие сохраняется менее 5 с Выход остаётся FALSE
Условие непрерывно сохранялось 5 с Выход становится TRUE
Условие исчезло Выход снимается, отсчёт сбрасывается
Условие появилось повторно Начинается новый полный отсчёт

Если расход появился на 2 секунды, пропал и появился снова, отсчёт начнётся с нуля. Складывать эти короткие промежутки Delay не будет. После полных 5 секунд выход останется включённым, пока расход есть и не подан сброс.

Выбор единиц времени

Множитель Единица значения diTime Пример
1 Миллисекунды 500 × 1 — 500 мс
1000 Секунды 5 × 1000 — 5 с
60000 Минуты 2 × 60000 — 2 мин
3600000 Часы 1 × 3600000 — 1 ч

Если время или множитель равны нулю либо отрицательны, выход включается вместе со входом, без ожидания.

Сброс

Сигнал DelayParent.out_bWorktimeReset снимает выход и сбрасывает отсчёт. Пока сброс активен, выход выключен. Если после снятия сброса DelayEn остаётся активным, начинается новый отсчёт.

От родителя приходит только сброс. Какой сигнал нужно задержать, укажите в DelayEn.

Параметры компонента — Params

Параметр По умолчанию Назначение
$Delay Задержка сигнала Название группы параметров
DelayId _ID_ ID задержки. Для FlowReady создаётся экземпляр FlowReady_Delay_Inst
DelayComment Комментарий Название задерживаемого условия
DelayParent CabinetController_Inst Родительский компонент, предоставляющий сброс out_bWorktimeReset
DelayEn true Входное логическое условие. При TRUE начинается отсчёт; при FALSE отсчёт и выход сбрасываются
DelayConf Пусто ID набора настроек. Если пусто, используется DelayId
DelayConfComment Пусто Название набора настроек. Если пусто, комментарий составляется из DelayComment и $Delay

Настройки во время работы — Conf

Полные имена приведены для DelayId = FlowReady и пустого DelayConf.

Настройка Тип Начальное значение Назначение
Conf.FlowReady_Delay_diTime DINT 1 Числовое значение выдержки
Conf.FlowReady_Delay_diMultiplier DINT 1000 Число миллисекунд в единице выдержки

Начальная задержка составляет 1 секунду. Для одинаковой выдержки нескольких условий назначьте им общий DelayConf. Например, DelayConf = FlowCheck создаёт настройки Conf.FlowCheck_Delay_diTime и Conf.FlowCheck_Delay_diMultiplier. Отсчёт каждой задержки остаётся независимым.

Выход компонента

Результат для примера Тип Назначение
FlowReady_Delay_Inst.out_bQ BOOL Входное условие подтверждено заданной выдержкой