diff options
| author | Victoria Plitt <Victoria.Plitt@twine-s.com> | 2020-01-08 13:54:36 +0200 |
|---|---|---|
| committer | Victoria Plitt <Victoria.Plitt@twine-s.com> | 2020-01-08 13:54:36 +0200 |
| commit | 9016d57f876a70952dda4419d68b568b586ef0ec (patch) | |
| tree | d9985a59e28ccb36cee2d8cdf486ca524e59660b /Software/Embedded_SW/Embedded/Modules/Control | |
| parent | 5a06b997b7ef29c566bad2bc65f927e9443c3888 (diff) | |
| parent | f070724e30040ae7cc3fada4c4492ed9e80f8106 (diff) | |
| download | Tango-9016d57f876a70952dda4419d68b568b586ef0ec.tar.gz Tango-9016d57f876a70952dda4419d68b568b586ef0ec.zip | |
Merge branch 'master' of https://twinetfs.visualstudio.com/Tango/_git/Tango
Diffstat (limited to 'Software/Embedded_SW/Embedded/Modules/Control')
4 files changed, 24 insertions, 45 deletions
diff --git a/Software/Embedded_SW/Embedded/Modules/Control/MillisecTask.c b/Software/Embedded_SW/Embedded/Modules/Control/MillisecTask.c index a5bf4d336..5cccc5b45 100644 --- a/Software/Embedded_SW/Embedded/Modules/Control/MillisecTask.c +++ b/Software/Embedded_SW/Embedded/Modules/Control/MillisecTask.c @@ -528,7 +528,7 @@ int MillisecGetTemperatures (TEMPERATURE_SENSOR_ID_ENUM SensorId) return 0; return TemperatureCalc[SensorId]; } -bool RapidPressureRead = false; +bool RapidPressureRead = true; float PressureSum[MAX_SYSTEM_DISPENSERS]; float PressureMin[MAX_SYSTEM_DISPENSERS]; float PressureMax[MAX_SYSTEM_DISPENSERS]; @@ -611,11 +611,14 @@ uint32_t MillisecLowLoop(uint32_t tick) //if (Sensor_Read++ >= MAX_MAIN_CARD_TEMPERATURE_SENSOR_ID) Sensor_Read = 0; if(Machine_Idle_Mode == true) Machine_Idle_Breathing_Led(); + Trigger_HeaterWriting(); + } #ifdef Use_Head_Card if(Fifty_msTick) { - Set_HeadCard_PT100();//call every 50mSec (minimum delay 30mSec) + Trigger_PT100_Read();//call every 50mSec (minimum delay 30mSec) + //Set_HeadCard_PT100();//call every 50mSec (minimum delay 30mSec) } #endif /*#ifdef Use_Head_Card @@ -653,6 +656,14 @@ uint32_t MillisecLowLoop(uint32_t tick) Speed_Data = Calculate_Speed_Sensor_Velocity(); Read_Buttons_Reg(); //Ink_Cart_Led(); + /////////////////////////////////////////////////////////////////// + char Lenstr[160]; + static int Counter = 0; + + TemperatureListString(Lenstr); + ReportWithPackageFilter(ThreadFilter,Lenstr,__FILE__,__LINE__,(int)Counter++,RpWarning,(int) msec_millisecondCounter,0); + /////////////////////////////////////////////////////////////////////////// + #ifdef Use_Head_Card for (Sensor_i = TEMP_SENSE_ANALOG_DRYER_TEMP1;Sensor_i < MAX_HEAD_CARD_TEMP_SENS_ID;Sensor_i++) #else diff --git a/Software/Embedded_SW/Embedded/Modules/Control/PIDAlgo.c b/Software/Embedded_SW/Embedded/Modules/Control/PIDAlgo.c index 6c1b647be..3d1d353c2 100644 --- a/Software/Embedded_SW/Embedded/Modules/Control/PIDAlgo.c +++ b/Software/Embedded_SW/Embedded/Modules/Control/PIDAlgo.c @@ -3,41 +3,6 @@ float PIDAlgorithmCalculation(float _setPoint,float _mesuredParam , PID_Config_Params *params, float *_pre_error, float *_integral) { - float error; - float derivative; - float output; - - //Calculate P,I,D - error = _setPoint - _mesuredParam; - - //In case of error too small then stop integration - if(fabs(error) > params->epsilon) - { - *_integral = *_integral + error*params->dt; - } - - derivative = (error - *_pre_error)/params->dt; - - output = params->Kp*error + params->Ki**_integral + params->Kd*derivative; - - //Saturation Filter - if(output > params->MAX) - { - output = params->MAX; - } - else if(output < params->MIN) - { - output = params->MIN; - } - - //Update error - *_pre_error = error; - - return output; -} - -float AdvancedPIDAlgorithmCalculation(float _setPoint,float _mesuredParam , PID_Config_Params *params, float *_pre_error, float *_integral) -{ float error; float derivative; float output; @@ -70,7 +35,7 @@ float AdvancedPIDAlgorithmCalculation(float _setPoint,float _mesuredParam , PID_ return output; } - +/* float TestPIDAlgorithmCalculation(float _setPoint,float _mesuredParam , PID_Config_Params *params, float *_pre_error, float *_integral) { float error; @@ -81,14 +46,14 @@ float TestPIDAlgorithmCalculation(float _setPoint,float _mesuredParam , PID_Conf error = _setPoint - _mesuredParam; //ITerm+= (ki * error); *_integral = *_integral + (error*params->Ki); - /* if(ITerm > outMax) + /`* if(ITerm > outMax) { ITerm= outMax; } else if(ITerm < outMin) { ITerm= outMin; - } */ + } *`/ if(*_integral > params->MAX) { *_integral = params->MAX; @@ -100,7 +65,7 @@ float TestPIDAlgorithmCalculation(float _setPoint,float _mesuredParam , PID_Conf // double dInput = (input - lastInput); derivative = error - *_pre_error; - /*Compute PID Output*/ + /`*Compute PID Output*`/ // double output = kp * error + ITerm- kd * dInput; output = params->Kp*error/params->ProportionalErrorMultiplier + *_integral/params->IntegralErrorMultiplier + params->Kd*derivative; @@ -119,3 +84,4 @@ float TestPIDAlgorithmCalculation(float _setPoint,float _mesuredParam , PID_Conf return output; } +*/ diff --git a/Software/Embedded_SW/Embedded/Modules/Control/PIDAlgo.h b/Software/Embedded_SW/Embedded/Modules/Control/PIDAlgo.h index 4792be9ec..4f94f3612 100644 --- a/Software/Embedded_SW/Embedded/Modules/Control/PIDAlgo.h +++ b/Software/Embedded_SW/Embedded/Modules/Control/PIDAlgo.h @@ -17,6 +17,5 @@ typedef struct }PID_Config_Params; float PIDAlgorithmCalculation(float _setPoint,float _mesuredParam , PID_Config_Params *params, float *_pre_error, float *_integral); -float AdvancedPIDAlgorithmCalculation(float _setPoint,float _mesuredParam , PID_Config_Params *params, float *_pre_error, float *_integral); #endif /* MODULES_PIDALGO_H_ */ diff --git a/Software/Embedded_SW/Embedded/Modules/Control/control.c b/Software/Embedded_SW/Embedded/Modules/Control/control.c index b75e44001..0d73c9c93 100644 --- a/Software/Embedded_SW/Embedded/Modules/Control/control.c +++ b/Software/Embedded_SW/Embedded/Modules/Control/control.c @@ -181,9 +181,12 @@ uint32_t ControlActivityLed( uint32_t Parameter1) { FPGA_WD_Occurred = false; AlarmHandlingSetAlarm(EVENT_TYPE__FPGA_WATCHDOG_ACTIVATED,true); - JobEndReason = JOB_MOTOR_ALARM; - SendJobProgress(0.0,0,false, "Hardware Failure Error"); - AbortJob("FPGA Watchdog Error"); + if (JobIsActive()) + { + JobEndReason = JOB_MOTOR_ALARM; + SendJobProgress(0.0,0,false, "Hardware Failure Error"); + AbortJob("FPGA Watchdog Error"); + } ReportWithPackageFilter(FPGAFilter, "FPGA Watchdog Error",__FILE__,__LINE__,0,RpError, 0,0); ACTIVITY_GREEN_LED_ON; |
