Рисунок 1 – Условное обозначение
Входы | Тип данных | Пояснения | Диапазон |
---|---|---|---|
ia_Tas | Float | Текущее значение температуры приточного воздуха | |
ib_Termostat | Bool | Сигнал от защитного термостата |
0 – Авария 1 – Норма |
cmd_Start | Bool | Команда на запуск регулирования |
0 – Стоп 1 – Пуск |
Av_Pump | Bool | Флаг неисправности циркуляционного насоса |
0 – Норма 1 – Авария |
cmd_ResetAv | Bool | Сброс аварий | 1 – Сбросить |
lv_IsWinter | Bool | Текущий сезон |
0 – Лето 1 – Зима |
ua_Tas_cor | Float | Уставка температуры приточного воздуха | |
ua_Tas_DZ | Float | Зона нечувствительности регулятора | |
ua_PID_Kp | Float | Пропорциональный коэффициент ПИ-регулятора | ≥0 |
ua_PID_Ti | Float | Время интегрирования ПИ-регулятора | ≥0 |
ut_Heat_On(s) | Int | Время прогрева калорифера перед стартом, в секундах | ≥0 |
ut_Heat_Off(s) | Int | Время прогрева калорифера в дежурном режиме, в секундах | ≥0 |
ut_HeatAv(s) | Int | Время прогрева калорифера после аварии, в секундах | ≥0 |
ut_Heat_max(m) | Int | Максимально допустимое время прогрева калорифера, в минутах | ≥0 |
ut_Heat_3Res(m) | Int | Время мониторинга 3-х остановов , в минутах | ≥0 |
ia_Trw | Float | Текущая температура обратной воды (Тобр) | |
ua_Trw_Graff | Float | Уставка температуры обратной воды, рассчитанная по графику | |
ua_Trw_Delt | Float | Допустимое отклонение температуры обратной воды | |
ua_Trw_Fr | Float | Температура замерзания калорифера | |
lv_Hold | Bool | Флаг переключения на старшую ступень | |
ub_IsStage_Up | Bool | Наличие старшей ступени нагрева | |
ub_IsStage_Dw | Bool | Наличие младшей ступени нагрева | |
oa_Pwr | Float | Рассчитанный процент открытия клапана | 0…100 (-5…105) |
lv_IsHeat | Bool | Флаг окончания прогрева водяного нагревателя | 1 – Прогрев |
Av_Heat | Bool | Флаг аварии, нагреватель неисправен |
0 – Норма 1 – Авария |
Av_FreezeT | Bool | Флаг аварии, угроза заморозки по капиллярному термостату |
0 – Норма 1 – Авария |
Av_FreezeW | Bool | Флаг аварии, угроза заморозки по Тобр |
0 – Норма 1 – Авария |
Av_NotHeat | Bool | Флаг аварии, не удалось прогреть нагреватель за заданное время |
0 – Норма 1 – Авария |
Av_3Res | Int | Флаг аварии, количество остановов из-за угрозы заморозки за заданное время более 3 | ≥0 |
Если сезон «лето» (lv_IsWinter="0), то клапан закрыт (oa_Pwr=0"), нет контроля аварий. При подаче команды на запуск (cmd_Start="1) сразу выставляется флаг окончания прогрева (lv_IsHeat=1"), клапан закрыт (oa_Pwr="0). Если сезон «зима» (lv_IsWinter=1), и нет команды на запуск (cmd_Start=0"), то осуществляется поддержание температуры обратной воды по двухпозиционному закону (Дежурный режим): · Если температура обратной воды < уставки с учетом отклонения (ia_Trw <ua_Trw_Graff - ua_Trw_Delt), то клапан полностью открывается (oa_Pwr="100). · Если температура обратной воды > уставки с учетом отклонения (ia_Trw >ua_Trw_Graff + ua_Trw_Delt), то, спустя заданное время (ut_Heat_Off(s)), клапан полностью закрывается (oa_Pwr=0).
Рисунок 2 – Пример поддержания температуры обратной воды
При появлении команды на запуск (cmd_Start=1") клапан открывается полностью для прогрева водяного нагревателя. Если температура обратной воды > уставки с учетом отклонения (ia_Trw > ua_Trw_Graff + ua_Trw_Delt), то спустя заданное время (ut_Heat_Off(s)) выставляется флаг окончания прогрева (lv_IsHeat="1), и начинается регулирование температуры приточного воздуха (ia_Tas) по ПИД-закону. Чтобы регулятор не реагировал на незначительные отклонения текущей температуры от уставки, используется зона нечувствительности (ua_Tas_DZ).
Рисунок 3 – Принцип работы нечувствительности
(SP – уставка (ua_Tas_cor), PV – уставка до (Вход) и после (Выход) коррекции, DZ – зона нечувствительности (ua_Tas_DZ).
Работа по ПИ-закону регулирования Зависимость выходной мощности от управляющего воздействия можно записать в виде:
где Yi – выходная мощность нагревателя (oa_Pwr); Кп – пропорциональный коэффициент (ua_PID_Kp); Ти – время интегрирования (ua_PID_Ti); Ei – разность между уставкой и текущем значением Тприт (ua_Tas_cor -ia_Tas); Δtизм – время дискретизации (1" с).
Аварии Все аварии фиксируются только если сезон «зима» (lv_IsWinter="1). Если температура приточной обратной воды (ia_Trw) опускается ниже минимально допустимого значения (ua_Trw_Fr), или срабатывает защитный термостат (ib_Termostat=0), то выставляется соответствующий флаг аварии (Av_FreezeW или Av_FreezeT), фиксируется неисправность нагревателя (ob_AvHeat=1"). Сброс по окончании прогрева. Прогрев аналогичен работе в дежурном режиме, длительность задается отдельно (ut_HeatAv(s)). Если в течение заданного времени (ut_Heat_3Res(m)) возникает три аварии угрозы замерзания нагревателя, то сброс аварии возможен только по команде (cmd_ResetAv="1). Количество зафиксированный аварий за заданный промежуток времени подается на выход блока (Av_3Res). Если водяной нагреватель не прогрелся в течение заданного времени (ut_Heat_max(m)), выставляется соответствующий флаг (Av_NotHeat=1"), фиксируется неисправность нагревателя (ob_AvHeat="1). Сброс по команде (cmd_ResetAv=1"). Если фиксируется неисправность насоса (Av_Pump="1), то регулирование прекращается, флаг окончания прогрева снимается (lv_IsHeat=0), клапан открывается на 10 % (oa_Pwr=10). Переход к регулированию по устранению неисправности.
Каскадное регулирование Для реализации работы каскада необходимо задать наличие младшей(ub_IsStage_Dw) и старшей ступени (ub_IsStage_Up). Если их нет, то рассчитанный процент открытия клапана находится в диапазоне 0…100 %. Наличие младшей ступени занижает нижнюю границу до -5 %. Наличие старшей ступени завышает верхнюю границу до 105 %. Величина отклонения задается в свойствах макроса. Достижение верхней границы служит командой на запуск старшей ступени. Одновременно с этим необходимо остановить работу регулятора текущей ступени (lv_Hold=1"), после этого процент открытия станет равен 100. Достижение нижней границы служит командой на остановку работы текущей ступени.