diff options
| author | Shlomo Hecht <shlomo@twine-s.com> | 2018-06-24 17:50:46 +0300 |
|---|---|---|
| committer | Shlomo Hecht <shlomo@twine-s.com> | 2018-06-24 17:50:46 +0300 |
| commit | aa25997a136a0790ad2cdec80d13eb6c07114363 (patch) | |
| tree | d342590fb29cfb6550972ae8efacf671b48f303a /Software/Embedded_SW/Embedded/Modules | |
| parent | c6b1a719bac638a647dc2e4af51ad888c9f5039d (diff) | |
| download | Tango-aa25997a136a0790ad2cdec80d13eb6c07114363.tar.gz Tango-aa25997a136a0790ad2cdec80d13eb6c07114363.zip | |
DC Heating control - new job restarting
Diffstat (limited to 'Software/Embedded_SW/Embedded/Modules')
4 files changed, 34 insertions, 19 deletions
diff --git a/Software/Embedded_SW/Embedded/Modules/General/GeneralHardware.c b/Software/Embedded_SW/Embedded/Modules/General/GeneralHardware.c index 0ed71bf0d..cc87f6611 100644 --- a/Software/Embedded_SW/Embedded/Modules/General/GeneralHardware.c +++ b/Software/Embedded_SW/Embedded/Modules/General/GeneralHardware.c @@ -91,7 +91,6 @@ uint32_t HWConfigurationFunc(MessageContainer* requestContainer) upload_hardware_configuration_request__free_unpacked(UploadRequest,NULL); return ERROR; } - //status += HeaterConfigSetSharedHeatersParams (request->outputproportionalcycletime, request->outputproportionalsinglestep); ControlStart(); //ThreadInitialTestStub(request); diff --git a/Software/Embedded_SW/Embedded/Modules/Heaters/Heaters_init.c b/Software/Embedded_SW/Embedded/Modules/Heaters/Heaters_init.c index 3fa8cfa40..2e85d8b50 100644 --- a/Software/Embedded_SW/Embedded/Modules/Heaters/Heaters_init.c +++ b/Software/Embedded_SW/Embedded/Modules/Heaters/Heaters_init.c @@ -104,7 +104,6 @@ void HeatingTestRequest(MessageContainer* requestContainer) HeaterId2, false, request->dryerzone2temp); } - HeaterConfigSetSharedHeatersParams(1000,120000*12); ControlStart(); StubHeatingTestResponse response = STUB_HEATING_TEST_RESPONSE__INIT; @@ -276,7 +275,6 @@ uint32_t HeaterConfigRequestMessage(HardwarePidControl* request) } else { - HeaterConfigSetSharedHeatersParams(1000,120000*12); // initial setting 50Mhz } } return OK; @@ -333,8 +331,8 @@ uint32_t HeaterConfigSetSharedHeatersParams(uint32_t outputproportionalcycletime } /* - * HeaterConfigSetSharedHeatersParams - prepare the time slices for A/C heaters co-ordinated operation - * called by the general hardware HWConfigurationFunc + * HeaterRecalculateSharedHeatersParams - + * * parameters - the cycle time for the coordinated operation, the size (in MCU cycles) of a single step. */ uint32_t HeaterRecalculateSharedHeatersParams(uint32_t deviceId, uint32_t new_outputproportionalpowerlimit) diff --git a/Software/Embedded_SW/Embedded/Modules/Heaters/Heaters_print.c b/Software/Embedded_SW/Embedded/Modules/Heaters/Heaters_print.c index ad3aaff6f..8e8ee9e81 100644 --- a/Software/Embedded_SW/Embedded/Modules/Heaters/Heaters_print.c +++ b/Software/Embedded_SW/Embedded/Modules/Heaters/Heaters_print.c @@ -22,6 +22,7 @@ #include "heaters.h" #include "Drivers/Heater/Heater.h" +#include "Heaters_ex.h" #include "Drivers/Heater/TemperatureSensor.h" #include "StateMachines/Printing/PrintingSTM.h" @@ -76,8 +77,10 @@ void HeatersControlInit(void) { int i; HeatersControlMsgQ = Mailbox_create(sizeof(HeatersControlMessageStruc), 20, NULL,NULL); + HeaterConfigSetSharedHeatersParams(1000,120000*12); ROM_TimerConfigure(Heater_timerBase, TIMER_CFG_PERIODIC); // 32 bits Timer + ROM_TimerEnable(Heater_timerBase, TIMER_A); ROM_IntEnable(INT_TIMER2A); ROM_TimerIntEnable(Heater_timerBase, TIMER_TIMA_TIMEOUT); @@ -97,7 +100,7 @@ void HeatersControlStop(void) TimerActivated = false; HeatersRestart = false; } -#warning there is a need to separate the AC and DC heaters preparation! +//#warning there is a need to separate the AC and DC heaters preparation! void HeatersControlStart(void) { Report("HeatersControlStart ", __FILE__,__LINE__,0, RpMessage, 0, 0); @@ -113,14 +116,26 @@ uint32_t HeatersEnd(void) { if (i > HARDWARE_PID_CONTROL_TYPE__DryerHeater200w2) //DC Heaters { - status |= RemoveControlCallback(ControlIdtoHeaterId [i], DCHeaterControlCBFunction); + if (ControlIdtoHeaterId [i]!=0xFF) + { + status |= RemoveControlCallback(ControlIdtoHeaterId [i], DCHeaterControlCBFunction); + ControlIdtoHeaterId [i]=0xFF; + } } else if (i < HARDWARE_PID_CONTROL_TYPE__DryerHeater200w2) //AC Heaters { - status |=RemoveControlCallback(ControlIdtoHeaterId [i] ,HeaterControlCBFunction); + if (ControlIdtoHeaterId [i]!=0xFF) + { + status |=RemoveControlCallback(ControlIdtoHeaterId [i] ,HeaterControlCBFunction); + ControlIdtoHeaterId [i]=0xFF; + } } if (i == HARDWARE_PID_CONTROL_TYPE__DryerHeater1000w) //DC Heaters - status |=RemoveControlCallback(DryerHeaterMaxTempControl ,HeaterMaxTempCBFunction); + if (ControlIdtoHeaterId [i]!=0xFF) + { + status |=RemoveControlCallback(DryerHeaterMaxTempControl ,HeaterMaxTempCBFunction); + ControlIdtoHeaterId [i]=0xFF; + } DeActivateHeater(i); } return status; @@ -134,10 +149,10 @@ void HeatersStartControlTimer (void) return; TimerActivated = true; ROM_TimerConfigure(Heater_timerBase, TIMER_CFG_PERIODIC); // 32 bits Timer - ROM_TimerLoadSet(Heater_timerBase, TIMER_A,OutputProportionalSingleStep/*twelve millisecond???*/); + ROM_TimerLoadSet(Heater_timerBase, TIMER_A,OutputProportionalSingleStep /*twelve millisecond???*/); + ROM_TimerEnable(Heater_timerBase, TIMER_A); ROM_IntEnable(INT_TIMER2A); ROM_TimerIntEnable(Heater_timerBase, TIMER_TIMA_TIMEOUT); - TimerEnable(Heater_timerBase, TIMER_A); Report("HeatersStartControlTimer ", __FILE__,__LINE__,0, RpMessage, 0, 0); return; } @@ -236,10 +251,12 @@ uint32_t PrepareHeater(int HeaterId, uint32_t SetTemperatue) if (HeaterId > HARDWARE_PID_CONTROL_TYPE__DryerHeater200w2) //DC Heaters { ControlIdtoHeaterId [HeaterId] = AddControlCallback( DCHeaterControlCBFunction, eHundredMillisecond,TemperatureSensorRead,(IfTypeHeaters*0x100+HeaterId),HeaterId2PT100Id[HeaterId],0); + DCInitialHeating[HeaterId] = true; } else if (HeaterId < HARDWARE_PID_CONTROL_TYPE__DryerHeater200w2) //AC Heaters { ControlIdtoHeaterId [HeaterId] = AddControlCallback( HeaterControlCBFunction, eHundredMillisecond,TemperatureSensorRead,(IfTypeHeaters*0x100+HeaterId),HeaterId2PT100Id[HeaterId],0); + InitialHeating = true; } HeaterReady[HeaterId] = false; if (HeaterId == HARDWARE_PID_CONTROL_TYPE__DryerHeater1000w) //Dryer Heaters @@ -297,6 +314,7 @@ uint32_t HeaterMaxTempCBFunction(uint32_t IfIndex, uint32_t readValue) LOG_ERROR (readValue, "Heater Cooled Off max temperature, turned on"); return OK; } + return ERROR; } uint32_t HeaterControlCBFunction(uint32_t IfIndex, uint32_t readValue) { @@ -502,18 +520,18 @@ void EightMilliSecondHeatersInterrupt(UArg arg0) ROM_IntMasterDisable(); HeatersControlMessageStruc Message; - bool retcode = false; + //bool retcode = false; //send message to the HeatersControl task Message.messageId = HeatersControl; Message.tick = UsersysTickGet(); Message.msglen = sizeof(HeatersControlMessageStruc); if (HeatersControlMsgQ != NULL) - retcode = Mailbox_post(HeatersControlMsgQ , &Message, BIOS_NO_WAIT); + /*retcode = */Mailbox_post(HeatersControlMsgQ , &Message, BIOS_NO_WAIT); if (HeatersRestart == true) { - ROM_TimerLoadSet(Heater_timerBase, TIMER_A,OutputProportionalSingleStep/*twelve millisecond???*/); + ROM_TimerLoadSet(Heater_timerBase, TIMER_A,OutputProportionalSingleStep); } else TimerDisable(Heater_timerBase, TIMER_A); diff --git a/Software/Embedded_SW/Embedded/Modules/Thread/Thread_print.c b/Software/Embedded_SW/Embedded/Modules/Thread/Thread_print.c index fafc43fb5..6740d6304 100644 --- a/Software/Embedded_SW/Embedded/Modules/Thread/Thread_print.c +++ b/Software/Embedded_SW/Embedded/Modules/Thread/Thread_print.c @@ -188,8 +188,8 @@ uint32_t ThreadLengthCBFunction(uint32_t IfIndex, uint32_t ReadValue) { //HeatingTestSendResonse(0, false,true,true, MotorDriverRequest[22].Speed,MotorDriverRequest[18].Speed,MotorDriverRequest[15].Speed,MotorDriverRequest[3].Speed, "MotorSpeed"); - HeatingTestSendResonse(0, false,true,true, /*OriginalMotorSpd_2PPS[index]*/length,positionDiff/*(int)error_integered*/,CurrentProcessedLength,CurrentRequestedLength, "FeederLength"); - pooler_counter = 0; + //HeatingTestSendResonse(0, false,true,true, /*OriginalMotorSpd_2PPS[index]*/length,positionDiff/*(int)error_integered*/,CurrentProcessedLength,CurrentRequestedLength, "FeederLength"); + // pooler_counter = 0; } if (CurrentProcessedLength>=CurrentRequestedLength ) { @@ -306,7 +306,7 @@ uint32_t ThreadControlCBFunction(uint32_t IfIndex, uint32_t ReadValue) if ((abs(avreageSampleValue)> DancerStopActivityLimit[index])&&(JobCounter > eOneSecond)) { - usnprintf(Message, 60, "Dancer % limit%d value %d Zero %d",DancerId,DancerStopActivityLimit[index],avreageSampleValue,DancersCfg[DancerId].zeropoint); + usnprintf(Message, 60, "Dancer %d limit %d value %d Zero %d",DancerId,DancerStopActivityLimit[index],avreageSampleValue,DancersCfg[DancerId].zeropoint); EndState(CurrentJob,Message ); } @@ -346,8 +346,8 @@ uint32_t ThreadControlCBFunction(uint32_t IfIndex, uint32_t ReadValue) }*/ //HeatingTestSendResonse(0, false,true,true, MotorDriverRequest[22].Speed,MotorDriverRequest[18].Speed,MotorDriverRequest[15].Speed,MotorDriverRequest[3].Speed, "MotorSpeed"); - HeatingTestSendResonse(0, false,true,true, /*OriginalMotorSpd_2PPS[index]*/_speed,OriginalMotorSpd_2PPS[index]/*(int)error_integered*/,MotorControlConfig[index].m_calculatedError,ReadValue, "FeederSpeed"); - pooler_counter = 0; + //HeatingTestSendResonse(0, false,true,true, /*OriginalMotorSpd_2PPS[index]*/_speed,OriginalMotorSpd_2PPS[index]/*(int)error_integered*/,MotorControlConfig[index].m_calculatedError,ReadValue, "FeederSpeed"); + // pooler_counter = 0; } } |
