From 079b4e497211fa67694b462798426955952b0e0926cebff50993a938f0e42447 Mon Sep 17 00:00:00 2001 From: localhorst Date: Tue, 24 Dec 2024 13:46:49 +0100 Subject: [PATCH] control loop refinement --- main/control.c | 27 +++++++++++++++------------ 1 file changed, 15 insertions(+), 12 deletions(-) diff --git a/main/control.c b/main/control.c index 519bbee..476ff65 100644 --- a/main/control.c +++ b/main/control.c @@ -75,20 +75,22 @@ void taskControl(void *pvParameters) sControlTemperatureEntry currentControlEntry = getCurrentTemperatureEntry(); ESP_LOGI(TAG, "Control Entry Hour: %i Minute: %i ChamberTemp: %lf ReturnFlowTemp: %lf", currentControlEntry.timestamp.hour, currentControlEntry.timestamp.minute, currentControlEntry.fChamberTemperature, currentControlEntry.fReturnFlowTemperature); - if (getChamberTemperature().fCurrentValue >= currentControlEntry.fChamberTemperature) + if (bHeatingInAction == true) { - bHeatingInAction = false; - setCirculationPumpState(ENABLED); - setBurnerState(DISABLED); - setSafetyControlState(ENABLED); - ESP_LOGI(TAG, "Chamber Target Temperature reached!"); - - } - else - { - if (bHeatingInAction) + if (getChamberTemperature().fCurrentValue >= currentControlEntry.fChamberTemperature) { - // TODO: Check burner fault signal here + ESP_LOGI(TAG, "Chamber Target Temperature reached: Disable burner"); + bHeatingInAction = false; + setCirculationPumpState(ENABLED); + setBurnerState(DISABLED); + setSafetyControlState(ENABLED); + } + else + { + if (bHeatingInAction) + { + // TODO: Check burner fault signal here + } } } @@ -96,6 +98,7 @@ void taskControl(void *pvParameters) { if (getReturnFlowTemperature().average60s.fValue <= currentControlEntry.fReturnFlowTemperature) { + ESP_LOGI(TAG, "Return Flow Target Temperature reached: Enable Burner"); bHeatingInAction = true; setCirculationPumpState(ENABLED); setBurnerState(ENABLED);