aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Embedded_SW/Embedded/Modules
diff options
context:
space:
mode:
authorShlomo Hecht <shlomo@twine-s.com>2020-10-18 15:02:21 +0300
committerShlomo Hecht <shlomo@twine-s.com>2020-10-18 15:02:21 +0300
commit69efdab62748d6411da35dbfdc390c4029193b6b (patch)
tree2e5cb3e1a48f17b7cf6fc2e845b0872e42775ab9 /Software/Embedded_SW/Embedded/Modules
parent9c78f978589d5a1b8c4ff701a80e3e3b2bf3bee0 (diff)
parent539d2e2f5987f7aa1b4d6be493a72376680e0145 (diff)
downloadTango-69efdab62748d6411da35dbfdc390c4029193b6b.tar.gz
Tango-69efdab62748d6411da35dbfdc390c4029193b6b.zip
Merge branch 'master' of https://twinetfs.visualstudio.com/Tango/_git/Tango
Diffstat (limited to 'Software/Embedded_SW/Embedded/Modules')
-rw-r--r--Software/Embedded_SW/Embedded/Modules/Heaters/Heaters_Blowers.c3
-rw-r--r--Software/Embedded_SW/Embedded/Modules/Heaters/Heaters_print.c178
-rw-r--r--Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Progress.c2
3 files changed, 51 insertions, 132 deletions
diff --git a/Software/Embedded_SW/Embedded/Modules/Heaters/Heaters_Blowers.c b/Software/Embedded_SW/Embedded/Modules/Heaters/Heaters_Blowers.c
index f76480aaf..8f00dbe47 100644
--- a/Software/Embedded_SW/Embedded/Modules/Heaters/Heaters_Blowers.c
+++ b/Software/Embedded_SW/Embedded/Modules/Heaters/Heaters_Blowers.c
@@ -72,6 +72,9 @@ typedef struct
}HeadBlowerConfig;
HeadBlowerConfig HeadBlowerControl[2] = {0,0};
+/******************** FUNCTIONS ********************************************/
+int HeadBlowersGetPWM(uint8_t blowerId);
+
/********************************************************************************
* Arc Head Pressure sensors
*******************************************************************************/
diff --git a/Software/Embedded_SW/Embedded/Modules/Heaters/Heaters_print.c b/Software/Embedded_SW/Embedded/Modules/Heaters/Heaters_print.c
index b5e0d467f..275a96cd6 100644
--- a/Software/Embedded_SW/Embedded/Modules/Heaters/Heaters_print.c
+++ b/Software/Embedded_SW/Embedded/Modules/Heaters/Heaters_print.c
@@ -95,6 +95,7 @@ uint32_t ControlIdtoHeaterId [HEATER_TYPE_MAX_HEATERS] = {0xFF,0xFF,0xFF,0
uint32_t ControlIdtoMaxHeaterId [HEATER_TYPE_MAX_HEATERS] = {0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF};
uint32_t OverHeatCounter [HEATER_TYPE_MAX_HEATERS] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
uint32_t BlowerOverHeatCounter[HEATER_TYPE_MAX_HEATERS] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
+uint32_t BlowersControlIdtoMaxHeaterId [HEATER_TYPE_MAX_HEATERS] = {0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF};
uint32_t UnderHeatCounter [HEATER_TYPE_MAX_HEATERS] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
uint32_t MainDryerHeaterMaxTempControl = 0xFF;
uint32_t SecondDryerHeaterMaxTempControl = 0xFF;
@@ -244,6 +245,7 @@ uint32_t DryerInternalPT100Id = DRYER_AIR_PT100;
bool HeatersRestart = false;
bool HeaterMaxTempFlag[HEATER_TYPE_MAX_HEATERS] = {false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false};
+bool BlowerHeaterMaxTempFlag[HEATER_TYPE_MAX_HEATERS] = {false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false};
bool HeaterMinTempFlag[HEATER_TYPE_MAX_HEATERS] = {true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true};
uint32_t OutputProportionalSingleStep = 0; //A/C Heaters step size from one decision point to another - in cpu clocks. 120000 = 1 millisecod
@@ -289,7 +291,6 @@ uint32_t HeatersDisasterControl(uint32_t x,uint32_t y);
uint32_t PrepareHeater(int HeaterId, uint32_t SetTemperatue);
void HeatersStartControlTimer (void);
-int HeadBlowersGetPWM(uint8_t blowerId);
//**********************************************************************
//******************** CODE *******************************************/
@@ -514,6 +515,13 @@ uint32_t HeatersSingleHeaterEnd(int HeaterId)
status |= RemoveControlCallback(ControlIdtoMaxHeaterId [HeaterId], DcHeaterMaxTempCBFunction);
ControlIdtoMaxHeaterId [HeaterId]=0xFF;
}
+#ifdef USE_TUNNEL_PT100
+ if (BlowersControlIdtoMaxHeaterId [HeaterId]!=0xFF)
+ {
+ status |= RemoveControlCallback(BlowersControlIdtoMaxHeaterId [HeaterId], HeaterBlowerMaxTempCBFunction);
+ BlowersControlIdtoMaxHeaterId [HeaterId]=0xFF;
+ }
+#endif
HeaterRecalculateHeaterParams(HeaterId, 0);
DeActivateHeater(HeaterId);
HeaterPIDConfig[HeaterId].m_SetParam = 0;
@@ -765,6 +773,13 @@ void PrepareACHeater(int HeaterId,uint32_t Frequency, uint32_t SetTemperatue)
RemoveControlCallback(ControlIdtoMaxHeaterId [HeaterId], DcHeaterMaxTempCBFunction);
ControlIdtoMaxHeaterId [HeaterId] = 0xFF;
}
+#ifdef USE_TUNNEL_PT100
+ if (BlowersControlIdtoMaxHeaterId [HeaterId]!=0xFF)
+ {
+ RemoveControlCallback(BlowersControlIdtoMaxHeaterId [HeaterId], HeaterBlowerMaxTempCBFunction);
+ BlowersControlIdtoMaxHeaterId [HeaterId] = 0xFF;
+ }
+#endif
if (ControlIdtoHeaterId [HeaterId] != 0xFF)
{
RemoveControlCallback(ControlIdtoHeaterId [HeaterId], DCHeaterControlCBFunction);
@@ -848,6 +863,13 @@ int PrepareDCHeater(int HeaterId, uint32_t Frequency, uint32_t SetTemperatue)
RemoveControlCallback(ControlIdtoMaxHeaterId [HeaterId], DcHeaterMaxTempCBFunction);
ControlIdtoMaxHeaterId [HeaterId] = 0xFF;
}
+#ifdef USE_TUNNEL_PT100
+ if (BlowersControlIdtoMaxHeaterId [HeaterId]!=0xFF)
+ {
+ RemoveControlCallback(BlowersControlIdtoMaxHeaterId [HeaterId], HeaterBlowerMaxTempCBFunction);
+ BlowersControlIdtoMaxHeaterId [HeaterId]=0xFF;
+ }
+#endif
if (ControlIdtoHeaterId [HeaterId] != 0xFF)
{
RemoveControlCallback(ControlIdtoHeaterId [HeaterId], DCHeaterControlCBFunction);
@@ -881,18 +903,15 @@ int PrepareDCHeater(int HeaterId, uint32_t Frequency, uint32_t SetTemperatue)
}
//ReportWithPackageFilter(HeatersFilter,"PrepareHeater Read", __FILE__,HeaterId, SetTemperatue, RpWarning,HeaterPreviousRead[HeaterId], 0);
- if ((HeaterId != HEATER_TYPE__HeadCoverHeater1)&&(HeaterId != HEATER_TYPE__HeadCoverHeater2)) //tunnel Heaters
-#warning ronen, what is happening here? what is the difference between if and else?
- {
- if (ControlIdtoMaxHeaterId [HeaterId] == 0xFF)
- ControlIdtoMaxHeaterId [HeaterId] = AddControlCallback("DcHeatersMax", DcHeaterMaxTempCBFunction, eOneSecond,MillisecGetTemperatures,(IfTypeHeaters*0x100+HeaterId),HeaterId2PT100Id[HeaterId],0);
- }
- else
+ if (ControlIdtoMaxHeaterId [HeaterId] == 0xFF)
+ ControlIdtoMaxHeaterId [HeaterId] = AddControlCallback("DcHeatersMax", DcHeaterMaxTempCBFunction, eOneSecond,MillisecGetTemperatures,(IfTypeHeaters*0x100+HeaterId),HeaterId2PT100Id[HeaterId],0);
+#ifdef USE_TUNNEL_PT100
+ if ((HeaterId == HEATER_TYPE__HeadCoverHeater1)||(HeaterId == HEATER_TYPE__HeadCoverHeater2)) //tunnel Heaters
{
- if (ControlIdtoMaxHeaterId [HeaterId] == 0xFF)
- ControlIdtoMaxHeaterId [HeaterId] = AddControlCallback("DcHeatersMax", HeaterBlowerMaxTempCBFunction, eOneSecond,MillisecGetTemperatures,(IfTypeHeaters*0x100+HeaterId),HeaterId2PT100Id[HeaterId],0);
+ if (BlowersControlIdtoMaxHeaterId [HeaterId] == 0xFF)
+ BlowersControlIdtoMaxHeaterId [HeaterId] = AddControlCallback("DcHeatersMax", HeaterBlowerMaxTempCBFunction, eOneSecond,MillisecGetTemperatures,(IfTypeHeaters*0x100+HeaterId),HeaterId2PT100Id[HeaterId],0);
}
-
+#endif
return OK;
}
/*
@@ -1126,22 +1145,8 @@ uint32_t HeaterBlowerMaxTempCBFunction(uint32_t IfIndex, uint32_t readValue)
}
}
- if (BlowerPt100Read > 25500)
+ if (BlowerPt100Read > 26000)
{
-#warning ronen, no need for histeresis here, only in alarm handling below
- /*if(BlowerOverHeatCounter[index]++ >= Overheat_Count_Limit)
- {
- BlowerOverHeatCounter[index] = Overheat_Count_Limit;
-
- 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);
- }
- }*/
if (index == HEATER_TYPE__HeadCoverHeater1)
{
DeActivateHeater(HEATER_TYPE__HeadCoverHeater1);
@@ -1152,106 +1157,11 @@ uint32_t HeaterBlowerMaxTempCBFunction(uint32_t IfIndex, uint32_t readValue)
DeActivateHeater(HEATER_TYPE__HeadCoverHeater2);
HeaterRecalculateHeaterParams(HEATER_TYPE__HeadCoverHeater2,0);
}
- HeaterMaxTempFlag[index] = true;
+ BlowerHeaterMaxTempFlag[index] = true;
} else {
- //if (BlowerOverHeatCounter[index])
- //{
- if (BlowerPt100Read <= 25300)
- // {
- // BlowerOverHeatCounter[index]--;
- // if (BlowerOverHeatCounter[index]==0)
- {
- HeaterMaxTempFlag[index] = false;
- }
- // }
- //}
- }
-
- // alarm handling
- if ((HeaterPreviousRead[index] >= HeaterControl[index].sensormaxvalue) && (HeaterCmd[index].targettemperatue))
- {
-#warning ronen actually counters are handled twice!
- 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].sensormaxvalue) && (!HeaterCmd[index].targettemperatue))
- {
- if(OverHeatCounter[index]++ >=Overheat_Count_Limit)
- #warning ronen why increasing the counter here? ???
+ if (BlowerPt100Read <= 25800)
{
- OverHeatCounter[index] = Overheat_Count_Limit;
- AlarmHandlingSetAlarm(HeaterEventType[index], false);
- }
- }
- else if ((HeaterPreviousRead[index]) < (HeaterControl[index].sensorminvalue))
- #warning enter all this area only when target temperature is set (actually, this control call should be stopped on Heater_end() togehter with couter = zero and alarms off
- {
- 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);
- }
- }
+ BlowerHeaterMaxTempFlag[index] = false;
}
}
return OK;
@@ -1687,7 +1597,7 @@ uint32_t DCHeaterControlCBFunction(uint32_t IfIndex, uint32_t readValue)
}
if (readValue < ((HeaterCmd[index].targettemperatue * (100-HeaterControl[index].outputproportionalband))/100))
{
- if (HeaterMaxTempFlag[index] == false)
+ if ((HeaterMaxTempFlag[index] == false) && (BlowerHeaterMaxTempFlag[index] == false))
ActivateHeater(index);
//HeaterRecalculateHeaterParams(index, 100);
//Heaters OFF until coming into the proportional band
@@ -1867,11 +1777,17 @@ void HeaterSafetyTestSetLimits(int limit)
HeaterDisasterTemp[i] = limit;
RemoveControlCallback(ControlIdtoMaxHeaterId [i], DcHeaterMaxTempCBFunction);
}
- RemoveControlCallback(DisasterControlId, HeatersDisasterControl);
- RemoveControlCallback(MainDryerHeaterMaxTempControl ,HeaterMaxTempCBFunction);
- RemoveControlCallback(SecondDryerHeaterMaxTempControl ,HeaterMaxTempCBFunction);
-
- MaxAllowedTemperature = limit+1;
+ RemoveControlCallback(DisasterControlId, HeatersDisasterControl);
+ RemoveControlCallback(MainDryerHeaterMaxTempControl ,HeaterMaxTempCBFunction);
+ RemoveControlCallback(SecondDryerHeaterMaxTempControl ,HeaterMaxTempCBFunction);
+#ifdef USE_TUNNEL_PT100
+ for(i = HEATER_TYPE__HeadCoverHeater1; i<=HEATER_TYPE__HeadCoverHeater2;i++)
+ {
+ HeaterDisasterTemp[i] = limit;
+ RemoveControlCallback(BlowersControlIdtoMaxHeaterId [i], HeaterBlowerMaxTempCBFunction);
+ }
+#endif
+ MaxAllowedTemperature = limit+1;
}
double TotalCurrentLimit(double VAC)
@@ -2055,7 +1971,7 @@ uint32_t HeatersControlLoop(uint32_t tick)
{
if (SliceCounter == DcHeaterId)
{
- if (HeaterMaxTempFlag[DcHeaterId] == false)
+ if ((HeaterMaxTempFlag[DcHeaterId] == false) && (BlowerHeaterMaxTempFlag[DcHeaterId] == false))
{
ActivateHeater (DcHeaterId);
}
diff --git a/Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Progress.c b/Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Progress.c
index 9b700bf4f..97a269105 100644
--- a/Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Progress.c
+++ b/Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Progress.c
@@ -163,7 +163,7 @@ void Stub_ProgressRequest(MessageContainer* requestContainer)
else
if(request->amount == 0xb05)
{
- response.progress = Test_Uart3(request->delay);
+ response.progress = Test_Uart3(request->delay);//test Shinko
response.has_progress = true;
}
else