aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorShlomo Hecht <shlomo@twine-s.com>2020-10-13 11:46:22 +0300
committerShlomo Hecht <shlomo@twine-s.com>2020-10-13 11:46:22 +0300
commitbaf0b4c2e4fcd9b84e9dbcb52be0a612ac8eae00 (patch)
tree1bd20a65a115895ba676051d696ff953b9831e5e
parentbf2a042718b901a7ed25e1296008d598678b2ad7 (diff)
parentb624ccf2c3bf8c16774a03d06f1d49a726934c1b (diff)
downloadTango-baf0b4c2e4fcd9b84e9dbcb52be0a612ac8eae00.tar.gz
Tango-baf0b4c2e4fcd9b84e9dbcb52be0a612ac8eae00.zip
Merge branch 'master' of https://twinetfs.visualstudio.com/Tango/_git/Tango
-rw-r--r--Software/Embedded_SW/Embedded/Modules/Heaters/Heaters_print.c80
1 files changed, 78 insertions, 2 deletions
diff --git a/Software/Embedded_SW/Embedded/Modules/Heaters/Heaters_print.c b/Software/Embedded_SW/Embedded/Modules/Heaters/Heaters_print.c
index 6c1dcb279..c59ef6086 100644
--- a/Software/Embedded_SW/Embedded/Modules/Heaters/Heaters_print.c
+++ b/Software/Embedded_SW/Embedded/Modules/Heaters/Heaters_print.c
@@ -1170,7 +1170,6 @@ uint32_t HeaterBlowerMaxTempCBFunction(uint32_t IfIndex, uint32_t readValue)
HeaterRecalculateHeaterParams(HEATER_TYPE__HeadCoverHeater2,0);
}
HeaterMaxTempFlag[index] = true;
- return OK;
} else {
if (BlowerOverHeatCounter[index])
{
@@ -1183,8 +1182,85 @@ uint32_t HeaterBlowerMaxTempCBFunction(uint32_t IfIndex, uint32_t readValue)
}
}
}
- return OK;
}
+
+ // alarm handling
+ if ((HeaterPreviousRead[index]) >= HeaterControl[index].sensormaxvalue)
+ {
+ if(OverHeatCounter[index]++ >=Overheat_Count_Limit)
+ {
+ OverHeatCounter[index] = Overheat_Count_Limit;
+ if (JobIsActive()&&(HeaterReady[index]==true))
+ {
+ JobEndReason = JOB_TEMPERATURE_ALARM;
+ SendJobProgress(0.0,0,false, "Temperature Error");
+ AbortJob("Over Temperature Error");
+ ReportWithPackageFilter(HeatersFilter, "Temperature Error",__FILE__,__LINE__,index,RpError, 0,0);
+ return OK;
+ }
+
+ if ((HeaterReady[index]==false)&&(HeaterPreviousRead[index]>HeaterCmd[index].targettemperatue))
+ {
+ ReportWithPackageFilter(HeatersFilter,"DC Heater Over the max temperature, cooling off",__FILE__,index,HeaterPreviousRead[index],RpWarning, HeaterCmd[index].targettemperatue,0);
+ }
+ else
+ {
+ ReportWithPackageFilter(HeatersFilter,"DC Heater Over the max temperature, turned off",__FILE__,index,HeaterPreviousRead[index],RpWarning, HeaterReady[index],0);
+ ReportWithPackageFilter(HeatersFilter,"Heater over the max temperature",__FILE__,index,OverHeatCounter[index],RpWarning,HeaterControl[index].sensormaxvalue, 0);
+ AlarmHandlingSetAlarm(HeaterEventType[index], true);
+ }
+ }
+ }
+ else if ((HeaterPreviousRead[index]) < (HeaterControl[index].sensorminvalue))
+ {
+ if (HeaterReady[index]==true)
+ {
+ ReportWithPackageFilter(HeatersFilter,"Heater under the min temperature",__FILE__,index,UnderHeatCounter[index],RpWarning,HeaterControl[index].sensorminvalue, 0);
+ ReportWithPackageFilter(HeatersFilter,"Heater under the min temperature more info",__FILE__,HeaterReady[index],GetHeaterState(index),RpWarning,HeaterPreviousRead[index], 0);
+ }
+ if(UnderHeatCounter[index]++ >= Underheat_Count_Limit)
+ {
+ UnderHeatCounter[index] = Underheat_Count_Limit;
+ if (JobIsActive()&&(HeaterReady[index]==true))
+ {
+ JobEndReason = JOB_TEMPERATURE_ALARM;
+ SendJobProgress(0.0,0,false, "Temperature Error");
+ AbortJob("Under Temperature Error");
+ ReportWithPackageFilter(HeatersFilter, "Temperature Error",__FILE__,__LINE__,index,RpError, 0,0);
+ return OK;
+ }
+ if (HeaterReady[index]==false)
+ AlarmHandlingSetAlarm(HeaterUnderEventType[index], true);
+ else
+ AlarmHandlingSetAlarm(HeaterUnderEventType_B[index], true);
+ }
+ }
+ else //temperature within limits
+ {
+ if(UnderHeatCounter[index] )
+ {
+ UnderHeatCounter[index]--;
+ if (UnderHeatCounter[index]==0)
+ {
+ if (HeaterReady[index]==false)
+ AlarmHandlingSetAlarm(HeaterUnderEventType[index], false);
+ else
+ AlarmHandlingSetAlarm(HeaterUnderEventType_B[index], false);
+ }
+ }
+ if(OverHeatCounter[index] )
+ {
+ if ((HeaterPreviousRead[index]) <= (HeaterControl[index].sensormaxvalue-2))
+ {
+ OverHeatCounter[index]--;
+ if (OverHeatCounter[index]==0)
+ {
+ AlarmHandlingSetAlarm(HeaterEventType[index], false);
+ }
+ }
+ }
+ }
+ return OK;
}
uint32_t DcHeaterMaxTempCBFunction(uint32_t IfIndex, uint32_t readValue)