diff options
| author | Avi Levkovich <avi@twine-s.com> | 2020-11-22 11:31:17 +0200 |
|---|---|---|
| committer | Avi Levkovich <avi@twine-s.com> | 2020-11-22 11:31:17 +0200 |
| commit | 712a01ddb6ba8e226d6532cdb834ad8e8b521cd5 (patch) | |
| tree | d3f6744f637743fbe338ba7e68d627be1437f500 /Software/Embedded_SW | |
| parent | 58d96d90f9422d390658d328d4f6eb3b86d168fa (diff) | |
| parent | a5776d0c00f131ec71b5e0300a0282b224530b0d (diff) | |
| download | Tango-712a01ddb6ba8e226d6532cdb834ad8e8b521cd5.tar.gz Tango-712a01ddb6ba8e226d6532cdb834ad8e8b521cd5.zip | |
merge conflict
Diffstat (limited to 'Software/Embedded_SW')
15 files changed, 174 insertions, 69 deletions
diff --git a/Software/Embedded_SW/Embedded/Common/Utilities/ustdlib.c b/Software/Embedded_SW/Embedded/Common/Utilities/ustdlib.c index 420e1dbc3..749152b2e 100644 --- a/Software/Embedded_SW/Embedded/Common/Utilities/ustdlib.c +++ b/Software/Embedded_SW/Embedded/Common/Utilities/ustdlib.c @@ -819,7 +819,7 @@ usnprintf(char * restrict s, size_t n, const char * restrict format, ...) // // Call vsnprintf to perform the conversion. // - ret = uvsnprintf(s, n, format, arg); + ret = vsnprintf(s, n, format, arg); // // End the varargs processing. diff --git a/Software/Embedded_SW/Embedded/Communication/Connection.c b/Software/Embedded_SW/Embedded/Communication/Connection.c index 72108eeea..5396938fd 100644 --- a/Software/Embedded_SW/Embedded/Communication/Connection.c +++ b/Software/Embedded_SW/Embedded/Communication/Connection.c @@ -53,6 +53,7 @@ void StopRecurringReports(void) PowerUpStopReporting(); MachineUpdateStopReporting(); PowerDownStopReporting(); + HomingStopReporting(); KeepAliveActive = false; } @@ -159,6 +160,7 @@ void DisconnectionRequest(MessageContainer* requestContainer) DiagnosticsStop(); JobStopReporting(); AlarmHandlingStop(); + HomingStopReporting(); //UART_ResetBuffers(); //------------------------------------------------------------------------------------------- uint8_t* container_buffer = my_malloc(message_container__get_packed_size(&responseContainer)); diff --git a/Software/Embedded_SW/Embedded/DataDef.h b/Software/Embedded_SW/Embedded/DataDef.h index 3cd3969be..9f13f65ce 100644 --- a/Software/Embedded_SW/Embedded/DataDef.h +++ b/Software/Embedded_SW/Embedded/DataDef.h @@ -659,7 +659,6 @@ Supports diagnostic <id> (--diag_suppress, - pds) #define HEAD6_PT100 TEMP_SENSE_AN_ENCLOSURETEMP3 #define MIXER_PT100 TEMP_SENSE_ANALOG_MIXCHIP_TEMP -//#define LUBRICANT_DISPENSER 7 #ifdef LIGHT_COLORS #define LUBRICANT_DISPENSER 9 #define CLEANER_DISPENSER 9 diff --git a/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/WHS_Card/IO_Extender_Ports_TCA9555/WHS_IO.c b/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/WHS_Card/IO_Extender_Ports_TCA9555/WHS_IO.c index 3e36d3bba..ea45c89fe 100644 --- a/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/WHS_Card/IO_Extender_Ports_TCA9555/WHS_IO.c +++ b/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/WHS_Card/IO_Extender_Ports_TCA9555/WHS_IO.c @@ -689,7 +689,7 @@ bool WHS_Control_blub(bool value) } else { - #warning Add warning message + LOG_ERROR (WHS_HW_Ver, "wrong whs hw version"); status = ERROR; } diff --git a/Software/Embedded_SW/Embedded/Modules/Control/MillisecTask.c b/Software/Embedded_SW/Embedded/Modules/Control/MillisecTask.c index 5f6cdf1c6..8beab771d 100644 --- a/Software/Embedded_SW/Embedded/Modules/Control/MillisecTask.c +++ b/Software/Embedded_SW/Embedded/Modules/Control/MillisecTask.c @@ -540,7 +540,8 @@ int MillisecCalculateTemperatures (TEMPERATURE_SENSOR_ID_ENUM SensorId) TemperatureSum[SensorId]-=TemperatureMax[SensorId]; TemperatureSum[SensorId]-=TemperatureMin[SensorId]; calc = TemperatureSum[SensorId] / (TemperatureCount[SensorId]-2); - + if (abs(TemperatureMax[SensorId]-TemperatureMin[SensorId])>2000) + Report("Millisec Temp spike",__FILE__,SensorId,(int)TemperatureMax[SensorId],RpWarning,(int) TemperatureMin[SensorId],0); TemperatureSum[SensorId] = 0; TemperatureCount[SensorId] = 0; TemperatureMin[SensorId] = 30000; diff --git a/Software/Embedded_SW/Embedded/Modules/Diagnostics/Diagnostics.c b/Software/Embedded_SW/Embedded/Modules/Diagnostics/Diagnostics.c index 4122955b3..11a48b587 100644 --- a/Software/Embedded_SW/Embedded/Modules/Diagnostics/Diagnostics.c +++ b/Software/Embedded_SW/Embedded/Modules/Diagnostics/Diagnostics.c @@ -545,7 +545,7 @@ void CopyTemperaturesToMonitor(void) headblowervoltage2 = HeadBlowersGetRPM(HEAD_FAN_LEFT); DiagnosticsMonitor.headblowervoltage1 = &headblowervoltage1; DiagnosticsMonitor.headblowervoltage2 = &headblowervoltage2; -#warning machine to machine test +//#warning machine to machine test DiagnosticsMonitor.headzone4temperature = HeaterTemperature[HEATER_TYPE__HeaterZone4]; DiagnosticsMonitor.headzone9temperature = diff --git a/Software/Embedded_SW/Embedded/Modules/Diagnostics/Diagnostics.h b/Software/Embedded_SW/Embedded/Modules/Diagnostics/Diagnostics.h index 7ec1962f3..e0afad820 100644 --- a/Software/Embedded_SW/Embedded/Modules/Diagnostics/Diagnostics.h +++ b/Software/Embedded_SW/Embedded/Modules/Diagnostics/Diagnostics.h @@ -54,6 +54,7 @@ uint32_t SetBlowerStateRequestFunc(MessageContainer* requestContainer); void DiaglosticChangeBlowerData(); +void HomingStopReporting(void); diff --git a/Software/Embedded_SW/Embedded/Modules/Diagnostics/DiagnosticsHoming.c b/Software/Embedded_SW/Embedded/Modules/Diagnostics/DiagnosticsHoming.c index 9a14cd1b8..086525bc1 100644 --- a/Software/Embedded_SW/Embedded/Modules/Diagnostics/DiagnosticsHoming.c +++ b/Software/Embedded_SW/Embedded/Modules/Diagnostics/DiagnosticsHoming.c @@ -46,6 +46,16 @@ uint32_t Diagnostics_Dryer_UnLoading(void); uint32_t Diagnostics_Dryer_Loading(void); int kval_upper_value; +void HomingStopReporting(void) +{ + int i; + for (i = 0; i< NUM_OF_MOTORS;i++) + { + HomingToken[i][0] == 0; + } + LOG_ERROR(0,"HomingStopReporting"); +} + /******************************************************************************** * Motor Homing ********************************************************************************/ diff --git a/Software/Embedded_SW/Embedded/Modules/Heaters/Heaters_Blowers.c b/Software/Embedded_SW/Embedded/Modules/Heaters/Heaters_Blowers.c index 5134e97aa..946958a08 100644 --- a/Software/Embedded_SW/Embedded/Modules/Heaters/Heaters_Blowers.c +++ b/Software/Embedded_SW/Embedded/Modules/Heaters/Heaters_Blowers.c @@ -212,108 +212,148 @@ uint32_t HeadBlowersOffGet() ReportWithPackageFilter(HeatersFilter,"HeadBlowersOffGet",__FILE__,__LINE__,HeadBlowersEnable,RpError, 0,0); return HeadBlowersEnable; } +static int8_t count1 = 0, count2 = 0, count3 = 0, count4 = 0, count5 = 0; +static int8_t count6 = 0, count7 = 0, count8 = 0, count9 = 0, count10 = 0; +void setArcHeadAlarms(uint32_t AlarmId, bool value) +{ + AlarmHandlingSetAlarm(AlarmId, value); + if (value == true) + { + switch(AlarmId) + { + /*case EVENT_TYPE__DYEING_HEAD_ARC_LID_IS_OPEN: + ReportWithPackageFilter(HeatersFilter,"ArcHeadAlarms on",__FILE__,AlarmId,count9,RpError, 0,0); + break; + case EVENT_TYPE__DYEING_HEAD_TUNNEL_LID_IS_OPEN: + ReportWithPackageFilter(HeatersFilter,"ArcHeadAlarms on",__FILE__,AlarmId,count9,RpError, 0,0); + break; + case EVENT_TYPE__DYEING_HEAD_BLOWER_1_FAN_STOPPED: + ReportWithPackageFilter(HeatersFilter,"ArcHeadAlarms on",__FILE__,AlarmId,count9,RpError, 0,0); + break; + case EVENT_TYPE__DYEING_HEAD_BLOWER_2_FAN_STOPPED: + ReportWithPackageFilter(HeatersFilter,"ArcHeadAlarms on",__FILE__,AlarmId,count9,RpError, 0,0); + break;*/ + case EVENT_TYPE__DYEING_HEAD_BLOWER_1_FAN_RPM_TOO_LOW: + ReportWithPackageFilter(HeatersFilter,"ArcHeadAlarms on",__FILE__,AlarmId,count3,RpError, HeadBlowersGetRPM(HEAD_FAN_RIGHT),0); + break; + case EVENT_TYPE__DYEING_HEAD_BLOWER_2_FAN_RPM_TOO_LOW: + ReportWithPackageFilter(HeatersFilter,"ArcHeadAlarms on",__FILE__,AlarmId,count4,RpError, HeadBlowersGetRPM(HEAD_FAN_LEFT),0); + break; + case EVENT_TYPE__DYEING_HEAD_BLOWER_1_FLOW_TOO_HIGH: + ReportWithPackageFilter(HeatersFilter,"ArcHeadAlarms on",__FILE__,AlarmId,count5,RpError, PressureSensorGetPressure(HEAD_FAN_RIGHT),0); + break; + case EVENT_TYPE__DYEING_HEAD_BLOWER_2_FLOW_TOO_HIGH: + ReportWithPackageFilter(HeatersFilter,"ArcHeadAlarms on",__FILE__,AlarmId,count7,RpError, PressureSensorGetPressure(HEAD_FAN_LEFT),0); + break; + case EVENT_TYPE__DYEING_HEAD_BLOWER_1_FLOW_TOO_LOW: + ReportWithPackageFilter(HeatersFilter,"ArcHeadAlarms on",__FILE__,AlarmId,count6,RpError, PressureSensorGetPressure(HEAD_FAN_RIGHT),0); + break; + case EVENT_TYPE__DYEING_HEAD_BLOWER_2_FLOW_TOO_LOW: + ReportWithPackageFilter(HeatersFilter,"ArcHeadAlarms on",__FILE__,AlarmId,count8,RpError, PressureSensorGetPressure(HEAD_FAN_LEFT),0); + break; + } + } +} void ArcHeadAlarms(void) { double currentFlow = 0.0; - static int8_t count1 = 0, count2 = 0, count3 = 0, count4 = 0, count5 = 0; - static int8_t count6 = 0, count7 = 0, count8 = 0, count9 = 0, count10 = 0; if (FPGA_Read_limit_Switches(I2C_HEADCARD_COVER_LS_ARC) != LIMIT) { if (++count9 == ARC_ALARM_LIMIT) - AlarmHandlingSetAlarm(EVENT_TYPE__DYEING_HEAD_ARC_LID_IS_OPEN, true); + setArcHeadAlarms(EVENT_TYPE__DYEING_HEAD_ARC_LID_IS_OPEN, true); count9 = (count9 > ARC_ALARM_LIMIT)?(ARC_ALARM_LIMIT):(count9); } else { if (--count9 == 0) - AlarmHandlingSetAlarm(EVENT_TYPE__DYEING_HEAD_ARC_LID_IS_OPEN, false); + setArcHeadAlarms(EVENT_TYPE__DYEING_HEAD_ARC_LID_IS_OPEN, false); count9 = (count9 < 0)?(0):(count9); } if (FPGA_Read_limit_Switches(I2C_HEADCARD_COVER_LS_TUNNEL_ARC) != LIMIT) { if (++count10 == ARC_ALARM_LIMIT) - AlarmHandlingSetAlarm(EVENT_TYPE__DYEING_HEAD_TUNNEL_LID_IS_OPEN, true); + setArcHeadAlarms(EVENT_TYPE__DYEING_HEAD_TUNNEL_LID_IS_OPEN, true); count10 = (count10 > ARC_ALARM_LIMIT)?(ARC_ALARM_LIMIT):(count10); } else { if (--count10 == 0) - AlarmHandlingSetAlarm(EVENT_TYPE__DYEING_HEAD_TUNNEL_LID_IS_OPEN, false); + setArcHeadAlarms(EVENT_TYPE__DYEING_HEAD_TUNNEL_LID_IS_OPEN, false); count10 = (count10 < 0)?(0):(count10); } if (Head_Fan_Tach[0] == 0x1FFE) { if (++count1 == ARC_ALARM_LIMIT) - AlarmHandlingSetAlarm(EVENT_TYPE__DYEING_HEAD_BLOWER_1_FAN_STOPPED, true); + setArcHeadAlarms(EVENT_TYPE__DYEING_HEAD_BLOWER_1_FAN_STOPPED, true); count1 = (count1 > ARC_ALARM_LIMIT)?(ARC_ALARM_LIMIT):(count1); } else { if (--count1 == 0) - AlarmHandlingSetAlarm(EVENT_TYPE__DYEING_HEAD_BLOWER_1_FAN_STOPPED, false); + setArcHeadAlarms(EVENT_TYPE__DYEING_HEAD_BLOWER_1_FAN_STOPPED, false); count1 = (count1 < 0)?(0):(count1); } if (Head_Fan_Tach[1] == 0x1FFE) { if (++count2 == ARC_ALARM_LIMIT) - AlarmHandlingSetAlarm(EVENT_TYPE__DYEING_HEAD_BLOWER_2_FAN_STOPPED, true); + setArcHeadAlarms(EVENT_TYPE__DYEING_HEAD_BLOWER_2_FAN_STOPPED, true); count2 = (count2 > ARC_ALARM_LIMIT)?(ARC_ALARM_LIMIT):(count2); } else { if (--count2 == 0) - AlarmHandlingSetAlarm(EVENT_TYPE__DYEING_HEAD_BLOWER_2_FAN_STOPPED, false); + setArcHeadAlarms(EVENT_TYPE__DYEING_HEAD_BLOWER_2_FAN_STOPPED, false); count2 = (count2 < 0)?(0):(count2); } if (HeadBlowersGetRPM(HEAD_FAN_RIGHT) < 2000) { if (++count3 == ARC_ALARM_LIMIT) - AlarmHandlingSetAlarm(EVENT_TYPE__DYEING_HEAD_BLOWER_1_FAN_RPM_TOO_LOW, true); + setArcHeadAlarms(EVENT_TYPE__DYEING_HEAD_BLOWER_1_FAN_RPM_TOO_LOW, true); count3 = (count3 > ARC_ALARM_LIMIT)?(ARC_ALARM_LIMIT):(count3); } else { if (--count3 == 0) - AlarmHandlingSetAlarm(EVENT_TYPE__DYEING_HEAD_BLOWER_1_FAN_RPM_TOO_LOW, false); + setArcHeadAlarms(EVENT_TYPE__DYEING_HEAD_BLOWER_1_FAN_RPM_TOO_LOW, false); count3 = (count3 < 0)?(0):(count3); } if (HeadBlowersGetRPM(HEAD_FAN_LEFT) < 2000) { if (++count4 == ARC_ALARM_LIMIT) - AlarmHandlingSetAlarm(EVENT_TYPE__DYEING_HEAD_BLOWER_2_FAN_RPM_TOO_LOW, true); + setArcHeadAlarms(EVENT_TYPE__DYEING_HEAD_BLOWER_2_FAN_RPM_TOO_LOW, true); count4 = (count4 > ARC_ALARM_LIMIT)?(ARC_ALARM_LIMIT):(count4); } else { if (--count4 == 0) - AlarmHandlingSetAlarm(EVENT_TYPE__DYEING_HEAD_BLOWER_2_FAN_RPM_TOO_LOW, false); + setArcHeadAlarms(EVENT_TYPE__DYEING_HEAD_BLOWER_2_FAN_RPM_TOO_LOW, false); count4 = (count4 < 0)?(0):(count4); } currentFlow = PressureSensorGetPressure(HEAD_FAN_RIGHT); if (currentFlow > 5.0) { if (++count5 == ARC_ALARM_LIMIT) - AlarmHandlingSetAlarm(EVENT_TYPE__DYEING_HEAD_BLOWER_1_FLOW_TOO_HIGH, true); + setArcHeadAlarms(EVENT_TYPE__DYEING_HEAD_BLOWER_1_FLOW_TOO_HIGH, true); count5 = (count5 > ARC_ALARM_LIMIT)?(ARC_ALARM_LIMIT):(count5); } else { if (--count5 == 0) - AlarmHandlingSetAlarm(EVENT_TYPE__DYEING_HEAD_BLOWER_1_FLOW_TOO_HIGH, false); + setArcHeadAlarms(EVENT_TYPE__DYEING_HEAD_BLOWER_1_FLOW_TOO_HIGH, false); count5 = (count5 < 0)?(0):(count5); } if (currentFlow < 1.0) { if (++count6 == ARC_ALARM_LIMIT) - AlarmHandlingSetAlarm(EVENT_TYPE__DYEING_HEAD_BLOWER_1_FLOW_TOO_LOW, true); + setArcHeadAlarms(EVENT_TYPE__DYEING_HEAD_BLOWER_1_FLOW_TOO_LOW, true); count6 = (count6 > ARC_ALARM_LIMIT)?(ARC_ALARM_LIMIT):(count6); } else { if (--count6 == 0) - AlarmHandlingSetAlarm(EVENT_TYPE__DYEING_HEAD_BLOWER_1_FLOW_TOO_LOW, false); + setArcHeadAlarms(EVENT_TYPE__DYEING_HEAD_BLOWER_1_FLOW_TOO_LOW, false); count6 = (count6 < 0)?(0):(count6); } currentFlow = PressureSensorGetPressure(HEAD_FAN_LEFT); if (currentFlow > 5.0) { if (++count7 == ARC_ALARM_LIMIT) - AlarmHandlingSetAlarm(EVENT_TYPE__DYEING_HEAD_BLOWER_2_FLOW_TOO_HIGH, true); + setArcHeadAlarms(EVENT_TYPE__DYEING_HEAD_BLOWER_2_FLOW_TOO_HIGH, true); count7 = (count7 > ARC_ALARM_LIMIT)?(ARC_ALARM_LIMIT):(count7); } else { if (--count7 == 0) - AlarmHandlingSetAlarm(EVENT_TYPE__DYEING_HEAD_BLOWER_2_FLOW_TOO_HIGH, false); + setArcHeadAlarms(EVENT_TYPE__DYEING_HEAD_BLOWER_2_FLOW_TOO_HIGH, false); count7 = (count7 < 0)?(0):(count7); } if (currentFlow < 1.0) { if (++count8 == ARC_ALARM_LIMIT) - AlarmHandlingSetAlarm(EVENT_TYPE__DYEING_HEAD_BLOWER_2_FLOW_TOO_LOW, true); + setArcHeadAlarms(EVENT_TYPE__DYEING_HEAD_BLOWER_2_FLOW_TOO_LOW, true); count8 = (count8 > ARC_ALARM_LIMIT)?(ARC_ALARM_LIMIT):(count8); } else { if (--count8 == 0) - AlarmHandlingSetAlarm(EVENT_TYPE__DYEING_HEAD_BLOWER_2_FLOW_TOO_LOW, false); + setArcHeadAlarms(EVENT_TYPE__DYEING_HEAD_BLOWER_2_FLOW_TOO_LOW, false); count8 = (count8 < 0)?(0):(count8); } } diff --git a/Software/Embedded_SW/Embedded/Modules/Heaters/Heaters_print.c b/Software/Embedded_SW/Embedded/Modules/Heaters/Heaters_print.c index 84013add6..def9c5530 100644 --- a/Software/Embedded_SW/Embedded/Modules/Heaters/Heaters_print.c +++ b/Software/Embedded_SW/Embedded/Modules/Heaters/Heaters_print.c @@ -1053,7 +1053,7 @@ uint32_t HeaterMaxTempCBFunction(uint32_t IfIndex, uint32_t readValue) } if (abs(readValue - HeaterPreviousRead[index])>2000) { - ReportWithPackageFilter(HeatersFilter,"Temperature Spike",__FILE__,index,HeaterPreviousRead[index],RpWarning,readValue, index); + ReportWithPackageFilter(HeatersFilter,"Temperature Spike AC",__FILE__,index,HeaterPreviousRead[index],RpWarning,readValue, index); #ifdef IGNORE_SPIKE HeaterPreviousRead[index] = readValue; #else @@ -1345,18 +1345,18 @@ uint32_t HeaterControlCBFunction(uint32_t IfIndex, uint32_t readValue) DeActivateHeater(HEATER_TYPE__DryerMainHeater); HeaterRecalculateSharedHeatersParams(HEATER_TYPE__DryerMainHeater,0); HeaterRecalculateSharedHeatersParams(HEATER_TYPE__DryerSecondaryHeater,0); - if (HeaterSpikeRead[index] == 0) - { - HeaterSpikeRead[index] = readValue; - } - else - { - ReportWithPackageFilter(HeatersFilter,"restoring read Temperature Spike",__FILE__,index,HeaterPreviousRead[index],RpWarning,HeaterSpikeRead[index], index); - HeaterPreviousRead[index] = HeaterSpikeRead[index]; - HeaterSpikeRead[index] = 0; - } - } + if (HeaterSpikeRead[index] == 0) + { + HeaterSpikeRead[index] = readValue; + } + else + { + ReportWithPackageFilter(HeatersFilter,"restoring read Temperature Spike",__FILE__,index,HeaterPreviousRead[index],RpWarning,HeaterSpikeRead[index], index); + HeaterPreviousRead[index] = HeaterSpikeRead[index]; + HeaterSpikeRead[index] = 0; + } + return ERROR; #endif } @@ -1580,20 +1580,20 @@ uint32_t DCHeaterControlCBFunction(uint32_t IfIndex, uint32_t readValue) #ifdef IGNORE_SPIKE HeaterPreviousRead[index] = readValue; #else - //if (readValue > HeaterCmd[index].targettemperatue) + if (readValue > HeaterCmd[index].targettemperatue) { DeActivateHeater(index); HeaterRecalculateHeaterParams(index, 0); - if (HeaterSpikeRead[index] == 0) - { - HeaterSpikeRead[index] = readValue; - } - else - { - ReportWithPackageFilter(HeatersFilter,"restoring read Temperature Spike",__FILE__,index,HeaterPreviousRead[index],RpWarning,HeaterSpikeRead[index], index); - HeaterPreviousRead[index] = HeaterSpikeRead[index]; - HeaterSpikeRead[index] = 0; - } + } + if (HeaterSpikeRead[index] == 0) + { + HeaterSpikeRead[index] = readValue; + } + else + { + ReportWithPackageFilter(HeatersFilter,"restoring read Temperature Spike",__FILE__,index,HeaterPreviousRead[index],RpWarning,HeaterSpikeRead[index], index); + HeaterPreviousRead[index] = HeaterSpikeRead[index]; + HeaterSpikeRead[index] = 0; } #endif } diff --git a/Software/Embedded_SW/Embedded/Modules/IDS/IDS_Cleaning.c b/Software/Embedded_SW/Embedded/Modules/IDS/IDS_Cleaning.c index 0ae017c13..59b9a56be 100644 --- a/Software/Embedded_SW/Embedded/Modules/IDS/IDS_Cleaning.c +++ b/Software/Embedded_SW/Embedded/Modules/IDS/IDS_Cleaning.c @@ -107,6 +107,16 @@ uint32_t IDS_Cleaning_Move_Actuators() CleaningStageCounter++; return OK; } + +uint32_t IDS_Cleaning_stop_cleaner_motor() +{ + TimerMotors_t MotorId = HARDWARE_MOTOR_TYPE__MOTO_DH_LID; + if (Head_Type != HEAD_TYPE_ARC) + return OK; + + MotorStop(MotorId,Soft_Stop); + return OK; +} /*uint32_t IDS_Cleaning_Move_Rockers (int LeftRockerSpeed,int RightRockerSpeed) { uint32_t status = OK; diff --git a/Software/Embedded_SW/Embedded/Modules/IDS/IDS_ex.h b/Software/Embedded_SW/Embedded/Modules/IDS/IDS_ex.h index 57d3ff5e2..0a8060496 100644 --- a/Software/Embedded_SW/Embedded/Modules/IDS/IDS_ex.h +++ b/Software/Embedded_SW/Embedded/Modules/IDS/IDS_ex.h @@ -118,5 +118,6 @@ void DispenserDataRequestFunc(MessageContainer* requestContainer); void IDS_Start_Pid_Testing(int DispenserId); void IDS_Stop_Pid_Testing(int DispenserId); uint32_t cleaningMotorCBFunction (uint32_t deviceID, uint32_t Parameter1); +uint32_t IDS_Cleaning_stop_cleaner_motor(); #endif /* MODULES_IDS_IDS_EX_H_ */ diff --git a/Software/Embedded_SW/Embedded/Modules/IDS/IDS_print.c b/Software/Embedded_SW/Embedded/Modules/IDS/IDS_print.c index 367b36e38..a28d00a91 100644 --- a/Software/Embedded_SW/Embedded/Modules/IDS/IDS_print.c +++ b/Software/Embedded_SW/Embedded/Modules/IDS/IDS_print.c @@ -250,6 +250,7 @@ JobDescriptionFileBrushStop *FirstBrushStop = NULL; DispenserUsedInJob[Dispenser_i] = false; } n_segments = 0; +#ifndef LIGHT_COLORS if (MotorsCfg[DispenserIdToMotorId[CLEANER_DISPENSER]].hardwaremotortype == DispenserIdToMotorId[CLEANER_DISPENSER]) { DispenserUsedInJob[CLEANER_DISPENSER] = true; @@ -260,7 +261,7 @@ JobDescriptionFileBrushStop *FirstBrushStop = NULL; DispenserUsedInJob[CLEANER_DISPENSER] = false; EnableCleaning = false; } - +#endif if (JobTicket->enablelubrication == true) { //DispenserUsedInJob[LUBRICANT_DISPENSER] = true; @@ -521,7 +522,20 @@ uint32_t InactiveDispenserHome(uint32_t DispenserId, uint32_t ReadValue) char IdMessage[100]; int SegmentPrepareWFCFCounter = 0; bool pressureReady = false,endOfPrepareWCF = false; - +int BuildIdsJobPrintString(char *dest,char *desc, int info) +{ + int len = 0,i; + int DispenserSpeed[MAX_SYSTEM_DISPENSERS] = {0,0,0,0,0,0,0,0}; + if (dest == NULL) + return 0; + for (i = 0; i<MAX_SYSTEM_DISPENSERS; i++) + { + if (DispenserUsedInJob[i]) + DispenserSpeed[i] = CurrentDispenserSpeed[i]; + } + len = usnprintf(dest, 80,"%s %d K %d,C %d,M %d,Y %d,TI %d",desc,(int)info,DispenserSpeed[0],DispenserSpeed[1],DispenserSpeed[2],DispenserSpeed[3],DispenserSpeed[4]); + return len; +} bool AdjustDispenserSpeedToPressure(int DispenserId, double RefMaxPressure,double pressure) { TimerMotors_t HW_Motor_Id = DispenserIdToMotorId[DispenserId]; @@ -616,6 +630,7 @@ bool AdjustDispenserSpeedToPressure(int DispenserId, double RefMaxPressure,doubl else DispenserReady[i] = true; } +#ifndef LIGHT_COLORS pressure = GetDispenserPressure(CLEANER_DISPENSER); if (pressure > 0.02) { @@ -625,7 +640,7 @@ bool AdjustDispenserSpeedToPressure(int DispenserId, double RefMaxPressure,doubl ReportWithPackageFilter(IDSFilter,"IDS stop cleaner",__FILE__,CLEANER_DISPENSER,(int)(pressure*100),RpWarning,(int)CurrentDispenserSpeed[CLEANER_DISPENSER] ,0); CurrentDispenserSpeed[CLEANER_DISPENSER] = 0; } - +#endif if ((NumofReadyDispensers)&&(DispenserBuildTimeCounter%1000 == 0)) { ReportWithPackageFilter(IDSFilter,"IDS_Prepare_Callback",__FILE__,DispenserBuildTimeCounter,NumofReadyDispensers,RpWarning,(int)NumOfActiveDispensers,0); @@ -737,9 +752,10 @@ bool AdjustDispenserSpeedToPressure(int DispenserId, double RefMaxPressure,doubl } } }//for - usnprintf(IdMessage, 80,"WFCF %d K %d,C %d,M %d,Y %d,TI %d",WFCF,CurrentDispenserSpeed[0], - CurrentDispenserSpeed[1],CurrentDispenserSpeed[2],CurrentDispenserSpeed[3],CurrentDispenserSpeed[4]); - ReportWithPackageFilter(IDSFilter,IdMessage, __FILE__, __LINE__, DispenserBuildTimeCounter, RpWarning, WFCF, 0); + //usnprintf(IdMessage, 80,"WFCF %d K %d,C %d,M %d,Y %d,TI %d",WFCF,CurrentDispenserSpeed[0], + // CurrentDispenserSpeed[1],CurrentDispenserSpeed[2],CurrentDispenserSpeed[3],CurrentDispenserSpeed[4]); + if (BuildIdsJobPrintString(IdMessage,"WFCF ",WFCF)) + ReportWithPackageFilter(IDSFilter,IdMessage, __FILE__, __LINE__, DispenserBuildTimeCounter, RpWarning, WFCF, 0); }//if n_dis } @@ -761,6 +777,7 @@ bool AdjustDispenserSpeedToPressure(int DispenserId, double RefMaxPressure,doubl //start new stage if (endOfPrepareWCF == true) { +#ifndef LIGHT_COLORS if (CurrentDispenserSpeed[CLEANER_DISPENSER]) { HW_Motor_Id = DispenserIdToMotorId[CLEANER_DISPENSER]; @@ -768,6 +785,7 @@ bool AdjustDispenserSpeedToPressure(int DispenserId, double RefMaxPressure,doubl CurrentDispenserSpeed[CLEANER_DISPENSER] = 0; ReportWithPackageFilter(IDSFilter,"IDS stop cleaner",__FILE__,CLEANER_DISPENSER,(int)(pressure*100),RpWarning,(int)CurrentDispenserSpeed[CLEANER_DISPENSER] ,0); } +#endif SafeRemoveControlCallback(DispenserPrepareControlId, IDS_Prepare_Callback ); DispenserPrepareControlId = 0xFF; ReportWithPackageFilter(IDSFilter,"IDS_Prepare_Callback SafeRemoveControlCallback",__FILE__,DispenserBuildTimeCounter,NumofReadyDispensers,RpWarning,(int)NumOfActiveDispensers,0); @@ -885,6 +903,7 @@ bool AdjustDispenserSpeedToPressure(int DispenserId, double RefMaxPressure,doubl } else { + DispenserTotalPrepareSteps[i] = 0; if (AutoHoming_Config >= AutoHoming_JobEnd_PowerOn_off) { if ((HomingActive[i] == false)&&(PrimingActive[i] == false)) @@ -941,11 +960,12 @@ bool AdjustDispenserSpeedToPressure(int DispenserId, double RefMaxPressure,doubl }*/ } } +#ifndef LIGHT_COLORS TimerMotors_t HW_Motor_Id = DispenserIdToMotorId[CLEANER_DISPENSER]; MotorSetSpeed((TimerMotors_t)HW_Motor_Id,INITIAL_CLEANER_SPEED ); //set the dispenser to the CurrentDispenserSpeed[CLEANER_DISPENSER] = INITIAL_CLEANER_SPEED; ReportWithPackageFilter(IDSFilter,"IDS start cleaner",__FILE__,CLEANER_DISPENSER,(int)(GetDispenserPressure(CLEANER_DISPENSER)*100),RpWarning,(int)CurrentDispenserSpeed[CLEANER_DISPENSER] ,0); - +#endif } DispenserBuildTimeCounter = 0; @@ -1088,9 +1108,10 @@ bool AdjustDispenserSpeedToPressure(int DispenserId, double RefMaxPressure,doubl } } }//for - usnprintf(IdMessage, 80,"Presegment Prepare K %d,C %d,M %d,Y %d,TI %d",CurrentDispenserSpeed[0], - CurrentDispenserSpeed[1],CurrentDispenserSpeed[2],CurrentDispenserSpeed[3],CurrentDispenserSpeed[4]); - ReportWithPackageFilter(IDSFilter,IdMessage, __FILE__, __LINE__, Dispenser_i, RpWarning, segmentfirst_speed, 0); + //usnprintf(IdMessage, 80,"Presegment Prepare K %d,C %d,M %d,Y %d,TI %d",CurrentDispenserSpeed[0], + // CurrentDispenserSpeed[1],CurrentDispenserSpeed[2],CurrentDispenserSpeed[3],CurrentDispenserSpeed[4]); + if (BuildIdsJobPrintString(IdMessage,"Presegment Prepare ",0)) + ReportWithPackageFilter(IDSFilter,IdMessage, __FILE__, __LINE__, Dispenser_i, RpWarning, segmentfirst_speed, 0); DispenserBuildTimeCounter = 0; //DispenserPrepareControlId = AddControlCallback( IDS_PreSegmentPrepare_Callback, IDS_PRESEGMENT_TIME_STEP,TemplateDataReadCBFunction ,0, 0, 0 ); @@ -1176,8 +1197,10 @@ uint32_t IDS_Cleaning_Stop_Cleaning_Solution (callback_fptr callback); ReportWithPackageFilter(IDSFilter,"End of Pre-segment Handling",__FILE__,__LINE__,InterSegmentStepsCount,RpWarning,(int)lInterSegmentLength,0); //PreSegmentReady(Module_IDS,ModuleDone); SafeRemoveControlCallback(DispenserPreSegmentControlId,IDSPreSegmentStateCallbackRunner); +#ifndef LIGHT_COLORS if (CurrentDispenserSpeed[CLEANER_DISPENSER]>0) IDS_Cleaning_Stop_Cleaning_Solution (NULL); +#endif setRapidPressureRead(false); //if (JobEndSequence == true) // DistanceToSpoolReady(Module_IDS,ModuleDone); @@ -1290,9 +1313,10 @@ uint32_t IDS_Cleaning_Stop_Cleaning_Solution (callback_fptr callback); //SendJobProgress(0.0, 0, false, IdsMessage);*/ } }//for - usnprintf(IdMessage, 80,"Presegment WFCF %d K %d,C %d,M %d,Y %d,TI %d",WFCF,CurrentDispenserSpeed[0], - CurrentDispenserSpeed[1],CurrentDispenserSpeed[2],CurrentDispenserSpeed[3],CurrentDispenserSpeed[4]); - ReportWithPackageFilter(IDSFilter,IdMessage, __FILE__, __LINE__, FileBrushStop->index, RpWarning, lInterSegmentLength, 0); + //usnprintf(IdMessage, 80,"Presegment WFCF %d K %d,C %d,M %d,Y %d,TI %d",WFCF,CurrentDispenserSpeed[0], + // CurrentDispenserSpeed[1],CurrentDispenserSpeed[2],CurrentDispenserSpeed[3],CurrentDispenserSpeed[4]); + if (BuildIdsJobPrintString(IdMessage,"Presegment WFCF ",WFCF)) + ReportWithPackageFilter(IDSFilter,IdMessage, __FILE__, __LINE__, FileBrushStop->index, RpWarning, lInterSegmentLength, 0); } } //startDispensersAtSegmentSpeed*1=WFCFClenerSpray(speed); @@ -1617,9 +1641,10 @@ void IDS_StartBrushStop(int n_dispensers, JobDispenser** Dispensers) } } //for } - usnprintf(IdMessage, 80,"IDS_StartBrushStop %d/%d K %d,C %d,M %d,Y %d,TI %d",FileBrushStop->index,SegmentNumOfBrushStops,CurrentDispenserSpeed[0], - CurrentDispenserSpeed[1],CurrentDispenserSpeed[2],CurrentDispenserSpeed[3],CurrentDispenserSpeed[4]); - ReportWithPackageFilter(IDSFilter,IdMessage, __FILE__, SegmentNumOfBrushStops, FileBrushStop->index, RpWarning,(int)FileBrushStop->offsetmeters, 0); + //usnprintf(IdMessage, 80,"IDS_StartBrushStop %d/%d K %d,C %d,M %d,Y %d,TI %d",FileBrushStop->index,SegmentNumOfBrushStops,CurrentDispenserSpeed[0], + // CurrentDispenserSpeed[1],CurrentDispenserSpeed[2],CurrentDispenserSpeed[3],CurrentDispenserSpeed[4]); + if (BuildIdsJobPrintString(IdMessage,"IDS_StartBrushStop ",FileBrushStop->index)) + ReportWithPackageFilter(IDSFilter,IdMessage, __FILE__, SegmentNumOfBrushStops, FileBrushStop->index, RpWarning,(int)FileBrushStop->offsetmeters, 0); } uint32_t IDSBrushStopRestartCallback(uint32_t IfIndex, uint32_t readValue) @@ -1718,8 +1743,10 @@ uint32_t IDSSegmentState(void *SegmentDetails, int SegmentId) #else Valve_Set(VALVE_MIXCHIP_WASTECH, Mixer_Head); #endif +#ifndef LIGHT_COLORS if (CurrentDispenserSpeed[CLEANER_DISPENSER]>0) IDS_Cleaning_Stop_Cleaning_Solution(NULL); +#endif SegmentNumOfBrushStops = Segment->n_brushstops; BrushStopTime = Segment->length*1000/(double)SegmentNumOfBrushStops; //brushstop in meters //brushstop in millisecond BrushStopTime = ((BrushStopTime*100)/dyeingspeed);//brushstop in seconds @@ -1936,10 +1963,13 @@ uint32_t IDSSegmentState(void *SegmentDetails, int SegmentId) } } +#ifndef LIGHT_COLORS if (CurrentDispenserSpeed[CLEANER_DISPENSER]>0) IDS_Cleaning_Stop_Cleaning_Solution(NULL); - IDS_StopLubrication(); +#endif + IDS_StopLubrication(); Init_CleaningStageCounter();//set the counter before relocating + IDS_Cleaning_stop_cleaner_motor(); HeadCard_Actuators_Relocate(); return OK; } diff --git a/Software/Embedded_SW/Embedded/Software Release Notes.txt b/Software/Embedded_SW/Embedded/Software Release Notes.txt index 736f6e3be..9b3b4a919 100644 --- a/Software/Embedded_SW/Embedded/Software Release Notes.txt +++ b/Software/Embedded_SW/Embedded/Software Release Notes.txt @@ -1,3 +1,15 @@ +Embedded SW Release note - Version 1.5.2(3) - Pack 3 +============================================================= +tweaks to the loading arm reset function (thread load, PPC request) +main card EEPROM read fixed +Fans - support for new component (arc head and whs) +light colors preparation - suppressed +fix cleaning stop on job abort +Dancer middle point EEPROM support writing single dancer +Change spikes handling (fix taking the different temperature after 2 seconds +change and fix some arc head blowers alarm and logs + + Embedded SW Release note - Version 1.5.2(1) - Pack 3 ============================================================= Rebuild Flash file system on Initialization failure. diff --git a/Software/Embedded_SW/Embedded/StateMachines/Initialization/PowerOffSequence.c b/Software/Embedded_SW/Embedded/StateMachines/Initialization/PowerOffSequence.c index 3a0c94e27..b5ebdee17 100644 --- a/Software/Embedded_SW/Embedded/StateMachines/Initialization/PowerOffSequence.c +++ b/Software/Embedded_SW/Embedded/StateMachines/Initialization/PowerOffSequence.c @@ -275,9 +275,8 @@ uint32_t PowerOffHeatersOff(void) if (HandleProcessParameters(&ProcessParametersClear,false)!= OK) { LOG_ERROR (PowerOffMachineState, "Turn Off Heaters failed"); - //return ERROR; } - + HeadBlowersOff(1); PowerOffMachineState++; return OK; |
