From b51e6204dba42b3b664a9b9ddbc6d268e0ec3bff Mon Sep 17 00:00:00 2001 From: Shlomo Hecht Date: Thu, 27 Feb 2020 13:54:57 +0200 Subject: Version 1.4.6.14 - new RML --- Software/Embedded_SW/Embedded/Modules/Thread/ThreadLoad.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'Software/Embedded_SW/Embedded/Modules/Thread/ThreadLoad.c') diff --git a/Software/Embedded_SW/Embedded/Modules/Thread/ThreadLoad.c b/Software/Embedded_SW/Embedded/Modules/Thread/ThreadLoad.c index 128564586..eeb0051f5 100644 --- a/Software/Embedded_SW/Embedded/Modules/Thread/ThreadLoad.c +++ b/Software/Embedded_SW/Embedded/Modules/Thread/ThreadLoad.c @@ -186,8 +186,10 @@ ProcessParametersClear.headzone10temp = 0; ProcessParametersClear.headzone11temp = 0; ProcessParametersClear.headzone12temp = 0; - ProcessParametersClear.stspzone1temp = 0; - ProcessParametersClear.stspzone2temp = 0; + ProcessParametersClear.rblowertemp = 0; + ProcessParametersClear.lblowertemp = 0; + ProcessParametersClear.rblowerflow = 0; + ProcessParametersClear.lblowerflow = 0; ProcessParametersClear.dyeingspeed = 40; ProcessParametersClear.dryerbufferlength = ProcessParametersKeep.dryerbufferlength; if (HandleProcessParameters(&ProcessParametersClear,false)!= OK) -- cgit v1.3.1 From 98848a96f592588748e37624ba09b5fae19921a4 Mon Sep 17 00:00:00 2001 From: Shlomo Hecht Date: Wed, 4 Mar 2020 12:16:51 +0200 Subject: set head type to sylko until fixed. set the WHS blower setpoint in SW --- Software/Embedded_SW/Embedded/Drivers/FPGA/FPGA_GPIO/FPGA_GPIO.c | 2 +- .../Drivers/I2C_Communication/Head_Card/PT100/Head_PT100_ADC.c | 1 + .../I2C_Communication/WHS_Card/D_Max5805_ADC_Blower/WHS_Blower.c | 1 + Software/Embedded_SW/Embedded/Modules/General/process.c | 4 +++- Software/Embedded_SW/Embedded/Modules/Heaters/Heaters_print.c | 6 +++--- Software/Embedded_SW/Embedded/Modules/Thread/ThreadLoad.c | 2 +- .../Embedded/StateMachines/Initialization/InitSequence.c | 5 ++++- .../Embedded_SW/Embedded/StateMachines/Initialization/PowerIdle.c | 2 +- .../Embedded/StateMachines/Initialization/PowerOffSequence.c | 2 +- 9 files changed, 16 insertions(+), 9 deletions(-) (limited to 'Software/Embedded_SW/Embedded/Modules/Thread/ThreadLoad.c') diff --git a/Software/Embedded_SW/Embedded/Drivers/FPGA/FPGA_GPIO/FPGA_GPIO.c b/Software/Embedded_SW/Embedded/Drivers/FPGA/FPGA_GPIO/FPGA_GPIO.c index 3cd60123a..2d3763ede 100644 --- a/Software/Embedded_SW/Embedded/Drivers/FPGA/FPGA_GPIO/FPGA_GPIO.c +++ b/Software/Embedded_SW/Embedded/Drivers/FPGA/FPGA_GPIO/FPGA_GPIO.c @@ -580,7 +580,7 @@ uint32_t DeActivateHeadMagnet() MotorGoTo(HARDWARE_MOTOR_TYPE__MOTO_RLOADARM,DH_LID_OPEN ); //MotorGotoWithCallback(HARDWARE_MOTOR_TYPE__MOTO_RLOADARM, DH_LID_OPEN, Motor_Id_to_LS_IdDown[HARDWARE_MOTOR_TYPE__MOTO_RLOADARM], NULL,1000); } - MagnetControlId = AddControlCallback(NULL, MagnetCallBackFunction, 2* eOneSecond, TemplateDataReadCBFunction,0,0, 0 ); + //MagnetControlId = AddControlCallback(NULL, MagnetCallBackFunction, 2* eOneSecond, TemplateDataReadCBFunction,0,0, 0 ); Task_sleep(500); return OK; } diff --git a/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/Head_Card/PT100/Head_PT100_ADC.c b/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/Head_Card/PT100/Head_PT100_ADC.c index 626c4ab7b..f08ea772a 100644 --- a/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/Head_Card/PT100/Head_PT100_ADC.c +++ b/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/Head_Card/PT100/Head_PT100_ADC.c @@ -891,6 +891,7 @@ uint32_t Detect_Head_PT100_Faults(TEMPERATURE_SENSOR_ID_ENUM SensorId) } } + Head_Type = HEAD_TYPE_SYLKO; //FOR NOW return Head_Type; } diff --git a/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/WHS_Card/D_Max5805_ADC_Blower/WHS_Blower.c b/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/WHS_Card/D_Max5805_ADC_Blower/WHS_Blower.c index d38784a9e..eaad047e1 100644 --- a/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/WHS_Card/D_Max5805_ADC_Blower/WHS_Blower.c +++ b/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/WHS_Card/D_Max5805_ADC_Blower/WHS_Blower.c @@ -414,6 +414,7 @@ void WHS_Set_SetPoint_Q_value(double value) { SetPoint_Q = value; CofigurationFlow = 0; + WHS_Start_Blower_Control_Closed_Loop(); } void WHS_enable_control_loop(bool value) // 0=disable 1= enable diff --git a/Software/Embedded_SW/Embedded/Modules/General/process.c b/Software/Embedded_SW/Embedded/Modules/General/process.c index 166ba0d88..da9070201 100644 --- a/Software/Embedded_SW/Embedded/Modules/General/process.c +++ b/Software/Embedded_SW/Embedded/Modules/General/process.c @@ -121,6 +121,7 @@ uint32_t HandleProcessParameters(ProcessParameters* ProcessParams,bool saveData) REPORT_MSG(Bytes,"Bytes write to flash"); } } + if (ProcessParams->mixertemp>1) status |= HeaterCommandRequestMessage(HARDWARE_PID_CONTROL_TYPE__MixerHeater, true,ProcessParams->mixertemp); else @@ -263,7 +264,8 @@ uint32_t HandleProcessParameters(ProcessParameters* ProcessParams,bool saveData) dryerbufferMeters = dryerbufferlength*0.76+0.9; dryerbufferCentimeters = dryerbufferlength*76+90; - Report("drier buffer length",__FILE__,(int)dryerbufferlength,(int)dryerbufferMeters*100,RpWarning,(int)dryerbufferCentimeters,0); + //Report("drier buffer length",__FILE__,(int)dryerbufferlength,(int)dryerbufferMeters*100,RpWarning,(int)dryerbufferCentimeters,0); + ReportWithPackageFilter(InitFilter,"HandleProcessParameters Head type",__FILE__,(int)__LINE__,(int)Head_Type,RpWarning,(int)dryerbufferCentimeters,0); mininkuptake = ProcessParams->mininkuptake; feedertension = ProcessParams->feedertension; diff --git a/Software/Embedded_SW/Embedded/Modules/Heaters/Heaters_print.c b/Software/Embedded_SW/Embedded/Modules/Heaters/Heaters_print.c index d36d9d0c5..66f965d15 100644 --- a/Software/Embedded_SW/Embedded/Modules/Heaters/Heaters_print.c +++ b/Software/Embedded_SW/Embedded/Modules/Heaters/Heaters_print.c @@ -24,6 +24,7 @@ #include "../control/pidalgo.h" #include "../control/MillisecTask.h" #include "../Ids/Ids_ex.h" +#include "../General/process.h" #include #include @@ -699,13 +700,12 @@ void PrepareACHeater(int HeaterId,uint32_t Frequency, uint32_t SetTemperatue) HeaterAtTemp[HeaterId] = false; if (BlowerCfg.enabled == true) { - //WHS_Start_Blower_Control_Closed_Loop(2.5); Turn_the_Blower_On();//Turn on with the Default_Voltage if (BlowerCfg.heatingvoltage) Control_Voltage_To_Blower(BlowerCfg.heatingvoltage); else Control_Voltage_To_Blower(BlowerCfg.voltage-500); - + WHS_Set_SetPoint_Q_value(headairflow/2); } if (SetTemperatue) { @@ -1177,11 +1177,11 @@ uint32_t HeaterControlCBFunction(uint32_t IfIndex, uint32_t readValue) AlarmHandlingSetAlarm(HeaterUnderEventType[index], false); if (BlowerCfg.enabled == true) { - //WHS_Start_Blower_Control_Closed_Loop(5.0); Turn_the_Blower_On();//Turn on with the Default_Voltage if (BlowerCfg.voltage) //Gradual_Increase_Blower(BlowerCfg.heatingvoltage,BlowerCfg.voltage); Control_Voltage_To_Blower(BlowerCfg.voltage); + WHS_Set_SetPoint_Q_value(headairflow); } HeaterReady[index] = true; //Disable_Reading_Heaters_Current(HeaterId2CurrentId[HEATER_TYPE__DryerMainHeater]); diff --git a/Software/Embedded_SW/Embedded/Modules/Thread/ThreadLoad.c b/Software/Embedded_SW/Embedded/Modules/Thread/ThreadLoad.c index eeb0051f5..6116818b2 100644 --- a/Software/Embedded_SW/Embedded/Modules/Thread/ThreadLoad.c +++ b/Software/Embedded_SW/Embedded/Modules/Thread/ThreadLoad.c @@ -201,7 +201,7 @@ } else { - //WHS_Start_Blower_Control_Closed_Loop(2.5); + WHS_Set_SetPoint_Q_value(headairflow/2); Turn_the_Blower_On();//Turn on with the Default_Voltage if (BlowerCfg.heatingvoltage) Control_Voltage_To_Blower(BlowerCfg.heatingvoltage); diff --git a/Software/Embedded_SW/Embedded/StateMachines/Initialization/InitSequence.c b/Software/Embedded_SW/Embedded/StateMachines/Initialization/InitSequence.c index 19434ad78..6b75c410d 100644 --- a/Software/Embedded_SW/Embedded/StateMachines/Initialization/InitSequence.c +++ b/Software/Embedded_SW/Embedded/StateMachines/Initialization/InitSequence.c @@ -22,6 +22,7 @@ #include "modules/Diagnostics/Diagnostics.h" #include "Modules/General/process.h" #include "Modules/Waste/Waste.h" +#include "modules/General/process.h" #include "StateMachines/Printing/PrintingSTM.h" #include "InitSequence.h" @@ -205,7 +206,8 @@ uint32_t InitSequenceBlowerCallBackFunction(uint32_t IfIndex, uint32_t BusyFlag) Control_Voltage_To_Blower(BlowerCfg.heatingvoltage); else Control_Voltage_To_Blower(3000); - //WHS_Start_Blower_Control_Closed_Loop(2.5); + WHS_enable_control_loop(true); + WHS_Set_SetPoint_Q_value(headairflow/2); AlarmHandlingSetAlarm (EVENT_TYPE__MACHINE_STATE_INITIAL_BLOWER_FAILED,OFF); //handle alarm detection and operation Safety_Init(); @@ -367,6 +369,7 @@ uint32_t InitSequenceInitialBlowerActivation(void) uint32_t ZeroValue; uint16_t value = 0; //WHS_Start_Blower_Control_Closed_Loop(0.0); + WHS_enable_control_loop(false); if (WHS_Type == WHS_TYPE_NEW) { if (ResetReason & SYSCTL_CAUSE_POR) diff --git a/Software/Embedded_SW/Embedded/StateMachines/Initialization/PowerIdle.c b/Software/Embedded_SW/Embedded/StateMachines/Initialization/PowerIdle.c index 4a3938808..91a089321 100644 --- a/Software/Embedded_SW/Embedded/StateMachines/Initialization/PowerIdle.c +++ b/Software/Embedded_SW/Embedded/StateMachines/Initialization/PowerIdle.c @@ -104,12 +104,12 @@ void PowerIdleSetIdle(void) } if (BlowerCfg.enabled == true) { - //WHS_Start_Blower_Control_Closed_Loop(2.5); Turn_the_Blower_On();//Turn on with the Default_Voltage if (BlowerCfg.heatingvoltage) Control_Voltage_To_Blower(BlowerCfg.heatingvoltage); else Control_Voltage_To_Blower(BlowerCfg.voltage-500); + WHS_Set_SetPoint_Q_value(headairflow/2); } SetMachineStatus(MACHINE_STATE__Sleep); if (Auto_Shutdown_Bypass == false) diff --git a/Software/Embedded_SW/Embedded/StateMachines/Initialization/PowerOffSequence.c b/Software/Embedded_SW/Embedded/StateMachines/Initialization/PowerOffSequence.c index 987500dc6..a0cd8d118 100644 --- a/Software/Embedded_SW/Embedded/StateMachines/Initialization/PowerOffSequence.c +++ b/Software/Embedded_SW/Embedded/StateMachines/Initialization/PowerOffSequence.c @@ -442,7 +442,7 @@ uint32_t PowerOffTurnOffCooler(void) /*******************************************************************************************************/ uint32_t PowerOffTurnOffBlower(void) { - //WHS_Start_Blower_Control_Closed_Loop(0.0); + WHS_Set_SetPoint_Q_value(0); Turn_the_Blower_Off();//Turn off PowerOffMachineState++; return OK; -- cgit v1.3.1 From 12aa8a9ea3347b0c8365c14e172311d6b8ee6f38 Mon Sep 17 00:00:00 2001 From: Shai Frieder Date: Wed, 4 Mar 2020 17:16:25 +0200 Subject: --- .../Embedded/Drivers/FPGA/FPGA_GPIO/FPGA_GPIO.c | 1 + .../WHS_Card/D_AD5272_Rheostat/WHS_Rheostat.c | 5 -- .../WHS_Card/D_MAX11614_ADC/WHS_MAX11614_A2D.c | 59 +++++++++++++++------- .../WHS_Card/D_MAX11614_ADC/WHS_MAX11614_A2D.h | 13 +++++ .../Embedded/Modules/General/GeneralHardware.c | 1 + .../Embedded_SW/Embedded/Modules/General/process.c | 2 +- .../Embedded/Modules/Heaters/Heaters_print.c | 1 + .../Embedded/Modules/Thread/ThreadLoad.c | 3 ++ .../Embedded/Modules/Thread/Thread_print.c | 2 +- .../StateMachines/Initialization/InitSequence.c | 2 + .../StateMachines/Initialization/PowerIdle.c | 2 +- .../Initialization/PowerOffSequence.c | 2 +- 12 files changed, 65 insertions(+), 28 deletions(-) (limited to 'Software/Embedded_SW/Embedded/Modules/Thread/ThreadLoad.c') diff --git a/Software/Embedded_SW/Embedded/Drivers/FPGA/FPGA_GPIO/FPGA_GPIO.c b/Software/Embedded_SW/Embedded/Drivers/FPGA/FPGA_GPIO/FPGA_GPIO.c index 2d3763ede..d9a25aa61 100644 --- a/Software/Embedded_SW/Embedded/Drivers/FPGA/FPGA_GPIO/FPGA_GPIO.c +++ b/Software/Embedded_SW/Embedded/Drivers/FPGA/FPGA_GPIO/FPGA_GPIO.c @@ -18,6 +18,7 @@ #include #include "Drivers/I2C_Communication/Head_Card/IO_Ports/Head_IO.h" +#include FPGA_GPI FPGA_Gpi; diff --git a/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/WHS_Card/D_AD5272_Rheostat/WHS_Rheostat.c b/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/WHS_Card/D_AD5272_Rheostat/WHS_Rheostat.c index c25a0397c..d589b35ec 100644 --- a/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/WHS_Card/D_AD5272_Rheostat/WHS_Rheostat.c +++ b/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/WHS_Card/D_AD5272_Rheostat/WHS_Rheostat.c @@ -148,8 +148,3 @@ bool Gas_Voc() return status; } -bool Set_Next_Gas_Value() -{ - - -} diff --git a/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/WHS_Card/D_MAX11614_ADC/WHS_MAX11614_A2D.c b/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/WHS_Card/D_MAX11614_ADC/WHS_MAX11614_A2D.c index c712dbd32..f813e9b91 100644 --- a/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/WHS_Card/D_MAX11614_ADC/WHS_MAX11614_A2D.c +++ b/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/WHS_Card/D_MAX11614_ADC/WHS_MAX11614_A2D.c @@ -18,7 +18,7 @@ #include #include #include - +#include #include "drivers/Flash_ram/MCU_E2Prom.h" uint16_t Orf_zero_value[DRIER_FLOW_METER+1] = {1112,0,1040}; @@ -253,7 +253,7 @@ double get_Q(WHS_Flow_Meter num) bool get_cur_vlv1(uint16_t *value) { bool status = OK; - *value = (((((uint16_t)U20_MAX11614.MAX11614_Read_Buf[14]) << 8) | U20_MAX11614.MAX11614_Read_Buf[15] ) & 0x0FFF); + *value = (((((uint16_t)U20_MAX11614.MAX11614_Read_Buf[14]) << 8) | U20_MAX11614.MAX11614_Read_Buf[15] ) & 0x0FFF);//AIN7 ReportWithPackageFilter(WasteFilter,"------------ get_cur_vlv1 (value)-----------------", __FILE__,__LINE__, value, RpMessage, 0, 0); return status; } @@ -262,7 +262,7 @@ bool get_cur_fan(uint16_t *value) { bool status = OK; - *value = (((((uint16_t)U20_MAX11614.MAX11614_Read_Buf[12]) << 8) | U20_MAX11614.MAX11614_Read_Buf[13] ) & 0x0FFF); + *value = (((((uint16_t)U20_MAX11614.MAX11614_Read_Buf[12]) << 8) | U20_MAX11614.MAX11614_Read_Buf[13] ) & 0x0FFF);//AIN6 ReportWithPackageFilter(WasteFilter,"------------ get_cur_fan (value)-----------------", __FILE__,__LINE__, value, RpMessage, 0, 0); return status; } @@ -271,7 +271,7 @@ bool get_gas_out(uint16_t *value) { bool status = OK; - *value = (((((uint16_t)U20_MAX11614.MAX11614_Read_Buf[10]) << 8) | U20_MAX11614.MAX11614_Read_Buf[11] ) & 0x0FFF ); + *value = (((((uint16_t)U20_MAX11614.MAX11614_Read_Buf[10]) << 8) | U20_MAX11614.MAX11614_Read_Buf[11] ) & 0x0FFF );//AIN5 ReportWithPackageFilter(WasteFilter,"------------ get_gas_out (value)-----------------", __FILE__,__LINE__, value, RpMessage, 0, 0); return status; } @@ -280,16 +280,16 @@ bool get_vlev2(uint16_t *value) { bool status = OK; - *value = (((((uint16_t)U20_MAX11614.MAX11614_Read_Buf[8]) << 8) | U20_MAX11614.MAX11614_Read_Buf[9] ) & 0x0FFF ); + *value = (((((uint16_t)U20_MAX11614.MAX11614_Read_Buf[8]) << 8) | U20_MAX11614.MAX11614_Read_Buf[9] ) & 0x0FFF );//AIN4 ReportWithPackageFilter(WasteFilter,"------------ get_vlev2 (value)-----------------", __FILE__,__LINE__, value, RpMessage, 0, 0); return status; } -bool get_vlev1(uint16_t *value) // U36 connected to AIN3 +bool get_vlev1(uint16_t *value) // U36 connected to AIN1 { bool status = OK; - *value = (((((uint16_t)U20_MAX11614.MAX11614_Read_Buf[2]) << 8) | U20_MAX11614.MAX11614_Read_Buf[3] ) & 0x0FFF ); + *value = (((((uint16_t)U20_MAX11614.MAX11614_Read_Buf[2]) << 8) | U20_MAX11614.MAX11614_Read_Buf[3] ) & 0x0FFF );//AIN1 ReportWithPackageFilter(WasteFilter,"------------ get_vlev1 (value)-----------------", __FILE__,__LINE__, value, RpMessage, 0, 0); return status; } @@ -298,7 +298,7 @@ bool get_orf_3(uint16_t *value) // U33 connected to AIN0 { bool status = OK; - *value = (((((uint16_t)U20_MAX11614.MAX11614_Read_Buf[0]) << 8) | U20_MAX11614.MAX11614_Read_Buf[1] ) & 0x0FFF ); + *value = (((((uint16_t)U20_MAX11614.MAX11614_Read_Buf[0]) << 8) | U20_MAX11614.MAX11614_Read_Buf[1] ) & 0x0FFF );//AIN0 ReportWithPackageFilter(WasteFilter,"------------ get_orf_3 (value)-----------------", __FILE__,__LINE__, value, RpMessage, 0, 0); return status; } @@ -307,7 +307,7 @@ bool get_orf_2(uint16_t *value) // U36 connected to AIN3 { bool status = OK; - *value = (((((uint16_t)U20_MAX11614.MAX11614_Read_Buf[6]) << 8) | U20_MAX11614.MAX11614_Read_Buf[7] ) & 0x0FFF ); + *value = (((((uint16_t)U20_MAX11614.MAX11614_Read_Buf[6]) << 8) | U20_MAX11614.MAX11614_Read_Buf[7] ) & 0x0FFF );// AIN3 ReportWithPackageFilter(WasteFilter,"------------ get_orf_2 (value)-----------------", __FILE__,__LINE__, value, RpMessage, 0, 0); return status; } @@ -315,7 +315,7 @@ bool get_orf_2(uint16_t *value) // U36 connected to AIN3 bool get_orf_1(uint16_t *value) // U34 connected to AIN2 { bool status = OK; - *value = (((((uint16_t)U20_MAX11614.MAX11614_Read_Buf[4]) << 8) | U20_MAX11614.MAX11614_Read_Buf[5] ) & 0x0FFF ); + *value = (((((uint16_t)U20_MAX11614.MAX11614_Read_Buf[4]) << 8) | U20_MAX11614.MAX11614_Read_Buf[5] ) & 0x0FFF ); // AIN2 ReportWithPackageFilter(WasteFilter,"------------ get_orf_1 (value)-----------------", __FILE__,__LINE__, value, RpMessage, 0, 0); return status; } @@ -378,18 +378,39 @@ double GetWHSAirFlow(uint8_t OR_Id) return Q_value ; } - -uint16_t GetWHSGasSensor() +#define coefficient 9.72 +double GetWHSWasteTankLevelMiliLiter() { - uint16_t value = 0; - get_gas_out(&value); - return value; + uint16_t Vm = 0; + uint16_t V0 = 0; + double waste_volume_ml = 0.0; + + get_vlev1(&Vm); + MCU_E2PromRead(EEPROM_WASTE_TANK_ZERO_VALUE,&V0); + waste_volume_ml = (coefficient * (Vm -V0)); + ReportWithPackageFilter(WasteFilter,"------------ waste_volume_ml -----------------", __FILE__, __LINE__, 0, RpMessage, (waste_volume_ml * 1000), 0); + return waste_volume_ml; } -uint16_t GetWHSWasteTankLevel() +#define OPEN_WASTE_VALVE 0 +#define CLOSE_WASTE_VALVE 1 +bool waste_seq() { - uint16_t value = 0; - get_cur_fan(&value); - return value; + bool status = OK; + double waste_level = 0.0; + + ReportWithPackageFilter(WasteFilter,"------------ open waste level Air valve -----------------", __FILE__, __LINE__, 0, RpMessage, 0, 0); + Trigger_SetWHS_VOC_Valve(OPEN_WASTE_VALVE); + ReportWithPackageFilter(WasteFilter,"------------ wait 1 second -----------------", __FILE__, __LINE__, 0, RpMessage, 0, 0); + + ReportWithPackageFilter(WasteFilter,"------------ close waste level Air valve -----------------", __FILE__, __LINE__, 0, RpMessage, 0, 0); + Trigger_SetWHS_VOC_Valve(CLOSE_WASTE_VALVE); + + waste_level = GetWHSWasteTankLevelMiliLiter(); + ReportWithPackageFilter(WasteFilter,"------------ get waste level in ml -----------------", __FILE__, __LINE__, 0, RpMessage, (waste_level*1000), 0); + + + + return status; } diff --git a/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/WHS_Card/D_MAX11614_ADC/WHS_MAX11614_A2D.h b/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/WHS_Card/D_MAX11614_ADC/WHS_MAX11614_A2D.h index 0a4f73508..223135e37 100644 --- a/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/WHS_Card/D_MAX11614_ADC/WHS_MAX11614_A2D.h +++ b/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/WHS_Card/D_MAX11614_ADC/WHS_MAX11614_A2D.h @@ -4,6 +4,18 @@ #ifndef WHS_MAX11614_H_ #define WHS_MAX11614_H_ + +/* + * DRIER -> ORF3 -> U33 -> ORF_1 -> U20.5 (AIN0) + * WAST_TANK -> LEV1 -> U35 -> ORF_2 -> U20.6 (AIN1) + * HEAD -> ORF1 -> U34 -> ORF_3 -> U20.7 (AIN2) + * N.U. -> ORF2 -> U36 -> VLEV1 -> U20.8 (AIN3) + * N.U -> U39 -> U45 -> VLEV2 -> U20.9 (AIN4) + * REHOSTAT -> U40 -> U45 -> GAS_OUT -> U20.10 (AIN5) + * CURRENT FAN -> U13 -> CUR_FAN -> U20.11 (AIN6) + * VALV1 -> U25 -> CUR_VLV1 -> U20.12 (AIN7) + * VALV2 -> U29 -> CUR_VLV2 -> U20.4 (AIN8) + */ #include typedef enum @@ -58,6 +70,7 @@ uint16_t GetWHSWasteTankLevel(void); bool SetDisplayView(WHS_Display_View view ); bool SetLeftDisplayView(WHS_Left_Display_View view ); bool SetWriteDisplayView(WHS_Left_Display_View view ); +uint32_t WHS_MAX11614_Load_OrificeZeroValue (uint16_t O1, uint16_t O3); uint16_t Get_orf1_V0(void); uint16_t Get_orf3_V0(void); diff --git a/Software/Embedded_SW/Embedded/Modules/General/GeneralHardware.c b/Software/Embedded_SW/Embedded/Modules/General/GeneralHardware.c index 5a920bc25..6297299de 100644 --- a/Software/Embedded_SW/Embedded/Modules/General/GeneralHardware.c +++ b/Software/Embedded_SW/Embedded/Modules/General/GeneralHardware.c @@ -53,6 +53,7 @@ #include "Modules/Waste/Waste.h" #include "Drivers/I2C_Communication/Main_Board_EEPROM/Main_EEPROM.h" #include +#include uint32_t EmbeddedParametersInit(void); uint32_t EmbeddedParametersWrite(void * buffer, uint16_t size); diff --git a/Software/Embedded_SW/Embedded/Modules/General/process.c b/Software/Embedded_SW/Embedded/Modules/General/process.c index da9070201..4cb35d488 100644 --- a/Software/Embedded_SW/Embedded/Modules/General/process.c +++ b/Software/Embedded_SW/Embedded/Modules/General/process.c @@ -25,7 +25,7 @@ #include "StateMachines/Initialization/InitSequence.h" #include "drivers/Flash_ram/FlashProgram.h" - +#include double dyeingspeed = 0; double dryerbufferlength = 0; diff --git a/Software/Embedded_SW/Embedded/Modules/Heaters/Heaters_print.c b/Software/Embedded_SW/Embedded/Modules/Heaters/Heaters_print.c index 66f965d15..9b628a160 100644 --- a/Software/Embedded_SW/Embedded/Modules/Heaters/Heaters_print.c +++ b/Software/Embedded_SW/Embedded/Modules/Heaters/Heaters_print.c @@ -38,6 +38,7 @@ #include "drivers/I2C_Communication/ADC_MUX/ADC_MUX.h" #include "drivers/I2C_Communication/Head_Card/ADC/Head_ADC.h" #include "Drivers/I2C_Communication/I2C.h" +#include #include "StateMachines/Printing/PrintingSTM.h" #include "StateMachines/Initialization/PowerIdle.h" diff --git a/Software/Embedded_SW/Embedded/Modules/Thread/ThreadLoad.c b/Software/Embedded_SW/Embedded/Modules/Thread/ThreadLoad.c index 6116818b2..946eae0ec 100644 --- a/Software/Embedded_SW/Embedded/Modules/Thread/ThreadLoad.c +++ b/Software/Embedded_SW/Embedded/Modules/Thread/ThreadLoad.c @@ -32,6 +32,9 @@ #include "drivers/motors/motor.h" #include "drivers/Flash_ram/MCU_E2Prom.h" #include "Drivers/I2C_Communication/I2C.h" +#include +#include + #include "PMR/Stubs/StubHeatingTestRequest.pb-c.h" #include "PMR/Stubs/StubHeatingTestResponse.pb-c.h" #include "PMR/Stubs/StubHeatingTestPollRequest.pb-c.h" diff --git a/Software/Embedded_SW/Embedded/Modules/Thread/Thread_print.c b/Software/Embedded_SW/Embedded/Modules/Thread/Thread_print.c index 229b86cac..91f655171 100644 --- a/Software/Embedded_SW/Embedded/Modules/Thread/Thread_print.c +++ b/Software/Embedded_SW/Embedded/Modules/Thread/Thread_print.c @@ -458,7 +458,7 @@ uint32_t ThreadControlCBFunction(uint32_t IfIndex, uint32_t ReadValue) //extern int MotorSamplePointer[MAX_THREAD_MOTORS_NUM]; //read value is the dancer angle - int i,index=MAX_THREAD_MOTORS_NUM; + int i,index=MAX_THREAD_MOTORS_NUM,len; //int len; int DancerId; int32_t TranslatedReadValue, avreageSampleValue = 0;//,avreageMotorSampleValue = 0; diff --git a/Software/Embedded_SW/Embedded/StateMachines/Initialization/InitSequence.c b/Software/Embedded_SW/Embedded/StateMachines/Initialization/InitSequence.c index 08136c846..6d9b8c411 100644 --- a/Software/Embedded_SW/Embedded/StateMachines/Initialization/InitSequence.c +++ b/Software/Embedded_SW/Embedded/StateMachines/Initialization/InitSequence.c @@ -34,6 +34,8 @@ #include "drivers/Flash_ram/MCU_E2Prom.h" #include #include +#include +#include #include "heaters/heaters_ex.h" diff --git a/Software/Embedded_SW/Embedded/StateMachines/Initialization/PowerIdle.c b/Software/Embedded_SW/Embedded/StateMachines/Initialization/PowerIdle.c index 91a089321..11fb18110 100644 --- a/Software/Embedded_SW/Embedded/StateMachines/Initialization/PowerIdle.c +++ b/Software/Embedded_SW/Embedded/StateMachines/Initialization/PowerIdle.c @@ -23,7 +23,7 @@ #include "drivers/I2C_Communication/DAC/Blower.h" #include "drivers/I2C_Communication/ADC_MUX/ADC_MUX.h" #include "drivers/Valves/Valve.h" - +#include #include "Modules/General/buttons.h" #include "heaters/heaters_ex.h" diff --git a/Software/Embedded_SW/Embedded/StateMachines/Initialization/PowerOffSequence.c b/Software/Embedded_SW/Embedded/StateMachines/Initialization/PowerOffSequence.c index a0cd8d118..10dde5bbe 100644 --- a/Software/Embedded_SW/Embedded/StateMachines/Initialization/PowerOffSequence.c +++ b/Software/Embedded_SW/Embedded/StateMachines/Initialization/PowerOffSequence.c @@ -34,7 +34,7 @@ #include "drivers/I2C_Communication/ADC_MUX/ADC_MUX.h" #include "drivers/Heater/TemperatureSensor.h" #include "drivers/Valves/Valve.h" - +#include #include "StateMachines/Printing/PrintingSTM.h" #include "PowerIdle.h" -- cgit v1.3.1 From d07917743723a9ba3267e5cf6627ab19c75ffcc7 Mon Sep 17 00:00:00 2001 From: Shlomo Hecht Date: Sun, 15 Mar 2020 13:34:06 +0200 Subject: sime fixes for Rapid 2 ( new LTFU) --- .../Embedded_SW/Embedded/Drivers/FPGA/FPGA_GPIO/FPGA_GPIO.c | 6 ++++++ Software/Embedded_SW/Embedded/Drivers/Motors/MotorActions.c | 4 ++-- .../Embedded/Modules/Diagnostics/DiagnosticsHoming.c | 10 +++++----- Software/Embedded_SW/Embedded/Modules/Thread/ThreadLoad.c | 13 +++++++++++-- Software/Embedded_SW/Embedded/Modules/Thread/Thread_print.c | 6 +++--- 5 files changed, 27 insertions(+), 12 deletions(-) (limited to 'Software/Embedded_SW/Embedded/Modules/Thread/ThreadLoad.c') diff --git a/Software/Embedded_SW/Embedded/Drivers/FPGA/FPGA_GPIO/FPGA_GPIO.c b/Software/Embedded_SW/Embedded/Drivers/FPGA/FPGA_GPIO/FPGA_GPIO.c index d9a25aa61..00b48d3d8 100644 --- a/Software/Embedded_SW/Embedded/Drivers/FPGA/FPGA_GPIO/FPGA_GPIO.c +++ b/Software/Embedded_SW/Embedded/Drivers/FPGA/FPGA_GPIO/FPGA_GPIO.c @@ -422,6 +422,12 @@ bool FPGA_Read_limit_Switches(FPGA_GPI_ENUM Limit_Switch) case GPI_LS_DH_CLEAN_DOWN: LM_Status = Ls_Dryer_Dh.bits.F1_LS_DH_CLEAN_DOWN; break; + case GPI_LS_LSPARE1: + LM_Status = LS_Left.bits.F1_LS_LSPARE1; + break; + case GPI_LS_LSPARE2: + LM_Status = LS_Left.bits.F1_LS_LSPARE2; + break; case I2C_HEADCARD_COVER_LS_FRONT: if(Head_Type == HEAD_TYPE_SYLKO) LM_Status = !(Head_I2C_EXP4_0x46.bits.INPUT_LS_FRONT); diff --git a/Software/Embedded_SW/Embedded/Drivers/Motors/MotorActions.c b/Software/Embedded_SW/Embedded/Drivers/Motors/MotorActions.c index fc8d29b56..b7b54455d 100644 --- a/Software/Embedded_SW/Embedded/Drivers/Motors/MotorActions.c +++ b/Software/Embedded_SW/Embedded/Drivers/Motors/MotorActions.c @@ -845,8 +845,8 @@ void MotorActionsInit(void) } if (Head_Type == HEAD_TYPE_SYLKO)//adjust the limit switches { - Motor_Id_to_LS_IdDown[HARDWARE_MOTOR_TYPE__MOTO_DH_LID] = I2C_HEADCARD_COVER_LS_REAR; - Motor_Id_to_LS_IdUp [HARDWARE_MOTOR_TYPE__MOTO_DH_LID] = I2C_HEADCARD_COVER_LS_FRONT; + Motor_Id_to_LS_IdDown[HARDWARE_MOTOR_TYPE__MOTO_DH_LID] = I2C_HEADCARD_COVER_LS_FRONT; + Motor_Id_to_LS_IdUp [HARDWARE_MOTOR_TYPE__MOTO_DH_LID] = I2C_HEADCARD_COVER_LS_REAR ; } } diff --git a/Software/Embedded_SW/Embedded/Modules/Diagnostics/DiagnosticsHoming.c b/Software/Embedded_SW/Embedded/Modules/Diagnostics/DiagnosticsHoming.c index acecf4c7c..bdbf1b33e 100644 --- a/Software/Embedded_SW/Embedded/Modules/Diagnostics/DiagnosticsHoming.c +++ b/Software/Embedded_SW/Embedded/Modules/Diagnostics/DiagnosticsHoming.c @@ -39,7 +39,7 @@ char HomingToken[NUM_OF_MOTORS][36+1]={0}; /******************************************************************************** * Motor Homing ********************************************************************************/ -int32_t keepkvalright,keepkvalleft; +//int32_t keepkvalright,keepkvalleft; uint32_t MotorHomingRequestCallback(uint32_t deviceID, uint32_t ReadValue) { @@ -48,11 +48,11 @@ uint32_t MotorHomingRequestCallback(uint32_t deviceID, uint32_t ReadValue) if(deviceID == HARDWARE_MOTOR_TYPE__MOTO_RLOADING) { - MotorSetKvalRun(HARDWARE_MOTOR_TYPE__MOTO_RLOADING, keepkvalright); + MotorSetKvalRun(HARDWARE_MOTOR_TYPE__MOTO_RLOADING, 24); } if(deviceID == HARDWARE_MOTOR_TYPE__MOTO_LLOADING) { - MotorSetKvalRun(HARDWARE_MOTOR_TYPE__MOTO_LLOADING, keepkvalleft); + MotorSetKvalRun(HARDWARE_MOTOR_TYPE__MOTO_LLOADING, 24); } responseContainer = createContainer(MESSAGE_TYPE__MotorHomingResponse, HomingToken[deviceID], true, &response, &motor_homing_response__pack, &motor_homing_response__get_packed_size); responseContainer.has_continuous = true; @@ -119,12 +119,12 @@ uint32_t MotorHomingRequestFunc(MessageContainer* requestContainer) { if(MotorId == HARDWARE_MOTOR_TYPE__MOTO_RLOADING) { - keepkvalright = MotorsCfg[HARDWARE_MOTOR_TYPE__MOTO_RLOADING].kvalrun; + //keepkvalright = MotorsCfg[HARDWARE_MOTOR_TYPE__MOTO_RLOADING].kvalrun; MotorSetKvalRun(HARDWARE_MOTOR_TYPE__MOTO_RLOADING, 70); } if(MotorId == HARDWARE_MOTOR_TYPE__MOTO_LLOADING) { - keepkvalleft = MotorsCfg[HARDWARE_MOTOR_TYPE__MOTO_LLOADING].kvalrun; + //keepkvalleft = MotorsCfg[HARDWARE_MOTOR_TYPE__MOTO_LLOADING].kvalrun; MotorSetKvalRun(HARDWARE_MOTOR_TYPE__MOTO_LLOADING, 70); } MotorMovetoLimitSwitch (MotorId,1-MotorsCfg[MotorId].directionthreadwize, speed, Motor_Id_to_LS_IdUp[MotorId], MotorHomingRequestCallback,30000); diff --git a/Software/Embedded_SW/Embedded/Modules/Thread/ThreadLoad.c b/Software/Embedded_SW/Embedded/Modules/Thread/ThreadLoad.c index 946eae0ec..698852f00 100644 --- a/Software/Embedded_SW/Embedded/Modules/Thread/ThreadLoad.c +++ b/Software/Embedded_SW/Embedded/Modules/Thread/ThreadLoad.c @@ -415,7 +415,8 @@ CallbackCounter++; //MotorMovetoLimitSwitch (HARDWARE_MOTOR_TYPE__MOTO_DRYER_LID,1-MotorsCfg[HARDWARE_MOTOR_TYPE__MOTO_DRYER_LID].directionthreadwize, 200, Motor_Id_to_LS_IdUp[HARDWARE_MOTOR_TYPE__MOTO_DRYER_LID], Thread_Load_HomingCallback,10000); MotorGotoWithCallback(HARDWARE_MOTOR_TYPE__MOTO_DRYER_LID, 0, Motor_Id_to_LS_IdUp[HARDWARE_MOTOR_TYPE__MOTO_DRYER_LID], Thread_Load_HomingCallback,10000); - Trigger_Head_Actuators_Control(ACTOT, LOW,true); + Trigger_Head_Actuators_Control(ACTOT, LOW,false); + Trigger_Head_Actuators_Control(ACTIN, LOW,false); return OK; } uint32_t Thread_Load_Lift_Dancers(void) @@ -427,6 +428,8 @@ MotorMovetoLimitSwitch (HARDWARE_MOTOR_TYPE__MOTO_RDANCER,1-MotorsCfg[HARDWARE_MOTOR_TYPE__MOTO_RDANCER].directionthreadwize, 15, Motor_Id_to_LS_IdUp[HARDWARE_MOTOR_TYPE__MOTO_RDANCER], Thread_Load_HomingCallback,15000);*/ CallbackCounter++; MotorMovetoLimitSwitch (HARDWARE_MOTOR_TYPE__MOTO_LDANCER1,1-MotorsCfg[HARDWARE_MOTOR_TYPE__MOTO_LDANCER1].directionthreadwize, 500, Motor_Id_to_LS_IdUp[HARDWARE_MOTOR_TYPE__MOTO_LDANCER1], Thread_Load_HomingCallback,25000); + CallbackCounter++; + MotorMovetoLimitSwitch (HARDWARE_MOTOR_TYPE__MOTO_LDANCER2,1-MotorsCfg[HARDWARE_MOTOR_TYPE__MOTO_LDANCER2].directionthreadwize, 500, Motor_Id_to_LS_IdUp[HARDWARE_MOTOR_TYPE__MOTO_LDANCER2], Thread_Load_HomingCallback,25000); return OK; } @@ -509,6 +512,11 @@ // MotorMovetoLimitSwitch (HARDWARE_MOTOR_TYPE__MOTO_LDANCER1,MotorsCfg[HARDWARE_MOTOR_TYPE__MOTO_LDANCER1].directionthreadwize, 500, Motor_Id_to_LS_IdDown[HARDWARE_MOTOR_TYPE__MOTO_LDANCER1], Thread_Load_HomingCallback,25000); MotorMoveWithCallback (HARDWARE_MOTOR_TYPE__MOTO_LDANCER1, MotorsCfg[HARDWARE_MOTOR_TYPE__MOTO_LDANCER1].directionthreadwize, (5000*MotorsCfg[HARDWARE_MOTOR_TYPE__MOTO_LDANCER1].microstep), Thread_Load_HomingCallback,20000); + CallbackCounter++; + MotorSetMaxSpeed (HARDWARE_MOTOR_TYPE__MOTO_LDANCER2, 500); + +// MotorMovetoLimitSwitch (HARDWARE_MOTOR_TYPE__MOTO_LDANCER1,MotorsCfg[HARDWARE_MOTOR_TYPE__MOTO_LDANCER1].directionthreadwize, 500, Motor_Id_to_LS_IdDown[HARDWARE_MOTOR_TYPE__MOTO_LDANCER1], Thread_Load_HomingCallback,25000); + MotorMoveWithCallback (HARDWARE_MOTOR_TYPE__MOTO_LDANCER2, MotorsCfg[HARDWARE_MOTOR_TYPE__MOTO_LDANCER2].directionthreadwize, (5000*MotorsCfg[HARDWARE_MOTOR_TYPE__MOTO_LDANCER2].microstep), Thread_Load_HomingCallback,20000); return OK; } @@ -523,7 +531,8 @@ CallbackCounter++; // MotorMovetoLimitSwitch (HARDWARE_MOTOR_TYPE__MOTO_DRYER_LID,MotorsCfg[HARDWARE_MOTOR_TYPE__MOTO_DRYER_LID].directionthreadwize, 200, Motor_Id_to_LS_IdDown[HARDWARE_MOTOR_TYPE__MOTO_DRYER_LID], Thread_Load_HomingCallback,10000); MotorGotoWithCallback(HARDWARE_MOTOR_TYPE__MOTO_DRYER_LID, 2, Motor_Id_to_LS_IdDown[HARDWARE_MOTOR_TYPE__MOTO_DRYER_LID], Thread_Load_HomingCallback,10000); - Trigger_Head_Actuators_Control(ACTOT, LOW,false); + Trigger_Head_Actuators_Control(ACTOT, LOW,true); + Trigger_Head_Actuators_Control(ACTIN, LOW,true); return OK; } uint32_t Thread_Load_Resume_Heating(void) diff --git a/Software/Embedded_SW/Embedded/Modules/Thread/Thread_print.c b/Software/Embedded_SW/Embedded/Modules/Thread/Thread_print.c index 26d7ea854..be6644067 100644 --- a/Software/Embedded_SW/Embedded/Modules/Thread/Thread_print.c +++ b/Software/Embedded_SW/Embedded/Modules/Thread/Thread_print.c @@ -868,10 +868,10 @@ uint32_t HandleJobThreadControlParameters(ThreadParameters* ThreadParams) ////////////////////////////////////////////////// for (i = 0;i < (int)MotorsControl[Motor_i].pvinputfilterfactormode; i++) { - if (Motor_i == DRYER_MOTOR) // dryer motor is speed controlled. later a speed sensor will be utilized, but for now it will not be controlled + //if (Motor_i == DRYER_MOTOR) // dryer motor is speed controlled. later a speed sensor will be utilized, but for now it will not be controlled MotorSamples[Motor_i][i] = Control_Read_Dancer_Position(ThreadMotorIdToDancerId[Motor_i],0); //reset the samples value for control beginning - else if ((Motor_i == POOLER_MOTOR)||(Motor_i == FEEDER_MOTOR)) - MotorSamples[Motor_i][i] = DancersCfg[ThreadMotorIdToDancerId[Motor_i]].zeropoint; + // else if ((Motor_i == POOLER_MOTOR)||(Motor_i == FEEDER_MOTOR)) + // MotorSamples[Motor_i][i] = DancersCfg[ThreadMotorIdToDancerId[Motor_i]].zeropoint; //MotorSpeedSamples[Motor_i][i] = 0; } MotorSamplePointer[Motor_i] = 0; -- cgit v1.3.1