Index: firmware/App/Modes/ModeChemicalDisinfect.c =================================================================== diff -u -r939e488d71ae8511cba65e4a27e31660259e06ac -r135b257c835e406f036dfbdec1d8cd9c51e1c526 --- firmware/App/Modes/ModeChemicalDisinfect.c (.../ModeChemicalDisinfect.c) (revision 939e488d71ae8511cba65e4a27e31660259e06ac) +++ firmware/App/Modes/ModeChemicalDisinfect.c (.../ModeChemicalDisinfect.c) (revision 135b257c835e406f036dfbdec1d8cd9c51e1c526) @@ -8,7 +8,7 @@ * @file ModeChemicalDisinfect.c * * @author (last) Dara Navaei -* @date (last) 18-Jan-2023 +* @date (last) 27-Feb-2023 * * @author (original) Sean * @date (original) 04-Apr-2020 @@ -249,7 +249,7 @@ chemDisinfectState = DG_CHEM_DISINFECT_STATE_START; prevChemDisinfectState = DG_CHEM_DISINFECT_STATE_START; - stateTimer = 0; + stateTimer = getMSTimerCount(); isThisLastDrain = FALSE; stateTrialCounter = 0; rsrvr1Status = NUM_OF_DG_RESERVOIR_STATUS; @@ -273,7 +273,6 @@ alarmDetectedPendingTrigger = ALARM_ID_NO_ALARM; flushCircWaitTime = 0; flushDisinfectantWaitTime = 0; - primeAcidSteadyStateCounter = 0; rsrvrFillStableTimeCounter = 0; rsrvrFillToFullStableTimeCounter = 0; R1FullVolume = 0.0F; @@ -286,6 +285,8 @@ initPersistentAlarm( ALARM_ID_DG_CHEM_DISINFECT_TARGET_TEMP_OUT_OF_RANGE, DISINFECT_TEMP_OUT_OF_RANGE_TIMEOUT_MS, DISINFECT_TEMP_OUT_OF_RANGE_TIMEOUT_MS ); initPersistentAlarm( ALARM_ID_DG_CHEM_DISINFECT_TARGET_COND_OUT_OF_RANGE, DISINFECT_COND_OUT_OF_RANGE_TIMEOUT_MS, DISINFECT_COND_OUT_OF_RANGE_TIMEOUT_MS ); + + requestConcentratePumpOff( CONCENTRATEPUMPS_CP1_ACID, PARK_CONC_PUMPS ); } /*********************************************************************//** @@ -306,7 +307,7 @@ setCPLDCleanLEDColor( CPLD_CLEAN_LED_YELLOW ); #ifndef _RELEASE_ - if ( nelsonSupport != NELSON_POS_CONTROL_CHEM_DISINFECT ) + if ( nelsonSupport != NELSON_CHEM_DISINFECT ) #endif { activateAlarmNoData( ALARM_ID_DG_CHEM_DISINFECT_INSERT_ACID ); @@ -576,14 +577,8 @@ setValveState( VRD2, VALVE_STATE_CLOSED ); setValveState( VPI, VALVE_STATE_OPEN ); setValveState( VPO, VALVE_STATE_NOFILL_C_TO_NO ); + turnOnUVReactor( INLET_UV_REACTOR ); -#ifndef _RELEASE_ - if ( nelsonSupport != NELSON_POS_CONTROL_CHEM_DISINFECT ) -#endif - { - turnOnUVReactor( INLET_UV_REACTOR ); - } - stateTrialCounter = 0; stateTimer = getMSTimerCount(); state = DG_CHEM_DISINFECT_STATE_FLUSH_DRAIN; @@ -621,18 +616,12 @@ // set pumps and valves for next state, flush circulation setValveState( VPD, VALVE_STATE_OPEN_C_TO_NC ); setROPumpTargetFlowRateLPM( RO_PUMP_TARGET_FLUSH_FLOW_RATE_LPM, MAX_RO_PUMP_FLUSH_FILL_PRESSURE_PSI ); + // Start heating the water while we are flushing + setHeaterTargetTemperature( DG_PRIMARY_HEATER, CHEM_DISINFECT_HEATER_CONTROL_TEMPERATURE_C ); + startHeater( DG_PRIMARY_HEATER ); + // The UV reactors will be on for the entire disinfect cycle + turnOnUVReactor( OUTLET_UV_REACTOR ); -#ifndef _RELEASE_ - if ( nelsonSupport != NELSON_POS_CONTROL_CHEM_DISINFECT ) -#endif - { - // Start heating the water while we are flushing - setHeaterTargetTemperature( DG_PRIMARY_HEATER, CHEM_DISINFECT_HEATER_CONTROL_TEMPERATURE_C ); - startHeater( DG_PRIMARY_HEATER ); - // The UV reactors will be on for the entire disinfect cycle - turnOnUVReactor( OUTLET_UV_REACTOR ); - } - flushCircWaitTime = FLUSH_CICRCULATION_INITIAL_WAIT_TIME_MS; stateTimer = getMSTimerCount(); state = DG_CHEM_DISINFECT_STATE_FLUSH_CIRCULATION; @@ -696,7 +685,7 @@ } // Check if any of the temperature sensors are out of tolerance - if( ( TRUE == isTPoOut ) || ( TRUE == isTD2Out ) || ( TRUE == isCD2Out ) || ( TRUE == isCPoOut) ) + if( ( TRUE == isTPoOut ) || ( TRUE == isTD2Out ) || ( TRUE == isCD2Out ) || ( TRUE == isCPoOut ) ) { // Check if we have exceeded the number of trials. If not, try another time ++stateTrialCounter; @@ -762,7 +751,7 @@ #ifndef _RELEASE_ if ( ( getSoftwareConfigStatus( SW_CONFIG_DISABLE_DISINFECT_CONDUCTIVITY_CHECK ) != SW_CONFIG_ENABLE_VALUE ) && - ( ( nelsonSupport != NELSON_POS_CONTROL_CHEM_DISINFECT ) || ( nelsonSupport != NELSON_CHEM_DISINFECT ) ) ) + ( nelsonSupport != NELSON_CHEM_DISINFECT ) ) #endif { if ( cd2Conductivity < MIN_PRIME_ACID_CONDUCTIVITY_US_PER_CM ) @@ -1099,7 +1088,7 @@ state = DG_CHEM_DISINFECT_STATE_DRAIN_R1; #ifndef _RELEASE_ - if ( ( NELSON_POS_CONTROL_CHEM_DISINFECT == nelsonSupport ) || ( NELSON_CHEM_DISINFECT == nelsonSupport ) ) + if ( NELSON_CHEM_DISINFECT == nelsonSupport ) { deenergizeActuators( NO_PARK_CONC_PUMPS ); state = DG_CHEM_DISINFECT_STATE_COMPLETE; @@ -1784,9 +1773,7 @@ { switch ( nelsonSupport ) { - case NELSON_POS_CONTROL_CHEM_DISINFECT: case NELSON_CHEM_DISINFECT: - // Set the valves to start flush circulation setValveState( VPI, VALVE_STATE_OPEN ); setValveState( VBF, VALVE_STATE_CLOSED ); @@ -1800,17 +1787,11 @@ setValveState( VRD1, VALVE_STATE_CLOSED ); setValveState( VRD2, VALVE_STATE_CLOSED ); setROPumpTargetFlowRateLPM( RO_PUMP_TARGET_FLUSH_FLOW_RATE_LPM, MAX_RO_PUMP_FLUSH_FILL_PRESSURE_PSI ); + setHeaterTargetTemperature( DG_PRIMARY_HEATER, CHEM_DISINFECT_HEATER_CONTROL_TEMPERATURE_C ); + startHeater( DG_PRIMARY_HEATER ); + turnOnUVReactor( INLET_UV_REACTOR ); + turnOnUVReactor( OUTLET_UV_REACTOR ); -#ifndef _RELEASE_ - if ( NELSON_CHEM_DISINFECT == nelsonSupport ) -#endif - { - setHeaterTargetTemperature( DG_PRIMARY_HEATER, CHEM_DISINFECT_HEATER_CONTROL_TEMPERATURE_C ); - startHeater( DG_PRIMARY_HEATER ); - turnOnUVReactor( INLET_UV_REACTOR ); - turnOnUVReactor( OUTLET_UV_REACTOR ); - } - flushCircWaitTime = FLUSH_CICRCULATION_INITIAL_WAIT_TIME_MS; stateTimer = getMSTimerCount(); chemDisinfectState = DG_CHEM_DISINFECT_STATE_FLUSH_CIRCULATION;