Heat_W_v1.00 (Управление водяным нагревателем)

Рисунок 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. Достижение нижней границы служит командой на остановку работы текущей ступени.