diff options
| author | Avi Levkovich <avi@twine-s.com> | 2020-05-07 15:27:06 +0300 |
|---|---|---|
| committer | Avi Levkovich <avi@twine-s.com> | 2020-05-07 15:27:06 +0300 |
| commit | c17847b396ac6fddfb09f593302c1390c8ba2b53 (patch) | |
| tree | 8336dd8150819d432a7f71c21d197ab37c618b38 /Software/Embedded_SW/Embedded/Modules | |
| parent | 27edb703322de623299f7203b289a61de1a91754 (diff) | |
| parent | ec7c46b91f779db7317dc7384660bb9d9d370e74 (diff) | |
| download | Tango-c17847b396ac6fddfb09f593302c1390c8ba2b53.tar.gz Tango-c17847b396ac6fddfb09f593302c1390c8ba2b53.zip | |
Merge branch 'master' of https://twinetfs.visualstudio.com/_git/Tango
Diffstat (limited to 'Software/Embedded_SW/Embedded/Modules')
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; |
