control loop refinement

This commit is contained in:
Hendrik Schutter 2024-12-24 13:46:49 +01:00
parent fbf038eaaf
commit 079b4e4972

View File

@ -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);