Index: firmware/App/Controllers/Voltages.c =================================================================== diff -u -r6499ea25921fcf67826fa0c35bb03caf411ba542 -r9d81cf1a22a20dcbd60dce18f9e8acaeff742d85 --- firmware/App/Controllers/Voltages.c (.../Voltages.c) (revision 6499ea25921fcf67826fa0c35bb03caf411ba542) +++ firmware/App/Controllers/Voltages.c (.../Voltages.c) (revision 9d81cf1a22a20dcbd60dce18f9e8acaeff742d85) @@ -17,7 +17,8 @@ #include "AlarmMgmt.h" #include "InternalADC.h" -#include "MessageSupport.h" +#include "MessageSupport.h" +#include "SafetyShutdown.h" #include "SystemCommMessages.h" #include "TaskGeneral.h" #include "Timers.h" @@ -322,19 +323,26 @@ { F32 volts = getMonitoredLineLevel( (MONITORED_VOLTAGES_T)i ); - if ( volts > MAX_VOLTAGES[ i ] ) + if ( ( isSafetyShutdownActivated() != TRUE ) || ( ( i != MONITORED_LINE_24V_MAIN ) && ( i != MONITORED_LINE_24V_POWER_PRIM_HTR_V ) ) ) { - if ( ++voltageAlarmPersistenceCtr[ i ] > VOLTAGES_ALARM_PERSISTENCE ) + if ( volts > MAX_VOLTAGES[ i ] ) { - SET_ALARM_WITH_2_F32_DATA( ALARM_ID_DG_VOLTAGE_OUT_OF_RANGE, (F32)i, volts ) + if ( ++voltageAlarmPersistenceCtr[ i ] > VOLTAGES_ALARM_PERSISTENCE ) + { + SET_ALARM_WITH_2_F32_DATA( ALARM_ID_DG_VOLTAGE_OUT_OF_RANGE, (F32)i, volts ) + } } - } - else if ( volts < MIN_VOLTAGES[ i ] ) - { - if ( ++voltageAlarmPersistenceCtr[ i ] > VOLTAGES_ALARM_PERSISTENCE ) + else if ( volts < MIN_VOLTAGES[ i ] ) { - SET_ALARM_WITH_2_F32_DATA( ALARM_ID_DG_VOLTAGE_OUT_OF_RANGE, (F32)i, volts ) + if ( ++voltageAlarmPersistenceCtr[ i ] > VOLTAGES_ALARM_PERSISTENCE ) + { + SET_ALARM_WITH_2_F32_DATA( ALARM_ID_DG_VOLTAGE_OUT_OF_RANGE, (F32)i, volts ) + } } + else + { + voltageAlarmPersistenceCtr[ i ] = 0; + } } else { Index: firmware/App/Controllers/Voltages.h =================================================================== diff -u -rb8f298547eb578000b3ff3cf55732fda7a689ce0 -r9d81cf1a22a20dcbd60dce18f9e8acaeff742d85 --- firmware/App/Controllers/Voltages.h (.../Voltages.h) (revision b8f298547eb578000b3ff3cf55732fda7a689ce0) +++ firmware/App/Controllers/Voltages.h (.../Voltages.h) (revision 9d81cf1a22a20dcbd60dce18f9e8acaeff742d85) @@ -50,8 +50,8 @@ MONITORED_LINE_FPGA_AUX_VCC_V, ///< FPGA auxiliary Vcc voltage (3V) MONITORED_LINE_FPGA_VPVN_V, ///< FPGA VPVN voltage (1V) MONITORED_LINE_PS_GATE_DRIVER_V, ///< P/S gate driver voltage (5V) - MONITORED_LINE_LAST_RANGE_CHECKED_LINE = MONITORED_LINE_PS_GATE_DRIVER_V, ///< The last monitored line that is checked per fixed range. MONITORED_LINE_24V_POWER_PRIM_HTR_V, ///< Primary heater voltage (24V) (isolated) + MONITORED_LINE_LAST_RANGE_CHECKED_LINE = MONITORED_LINE_24V_POWER_PRIM_HTR_V, ///< The last monitored line that is checked per fixed range. MONITORED_LINE_24V_GND_MAIN_PRIM_HTR_V, ///< Main primary heater ground voltage (24V when off, <5V when on) MONITORED_LINE_24V_GND_SMALL_PRIM_HTR_V, ///< Small primary heater voltage (24V) MONITORED_LINE_24V_GND_TRIM_HTR_V, ///< Trimmer heater voltage (24V)