aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Embedded_SW/Embedded/Modules/Control
diff options
context:
space:
mode:
authorVictoria Plitt <Victoria.Plitt@twine-s.com>2020-01-08 13:54:36 +0200
committerVictoria Plitt <Victoria.Plitt@twine-s.com>2020-01-08 13:54:36 +0200
commit9016d57f876a70952dda4419d68b568b586ef0ec (patch)
treed9985a59e28ccb36cee2d8cdf486ca524e59660b /Software/Embedded_SW/Embedded/Modules/Control
parent5a06b997b7ef29c566bad2bc65f927e9443c3888 (diff)
parentf070724e30040ae7cc3fada4c4492ed9e80f8106 (diff)
downloadTango-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')
-rw-r--r--Software/Embedded_SW/Embedded/Modules/Control/MillisecTask.c15
-rw-r--r--Software/Embedded_SW/Embedded/Modules/Control/PIDAlgo.c44
-rw-r--r--Software/Embedded_SW/Embedded/Modules/Control/PIDAlgo.h1
-rw-r--r--Software/Embedded_SW/Embedded/Modules/Control/control.c9
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;