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

TwoStep — двухпозиционное регулирование

TwoStep включает оборудование при достижении одного порога и выключает при достижении другого. Например, включает нагрев ниже 58 °C и выключает выше 62 °C. Между этими температурами прежнее состояние сохраняется, поэтому нагрев не переключается от каждого небольшого колебания.

Так можно управлять нагревателем, насосом подпитки или клапаном, который нужно полностью открывать и закрывать. Если клапан должен останавливаться в промежуточном положении около нужной температуры или давления, используйте ThreeStep. Для плавного аналогового задания есть PID.

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

TwoStep: TwoStep решает, когда оборудование нужно включить или выключить. Команду передайте в Engine, Valve или другой компонент управления.
В рамке — состав компонента, снаружи — подключения проекта. Нажмите на схему, чтобы открыть её крупнее.

TwoStep решает, когда оборудование нужно включить или выключить. Команду передайте в Engine, Valve или другой компонент управления.

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

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

Рассмотрим нагрев воды в ёмкости. При температуре ниже 58 °C нагрев должен включаться, выше 62 °C — выключаться. Температуру измеряет уже добавленный компонент Sensor с ID TT101, двигателем насоса нагрева управляет Engine с ID K31.

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

Параметр Значение для примера
TwoStepId TIC101
TwoStepComment Нагрев воды в ёмкости
TwoStepParent CabinetController_Inst
TwoStepSensId TT101
TwoStepInput true
TwoStepEnExtra bHeatingDemand

bHeatingDemand включает регулирование нагрева. Когда нагрев больше не нужен, выключите этот сигнал. Остальные параметры пока оставьте начальными.

В TwoStepSensId укажите TT101, а TwoStepInput оставьте равным true. Компонент сам получит от Sensor температуру после сглаживания и сигнал ошибки датчика.

2. Задайте пороги через настройки

Настройка Значение для примера
Conf.TIC101_TwoStep_fSP 60.0 °C
Conf.TIC101_TwoStep_fHys 2.0 °C

Нижний порог равен уставке минус гистерезис, верхний — уставке плюс гистерезис. В этом примере получаются 58 и 62 °C.

3. Подключите результат к управлению насосом

В компоненте Engine для K31 задайте:

Параметр Engine Значение
EngStartCmd TIC101_TwoStep_Inst.out_bHeating
EngStopCmd NOT TIC101_TwoStep_Inst.out_bHeating

Расположите TwoStep перед Engine в порядке выполнения программы. TwoStep решает, нужен ли нагрев, а Engine включает и останавливает насос, проверяет его запуск и позволяет управлять им вручную.

4. Как это будет работать

Температура Результат
Ниже 58 °C Включается запрос нагрева
От 58 до 62 °C включительно Сохраняется прежний запрос
Выше 62 °C Запрос нагрева снимается

Если регулятор включили при температуре между 58 и 62 °C, оба выхода сначала выключены. Он начнёт выбирать состояние только после выхода температуры за одну из границ. После выключения и повторного включения это правило действует заново.

При снятии bHeatingDemand или ошибке TT101 оба выхода TwoStep снимаются. В приведённой связи это формирует команду останова Engine.

Как работает переключение

У TwoStep два выхода: out_bHeating для нагрева и out_bCooling для охлаждения. Они никогда не включаются одновременно. Эти же выходы можно использовать для других задач: например, первый — чтобы наполнить ёмкость, второй — чтобы прекратить наполнение. Подключать оба выхода необязательно.

Условие out_bHeating out_bCooling
Измерение ниже SP − Hys или активен TwoStepLo TRUE FALSE
Измерение выше SP + Hys или активен TwoStepHi FALSE TRUE
Ни одно условие переключения не действует Сохраняется Сохраняется
Нет разрешения, есть ошибка используемого Sensor или действует сброс FALSE FALSE

При точном равенстве порогу аналоговое сравнение не переключает состояние. Если одновременно действуют нижнее и верхнее условия, выбирается out_bCooling.

Работа по двум дискретным сигналам

Для наполнения ёмкости по нижнему и верхнему уровню задайте:

Параметр Значение для примера
TwoStepInput false
TwoStepLo bLevelLow
TwoStepHi bLevelHigh

bLevelLow = TRUE означает, что вода опустилась до нижнего уровня и ёмкость нужно наполнять. bLevelHigh = TRUE означает, что верхний уровень достигнут. В эти поля подключите соответствующие сигналы уровня.

Нижний сигнал включает out_bHeating, верхний снимает его. Между уровнями состояние сохраняется. При TwoStepInput = false Sensor не используется, а уставка и гистерезис не влияют на переключение.

При включённом аналоговом входе TwoStepLo и TwoStepHi также участвуют в управлении. Для работы только по измерению оставьте их равными false.

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

Обозначение и настройки

Параметр По умолчанию Назначение
$TwoStep Двухпозиционный регулятор Название группы параметров
TwoStepId _ID_ ID регулятора. Для TIC101 создаётся экземпляр TIC101_TwoStep_Inst
TwoStepComment Комментарий Название регулируемого процесса
TwoStepParent CabinetController_Inst Родительский компонент. Его out_bWorktimeReset сбрасывает оба выхода регулятора
TwoStepConf Пусто ID набора настроек. Если пусто, используется TwoStepId
TwoStepConfComment Пусто Название набора настроек. Если пусто, комментарий составляется из TwoStepComment и $TwoStep

Измерение и управление

Параметр По умолчанию Назначение
TwoStepEnExtra true Логическое разрешение работы. При FALSE оба выхода снимаются
TwoStepSensId _ID_ ID Sensor, предоставляющего измерение и признак ошибки
TwoStepInput true Выбор способа подключения при генерации: true — использовать Sensor; false — работать только по дискретным сигналам
TwoStepLo false Логический сигнал или выражение для включения out_bHeating
TwoStepHi false Логический сигнал или выражение для включения out_bCooling
TwoStepHeatingMsg Нагрев Комментарий результата out_bHeating
TwoStepCoolingMsg Охлаждение Комментарий результата out_bCooling

От родителя TwoStep получает сброс. Включение и выключение самого регулирования задаётся через TwoStepEnExtra.

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

Полные имена приведены для TwoStepId = TIC101 и пустого TwoStepConf.

Настройка Тип Начальное значение Назначение
Conf.TIC101_TwoStep_fSP REAL 0.0 Уставка в единицах измеряемой величины
Conf.TIC101_TwoStep_fHys REAL 0.0 Расстояние от уставки до каждого порога, в тех же единицах

Задавайте неотрицательный гистерезис. При Hys = 0 переключение происходит по разные стороны уставки без дополнительного разнесения порогов.

Для общих настроек нескольких регуляторов задайте одинаковый TwoStepConf. Например, TwoStepConf = TankHeating создаёт имена Conf.TankHeating_TwoStep_fSP и Conf.TankHeating_TwoStep_fHys. Экземпляры регуляторов и их состояния остаются отдельными.

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

Результат для примера Тип Назначение
TIC101_TwoStep_Inst.out_bHeating BOOL Выбрано состояние нагрева, наполнения или увеличения величины
TIC101_TwoStep_Inst.out_bCooling BOOL Выбрано состояние охлаждения, прекращения наполнения или уменьшения величины

Ручное управление оборудованием задаётся в компоненте исполнительного механизма — например, Engine или Valve. Собственных ручных команд у TwoStep нет.