TwoStep — двухпозиционное регулирование
TwoStep включает оборудование при достижении одного порога и выключает при достижении другого. Например, включает нагрев ниже 58 °C и выключает выше 62 °C. Между этими температурами прежнее состояние сохраняется, поэтому нагрев не переключается от каждого небольшого колебания.
Так можно управлять нагревателем, насосом подпитки или клапаном, который нужно полностью открывать и закрывать. Если клапан должен останавливаться в промежуточном положении около нужной температуры или давления, используйте ThreeStep. Для плавного аналогового задания есть PID.
Состав и связи
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 нет.