From f6b0a945f86ee91cebd2d6726c06db93cdad0934 Mon Sep 17 00:00:00 2001 From: Shai Frieder Date: Mon, 7 Oct 2019 13:10:29 +0300 Subject: fixed IFS WHS pump valve direction --- .../Embedded_SW/Embedded/Modules/General/GeneralHardware.c | 1 + Software/Embedded_SW/Embedded/Modules/Waste/Waste.h | 7 ++++++- Software/Embedded_SW/Embedded/Modules/Waste/Waste_init.c | 10 +++++----- 3 files changed, 12 insertions(+), 6 deletions(-) (limited to 'Software/Embedded_SW/Embedded/Modules') diff --git a/Software/Embedded_SW/Embedded/Modules/General/GeneralHardware.c b/Software/Embedded_SW/Embedded/Modules/General/GeneralHardware.c index 5b4074a52..061f6b3a3 100644 --- a/Software/Embedded_SW/Embedded/Modules/General/GeneralHardware.c +++ b/Software/Embedded_SW/Embedded/Modules/General/GeneralHardware.c @@ -145,6 +145,7 @@ uint32_t HWConfigurationInit(void) IDS_Dispenser_Content_Init(); //ProcessParamsInit(); Buttons_Init(); + WHS_init(); ADC_MUX_Init(); GeneralHwReady = true; diff --git a/Software/Embedded_SW/Embedded/Modules/Waste/Waste.h b/Software/Embedded_SW/Embedded/Modules/Waste/Waste.h index 9235acf48..a2b3cace2 100644 --- a/Software/Embedded_SW/Embedded/Modules/Waste/Waste.h +++ b/Software/Embedded_SW/Embedded/Modules/Waste/Waste.h @@ -124,6 +124,11 @@ typedef enum waste_cartridge2 } cartridge_name; +typedef enum +{ + VALVE_DIR_WAST_CARTRIDGE1 = 0, + VALVE_DIR_WAST_CARTRIDGE2 +} valve_cartridge_name; struct WHS_sensors_status @@ -162,7 +167,7 @@ struct WHS_information struct cartridge_params cartridge_1, cartridge_2; struct WHS_sensors_status WHS_sensors; struct pump_params WHS_pump; - bool WHS_valve; + valve_cartridge_name WHS_valve; WHS_sensor event; cartridge_name active_cartridge; uint32_t Cartridge_Ink_device_Id; diff --git a/Software/Embedded_SW/Embedded/Modules/Waste/Waste_init.c b/Software/Embedded_SW/Embedded/Modules/Waste/Waste_init.c index f22ce46ac..e854a817a 100644 --- a/Software/Embedded_SW/Embedded/Modules/Waste/Waste_init.c +++ b/Software/Embedded_SW/Embedded/Modules/Waste/Waste_init.c @@ -448,8 +448,8 @@ bool SetValveDirection() * */ bool ret = notOK; //if (WHS_info.WHS_valve != no_waste_cartridge) - if (WHS_info.active_cartridge == waste_cartridge1) WHS_info.WHS_valve = 1; - else WHS_info.WHS_valve = 2; + if (WHS_info.active_cartridge == waste_cartridge1) WHS_info.WHS_valve = VALVE_DIR_WAST_CARTRIDGE1; + else WHS_info.WHS_valve = VALVE_DIR_WAST_CARTRIDGE2; { Valve_Set(VALVE_WASTE_TANK, WHS_info.WHS_valve); ret = OK; @@ -463,10 +463,10 @@ bool SetValveDirection() U8 CartridgeWasteFilling(bool status) { bool ret = notOK; - + SetValveDirection(); if ((status == ON) && (WHS_info.active_cartridge != no_waste_cartridge)) { - Valve_Set(VALVE_WASTE_TANK, WHS_info.active_cartridge); //set the valve direction + //SetValveDirection();//Valve_Set(VALVE_WASTE_TANK, WHS_info.active_cartridge); //set the valve direction //Pannel_Leds(PANEL_BUTTON_OR_CRAT_ID Pannel_Led_Id, OPERATION_MODE LED_Mode); //set cartridge led color slow blink SetWastePump(OPEN); //WHS_info.WHS_pump.time = 0; @@ -476,7 +476,7 @@ U8 CartridgeWasteFilling(bool status) else // stop Waste cartridge filling { SetWastePump(CLOSE); - Valve_Set(VALVE_WASTE_TANK, waste_cartridge2); //set the valve direction set to low POWER !!! + //Valve_Set(VALVE_WASTE_TANK, VALVE_DIR_WAST_CARTRIDGE1); //set the valve direction set to low POWER !!! switch (WHS_info.active_cartridge) { -- cgit v1.3.1 From 35217ac6ffc06af7d23ea3f9359f0dd4f2decf6e Mon Sep 17 00:00:00 2001 From: Shai Frieder Date: Mon, 7 Oct 2019 17:58:21 +0300 Subject: fix power off 5 seconds add return error if no waste is in the IFS --- Software/Embedded_SW/Embedded/Modules/General/buttons.c | 9 +++++---- Software/Embedded_SW/Embedded/Modules/Waste/Waste_init.c | 15 ++++++++++++--- 2 files changed, 17 insertions(+), 7 deletions(-) (limited to 'Software/Embedded_SW/Embedded/Modules') diff --git a/Software/Embedded_SW/Embedded/Modules/General/buttons.c b/Software/Embedded_SW/Embedded/Modules/General/buttons.c index c979d3c1d..5b694de42 100644 --- a/Software/Embedded_SW/Embedded/Modules/General/buttons.c +++ b/Software/Embedded_SW/Embedded/Modules/General/buttons.c @@ -29,7 +29,9 @@ int PowerDown(); int PowerUp(); int thredJog(); - +#define BUTTONS_SAMPLE_TIME (eTenMillisecond*50) +#define SECOND2 (BUTTONS_SAMPLE_TIME*4) +#define SECOND5 (BUTTONS_SAMPLE_TIME*10) //enum PBstat OnOffPBstate = OFFPB; //enum PBstat ret @@ -149,7 +151,6 @@ uint32_t ButtonLoadCallBackFunction(uint32_t IfIndex, uint32_t ReadValue) //uint32_t AddControlCallback( ControlCBFunction Callback, CTRL_TIMING_ENUM CtrlFrequency, DataReadCBFunction DriverfPtr, uint16_t IfIndex, uint32_t Parameter1, uint32_t Parameter2 ); //Power_Reset()// Resets the MCU -#define BUTTONS_SAMPLE_TIME (eTenMillisecond*50) uint32_t Buttons_Init(void) { @@ -275,7 +276,7 @@ uint32_t ShortLongOffPB(uint8_t OnOffPB, button *pBtn) case COUNTPB: // last OnOffPBstate was COUNTPB if (OnOffPB) { - if( pBtn->count > 5 ) //5*50ms=250ms + if( pBtn->count > SECOND2 ) { pBtn->Action = SHORTPB ; REPORT_MSG(parameter," ------------ Start count PB Power ----------------- "); @@ -290,7 +291,7 @@ uint32_t ShortLongOffPB(uint8_t OnOffPB, button *pBtn) case SHORTPB: // last OnOffPBstate was SHORTPB if (OnOffPB) { - if (pBtn->count > 100) //5000ms + if (pBtn->count > SECOND5) { pBtn->Action = LONGPB ; REPORT_MSG(parameter," ------------ Long PB Power ----------------- "); diff --git a/Software/Embedded_SW/Embedded/Modules/Waste/Waste_init.c b/Software/Embedded_SW/Embedded/Modules/Waste/Waste_init.c index e854a817a..ce9b708c5 100644 --- a/Software/Embedded_SW/Embedded/Modules/Waste/Waste_init.c +++ b/Software/Embedded_SW/Embedded/Modules/Waste/Waste_init.c @@ -491,7 +491,9 @@ U8 CartridgeWasteFilling(bool status) REPORT_MSG(WHS_empty," ------------ WHS waste_cartridge2 is used please replace it ----------------- "); break; case no_waste_cartridge: - + REPORT_MSG(WHS_empty," ------------ !!!!!WHS No waste cartridge !!!!! ----------------- "); + REPORT_MSG(WHS_empty," ------------ !!!! WHS insert cartridge!!!! ----------------- "); + ret = ERROR; break; default: break; @@ -710,7 +712,14 @@ bool WasteTankCBFunction() /* if the machine status is power down : don't start the waste emptying sequence !!!*/ if ( PowerOffInProcessGetState() ) break; - + if ((WHS_info.WHS_sensors.cartridge_cover == OPEN) && (WHS_info.WHS_sensors.waste_tank_full_sensor == SENSORFULL)) + { + REPORT_MSG(WHS_emptying," ------------ WHS_full , cartridge cover is open cant start the pump!!!! ----------------- "); + REPORT_MSG(WHS_emptying," ------------ close the cartridge cover to start the pump!!!! ----------------- "); + //pump_on_flag = OPEN; + WHS_info.WHS_sensors.waste_tank_full_sensor = SENSORnotFULL; + break; + } if (WHS_info.WHS_sensors.waste_tank_full_sensor == SENSORFULL) { WHS_info.sttMachine = WHS_full; @@ -722,7 +731,7 @@ bool WasteTankCBFunction() ret = WrRFIDStatus(WHS_info.active_cartridge, WasteFilling);//write RFID status todo if (ret == OK) { - CartridgeWasteFilling(ON); + ret = CartridgeWasteFilling(ON); } else { -- cgit v1.3.1 From ea706238b6023018388e08dcdb779ea8e72f9970 Mon Sep 17 00:00:00 2001 From: Shai Frieder Date: Thu, 17 Oct 2019 16:16:07 +0300 Subject: power off button after 5sec at sample rate 100ms --- Software/Embedded_SW/Embedded/.cproject | 6 +++--- Software/Embedded_SW/Embedded/Modules/General/buttons.c | 6 +++--- Software/Embedded_SW/Embedded/Modules/IFS/ifs.h | 7 ++++--- 3 files changed, 10 insertions(+), 9 deletions(-) (limited to 'Software/Embedded_SW/Embedded/Modules') diff --git a/Software/Embedded_SW/Embedded/.cproject b/Software/Embedded_SW/Embedded/.cproject index b995119b0..ab125b40a 100644 --- a/Software/Embedded_SW/Embedded/.cproject +++ b/Software/Embedded_SW/Embedded/.cproject @@ -170,7 +170,7 @@ - + @@ -269,7 +269,7 @@ - + @@ -441,7 +441,7 @@ - + diff --git a/Software/Embedded_SW/Embedded/Modules/General/buttons.c b/Software/Embedded_SW/Embedded/Modules/General/buttons.c index 5b694de42..cd7873b18 100644 --- a/Software/Embedded_SW/Embedded/Modules/General/buttons.c +++ b/Software/Embedded_SW/Embedded/Modules/General/buttons.c @@ -29,9 +29,9 @@ int PowerDown(); int PowerUp(); int thredJog(); -#define BUTTONS_SAMPLE_TIME (eTenMillisecond*50) -#define SECOND2 (BUTTONS_SAMPLE_TIME*4) -#define SECOND5 (BUTTONS_SAMPLE_TIME*10) +#define BUTTONS_SAMPLE_TIME (eHundredMillisecond) +#define SECOND2 (2000/BUTTONS_SAMPLE_TIME) +#define SECOND5 (5000/BUTTONS_SAMPLE_TIME) //enum PBstat OnOffPBstate = OFFPB; //enum PBstat ret diff --git a/Software/Embedded_SW/Embedded/Modules/IFS/ifs.h b/Software/Embedded_SW/Embedded/Modules/IFS/ifs.h index f00ba7849..941220425 100644 --- a/Software/Embedded_SW/Embedded/Modules/IFS/ifs.h +++ b/Software/Embedded_SW/Embedded/Modules/IFS/ifs.h @@ -16,13 +16,14 @@ //void IFS_Init(void) #define SECONDS_5 5 /**< 5seconds */ #define SECONDS_300 300 /**< 300 seconds = 5 minutes */ +#define SECONDS_420 (7*60) /**< 420 seconds = 7 minutes */ #define SECONDS_600 600 /**< 600 seconds = 10 minutes */ #define SECONDS_2_DLY 0 /**< dly 0 seconds */ -#define CARTRIDGE_INK_TIMEOUT (SECONDS_300 / SECONDS_5) /**< TimeOut (5 minutes) for finishing transfer the Ink from Ink cartridge to MidTank */ -#define CARTRIDGE_INK_TIMEOUTx2 (SECONDS_600 / SECONDS_5) /**< TimeOut (5 minutes) for second try finishing transfer the Ink from Ink cartridge to MidTank */ +#define CARTRIDGE_INK_TIMEOUT (SECONDS_420 / SECONDS_5) /**< TimeOut (7 minutes) for finishing transfer the Ink from Ink cartridge to MidTank */ +#define CARTRIDGE_INK_TIMEOUTx2 (CARTRIDGE_INK_TIMEOUT * 2) /**< TimeOut (7 minutes) for second try finishing transfer the Ink from Ink cartridge to MidTank */ #define CartridgeInkTimeOutCallBackTime (eOneSecond * SECONDS_5) #define CartridgeInkCallBackTime eOneSecond -#define MidTank_Pressure_EMPTY 0.4 //todo get from Moti the correct number +#define MidTank_Pressure_EMPTY 0.3 //todo get from Moti the correct number (Oleg -> 300cc) #define CARTRIDGE_CAPATICY 1500 //todo get from Moti the correct number #define FULL 1000 //todo get from Moti the correct number -- cgit v1.3.1 From 694fca0ac0aa6e65cd17b0cf30a71214f14c0579 Mon Sep 17 00:00:00 2001 From: Shlomo Hecht Date: Fri, 18 Oct 2019 12:13:43 +0300 Subject: make chunk smaller (3500) due to rt problem. --- Software/Embedded_SW/Embedded/.cproject | 4 ++-- Software/Embedded_SW/Embedded/Common/SWUpdate/FileSystem.c | 2 +- Software/Embedded_SW/Embedded/Modules/General/GeneralHardware.c | 2 +- Software/Embedded_SW/Embedded/Modules/Waste/Waste.h | 4 ++-- Software/Embedded_SW/Embedded/Modules/Waste/Waste_init.c | 4 ++-- Software/Embedded_SW/Embedded/embeddedparametersbuild.cs | 4 ++-- 6 files changed, 10 insertions(+), 10 deletions(-) (limited to 'Software/Embedded_SW/Embedded/Modules') diff --git a/Software/Embedded_SW/Embedded/.cproject b/Software/Embedded_SW/Embedded/.cproject index ab125b40a..42646c2ff 100644 --- a/Software/Embedded_SW/Embedded/.cproject +++ b/Software/Embedded_SW/Embedded/.cproject @@ -269,7 +269,7 @@ - + @@ -441,7 +441,7 @@ - + diff --git a/Software/Embedded_SW/Embedded/Common/SWUpdate/FileSystem.c b/Software/Embedded_SW/Embedded/Common/SWUpdate/FileSystem.c index caad43712..6c019f150 100644 --- a/Software/Embedded_SW/Embedded/Common/SWUpdate/FileSystem.c +++ b/Software/Embedded_SW/Embedded/Common/SWUpdate/FileSystem.c @@ -53,7 +53,7 @@ FIL *UploadFileHandle = 0; //the system supports a single active file FIL *DownloadFileHandle = 0; //the system supports a single active file char FileHandleChar[5]; char ErrorMsg[100]; -#define MAX_CHUNK_LENGTH 5500 +#define MAX_CHUNK_LENGTH 3500 int32_t FileLength = 0; int32_t FileReceivedLength = 0; int32_t FileSentLength = 0; diff --git a/Software/Embedded_SW/Embedded/Modules/General/GeneralHardware.c b/Software/Embedded_SW/Embedded/Modules/General/GeneralHardware.c index 061f6b3a3..ce5a56c3d 100644 --- a/Software/Embedded_SW/Embedded/Modules/General/GeneralHardware.c +++ b/Software/Embedded_SW/Embedded/Modules/General/GeneralHardware.c @@ -145,7 +145,7 @@ uint32_t HWConfigurationInit(void) IDS_Dispenser_Content_Init(); //ProcessParamsInit(); Buttons_Init(); - WHS_init(); + WHS_init(); ADC_MUX_Init(); GeneralHwReady = true; diff --git a/Software/Embedded_SW/Embedded/Modules/Waste/Waste.h b/Software/Embedded_SW/Embedded/Modules/Waste/Waste.h index a2b3cace2..4518f0ded 100644 --- a/Software/Embedded_SW/Embedded/Modules/Waste/Waste.h +++ b/Software/Embedded_SW/Embedded/Modules/Waste/Waste.h @@ -126,8 +126,8 @@ typedef enum typedef enum { - VALVE_DIR_WAST_CARTRIDGE1 = 0, - VALVE_DIR_WAST_CARTRIDGE2 + VALVE_DIR_WASTE_CARTRIDGE1 = 0, + VALVE_DIR_WASTE_CARTRIDGE2 } valve_cartridge_name; diff --git a/Software/Embedded_SW/Embedded/Modules/Waste/Waste_init.c b/Software/Embedded_SW/Embedded/Modules/Waste/Waste_init.c index ce9b708c5..ddf1a5ee1 100644 --- a/Software/Embedded_SW/Embedded/Modules/Waste/Waste_init.c +++ b/Software/Embedded_SW/Embedded/Modules/Waste/Waste_init.c @@ -448,8 +448,8 @@ bool SetValveDirection() * */ bool ret = notOK; //if (WHS_info.WHS_valve != no_waste_cartridge) - if (WHS_info.active_cartridge == waste_cartridge1) WHS_info.WHS_valve = VALVE_DIR_WAST_CARTRIDGE1; - else WHS_info.WHS_valve = VALVE_DIR_WAST_CARTRIDGE2; + if (WHS_info.active_cartridge == waste_cartridge1) WHS_info.WHS_valve = VALVE_DIR_WASTE_CARTRIDGE1; + else WHS_info.WHS_valve = VALVE_DIR_WASTE_CARTRIDGE2; { Valve_Set(VALVE_WASTE_TANK, WHS_info.WHS_valve); ret = OK; diff --git a/Software/Embedded_SW/Embedded/embeddedparametersbuild.cs b/Software/Embedded_SW/Embedded/embeddedparametersbuild.cs index 75df79664..3b2ff042b 100644 --- a/Software/Embedded_SW/Embedded/embeddedparametersbuild.cs +++ b/Software/Embedded_SW/Embedded/embeddedparametersbuild.cs @@ -62,7 +62,7 @@ configurationParameters.DispenserPresegmentWFCF = 40; configurationParameters.IDSPreSegmentWFCFTimeBeforeSegment = 30000; //flag: start heaters according to saved process parameters upon init? -configurationParameters.StartHeatingOnInitSequence = true; +configurationParameters.StartHeatingOnInitSequence = false; // current test for the heaters - alarm thresholds configurationParameters.CurrentAlarmLowLimit = 0.80; @@ -123,7 +123,7 @@ configurationParameters.GeneralParameters.Add(SetDiagnosticMode); /*8*/ Double SetAutoFill = new Double(); -SetAutoFill = 3.0; +SetAutoFill = 0.0; configurationParameters.GeneralParameters.Add(SetAutoFill); File.WriteAllBytes("C:/temp/EmbParam.cfg",configurationParameters.ToBytes()); -- cgit v1.3.1 From 4ff274389b646716679910bbb53f1a5f59170611 Mon Sep 17 00:00:00 2001 From: Shlomo Hecht Date: Tue, 22 Oct 2019 16:31:24 +0300 Subject: fix heating bug and power down bug: heating - reduce milisec_low task priority to 4, because current reading takes too long. fix power down bug - dispenser Id missing --- .../Embedded_SW/Embedded/Common/Utilities/idle_task.c | 1 + .../Embedded/Modules/AlarmHandling/AlarmHandling.c | 17 +++++++++-------- .../Embedded/Modules/General/GeneralHardware.c | 2 +- .../Embedded/Modules/Heaters/Heaters_print.c | 1 + Software/Embedded_SW/Embedded/Modules/IDS/IDS_print.c | 5 +++-- .../Embedded/StateMachines/Printing/JobSTM.c | 1 + 6 files changed, 16 insertions(+), 11 deletions(-) (limited to 'Software/Embedded_SW/Embedded/Modules') diff --git a/Software/Embedded_SW/Embedded/Common/Utilities/idle_task.c b/Software/Embedded_SW/Embedded/Common/Utilities/idle_task.c index 3528884bb..437e06815 100644 --- a/Software/Embedded_SW/Embedded/Common/Utilities/idle_task.c +++ b/Software/Embedded_SW/Embedded/Common/Utilities/idle_task.c @@ -192,6 +192,7 @@ uint32_t unload_max_count=0; prev_load = current_load / 10; idle_load_table[load]++; if(load > max_load) max_load = load; + //REPORT_MSG(load,"Real time load"); #ifdef DEBUG printf("c_ld=%d\n",load); diff --git a/Software/Embedded_SW/Embedded/Modules/AlarmHandling/AlarmHandling.c b/Software/Embedded_SW/Embedded/Modules/AlarmHandling/AlarmHandling.c index ce388015a..c7a3a5e22 100644 --- a/Software/Embedded_SW/Embedded/Modules/AlarmHandling/AlarmHandling.c +++ b/Software/Embedded_SW/Embedded/Modules/AlarmHandling/AlarmHandling.c @@ -1122,7 +1122,7 @@ uint32_t AlarmHandlingLoop(uint32_t tick) valueN = value & MASKSYSTEMnotUSED; - if (valueR) + /*if (valueR) ReportWithPackageFilter(AlarmFilter,"----------- Right FAN System is not connected----------------", __FILE__,__LINE__,valueR, RpMessage, value, 0); else ReportWithPackageFilter(AlarmFilter,"----------- Right FAN System is connected----------------", __FILE__,__LINE__,valueR, RpMessage, value, 0); @@ -1134,7 +1134,7 @@ uint32_t AlarmHandlingLoop(uint32_t tick) ReportWithPackageFilter(AlarmFilter,"----------- middle FAN System is not connected----------------", __FILE__,__LINE__,valueN, RpMessage, value, 0); else ReportWithPackageFilter(AlarmFilter,"----------- middle FAN System is connected----------------", __FILE__,__LINE__,valueN, RpMessage, value, 0); - +*/ if ((value & MASKSYSTEMMIDDLE) > MACHINE_FANS_STOP) { Status = true; @@ -1150,7 +1150,7 @@ uint32_t AlarmHandlingLoop(uint32_t tick) drawer_small1 = value & MASKDRYERSMALL1; drawer_small2 = value & MASKDRYERSMALL2; drawer_small3 = value & MASKDRYERSMALL3; - +/* if (drawer_big) ReportWithPackageFilter(AlarmFilter,"----------- drawer_big FAN is not connected----------------", __FILE__,__LINE__,drawer_big, RpMessage, value, 0); else @@ -1172,7 +1172,8 @@ uint32_t AlarmHandlingLoop(uint32_t tick) ReportWithPackageFilter(AlarmFilter,"----------- drawer_small3 is not connected----------------", __FILE__,__LINE__,drawer_small3, RpMessage, value, 0); else ReportWithPackageFilter(AlarmFilter,"----------- drawer_small3 is connected----------------", __FILE__,__LINE__,drawer_small3, RpMessage, value, 0); - //if (AlarmItem[Alarm_i].AlarmDirection == UNDER_VALUE) + */ + if (AlarmItem[Alarm_i].AlarmDirection == UNDER_VALUE) { if (value > 0) { @@ -1182,7 +1183,7 @@ uint32_t AlarmHandlingLoop(uint32_t tick) } else if (AlarmItem[Alarm_i].Severity == DEBUG_LOG_CATEGORY__Warning ) { - ReportWithPackageFilter(AlarmFilter,"----------- need to add read RPM from fan----------------", __FILE__,__LINE__,drawer_big, RpMessage, value, 0); + // ReportWithPackageFilter(AlarmFilter,"----------- need to add read RPM from fan----------------", __FILE__,__LINE__,drawer_big, RpMessage, value, 0); } break; case DRYER_FAN : @@ -1191,20 +1192,20 @@ uint32_t AlarmHandlingLoop(uint32_t tick) if ((AlarmItem[Alarm_i].AlarmDirection == UNDER_VALUE) && (value == DRYER_FAN_STOP)) { Status = true; - ReportWithPackageFilter(AlarmFilter,"----------- DRYER FAN RPM Error----------------", __FILE__,__LINE__,0, RpMessage, value, 0); + //ReportWithPackageFilter(AlarmFilter,"----------- DRYER FAN RPM Error----------------", __FILE__,__LINE__,0, RpMessage, value, 0); } else if (AlarmItem[Alarm_i].Severity == DEBUG_LOG_CATEGORY__Warning) { if ((AlarmItem[Alarm_i].AlarmDirection == UNDER_VALUE) && (value < DRYER_FAN_MIN_RPM)) { Status = true; - ReportWithPackageFilter(AlarmFilter,"----------- DRYER FAN RPM Error----------------", __FILE__,__LINE__,0, RpMessage, value, 0); + //ReportWithPackageFilter(AlarmFilter,"----------- DRYER FAN RPM Error----------------", __FILE__,__LINE__,0, RpMessage, value, 0); } } break; } - ReportWithPackageFilter(AlarmFilter,"------------FANS_RPM[Alarm_i]----------------", __FILE__,__LINE__,Alarm_i, RpMessage, value, 0); + //ReportWithPackageFilter(AlarmFilter,"------------FANS_RPM[Alarm_i]----------------", __FILE__,__LINE__,Alarm_i, RpMessage, value, 0); if (AlarmItem[Alarm_i].Severity == DEBUG_LOG_CATEGORY__Critical ) { diff --git a/Software/Embedded_SW/Embedded/Modules/General/GeneralHardware.c b/Software/Embedded_SW/Embedded/Modules/General/GeneralHardware.c index ce5a56c3d..58d1e1c37 100644 --- a/Software/Embedded_SW/Embedded/Modules/General/GeneralHardware.c +++ b/Software/Embedded_SW/Embedded/Modules/General/GeneralHardware.c @@ -91,7 +91,7 @@ uint32_t HWConfigurationInit(void) uint32_t Bytes = 0; GeneralHwReady = false; - Control_WD(ENABLE,250); + //Control_WD(ENABLE,250); memcpy(&Bytes,(void *)GENHWCFG_MAP_IN_FLASH,sizeof(Bytes)); diff --git a/Software/Embedded_SW/Embedded/Modules/Heaters/Heaters_print.c b/Software/Embedded_SW/Embedded/Modules/Heaters/Heaters_print.c index 574cc2573..71e6cc5de 100644 --- a/Software/Embedded_SW/Embedded/Modules/Heaters/Heaters_print.c +++ b/Software/Embedded_SW/Embedded/Modules/Heaters/Heaters_print.c @@ -714,6 +714,7 @@ uint32_t PrepareHeater(int HeaterId, uint32_t SetTemperatue) } if (HeaterId >= MAX_AC_HEATERS) //DC Heaters { + ReportWithPackageFilter(HeatersFilter,"call PrepareDCHeater",__FILE__,HeaterId,Frequency,RpWarning,HeaterPIDConfig[HeaterId].m_params.dt, 0); if (PrepareDCHeater(HeaterId,Frequency,SetTemperatue)!=OK) return ERROR; } diff --git a/Software/Embedded_SW/Embedded/Modules/IDS/IDS_print.c b/Software/Embedded_SW/Embedded/Modules/IDS/IDS_print.c index 455b017de..0368f12b9 100644 --- a/Software/Embedded_SW/Embedded/Modules/IDS/IDS_print.c +++ b/Software/Embedded_SW/Embedded/Modules/IDS/IDS_print.c @@ -1465,7 +1465,7 @@ uint32_t IDSSegmentState(void *SegmentDetails, int SegmentId) { int i; DispenserDistanceToSpoolReady[deviceID] = true; - for (i=0;inanolitterpersecond = 10000; Tdispenser->nanoliterperpulse = 2.34; Tdispenser->dispenserstepdivision = DISPENSER_STEP_DIVISION__Auto; + Tdispenser->index = 4; //TI dispenser Ticket.segments[0] = TSegment; Ticket.segments[1] = TSegment; Tspool->backingrate = 32; -- cgit v1.3.1 From 785ddbf1014bbb91892a7c3fd28eab384e387ad4 Mon Sep 17 00:00:00 2001 From: Shlomo Hecht Date: Tue, 22 Oct 2019 17:35:38 +0300 Subject: fix power down cleaning job --- Software/Embedded_SW/Embedded/Modules/IDS/IDS_maint.c | 13 ++++++++++++- .../StateMachines/Initialization/PowerOffSequence.c | 19 +++++++++++++------ .../Embedded/StateMachines/Printing/JobSTM.c | 9 +++++++++ 3 files changed, 34 insertions(+), 7 deletions(-) (limited to 'Software/Embedded_SW/Embedded/Modules') diff --git a/Software/Embedded_SW/Embedded/Modules/IDS/IDS_maint.c b/Software/Embedded_SW/Embedded/Modules/IDS/IDS_maint.c index 3d89308f1..0d0e3a65b 100644 --- a/Software/Embedded_SW/Embedded/Modules/IDS/IDS_maint.c +++ b/Software/Embedded_SW/Embedded/Modules/IDS/IDS_maint.c @@ -205,6 +205,7 @@ uint32_t IDS_HomeDispenser (uint32_t DispenserId, uint32_t speed , callback_fptr //if (DispensersAlarmState[DispenserId] == true) // return ERROR; + double midTankContent = 0.0; if (FPGA_Read_limit_Switches(Dispenser_Id_to_LS_Id[DispenserId]) == LIMIT) { Report("IDS_HomeDispenser - Disp is full",__FILE__,Dispenser_Id_to_LS_Id[DispenserId],(int)DispenserId,RpWarning,LIMIT,0); @@ -248,7 +249,17 @@ uint32_t IDS_HomeDispenser (uint32_t DispenserId, uint32_t speed , callback_fptr //open dry air valve in the dispenser Valve_Set(IDS_Id_to_AirValve[DispenserId], Atm_MidTank_ON); Enable_MidTank_Pressure_Reading(DispenserId); - Read_MidTank_Pressure_Sensor(DispenserId); + SysCtlDelay(1200000); + midTankContent = Read_MidTank_Pressure_Sensor(DispenserId); + if (midTankContent < 0.2) //midtank is empty - abort!!!! + { + Report("IDS_HomeDispenser - Mid Tank Empty!!! ",__FILE__,__LINE__,(int)(midTankContent * 1000),RpWarning,DispenserId,0); + Valve_Set(IDS_Id_to_AirValve[DispenserId], Atm_MidTank_OFF); + STATUS_GREEN_LED_OFF; + STATUS_RED_LED_ON; + + return ERROR; + } IDS_Dispenser_RefillStarted(DispenserId,1); MotorMovetoLimitSwitch (MotorId,1-MotorsCfg[MotorId].directionthreadwize, speed, Dispenser_Id_to_LS_Id[DispenserId], IDS_HomeDispenserCallback,0); diff --git a/Software/Embedded_SW/Embedded/StateMachines/Initialization/PowerOffSequence.c b/Software/Embedded_SW/Embedded/StateMachines/Initialization/PowerOffSequence.c index 8c0065b60..1922078c6 100644 --- a/Software/Embedded_SW/Embedded/StateMachines/Initialization/PowerOffSequence.c +++ b/Software/Embedded_SW/Embedded/StateMachines/Initialization/PowerOffSequence.c @@ -125,14 +125,21 @@ uint32_t PowerOffHeadClean(void) //TBD if (AutoHoming_Config >= AutoHoming_PowerOff ) AutoHoming_Config = AutoHoming_JobEnd_PowerOn_off; - ThreadCleaningJobFunc(50); - if (PowerOffHeadCleanControlId != 0xFF) + if (ThreadCleaningJobFunc(40) == OK) { - RemoveControlCallback(PowerOffHeadCleanControlId, PowerOffHeadCleanCallback ); - PowerOffHeadCleanControlId = 0xFF; - //return ERROR; + if (PowerOffHeadCleanControlId != 0xFF) + { + RemoveControlCallback(PowerOffHeadCleanControlId, PowerOffHeadCleanCallback ); + PowerOffHeadCleanControlId = 0xFF; + //return ERROR; + } + PowerOffHeadCleanControlId = AddControlCallback( PowerOffHeadCleanCallback,eOneSecond , TemplateDataReadCBFunction,0,0, 0 ); + } + else + { + LOG_ERROR(0,"Clean job failed"); + PowerOffMachineState++; } - PowerOffHeadCleanControlId = AddControlCallback( PowerOffHeadCleanCallback,eOneSecond , TemplateDataReadCBFunction,0,0, 0 ); // if ( PowerOffHeadCleanControlId == 0xFF) // return ERROR; diff --git a/Software/Embedded_SW/Embedded/StateMachines/Printing/JobSTM.c b/Software/Embedded_SW/Embedded/StateMachines/Printing/JobSTM.c index eb7ee773d..33438d3a2 100644 --- a/Software/Embedded_SW/Embedded/StateMachines/Printing/JobSTM.c +++ b/Software/Embedded_SW/Embedded/StateMachines/Printing/JobSTM.c @@ -420,6 +420,7 @@ uint32_t ThreadJoggingFunc(int speed) uint32_t ThreadCleaningJobFunc(int speed) { ProcessParameters ProcessParametersCopy; + JobEndReasonEnum JobAlarmReason = JOB_OK; uint32_t status = OK; if (JobIsActive() == true) { @@ -454,6 +455,7 @@ uint32_t ThreadCleaningJobFunc(int speed) ProcessParametersCopy.dyeingspeed = 40; if (HandleProcessParameters(&ProcessParametersCopy)!= OK) { + LOG_ERROR(FAILED,"Jog HandleProcessParameters"); status = FAILED; } else @@ -492,6 +494,13 @@ uint32_t ThreadCleaningJobFunc(int speed) Tspool->rotationsperpassage = 3.1415926*2; Ticket.spool = Tspool; CurrentJob = &Ticket; + JobAlarmReason = AlarmHandlingPrepareJob(CurrentJob); + if (JobAlarmReason !=OK) + { + LOG_ERROR(JobAlarmReason,"Jog JobAlarmReason"); + return ERROR; + } + InternalWindingConfigMessage(Tspool); StartJob(&Ticket); } -- cgit v1.3.1 From ffbbc56bd5935cc4cb65e635c7360735578952fe Mon Sep 17 00:00:00 2001 From: Shlomo Hecht Date: Tue, 22 Oct 2019 17:56:36 +0300 Subject: winder avg --- Software/Embedded_SW/Embedded/Modules/IDS/IDS_maint.c | 2 +- Software/Embedded_SW/Embedded/Modules/Thread/Thread_Winder.c | 9 ++++++--- 2 files changed, 7 insertions(+), 4 deletions(-) (limited to 'Software/Embedded_SW/Embedded/Modules') diff --git a/Software/Embedded_SW/Embedded/Modules/IDS/IDS_maint.c b/Software/Embedded_SW/Embedded/Modules/IDS/IDS_maint.c index 0d0e3a65b..1302d262a 100644 --- a/Software/Embedded_SW/Embedded/Modules/IDS/IDS_maint.c +++ b/Software/Embedded_SW/Embedded/Modules/IDS/IDS_maint.c @@ -303,7 +303,7 @@ uint32_t IDS_StopHomeDispenser (uint32_t DispenserId) if ((HomingActive[DispenserId] == false)&&( PrimingActive[DispenserId] == false)) { LOG_ERROR (DispenserId,"Homing not active"); - return ERROR; + return OK; } TimerMotors_t MotorId = (DispenserId)+HARDWARE_MOTOR_TYPE__MOTO_DISPENSER_1; diff --git a/Software/Embedded_SW/Embedded/Modules/Thread/Thread_Winder.c b/Software/Embedded_SW/Embedded/Modules/Thread/Thread_Winder.c index bf0f361fd..9d57cd29f 100644 --- a/Software/Embedded_SW/Embedded/Modules/Thread/Thread_Winder.c +++ b/Software/Embedded_SW/Embedded/Modules/Thread/Thread_Winder.c @@ -47,6 +47,7 @@ uint32_t CalculationDirectionChangeCounter = 1; //holds the current number of ru double WinderMotorSpeed[MAX_WINDER_SPEED_CALCULATION]; uint16_t WinderMotorSpeedCounter = 0; bool WinderMotorSpeedRollOver = false; +int StartWinderCalculation = 0; #define DEFAULT_SCREW_SPEED 1200 double ScrewSpeed = DEFAULT_SCREW_SPEED; double ScrewRunningTime = 0; @@ -127,7 +128,7 @@ uint32_t Winder_Prepare(void *JobDetails) //float process_speed = JobTicket->processparameters->dyeingspeed; double ScrewSpeed = DEFAULT_SCREW_SPEED;//(process_speed*MotorsCfg[HARDWARE_MOTOR_TYPE__MOTO_SCREW].pulleyradius); // we will use pulley radius of the screw for this purpose, as of now WinderMotorSpeedRollOver=false; - + StartWinderCalculation = 0; //MotorSetMaxSpeed (HARDWARE_MOTOR_TYPE__MOTO_SCREW,InternalWinderCfg.segmentoffsetpulses); //REPORT_MSG(ScrewSpeed, "Winder_Prepare"); /* @@ -299,7 +300,7 @@ uint32_t Screw100msecDirectionChange(uint32_t deviceID, uint32_t BusyFlag) if (WinderMotorSpeedRollOver == false) { Add100 = true; - LOG_ERROR(Add100, "Add100 = true"); + //LOG_ERROR(Add100, "Add100 = true"); } // WinderMotorSpeedCounter=0; } @@ -327,7 +328,9 @@ uint32_t Screw100msecDirectionChange(uint32_t deviceID, uint32_t BusyFlag) #ifdef READ_SCREW_ENCODER int WinderRun; WinderRun = abs(ScrewLocationRun[1] - ScrewLocationRun[0]); - if ((WinderRun < 30000)&&(WinderMotorSpeedRollOver == true)) + if (WinderMotorSpeedRollOver == true) + StartWinderCalculation++; + if ((WinderRun < 30000)&&(StartWinderCalculation >= 2)) { WinderRunSamples++; WinderRunSum+=WinderRun; -- cgit v1.3.1