Index: firmware/App/Controllers/ConcentratePumps.c =================================================================== diff -u -rbae4aed1e77e9d1bfbc7e894e5331542460f6af7 -r8a3472c656bd3a2901397bcd2bfdcb5e4cf60647 --- firmware/App/Controllers/ConcentratePumps.c (.../ConcentratePumps.c) (revision bae4aed1e77e9d1bfbc7e894e5331542460f6af7) +++ firmware/App/Controllers/ConcentratePumps.c (.../ConcentratePumps.c) (revision 8a3472c656bd3a2901397bcd2bfdcb5e4cf60647) @@ -67,6 +67,7 @@ #define CONENTREATE_PUMP_PARK_FAULT_TIMEOUT_MS ( 1 * MS_PER_SECOND ) ///< Concentrate pump park fault timeout in milliseconds. #define CONCENTRATE_PUMP_FAULT_PERSISTENCE_PERIOD 500 ///< Concentrate pump fault persistence period in milliseconds. +#define CONCENTRATE_PUMP_TRANS_TO_RAMP_SPEED_THRESHOLD_MLPM 5.0F ///< Concentrate pump transition to ramp to target speed threshold in mL/min. /*************************DVT Definitions********************************************/ @@ -738,6 +739,14 @@ stepConcentratePumpToTargetSpeed( pumpId ); } + if ( concentratePumps[ pumpId ].pumpTargetSpeed >= CONCENTRATE_PUMP_TRANS_TO_RAMP_SPEED_THRESHOLD_MLPM ) + { + // If the requested target speed is greater than the threshold, transition back to ramp state regardless of the status of the + // control interval + stepConcentratePumpToTargetSpeed( pumpId ); + state = CONCENTRATE_PUMP_RAMP_TO_TARGET_SPEED_STATE; + } + if ( FALSE == concentratePumps[ pumpId ].hasTurnOnPumpsBeenRequested ) { state = CONCENTRATE_PUMP_OFF_STATE; @@ -777,15 +786,15 @@ // Subtract current speed when target speed is smaller if ( concentratePumps[ pumpId ].pumpTargetSpeed < concentratePumps[ pumpId ].currentPumpSpeed ) { - speedIncrease *= -1.0; + speedIncrease *= -1.0F; } concentratePumps[ pumpId ].currentPumpSpeed += speedIncrease; // If the pump's target speed is set to be 0, do not ramp down set it to zero immediately if ( fabs( concentratePumps[ pumpId ].pumpTargetSpeed < NEARLY_ZERO ) ) { - concentratePumps[ pumpId ].currentPumpSpeed = 0.0; + concentratePumps[ pumpId ].currentPumpSpeed = 0.0F; } }