From 89831e736d0262038a8aa7e0385ebdfe83d196c2 Mon Sep 17 00:00:00 2001 From: Shlomo Hecht Date: Tue, 4 Dec 2018 17:51:06 +0200 Subject: improved handling for alarms testing before job --- .../Embedded_SW/Embedded/Modules/AlarmHandling/AlarmHandling.c | 9 +++++---- .../Embedded_SW/Embedded/Modules/AlarmHandling/AlarmHandling.h | 4 +++- 2 files changed, 8 insertions(+), 5 deletions(-) (limited to 'Software/Embedded_SW/Embedded/Modules') diff --git a/Software/Embedded_SW/Embedded/Modules/AlarmHandling/AlarmHandling.c b/Software/Embedded_SW/Embedded/Modules/AlarmHandling/AlarmHandling.c index fc2fa7625..b7b018cdb 100644 --- a/Software/Embedded_SW/Embedded/Modules/AlarmHandling/AlarmHandling.c +++ b/Software/Embedded_SW/Embedded/Modules/AlarmHandling/AlarmHandling.c @@ -291,7 +291,7 @@ uint32_t AlarmHandlingConsequentActions(uint32_t AlarmId, DebugLogCategory Sever } return OK; } -uint32_t AlarmHandlingPrepareJob(void *CurrentJob) +JobEndReasonEnum AlarmHandlingPrepareJob(void *CurrentJob) { JobTicket* JobTicket = CurrentJob; bool DispenserInUse[MAX_SYSTEM_DISPENSERS] = {false,false,false,false,false,false,false,false}; @@ -301,7 +301,7 @@ uint32_t AlarmHandlingPrepareJob(void *CurrentJob) int Segment_i,Brush_i,Dispenser_i,DispenserId,Alarm_i,Heater_i,AlarmId=0; HeaterState HeaterState; - uint32_t status = OK; + JobEndReasonEnum status = JOB_OK; if (JobTicket->n_segments == 0) return OK; for (Segment_i=0;Segment_in_segments;Segment_i++) @@ -362,10 +362,11 @@ uint32_t AlarmHandlingPrepareJob(void *CurrentJob) if (status == ERROR) { JobEndReason = getEndReason(AlarmId); - AbortJob(AlarmItem[AlarmId].EventName); + //AbortJob(AlarmItem[AlarmId].EventName); + //PrepareReady(Module_Alarms,ModuleFail); Report(AlarmItem[AlarmId].EventName, __FILE__,__LINE__,AlarmId, RpMessage, DEBUG_LOG_CATEGORY__Error, 0); } - return status; + return JobEndReason; } /* diff --git a/Software/Embedded_SW/Embedded/Modules/AlarmHandling/AlarmHandling.h b/Software/Embedded_SW/Embedded/Modules/AlarmHandling/AlarmHandling.h index edce0d9cb..4f9db2fc1 100644 --- a/Software/Embedded_SW/Embedded/Modules/AlarmHandling/AlarmHandling.h +++ b/Software/Embedded_SW/Embedded/Modules/AlarmHandling/AlarmHandling.h @@ -7,6 +7,8 @@ #ifndef MODULES_ALARMHANDLING_ALARMHANDLING_H_ #define MODULES_ALARMHANDLING_ALARMHANDLING_H_ +#include "StateMachines/Printing/PrintingSTM.h" + uint32_t AlarmHandling_ControlTrigger(uint32_t IfIndex, uint32_t ReadValue); //uint32_t AlarmHandling_CalculateTemperatures(uint32_t SensorId, uint32_t Data); @@ -15,7 +17,7 @@ uint32_t AlarmHandlingStart(void); uint32_t AlarmHandlingStop(void); void AlarmHandlingSetAlarm(uint32_t AlarmId, bool Value); -uint32_t AlarmHandlingPrepareJob(void *CurrentJob); +JobEndReasonEnum AlarmHandlingPrepareJob(void *CurrentJob); uint32_t StartEventsNotificationRequestFunc(MessageContainer* requestContainer); uint32_t StopEventsNotificationRequestFunc(MessageContainer* requestContainer); uint32_t ResolveEventRequestFunc(MessageContainer* requestContainer); -- cgit v1.3.1 From 5857dfe132236690e5468387ae29937c6f7d154f Mon Sep 17 00:00:00 2001 From: Shlomo Hecht Date: Wed, 5 Dec 2018 09:56:56 +0200 Subject: Thread configurable ignore value --- Software/Embedded_SW/Embedded/Modules/Thread/Thread_print.c | 8 +++++--- Software/Embedded_SW/Embedded/StateMachines/Printing/JobSTM.c | 4 ++-- 2 files changed, 7 insertions(+), 5 deletions(-) (limited to 'Software/Embedded_SW/Embedded/Modules') diff --git a/Software/Embedded_SW/Embedded/Modules/Thread/Thread_print.c b/Software/Embedded_SW/Embedded/Modules/Thread/Thread_print.c index 6db7f616e..d925a4b4d 100644 --- a/Software/Embedded_SW/Embedded/Modules/Thread/Thread_print.c +++ b/Software/Embedded_SW/Embedded/Modules/Thread/Thread_print.c @@ -58,6 +58,7 @@ typedef struct float m_integral; float m_calculatedError; bool m_isReady; + uint32_t m_ingnoreValue; PID_Config_Params m_params; }MotorControlConfig_t; @@ -387,7 +388,7 @@ uint32_t ThreadControlCBFunction(uint32_t IfIndex, uint32_t ReadValue) if (ReadValue < 10) { MotorFailedSample[index]++; - REPORT_MSG(ReadValue, "Dancer value read too small."); + Report("Dancer value read too small.",__FILE__,__LINE__,DancerId,RpError,ReadValue,0); return OK; } if (ReadValue == 0x3FFF) @@ -469,7 +470,7 @@ uint32_t ThreadControlCBFunction(uint32_t IfIndex, uint32_t ReadValue) //KeepNormalizedError = NormalizedError; } calculated_speed = (1-MotorControlConfig[index].m_calculatedError)*OriginalMotorSpd_2PPS[index]; - if (abs(calculated_speed-CurrentControlledSpeed[index])>2) + if (abs(calculated_speed-CurrentControlledSpeed[index])> MotorControlConfig[index].m_ingnoreValue) { if (keepdata == true) { @@ -560,6 +561,7 @@ uint32_t ThreadEmptyCBFunction(uint32_t IfIndex, uint32_t ReadValue) MotorControlConfig[Motor_i].m_params.ProportionalErrorMultiplier = MotorsControl[Pid_Id].outputonoffhysteresisvalue; MotorControlConfig[Motor_i].m_params.epsilon = MotorsControl[Pid_Id].epsilon; MotorControlConfig[Motor_i].m_params.dt = MotorsControl[Pid_Id].controloutputtype; + MotorControlConfig[Motor_i].m_ingnoreValue = MotorsControl[Pid_Id].sensorcorrectionadjustment; // the minimal change required to change the motor speed in pulses MotorControlConfig[Motor_i].m_calculatedError = 0; MotorControlConfig[Motor_i].m_integral = 0; MotorControlConfig[Motor_i].m_isEnabled = true; @@ -783,7 +785,7 @@ char Endstr[150]; if (ControlIdtoMotorId[Motor_i] != 0xFF) { if(RemoveControlCallback(ControlIdtoMotorId[Motor_i],ThreadControlCBFunction) == OK) - ControlIdtoMotorId[Motor_i] == 0xFF; + ControlIdtoMotorId[Motor_i] = 0xFF; else LOG_ERROR (ControlIdtoMotorId[Motor_i],"Remove Control failed"); } diff --git a/Software/Embedded_SW/Embedded/StateMachines/Printing/JobSTM.c b/Software/Embedded_SW/Embedded/StateMachines/Printing/JobSTM.c index 07cbf8a6a..21911acd0 100644 --- a/Software/Embedded_SW/Embedded/StateMachines/Printing/JobSTM.c +++ b/Software/Embedded_SW/Embedded/StateMachines/Printing/JobSTM.c @@ -377,7 +377,7 @@ void ThreadJoggingRequestFunc(MessageContainer* requestContainer) if(request->speed) ProcessParametersCopy.dyeingspeed = request->speed; else - ProcessParametersCopy.dyeingspeed = 30; + ProcessParametersCopy.dyeingspeed = 40; if (HandleProcessParameters(&ProcessParametersCopy)!= OK) { status = FAILED; @@ -613,7 +613,7 @@ void JobRequestFunc(MessageContainer* requestContainer) else { status = FAILED; - error = ERROR_CODE__INVALID_PARAMETER; + error = JobError_to_ErrorCode[JobAlarmReason]; len = usnprintf(ErrorMsg, 100, "Existing alarms prevent running"); } } -- cgit v1.3.1 From 49abc5415f38bfd61a38d51b74a1594847bb49e7 Mon Sep 17 00:00:00 2001 From: Shlomo Hecht Date: Wed, 5 Dec 2018 10:21:59 +0200 Subject: Heater PID printing improved, for AC and Head1 only --- Software/Embedded_SW/Embedded/Common/SW_Info/SW_Info.c | 2 +- .../Embedded_SW/Embedded/Modules/Heaters/Heaters_print.c | 13 ++++++------- 2 files changed, 7 insertions(+), 8 deletions(-) (limited to 'Software/Embedded_SW/Embedded/Modules') diff --git a/Software/Embedded_SW/Embedded/Common/SW_Info/SW_Info.c b/Software/Embedded_SW/Embedded/Common/SW_Info/SW_Info.c index bc27771a2..c0649394b 100644 --- a/Software/Embedded_SW/Embedded/Common/SW_Info/SW_Info.c +++ b/Software/Embedded_SW/Embedded/Common/SW_Info/SW_Info.c @@ -20,7 +20,7 @@ typedef struct } TangoVersion_t; -TangoVersion_t _gTangoVersion = {001,001,005,001}; +TangoVersion_t _gTangoVersion = {001,001,005,003}; #define BUILD_DATE __DATE__ char Dat[50] = BUILD_DATE; char _gTangoName [MAX_STRING_LEN] = "Tango01 ";//d diff --git a/Software/Embedded_SW/Embedded/Modules/Heaters/Heaters_print.c b/Software/Embedded_SW/Embedded/Modules/Heaters/Heaters_print.c index 4f8edde02..3b3ac540a 100644 --- a/Software/Embedded_SW/Embedded/Modules/Heaters/Heaters_print.c +++ b/Software/Embedded_SW/Embedded/Modules/Heaters/Heaters_print.c @@ -474,7 +474,6 @@ uint32_t HeaterMaxTempCBFunction(uint32_t IfIndex, uint32_t readValue) return ERROR; } char ACheatstr[100]; -int printindex=0; uint32_t HeaterControlCBFunction(uint32_t IfIndex, uint32_t readValue) { int index=MAX_HEATERS_NUM; @@ -490,7 +489,6 @@ uint32_t HeaterControlCBFunction(uint32_t IfIndex, uint32_t readValue) LOG_ERROR (IfIndex, "Wrong Interface "); return 0xFFFFFFFF; } - if (printindex++>MAX_HEATERS_NUM)printindex=0; if (HeaterCmd[index].targettemperatue == 0) { DeActivateHeater(index); @@ -551,11 +549,10 @@ uint32_t HeaterControlCBFunction(uint32_t IfIndex, uint32_t readValue) //check only for the proportional band limits HeaterPIDConfig[index].m_calculatedError = PIDAlgorithmCalculation(HeaterPIDConfig[index].m_SetParam , HeaterPIDConfig[index].m_mesuredParam, &HeaterPIDConfig[index].m_params, &HeaterPIDConfig[index].m_preError, &HeaterPIDConfig[index].m_integral); - len = usnprintf(ACheatstr, 254, "ACD%d: Temp %d Integral %d Output %d ",index,(int)HeaterPIDConfig[index].m_mesuredParam ,(int)HeaterPIDConfig[index].m_integral,(int)HeaterPIDConfig[index].m_calculatedError); + len = usnprintf(ACheatstr, 254, "ACD Id, Temp , Integral, Output{ %d, %d ,%d, %d} ",index,(int)HeaterPIDConfig[index].m_mesuredParam ,(int)HeaterPIDConfig[index].m_integral,(int)HeaterPIDConfig[index].m_calculatedError); // Report(logmsg[index],__FILE__,__LINE__,index,RpWarning,index, Counter[index]); // #warning PID is now only proportional (above) - if (printindex==index) - Report(ACheatstr,__FILE__,__LINE__,index,RpWarning,readValue, HeaterPIDConfig[index].m_calculatedError); + Report(ACheatstr,__FILE__,__LINE__,index,RpWarning,readValue, HeaterPIDConfig[index].m_calculatedError); HeaterRecalculateSharedHeatersParams(HARDWARE_PID_CONTROL_TYPE__DryerHeaterMain, (int)(HeaterPIDConfig[index].m_calculatedError/100)); } } @@ -653,11 +650,13 @@ uint32_t DCHeaterControlCBFunction(uint32_t IfIndex, uint32_t readValue) // output[index][Counter[index]] = HeaterPIDConfig[index].m_calculatedError; // if (Counter[index]++ >=100) // Counter[index] = 0; - len = usnprintf(heatstr, 254, "PID%d: Temp %d Integral %d Output %d ",index,(int)HeaterPIDConfig[index].m_mesuredParam ,(int)HeaterPIDConfig[index].m_integral,(int)HeaterPIDConfig[index].m_calculatedError); // Report(logmsg[index],__FILE__,__LINE__,index,RpWarning,index, Counter[index]); // #warning PID is now only proportional (above) - if (printindex==index) + if (index == HARDWARE_PID_CONTROL_TYPE__HeadHeaterZ1) + { + len = usnprintf(heatstr, 254, "PID id, Temp, Integral, Output { %d, %d ,%d, %d}",index,(int)HeaterPIDConfig[index].m_mesuredParam ,(int)HeaterPIDConfig[index].m_integral,(int)HeaterPIDConfig[index].m_calculatedError); Report(heatstr,__FILE__,__LINE__,index,RpWarning,HeaterPIDConfig[index].m_calculatedError,0); + } HeaterRecalculateHeaterParams(index, (int)(HeaterPIDConfig[index].m_calculatedError/100)); } -- cgit v1.3.1 From ad0b15583a2e7cf939c27cf1641c5de0ebefa3c2 Mon Sep 17 00:00:00 2001 From: Shlomo Hecht Date: Wed, 5 Dec 2018 10:27:10 +0200 Subject: log fix --- Software/Embedded_SW/Embedded/Modules/Thread/Thread_print.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'Software/Embedded_SW/Embedded/Modules') diff --git a/Software/Embedded_SW/Embedded/Modules/Thread/Thread_print.c b/Software/Embedded_SW/Embedded/Modules/Thread/Thread_print.c index 6db7f616e..f66b1d9a4 100644 --- a/Software/Embedded_SW/Embedded/Modules/Thread/Thread_print.c +++ b/Software/Embedded_SW/Embedded/Modules/Thread/Thread_print.c @@ -768,7 +768,7 @@ char Endstr[150]; if (SpeedControlId != 0xFF) { if(RemoveControlCallback(SpeedControlId,ThreadLengthCBFunction)!=OK) - LOG_ERROR(Motor_i,"RemoveControl Failed"); + LOG_ERROR(SpeedControlId,"RemoveControl Failed"); SpeedControlId = 0xFF; } if (PoolerSpeedControlId != 0xFF) -- cgit v1.3.1