aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Embedded_SW/Embedded/Modules
diff options
context:
space:
mode:
authorAvi Levkovich <avi@twine-s.com>2020-05-07 15:27:06 +0300
committerAvi Levkovich <avi@twine-s.com>2020-05-07 15:27:06 +0300
commitc17847b396ac6fddfb09f593302c1390c8ba2b53 (patch)
tree8336dd8150819d432a7f71c21d197ab37c618b38 /Software/Embedded_SW/Embedded/Modules
parent27edb703322de623299f7203b289a61de1a91754 (diff)
parentec7c46b91f779db7317dc7384660bb9d9d370e74 (diff)
downloadTango-c17847b396ac6fddfb09f593302c1390c8ba2b53.tar.gz
Tango-c17847b396ac6fddfb09f593302c1390c8ba2b53.zip
Merge branch 'master' of https://twinetfs.visualstudio.com/_git/Tango
Diffstat (limited to 'Software/Embedded_SW/Embedded/Modules')
-rw-r--r--Software/Embedded_SW/Embedded/Modules/Control/MillisecTask.c34
-rw-r--r--Software/Embedded_SW/Embedded/Modules/Diagnostics/Diagnostics.c11
-rw-r--r--Software/Embedded_SW/Embedded/Modules/General/GeneralHardware.c4
-rw-r--r--Software/Embedded_SW/Embedded/Modules/Heaters/Heaters_print.c12
-rw-r--r--Software/Embedded_SW/Embedded/Modules/Waste/Waste_init.c18
5 files changed, 52 insertions, 27 deletions
diff --git a/Software/Embedded_SW/Embedded/Modules/Control/MillisecTask.c b/Software/Embedded_SW/Embedded/Modules/Control/MillisecTask.c
index 64784dfcd..af3ba7668 100644
--- a/Software/Embedded_SW/Embedded/Modules/Control/MillisecTask.c
+++ b/Software/Embedded_SW/Embedded/Modules/Control/MillisecTask.c
@@ -275,19 +275,19 @@ int32_t MillisecSetMotorSpeed(TimerMotors_t MotorId, unsigned long Data, int Len
}
int MillisecFlushMsgQ(TimerMotors_t MotorId)
{
- MillisecMotorDataStruc MotorData = {0};
+ MillisecMotorDataStruc MotorInfo = {0};
int pend = Mailbox_getNumPendingMsgs(MotorsMsgQ[MotorId]);
int i;
if (pend)
{
for (i=0;i<pend;i++)
- Mailbox_pend(MotorsMsgQ[MotorId] , &MotorData, BIOS_NO_WAIT);
+ Mailbox_pend(MotorsMsgQ[MotorId] , &MotorInfo, BIOS_NO_WAIT);
}
return pend;
}
int32_t MillisecWriteToMotor(TimerMotors_t MotorId, unsigned long Data, int Length, MSecFptr Callback)
{
- MillisecMotorDataStruc MotorData = {0};
+ MillisecMotorDataStruc MotorInfo = {0};
//==========================
if ((MotorId == HARDWARE_MOTOR_TYPE__MOTO_WINDER)||
(MotorId == HARDWARE_MOTOR_TYPE__MOTO_RDRIVING)||
@@ -304,17 +304,17 @@ int32_t MillisecWriteToMotor(TimerMotors_t MotorId, unsigned long Data, int Leng
//==========================
if (MotorId >= NUM_OF_MOTORS) return -1;
MotorActivity++;
- MotorData.Callback = Callback;
- MotorData.Data = Data;
- MotorData.Length = Length;
- MotorData.DataRequired = false;
+ MotorInfo.Callback = Callback;
+ MotorInfo.Data = Data;
+ MotorInfo.Length = Length;
+ MotorInfo.DataRequired = false;
if (MotorsMsgQ[MotorId] != NULL)
- return Mailbox_post(MotorsMsgQ[MotorId] , &MotorData, BIOS_NO_WAIT);
+ return Mailbox_post(MotorsMsgQ[MotorId] , &MotorInfo, BIOS_NO_WAIT);
else return false;
}
int32_t MillisecReadFromMotor(TimerMotors_t MotorId, unsigned long Data, int Length, MSecFptr Callback)
{
- MillisecMotorDataStruc MotorData = {0};
+ MillisecMotorDataStruc MotorInfo = {0};
if (MotorId >= NUM_OF_MOTORS) return -1;
//==========================
if ((MotorId == HARDWARE_MOTOR_TYPE__MOTO_WINDER)||
@@ -332,12 +332,12 @@ int32_t MillisecReadFromMotor(TimerMotors_t MotorId, unsigned long Data, int Len
//==========================
MotorActivity++;
MotorActivity++;
- MotorData.Callback = Callback;
- MotorData.Data = Data;
- MotorData.Length = Length;
- MotorData.DataRequired = true;
+ MotorInfo.Callback = Callback;
+ MotorInfo.Data = Data;
+ MotorInfo.Length = Length;
+ MotorInfo.DataRequired = true;
if (MotorsMsgQ[MotorId] != NULL)
- return Mailbox_post(MotorsMsgQ[MotorId] , &MotorData, BIOS_NO_WAIT);
+ return Mailbox_post(MotorsMsgQ[MotorId] , &MotorInfo, BIOS_NO_WAIT);
else return false;
}
@@ -417,7 +417,7 @@ uint32_t MillisecLoop(uint32_t tick)
if (PT100Activity)
{
- for (Sensor_i = 0;Sensor_i < MAX_TANGO_TEMPERATURE_SENSOR_ID;Sensor_i++)
+ for (Sensor_i = 0;Sensor_i < MAX_MAIN_CARD_TEMP_SENS_ID;Sensor_i++)
{
/*if (TempSensorResponse[Sensor_i].Busy == true)
{
@@ -732,7 +732,7 @@ uint32_t MillisecLowLoop(uint32_t tick)
}
if (WHS_Type == WHS_TYPE_NEW)
{
- Trigger_WHS_PT100_Read_All();
+ //Trigger_WHS_PT100_Read_All();
WHS_Blower_Avarege(HEAD_FLOW_METER);
WHS_Blower_Avarege(DRIER_FLOW_METER);
WHS_Start_Blower_Control_Closed_Loop ();
@@ -742,7 +742,7 @@ uint32_t MillisecLowLoop(uint32_t tick)
// #warning TBD need to define the timing
if(Whs_emptying_cycle >= 2)
{
- waste_seq_step1();// include 1Sec delay
+ //waste_seq_step1();// include 1Sec delay
Whs_emptying_cycle = 0;
}
else
diff --git a/Software/Embedded_SW/Embedded/Modules/Diagnostics/Diagnostics.c b/Software/Embedded_SW/Embedded/Modules/Diagnostics/Diagnostics.c
index 2a2ac37b2..dee07827f 100644
--- a/Software/Embedded_SW/Embedded/Modules/Diagnostics/Diagnostics.c
+++ b/Software/Embedded_SW/Embedded/Modules/Diagnostics/Diagnostics.c
@@ -112,6 +112,7 @@ double dispenserinklevel[MAX_SYSTEM_DISPENSERS][1];
double midtankinklevel[MAX_SYSTEM_DISPENSERS][1];
double MidTankpressure[MAX_SYSTEM_DISPENSERS][1];
double HeadFlowMeter;
+double tempFlow = 0.0;
double DrierFlowMeter;
double AcVoltage;
double HeatersCurrent[NUM_OF_CURRENT_HEATERS][1];
@@ -677,6 +678,11 @@ void DiagnosticOneMinuteCollection(void)
DiagnosticsMonitor.dryerairflow = &DrierFlowMeter;
HeadFlowMeter = GetWHSAirFlow(HEAD_FLOW_METER);
+ if (fabs(tempFlow - HeadFlowMeter)>0.05)
+ {
+ Report("Head flow change 1s",__FILE__,(int)diagvoltage,(int)tempFlow,RpWarning,(int)HeadFlowMeter,0);
+ tempFlow = HeadFlowMeter;
+ }
DiagnosticsMonitor.n_headairflow = 1;
DiagnosticsMonitor.headairflow = &HeadFlowMeter;
@@ -717,6 +723,11 @@ void DiagnosticOneSecCollection(void)
HeadFlowMeter = GetWHSAirFlow(HEAD_FLOW_METER);
DiagnosticsMonitor.n_headairflow = 1;
DiagnosticsMonitor.headairflow = &HeadFlowMeter;
+ if (fabs(tempFlow - HeadFlowMeter)>0.25)
+ {
+ Report("Head flow change 1m",__FILE__,(int)diagvoltage,(int)tempFlow,RpWarning,(int)HeadFlowMeter,0);
+ tempFlow = HeadFlowMeter;
+ }
}
HeatersCurrent[HEATER_DRYER_CURRENT_1][0] = Get_Heaters_Current(HEATER_DRYER_CURRENT_1);
HeatersCurrent[HEATER_DRYER_CURRENT_2][0] = Get_Heaters_Current(HEATER_DRYER_CURRENT_2);
diff --git a/Software/Embedded_SW/Embedded/Modules/General/GeneralHardware.c b/Software/Embedded_SW/Embedded/Modules/General/GeneralHardware.c
index 2aa72cd8d..b86f602af 100644
--- a/Software/Embedded_SW/Embedded/Modules/General/GeneralHardware.c
+++ b/Software/Embedded_SW/Embedded/Modules/General/GeneralHardware.c
@@ -101,7 +101,7 @@ uint32_t HWConfigurationInit(void)
memcpy(&Bytes,(void *)GENHWCFG_MAP_IN_FLASH,sizeof(Bytes));
- if ((Bytes)&&(Bytes < 4000))
+ if ((Bytes)&&(Bytes < 5000))
{
buffer = my_malloc (Bytes);
if (buffer)
@@ -441,7 +441,7 @@ uint32_t HWConfiguration(UploadHardwareConfigurationRequest* UploadRequest)
}
LoadDancerConfigMessage();
//StoreDancerConfigMessage();
- if (request->n_pidcontrols <= HARDWARE_PID_CONTROL_TYPE__Dispenser8)
+ if (request->n_pidcontrols <= HARDWARE_PID_CONTROL_TYPE__HeadBlower_2)
{
//IDS_DispenserControlInit();
diff --git a/Software/Embedded_SW/Embedded/Modules/Heaters/Heaters_print.c b/Software/Embedded_SW/Embedded/Modules/Heaters/Heaters_print.c
index ebb9d1eba..c44043a12 100644
--- a/Software/Embedded_SW/Embedded/Modules/Heaters/Heaters_print.c
+++ b/Software/Embedded_SW/Embedded/Modules/Heaters/Heaters_print.c
@@ -97,6 +97,8 @@ uint32_t DisasterControlId = 0xFF;
#define MINIMUM_HEATER_READ 9.0
#define MAXIMUM_HEATER_READ 283
+bool UseSecondaryDrierHeater = true;
+
uint32_t HeaterId2PT100Id[HEATER_TYPE_MAX_HEATERS] = {DRYER_AIR_PT100,DRYER_MAIN_PT100,DRYER_SECONDARY_PT100,HEAD_PT100_ZONE_1_0X80_0, HEAD_PT100_ZONE_2_0X80_1, HEAD_PT100_ZONE_3_0X82_0,
HEAD_PT100_ZONE_4_0X82_1, HEAD_PT100_ZONE_5_0X84_0, HEAD_PT100_ZONE_6_0X84_1,HEAD_PT100_MIXER_0X8E_0, HEAD_PT100_ZONE_7_0X86_0, HEAD_PT100_ZONE_8_0X86_1,
HEAD_PT100_ZONE_9_0X88_0, HEAD_PT100_ZONE_10_0X88_1, HEAD_PT100_ZONE_11_0X8A_0, HEAD_PT100_ZONE_12_0X8A_1,HEAD_PT100_AIR_HEATER_2_0X8C_1,HEAD_PT100_AIR_HEATER_1_0X8C_0 };
@@ -688,7 +690,8 @@ void PrepareACHeater(int HeaterId,uint32_t Frequency, uint32_t SetTemperatue)
ControlIdtoMaxHeaterId [HeaterId] = AddControlCallback("HeatersMax", DcHeaterMaxTempCBFunction, eOneSecond,MillisecGetTemperatures,(IfTypeHeaters*0x100+HeaterId),HeaterId2PT100Id[HeaterId],0);
Enable_Reading_Heaters_Current(HeaterId2CurrentId[HEATER_TYPE__DryerMainHeater]);
- Enable_Reading_Heaters_Current(HeaterId2CurrentId[HEATER_TYPE__DryerSecondaryHeater]);
+ if (UseSecondaryDrierHeater == true)
+ Enable_Reading_Heaters_Current(HeaterId2CurrentId[HEATER_TYPE__DryerSecondaryHeater]);
HeaterRecalculateSharedHeatersParams(HEATER_TYPE__DryerMainHeater, 0);
HeaterRecalculateSharedHeatersParams(HEATER_TYPE__DryerSecondaryHeater, 0);
@@ -1115,6 +1118,7 @@ uint32_t HeaterControlCBFunction(uint32_t IfIndex, uint32_t readValue)
return ERROR;
}
HeaterPreviousRead[index] = readValue;
+ //ReportWithPackageFilter(HeatersFilter, "AC Heating in progress",__FILE__,readValue,HeaterReady[index],RpError, HeaterAtTemp[index],0);
if (readValue>(HeaterCmd[index].targettemperatue+800))
{
@@ -1513,7 +1517,6 @@ void HeaterSafetyTestSetLimits(int limit)
MaxAllowedTemperature = limit+1;
}
-bool UseSecondaryDrierHeater = true;
double TotalCurrentLimit(double VAC)
{
if (VAC<=210)
@@ -1544,8 +1547,8 @@ uint32_t DrierHeaterVoltageSetup(void)
DrierAcVoltage = ReadVAC();
if (DrierAcVoltage<=180)
{
- AlarmHandlingSetAlarm(EVENT_TYPE__POWER_UP_BIT_FAILURE, true);
- ReportWithPackageFilter(HeatersFilter,"Power too low!!!!!", __FILE__,__LINE__,DrierAcVoltage, RpMessage, 0, 0);
+ //AlarmHandlingSetAlarm(EVENT_TYPE__POWER_UP_BIT_FAILURE, true);
+ //ReportWithPackageFilter(HeatersFilter,"Power too low!!!!!", __FILE__,__LINE__,DrierAcVoltage, RpMessage, 0, 0);
}
else if (DrierAcVoltage>264)
{
@@ -1597,6 +1600,7 @@ uint32_t DrierHeaterVoltageSetup(void)
}
}
+ //UseSecondaryDrierHeater = true;
return OK;
}
uint32_t HeatersControlLoop(uint32_t tick)
diff --git a/Software/Embedded_SW/Embedded/Modules/Waste/Waste_init.c b/Software/Embedded_SW/Embedded/Modules/Waste/Waste_init.c
index d0307fe4c..87b8100cd 100644
--- a/Software/Embedded_SW/Embedded/Modules/Waste/Waste_init.c
+++ b/Software/Embedded_SW/Embedded/Modules/Waste/Waste_init.c
@@ -406,6 +406,8 @@ U8 CartridgeWasteFilling(bool status)
SetWastePump(OPEN);
//WHS_info.WHS_pump.time = 0;
AlarmHandlingSetAlarm( EVENT_TYPE__NO_WASTE_CARTRIDGE_AVAILABLE, false);
+ if (WHS_Type == WHS_TYPE_NEW)
+ SetWasteLevelEmptyingLimit(GetWHSWasteTankLevelMiliLiter());
ret=OK;
}
else // stop Waste cartridge filling
@@ -447,10 +449,18 @@ U8 CartridgeWasteFilling(bool status)
}
/* ------read waste tank sensors ----------- */
+#define WASTE_CARTRIDGE_SIZE 1.5
#define WASTE_LEVEL_OVERFLOW 4.0
#define WASTE_LEVEL_FULL 3.5
#define WASTE_LEVEL_EMPTY 2.10
-
+double WasteLevelOverflow = WASTE_LEVEL_OVERFLOW;
+double WasteLevelFull = WASTE_LEVEL_FULL;
+double WasteLevelEmpty = WASTE_LEVEL_EMPTY;
+void SetWasteLevelEmptyingLimit(double value)
+{
+ WasteLevelEmpty = value - WASTE_CARTRIDGE_SIZE;
+ ReportWithPackageFilter(WasteFilter,"------------ SetWasteLevelEmptyingLimit -----------------", __FILE__, __LINE__, (int)(value*100), RpMessage, (int)(WasteLevelEmpty*100), 0);
+}
bool RdWasteTankEmptySensor()
{
double WasteLevel = 0.0;
@@ -465,7 +475,7 @@ bool RdWasteTankEmptySensor()
else //new WHS
{
WasteLevel = GetWHSWasteTankLevelMiliLiter();
- if (WasteLevel < WASTE_LEVEL_EMPTY)
+ if (WasteLevel < WasteLevelEmpty)
ret = OK;
}
return ret;
@@ -485,7 +495,7 @@ bool RdWasteTankFullSensor()
else //new WHS
{
WasteLevel = GetWHSWasteTankLevelMiliLiter();
- if (WasteLevel < WASTE_LEVEL_FULL)
+ if (WasteLevel < WasteLevelFull)
ret = OK;
}
return ret;
@@ -505,7 +515,7 @@ bool RdWasteTankOverFlowSensor()
else //new WHS
{
WasteLevel = GetWHSWasteTankLevelMiliLiter();
- if (WasteLevel > WASTE_LEVEL_OVERFLOW)
+ if (WasteLevel > WasteLevelOverflow)
ret = OK;
}
return ret;