diff options
| author | Shlomo Hecht <shlomo@twine-s.com> | 2020-10-06 21:22:51 +0300 |
|---|---|---|
| committer | Shlomo Hecht <shlomo@twine-s.com> | 2020-10-06 21:22:51 +0300 |
| commit | 7f6a0eb88514f7f60a66bad3ecc1cb4cae0ed2ea (patch) | |
| tree | 4f5bbb52830922cd2be496024951b132663b5de3 /Software/Embedded_SW/Embedded/Modules | |
| parent | 5b6d9137b0a4efc2e035656caf3d0a3cba9f4d8b (diff) | |
| download | Tango-7f6a0eb88514f7f60a66bad3ecc1cb4cae0ed2ea.tar.gz Tango-7f6a0eb88514f7f60a66bad3ecc1cb4cae0ed2ea.zip | |
valves mitigatio trial, heaters max temperature handling. IDS pressure building control.loading fixed. bug in winder prepare fixed, RFID tag update in Protobuf
Diffstat (limited to 'Software/Embedded_SW/Embedded/Modules')
6 files changed, 81 insertions, 40 deletions
diff --git a/Software/Embedded_SW/Embedded/Modules/General/GeneralHardware.c b/Software/Embedded_SW/Embedded/Modules/General/GeneralHardware.c index 4ff2e546c..6f5b5fe23 100644 --- a/Software/Embedded_SW/Embedded/Modules/General/GeneralHardware.c +++ b/Software/Embedded_SW/Embedded/Modules/General/GeneralHardware.c @@ -345,14 +345,14 @@ uint32_t EmbeddedParametersInit(void) } } - /* if (EmbeddedParameters->n_generalparameters >= 6) + if (EmbeddedParameters->n_generalparameters >= 6) { IDS_Dispenser_SetBackLashValues(EmbeddedParameters->initialdispenserpressure, EmbeddedParameters->initialdispensertimeout, EmbeddedParameters->initialdispensertimelag,EmbeddedParameters->generalparameters[5]); } else { IDS_Dispenser_SetBackLashValues(EmbeddedParameters->initialdispenserpressure, EmbeddedParameters->initialdispensertimeout, EmbeddedParameters->initialdispensertimelag,1000); - }*/ + } IDS_Dispenser_SetTimeOutValues(EmbeddedParameters->closevalvetimeout, EmbeddedParameters->openvalvetimeout); IDS_Dispenser_SetPrepareValues(EmbeddedParameters->dispenserbuildpressurespeed, EmbeddedParameters->dispenserbuildpressurelimit, EmbeddedParameters->dispenserbuildpressuretimeout, EmbeddedParameters->dispenserbuildpressurelag); diff --git a/Software/Embedded_SW/Embedded/Modules/Heaters/Heaters_print.c b/Software/Embedded_SW/Embedded/Modules/Heaters/Heaters_print.c index 0e2cd4241..91433744e 100644 --- a/Software/Embedded_SW/Embedded/Modules/Heaters/Heaters_print.c +++ b/Software/Embedded_SW/Embedded/Modules/Heaters/Heaters_print.c @@ -299,6 +299,7 @@ int HeaterDisasterCounter[HEATER_TYPE_MAX_HEATERS] = {0,0,0,0,0,0,0,0,0,0,0,0,0, /******************** FUNCTIONS ********************************************/ uint32_t HeaterMaxTempCBFunction(uint32_t IfIndex, uint32_t readValue); +uint32_t HeaterBlowerMaxTempCBFunction(uint32_t IfIndex, uint32_t readValue); uint32_t DcHeaterMaxTempCBFunction(uint32_t IfIndex, uint32_t readValue); uint32_t HeaterControlCBFunction(uint32_t deviceID, uint32_t readValue); uint32_t DCHeaterControlCBFunction(uint32_t IfIndex, uint32_t readValue); @@ -898,8 +899,16 @@ int PrepareDCHeater(int HeaterId, uint32_t Frequency, uint32_t SetTemperatue) } //ReportWithPackageFilter(HeatersFilter,"PrepareHeater Read", __FILE__,HeaterId, SetTemperatue, RpWarning,HeaterPreviousRead[HeaterId], 0); - if (ControlIdtoMaxHeaterId [HeaterId] == 0xFF) - ControlIdtoMaxHeaterId [HeaterId] = AddControlCallback("DcHeatersMax", DcHeaterMaxTempCBFunction, eOneSecond,MillisecGetTemperatures,(IfTypeHeaters*0x100+HeaterId),HeaterId2PT100Id[HeaterId],0); + if ((HeaterId != HEATER_TYPE__HeadCoverHeater1)&&(HeaterId != HEATER_TYPE__HeadCoverHeater2)) //tunnel Heaters + { + 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", HeaterBlowerMaxTempCBFunction, eOneSecond,MillisecGetTemperatures,(IfTypeHeaters*0x100+HeaterId),HeaterId2PT100Id[HeaterId],0); + } return OK; } @@ -1101,41 +1110,40 @@ uint32_t HeaterMaxTempCBFunction(uint32_t IfIndex, uint32_t readValue) } return ERROR; } -uint32_t DcHeaterMaxTempCBFunction(uint32_t IfIndex, uint32_t readValue) +uint32_t HeaterBlowerMaxTempCBFunction(uint32_t IfIndex, uint32_t readValue) { - int index=HEATER_TYPE_MAX_HEATERS; uint32_t BlowerPt100Read = 0; + int index=HEATER_TYPE_MAX_HEATERS; + int32_t MaxreadValue; + if (IfIndex>>8 != IfTypeHeaters) { ReportWithPackageFilter(HeatersFilter, "Wrong Interface type",__FILE__,__LINE__,IfIndex,RpError, 0,0); return 0xFFFFFFFF; } + if (Head_Type != HEAD_TYPE_ARC) + { + ReportWithPackageFilter(HeatersFilter, "Wrong head type",__FILE__,__LINE__,Head_Type,RpError, 0,0); + return 0xFFFFFFFF; + } index = IfIndex&0xFF; + if ((index != HEATER_TYPE__HeadCoverHeater1)&&(index != HEATER_TYPE__HeadCoverHeater2)) //AC Heaters + { + ReportWithPackageFilter(HeatersFilter, "Wrong Interface ",__FILE__,__LINE__,IfIndex,RpError, index,0); + return 0xFFFFFFFF; + } //int32_t readValue = MillisecGetTemperatures(HeaterId2PT100Id[index]); - if (HeaterControl[index].sensormaxvalue == 0) - return OK; -#ifndef USE_TUNNEL_PT100 - if (Head_Type == HEAD_TYPE_ARC) { - if (index == HEATER_TYPE__HeadCoverHeater1) { - BlowerPt100Read = MillisecGetTemperatures(HEAD_PT100_AIR_HEATER_2_0X8C_1); - } - if (index == HEATER_TYPE__HeadCoverHeater2) { - BlowerPt100Read = MillisecGetTemperatures(HEAD_PT100_AIR_HEATER_1_0X8C_0); - } + if (Head_Type == HEAD_TYPE_ARC) { + if (index == HEATER_TYPE__HeadCoverHeater1) { + BlowerPt100Read = MillisecGetTemperatures(HEAD_PT100_AIR_HEATER_2_0X8C_1); } -#else - if (Head_Type == HEAD_TYPE_ARC) { - if (index == HEATER_TYPE__HeadCoverHeater1) { - BlowerPt100Read = MillisecGetTemperatures(HEAD_PT100_ZONE_11_0X8A_0); - } - if (index == HEATER_TYPE__HeadCoverHeater2) { - BlowerPt100Read = MillisecGetTemperatures(HEAD_PT100_ZONE_12_0X8A_1); - } + if (index == HEATER_TYPE__HeadCoverHeater2) { + BlowerPt100Read = MillisecGetTemperatures(HEAD_PT100_AIR_HEATER_1_0X8C_0); } -#endif + } - if ((HeaterPreviousRead[index] >= HeaterControl[index].sensormaxvalue) || (BlowerPt100Read > 25000)) + if ((BlowerPt100Read >= HeaterControl[index].sensormaxvalue) || (BlowerPt100Read > 25000)) { if(OverHeatCounter[index]++ >= Overheat_Count_Limit) { @@ -1165,23 +1173,55 @@ uint32_t DcHeaterMaxTempCBFunction(uint32_t IfIndex, uint32_t readValue) } } } - if (index == HEATER_TYPE__DryerAirHeater) + if (index == HEATER_TYPE__HeadCoverHeater1) { - DeActivateHeater(HEATER_TYPE__DryerMainHeater); - HeaterRecalculateSharedHeatersParams(HEATER_TYPE__DryerMainHeater,0); - DeActivateHeater(HEATER_TYPE__DryerSecondaryHeater); - HeaterRecalculateSharedHeatersParams(HEATER_TYPE__DryerSecondaryHeater,0); + DeActivateHeater(HEATER_TYPE__HeadCoverHeater1); + HeaterRecalculateHeaterParams(HEATER_TYPE__HeadCoverHeater1,0); } else { - DeActivateHeater(index); - HeaterRecalculateHeaterParams(index, 0); + DeActivateHeater(HEATER_TYPE__HeadCoverHeater2); + HeaterRecalculateHeaterParams(HEATER_TYPE__HeadCoverHeater2,0); } HeaterMaxTempFlag[index] = true; //ReportWithPackageFilter(HeatersFilter,(MinreadValue/100), "Heater Over the max temperature, turned off"); return OK; } - else if ((HeaterPreviousRead[index]) < (HeaterControl[index].sensorminvalue)) + if (MaxreadValue <= (HeaterControl[index].sensormaxvalue-HeaterControl[index].sensorminvalue)) //was MinreadValue + { + if (HeaterControl[index].sensorminvalue > 0) + { + if (HeaterMaxTempFlag[index] == true) + { + /* ActivateHeater(HEATER_TYPE__DryerMainHeater); + if (HeaterReady[HEATER_TYPE__DryerAirHeater]==false) + { + ActivateHeater(HEATER_TYPE__DryerSecondaryHeater); + }*/ + //ReportWithPackageFilter(HeatersFilter, "Heater Cooled Off max temperature, turned on",__FILE__,__LINE__,(MinreadValue/100),RpError, 0,0); + } + HeaterMaxTempFlag[index] = false; + } + return OK; + } + + + return ERROR; +} +uint32_t DcHeaterMaxTempCBFunction(uint32_t IfIndex, uint32_t readValue) +{ + int index=HEATER_TYPE_MAX_HEATERS; + + if (IfIndex>>8 != IfTypeHeaters) + { + ReportWithPackageFilter(HeatersFilter, "Wrong Interface type",__FILE__,__LINE__,IfIndex,RpError, 0,0); + return 0xFFFFFFFF; + } + index = IfIndex&0xFF; + //int32_t readValue = MillisecGetTemperatures(HeaterId2PT100Id[index]); + if (HeaterControl[index].sensormaxvalue == 0) + return OK; + if ((HeaterPreviousRead[index]) < (HeaterControl[index].sensorminvalue)) { if (HeaterReady[index]==true) { diff --git a/Software/Embedded_SW/Embedded/Modules/IDS/IDS_maint.c b/Software/Embedded_SW/Embedded/Modules/IDS/IDS_maint.c index 754374875..c55f10277 100644 --- a/Software/Embedded_SW/Embedded/Modules/IDS/IDS_maint.c +++ b/Software/Embedded_SW/Embedded/Modules/IDS/IDS_maint.c @@ -105,9 +105,9 @@ void IDS_Dispenser_SetAutoHoming_Config(AutoHoming_Config_enum Config) void IDS_Dispenser_SetBackLashValues(double initialdispenserpressure, uint32_t initialdispensertimeout, uint32_t initialdispensertimelag, uint32_t initialdispenserspeed) { - if (initialdispenserpressure>2) + //if (initialdispenserpressure>2) InitialDispenserPressure = initialdispenserpressure; - if (initialdispensertimeout>70000) + //if (initialdispensertimeout>70000) InitialDispenserTimeout = initialdispensertimeout; InitialDispenserTimeLag = initialdispensertimelag; InitialDispenserSpeed = initialdispenserspeed; diff --git a/Software/Embedded_SW/Embedded/Modules/IFS/ifs.c b/Software/Embedded_SW/Embedded/Modules/IFS/ifs.c index f822c869c..747df1a61 100644 --- a/Software/Embedded_SW/Embedded/Modules/IFS/ifs.c +++ b/Software/Embedded_SW/Embedded/Modules/IFS/ifs.c @@ -305,7 +305,7 @@ void midTankStateMachine(void) } midTankCapacity = Get_MidTank_Pressure_Sensor(midTankCartColor); - if (midTankCapacity > MidTankEmptyLimit) + if ((midTankCapacity > MidTankEmptyLimit)&&(midTankCartColor!=MIDTANK_8))//enable lubricant filling in two stages { Pannel_Leds(CART_1, MODE_ON); cart1.color = fastBILNK; diff --git a/Software/Embedded_SW/Embedded/Modules/Thread/ThreadLoad.c b/Software/Embedded_SW/Embedded/Modules/Thread/ThreadLoad.c index d5c186893..6edc5b3f2 100644 --- a/Software/Embedded_SW/Embedded/Modules/Thread/ThreadLoad.c +++ b/Software/Embedded_SW/Embedded/Modules/Thread/ThreadLoad.c @@ -1109,6 +1109,8 @@ uint32_t ThreadLoadButton(THREAD_LOAD_STAGES_ENUM ReadValue) } Report("ThreadLoadButton",__FILE__,__LINE__,LoadStages,RpMessage,ReadValue,0); Report("ThreadLoadButton params",__FILE__,LoadStatus,TryAgain,RpMessage,SecondTry,0); + if (LoadStages == THREAD_LOAD_INITIAL_TENSION) //on this satge we should wait for user call + MessageState = 2; ThreadLoadingReport(); if (LoadStatus == ERROR) { @@ -1407,8 +1409,6 @@ uint32_t ThreadLoadingReport(void) if (ThreadLoadingToken[0] == 0) return OK; - if (LoadStages == THREAD_LOAD_INIT) - return OK; if (MessageState == 0) { diff --git a/Software/Embedded_SW/Embedded/Modules/Thread/Thread_Winder.c b/Software/Embedded_SW/Embedded/Modules/Thread/Thread_Winder.c index 2b6492dab..f4d34284d 100644 --- a/Software/Embedded_SW/Embedded/Modules/Thread/Thread_Winder.c +++ b/Software/Embedded_SW/Embedded/Modules/Thread/Thread_Winder.c @@ -273,7 +273,8 @@ uint32_t Winder_PrepareStage2(uint32_t deviceID, uint32_t ReadValue) uint32_t Winder_ScrewAtOffsetCallback(uint32_t MotorId, uint32_t BusyFlag) { //MotorSetMaxSpeed (HARDWARE_MOTOR_TYPE__MOTO_SCREW,temp_MaxFrequency); - Screw_wait_counter--; + if (Screw_wait_counter) + Screw_wait_counter--; MotorStop (MotorId,Soft_Hiz); //per L6470 errata between mov and run commands /*#ifdef FOUR_WINDERS |
