Index: firmware/App/Controllers/ConductivitySensors.c =================================================================== diff -u -r46db80caf660d4921badc04e4296a8a1312cb30c -r255e10103b009abce4489ebe0adda8d45137e2f1 --- firmware/App/Controllers/ConductivitySensors.c (.../ConductivitySensors.c) (revision 46db80caf660d4921badc04e4296a8a1312cb30c) +++ firmware/App/Controllers/ConductivitySensors.c (.../ConductivitySensors.c) (revision 255e10103b009abce4489ebe0adda8d45137e2f1) @@ -51,7 +51,6 @@ #define MAX_COND_SENSOR_CPI_WARNING_HIGH_US_PER_CM 2000.0F ///< Maximum allowed high conductivity value in uS/cm. #define MIN_COND_SENSOR_CPI_WARNING_HIGH_US_PER_CM 1990.0F ///< Minimum allowed high conductivity value in uS/cm. -#define MAX_COND_SENSOR_CPI_WARNING_LOW_US_PER_CM 200.0F ///< Maximum allowed low conductivity value in uS/cm. #define MIN_COND_SENSOR_CPI_WARNING_LOW_US_PER_CM 220.0F ///< Minimum allowed low conductivity value in uS/cm. #define MAX_RO_ONLY_COND_SENSOR_CPI_HIGH_US_PER_CM 100.0F ///< Maximum RO only mode high conductivity value in uS/cm. @@ -149,6 +148,7 @@ static DG_COND_SENSORS_CAL_RECORD_T condSensorsCalRecord; ///< Conductivity sensors' calibration record. static DG_COND_SENSORS_TEMP_COMP_CAL_RECORD_T condSensorsTempCompCalRecord; ///< Conductivity sensors' temperature compensation calibration record. static CAL_DATA_DG_COND_SENSORS_T condSensorCalTable[ NUM_OF_CONDUCTIVITY_SENSORS ]; ///< Conductivity sensors calibration table. +static F32 minInletWaterCondAlarmLimitUSPCM; ///< Min inlet water conductivity alarm limit in uS/cm. // ********** private function prototypes ********** @@ -172,8 +172,9 @@ void initConductivitySensors( void ) { U08 i; - roRejectionRatio = 0.0F; - condDataPublishCounter = DATA_PUBLISH_COUNTER_START_COUNT; + roRejectionRatio = 0.0F; + condDataPublishCounter = DATA_PUBLISH_COUNTER_START_COUNT; + minInletWaterCondAlarmLimitUSPCM = 0.0F; for ( i = 0; i < NUM_OF_CONDUCTIVITY_SENSORS; i++ ) { @@ -353,7 +354,7 @@ if ( FALSE == isROOnlyModeEnabled() ) { - isConductTooLow = ( conductivity < MAX_COND_SENSOR_CPI_WARNING_LOW_US_PER_CM ? TRUE : FALSE ); + isConductTooLow = ( conductivity < minInletWaterCondAlarmLimitUSPCM ? TRUE : FALSE ); isConductTooHigh = ( conductivity > MAX_COND_SENSOR_CPI_WARNING_HIGH_US_PER_CM ? TRUE : FALSE ); } else @@ -374,7 +375,7 @@ } // Per PRS 403 - checkPersistentAlarm( ALARM_ID_DG_INLET_WATER_CONDUCTIVITY_IN_LOW_RANGE, isConductTooLow, conductivity, MAX_COND_SENSOR_CPI_WARNING_LOW_US_PER_CM ); + checkPersistentAlarm( ALARM_ID_DG_INLET_WATER_CONDUCTIVITY_IN_LOW_RANGE, isConductTooLow, conductivity, minInletWaterCondAlarmLimitUSPCM ); if ( TRUE == isAlarmActive( ALARM_ID_DG_INLET_WATER_CONDUCTIVITY_IN_HIGH_RANGE ) ) { @@ -401,7 +402,7 @@ // Per PRS 403 checkPersistentAlarm( ALARM_ID_DG_CLEANING_MODE_INLET_WATER_COND_TOO_HIGH, isConductTooHigh, conductivity, MAX_COND_SENSOR_CPI_WARNING_HIGH_US_PER_CM ); // Per PRS 404 - checkPersistentAlarm( ALARM_ID_DG_CLEANING_MODE_INLET_WATER_COND_TOO_LOW, isConductTooLow, conductivity, MAX_COND_SENSOR_CPI_WARNING_LOW_US_PER_CM ); + checkPersistentAlarm( ALARM_ID_DG_CLEANING_MODE_INLET_WATER_COND_TOO_LOW, isConductTooLow, conductivity, minInletWaterCondAlarmLimitUSPCM ); break; default: @@ -413,10 +414,10 @@ else { // VPI is closed - clear all alarms - checkPersistentAlarm( ALARM_ID_DG_INLET_WATER_CONDUCTIVITY_IN_LOW_RANGE, FALSE, conductivity, MAX_COND_SENSOR_CPI_WARNING_LOW_US_PER_CM ); + checkPersistentAlarm( ALARM_ID_DG_INLET_WATER_CONDUCTIVITY_IN_LOW_RANGE, FALSE, conductivity, minInletWaterCondAlarmLimitUSPCM ); checkPersistentAlarm( ALARM_ID_DG_INLET_WATER_CONDUCTIVITY_IN_HIGH_RANGE, FALSE, conductivity, MAX_COND_SENSOR_CPI_WARNING_HIGH_US_PER_CM ); checkPersistentAlarm( ALARM_ID_DG_CLEANING_MODE_INLET_WATER_COND_TOO_HIGH, FALSE, conductivity, MAX_COND_SENSOR_CPI_WARNING_HIGH_US_PER_CM ); - checkPersistentAlarm( ALARM_ID_DG_CLEANING_MODE_INLET_WATER_COND_TOO_LOW, FALSE, conductivity, MAX_COND_SENSOR_CPI_WARNING_LOW_US_PER_CM ); + checkPersistentAlarm( ALARM_ID_DG_CLEANING_MODE_INLET_WATER_COND_TOO_LOW, FALSE, conductivity, minInletWaterCondAlarmLimitUSPCM ); } } @@ -452,6 +453,21 @@ /*********************************************************************//** * @brief + * The setMinInletWaterConductivityAlarmLimitUSPCM function sets the min + * inlet water conductivity alarm limit in uS/cm. + * @details Inputs: none + * @details Outputs: minInletWaterConductivityAlarmLimitUSPCM + * @param conductivity value + * @return none + *************************************************************************/ +void setMinInletWaterConductivityAlarmLimitUSPCM( F32 valueUSPM ) +{ + minInletWaterCondAlarmLimitUSPCM = valueUSPM; + SEND_EVENT_WITH_2_F32_DATA( DG_EVENT_MIN_INLET_WATER_COND_ALARM_FROM_HD_INSTIT_RECORD, minInletWaterCondAlarmLimitUSPCM, 0.0F ) +} + +/*********************************************************************//** + * @brief * The getConductivityValue function gets the compensated conductivity * value for a given conductivity sensor id. * @details Inputs: compensatedConductivityValues[]