diff options
| author | Roy Ben-Shabat <Roy@Twine-s.com> | 2018-12-10 10:35:28 +0200 |
|---|---|---|
| committer | Roy Ben-Shabat <Roy@Twine-s.com> | 2018-12-10 10:35:28 +0200 |
| commit | 0f60e99c075458a746a5e574ee6f87f33c0acd75 (patch) | |
| tree | 011e628cfd01987611671d522a74024f26a47ae0 /Software/Embedded_SW/Embedded/Modules | |
| parent | 8450ca1abeacaeb9305725cd38d9868f8004a5f2 (diff) | |
| parent | 3703a7ffb54849992d31d231e2375905b0003c7a (diff) | |
| download | Tango-0f60e99c075458a746a5e574ee6f87f33c0acd75.tar.gz Tango-0f60e99c075458a746a5e574ee6f87f33c0acd75.zip | |
Merge branch 'master' of https://twinetfs.visualstudio.com/_git/Tango
Diffstat (limited to 'Software/Embedded_SW/Embedded/Modules')
3 files changed, 33 insertions, 12 deletions
diff --git a/Software/Embedded_SW/Embedded/Modules/Heaters/Heaters_print.c b/Software/Embedded_SW/Embedded/Modules/Heaters/Heaters_print.c index 3b3ac540a..08353d1d9 100644 --- a/Software/Embedded_SW/Embedded/Modules/Heaters/Heaters_print.c +++ b/Software/Embedded_SW/Embedded/Modules/Heaters/Heaters_print.c @@ -344,14 +344,18 @@ uint32_t PrepareHeater(int HeaterId, uint32_t SetTemperatue) if (HeaterId >= MAX_AC_HEATERS) //DC Heaters { if (ControlIdtoHeaterId [HeaterId] == 0xFF) - ControlIdtoHeaterId [HeaterId] = AddControlCallback( DCHeaterControlCBFunction, /*eOneSecond*/eHundredMillisecond,TemperatureSensorRead,(IfTypeHeaters*0x100+HeaterId),HeaterId2PT100Id[HeaterId],0); + ControlIdtoHeaterId [HeaterId] = AddControlCallback( DCHeaterControlCBFunction, eOneSecond/*eHundredMillisecond*/,TemperatureSensorRead,(IfTypeHeaters*0x100+HeaterId),HeaterId2PT100Id[HeaterId],0); + HeaterPIDConfig[HeaterId].m_params.dt *=10; DCInitialHeating[HeaterId] = true; HeaterReady[HeaterId] = false; } else if (HeaterId == HARDWARE_PID_CONTROL_TYPE__DryerAirTemperature) //AC Heaters { if (ControlIdtoHeaterId [HeaterId] == 0xFF) - ControlIdtoHeaterId [HeaterId] = AddControlCallback( HeaterControlCBFunction, eHundredMillisecond,TemperatureSensorRead,(IfTypeHeaters*0x100+HeaterId),DryerInternalPT100Id,0); + { + ControlIdtoHeaterId [HeaterId] = AddControlCallback( HeaterControlCBFunction, eOneSecond/*eHundredMillisecond*/,TemperatureSensorRead,(IfTypeHeaters*0x100+HeaterId),DryerInternalPT100Id,0); + HeaterPIDConfig[HeaterId].m_params.dt *=10; + } if (MainDryerHeaterMaxTempControl == 0xFF) MainDryerHeaterMaxTempControl = AddControlCallback( HeaterMaxTempCBFunction, eHundredMillisecond,TemperatureSensorRead,(IfTypeHeaters*0x100+HARDWARE_PID_CONTROL_TYPE__DryerHeaterMain),HeaterId2PT100Id[HARDWARE_PID_CONTROL_TYPE__DryerHeaterMain],0); if (SecondDryerHeaterMaxTempControl == 0xFF) diff --git a/Software/Embedded_SW/Embedded/Modules/IDS/IDS_print.c b/Software/Embedded_SW/Embedded/Modules/IDS/IDS_print.c index 958f481bf..ab959f341 100644 --- a/Software/Embedded_SW/Embedded/Modules/IDS/IDS_print.c +++ b/Software/Embedded_SW/Embedded/Modules/IDS/IDS_print.c @@ -183,6 +183,13 @@ bool IDS_isDispenserUsedNextSegment(void *JobDetails,int DispenserId, int Segmen } //******************************************************************************************************************** + uint32_t IDS_Valve_PresegmentValveReady(uint32_t deviceID, uint32_t ReadValue) + { + TimerMotors_t HW_Motor_Id = DispenserIdToMotorId[deviceID]; + MotorStop(HW_Motor_Id,Hard_Hiz); + IDS_Valve_PresegmentReady( deviceID, ReadValue); + } + //******************************************************************************************************************** uint32_t IDS_Valve_PresegmentReady(uint32_t deviceID, uint32_t ReadValue) { int i; @@ -257,9 +264,9 @@ uint32_t IDSPreSegmentState(void *JobDetails, int SegmentId) if (JobTicket->segments[SegmentId]->brushstops[0]->dispensers[Dispenser_i]->nanolitterpersecond==0) //if (IDS_isDispenserUsedNextSegment(JobDetails,Dispenser_i,SegmentId) == false) { - Control3WayValvesWithCallback ((Valves_t)DispenserId, MidTank_Dispenser, IDS_Valve_PresegmentReady); //direction: MidTank_Dispenser or Dispenser_Mixer + //MotorStop(HW_Motor_Id,Hard_Hiz); + Control3WayValvesWithCallback ((Valves_t)DispenserId, MidTank_Dispenser, IDS_Valve_PresegmentValveReady); //direction: MidTank_Dispenser or Dispenser_Mixer LOG_ERROR(DispenserId,"Dispenser Not Used Next Segment"); - MotorStop(HW_Motor_Id,Hard_Hiz); } else { @@ -343,12 +350,12 @@ uint32_t IDSPreSegmentState(void *JobDetails, int SegmentId) if ((int)segmentfirst_speed > 0) { DispenserSegmentReady[DispenserId] = false; - Control3WayValvesWithCallback (DispenserId, Dispenser_Mixer, NULL); //direction: MidTank_Dispenser or Dispenser_Mixer MotorSetSpeed(HW_Motor_Id, segmentfirst_speed); usnprintf(Message, 80, "Dispenser %d nl/sec %d nl/pulse %d speed %d",Dispenser_i,(int)JobTicket->segments[CurrentSegment]->brushstops[JobBrushStopId]->dispensers[Dispenser_i]->nanolitterpersecond, (int)JobTicket->segments[CurrentSegment]->brushstops[JobBrushStopId]->dispensers[Dispenser_i]->nanoliterperpulse,(int)segmentfirst_speed); //LOG_ERROR(segmentfirst_speed,Message); //Report(Message,__FILE__,__LINE__,Dispenser_i,RpWarning,segmentfirst_speed,0); + Control3WayValvesWithCallback (DispenserId, Dispenser_Mixer, NULL); //direction: MidTank_Dispenser or Dispenser_Mixer SendJobProgress(0.0,0,false, Message); @@ -359,6 +366,14 @@ uint32_t IDSPreSegmentState(void *JobDetails, int SegmentId) return OK; } //******************************************************************************************************************** + uint32_t IDS_Valve_DistanceToSpoolValveReady(uint32_t deviceID, uint32_t ReadValue) + { + TimerMotors_t HW_Motor_Id = DispenserIdToMotorId[deviceID]; + MotorStop(HW_Motor_Id,Hard_Hiz); + IDS_Valve_DistanceToSpoolReady( deviceID, ReadValue); + } + + //******************************************************************************************************************** uint32_t IDS_Valve_DistanceToSpoolReady(uint32_t deviceID, uint32_t ReadValue) { int i; @@ -386,15 +401,17 @@ uint32_t IDSPreSegmentState(void *JobDetails, int SegmentId) if (MotorsCfg[HW_Motor_Id].hardwaremotortype != DispenserIdToMotorId[Dispenser_i])//unconfigured dispenser continue; DispenserDistanceToSpoolReady[Dispenser_i] = false; + //MotorStop(HW_Motor_Id,Hard_Hiz); Control3WayValvesWithCallback ((Valves_t)Dispenser_i, MidTank_Dispenser, IDS_Valve_DistanceToSpoolReady); //direction: MidTank_Dispenser or Dispenser_Mixer - - MotorStop(HW_Motor_Id,Hard_Hiz); - } return OK; } - + uint32_t IDS_Valve_EndValveReady(uint32_t deviceID, uint32_t ReadValue) + { + TimerMotors_t HW_Motor_Id = DispenserIdToMotorId[deviceID]; + MotorStop(HW_Motor_Id,Hard_Hiz); + } //******************************************************************************************************************** uint32_t IDSEndState(void *JobDetails) { @@ -403,8 +420,8 @@ uint32_t IDSPreSegmentState(void *JobDetails, int SegmentId) Valve_Set(VALVE_MIXCHIP_WASTECH, Mixer_Waste); for ( Dispenser_i = 0;Dispenser_i < MAX_SYSTEM_DISPENSERS;Dispenser_i++) { - MotorStop(DispenserIdToMotorId[Dispenser_i],Hard_Hiz); - Control3WayValvesWithCallback (Dispenser_i, MidTank_Dispenser, NULL); //direction: MidTank_Dispenser or Dispenser_Mixer + //MotorStop(DispenserIdToMotorId[Dispenser_i],Hard_Hiz); + Control3WayValvesWithCallback (Dispenser_i, MidTank_Dispenser, IDS_Valve_EndValveReady); //direction: MidTank_Dispenser or Dispenser_Mixer } return OK; diff --git a/Software/Embedded_SW/Embedded/Modules/Thread/Thread_print.c b/Software/Embedded_SW/Embedded/Modules/Thread/Thread_print.c index 76783ee92..76c0fbfd8 100644 --- a/Software/Embedded_SW/Embedded/Modules/Thread/Thread_print.c +++ b/Software/Embedded_SW/Embedded/Modules/Thread/Thread_print.c @@ -317,7 +317,7 @@ uint32_t ThreadControlSpeedReadFunction(uint32_t IfIndex, uint32_t ReadValue) } //double eNormalizedError[100]; //int TranslatedreadValue[100]; -#define MAX_THREAD_CONTROL_LOG 300 +#define MAX_THREAD_CONTROL_LOG 100 double calculatedError[MAX_THREAD_CONTROL_LOG+1]; double NormError[MAX_THREAD_CONTROL_LOG+1]; double mIntegral[MAX_THREAD_CONTROL_LOG+1]; |
