|
@@ -17,6 +17,9 @@ void SFM(void)
|
|
boolean_T sfmd_flg_chrgMosClosFlt;
|
|
boolean_T sfmd_flg_chrgMosClosFlt;
|
|
boolean_T sfmd_flg_disChrgMosClosFlt;
|
|
boolean_T sfmd_flg_disChrgMosClosFlt;
|
|
|
|
|
|
|
|
+ static uint16_T Time0Cntl;
|
|
|
|
+ static uint16_T modTMaxArr[10];
|
|
|
|
+ static uint16_T SumT0;
|
|
static uint16_T Time1Cntl;
|
|
static uint16_T Time1Cntl;
|
|
static uint16_T heatT1Arr[10];
|
|
static uint16_T heatT1Arr[10];
|
|
static uint16_T SumT1;
|
|
static uint16_T SumT1;
|
|
@@ -176,6 +179,7 @@ void SFM(void)
|
|
memset(RecNr, 0, sizeof(RecNr));
|
|
memset(RecNr, 0, sizeof(RecNr));
|
|
memset(modTOpenNr, 0, sizeof(modTOpenNr));
|
|
memset(modTOpenNr, 0, sizeof(modTOpenNr));
|
|
memset(modTRationNr, 0, sizeof(modTRationNr));
|
|
memset(modTRationNr, 0, sizeof(modTRationNr));
|
|
|
|
+ memset(deltRFltNr, 0, sizeof(deltRFltNr));
|
|
sfmd_flg_cellUOverFlt2 = false;
|
|
sfmd_flg_cellUOverFlt2 = false;
|
|
sfmd_flg_cellUOverFlt1 = false;
|
|
sfmd_flg_cellUOverFlt1 = false;
|
|
sfmd_flg_cellULowFlt2 = false;
|
|
sfmd_flg_cellULowFlt2 = false;
|
|
@@ -846,6 +850,31 @@ void SFM(void)
|
|
|
|
|
|
|
|
|
|
////32 加热回路常闭故障
|
|
////32 加热回路常闭故障
|
|
|
|
+ if(!sfmd_flg_modTAllFlt)
|
|
|
|
+ {
|
|
|
|
+ if (FirstRun_SFM)
|
|
|
|
+ {
|
|
|
|
+ for (i = 0; i < 10; i++)
|
|
|
|
+ {
|
|
|
|
+ modTMaxArr[i] = sfmd_T_modTMax;
|
|
|
|
+ }
|
|
|
|
+ Time0Cntl = 0;
|
|
|
|
+ SumT0 = 0;
|
|
|
|
+ }
|
|
|
|
+ Time0Cntl++;
|
|
|
|
+ SumT0 = SumT0 + sfmd_T_modTMax;
|
|
|
|
+ if (Time0Cntl >= 60)
|
|
|
|
+ {
|
|
|
|
+ for (i = 0; i < 9; i++)
|
|
|
|
+ {
|
|
|
|
+ modTMaxArr[i] = modTMaxArr[i + 1];
|
|
|
|
+ }
|
|
|
|
+ modTMaxArr[9] = SumT0 / Time0Cntl;
|
|
|
|
+ Time0Cntl = 0;
|
|
|
|
+ SumT0 = 0;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
if (!sfmd_flg_heatPanT1OpenFlt && !sfmd_flg_heatPanT1RationFlt && (int16_T)(ihd_T_heatPanT1 - ihd_T_heatPanT1_Delay1) > -10 && (int16_T)(ihd_T_heatPanT1 - ihd_T_heatPanT1_Delay1) < 20 )
|
|
if (!sfmd_flg_heatPanT1OpenFlt && !sfmd_flg_heatPanT1RationFlt && (int16_T)(ihd_T_heatPanT1 - ihd_T_heatPanT1_Delay1) > -10 && (int16_T)(ihd_T_heatPanT1 - ihd_T_heatPanT1_Delay1) < 20 )
|
|
{
|
|
{
|
|
if (FirstRun_SFM)
|
|
if (FirstRun_SFM)
|
|
@@ -901,7 +930,7 @@ void SFM(void)
|
|
deltaTEn1 = !sfmd_flg_heatPanT1OpenFlt && !sfmd_flg_heatPanT1RationFlt && !sfmd_flg_ACPlugTOpenFlt &&!sfmd_flg_ACPlugTRationFlt && !sfmd_flg_DCPlugTOpenFlt &&!sfmd_flg_DCPlugTRationFlt && ((ihd_T_heatPanT1 > ihd_T_ACPlugT + 5) && (ihd_T_heatPanT1 > ihd_T_DCPlugT + 5));
|
|
deltaTEn1 = !sfmd_flg_heatPanT1OpenFlt && !sfmd_flg_heatPanT1RationFlt && !sfmd_flg_ACPlugTOpenFlt &&!sfmd_flg_ACPlugTRationFlt && !sfmd_flg_DCPlugTOpenFlt &&!sfmd_flg_DCPlugTRationFlt && ((ihd_T_heatPanT1 > ihd_T_ACPlugT + 5) && (ihd_T_heatPanT1 > ihd_T_DCPlugT + 5));
|
|
deltaTEn2 = !sfmd_flg_heatPanT2OpenFlt && !sfmd_flg_heatPanT2RationFlt && !sfmd_flg_ACPlugTOpenFlt &&!sfmd_flg_ACPlugTRationFlt && !sfmd_flg_DCPlugTOpenFlt &&!sfmd_flg_DCPlugTRationFlt && ((ihd_T_heatPanT2 > ihd_T_ACPlugT + 5) && (ihd_T_heatPanT2 > ihd_T_DCPlugT + 5));
|
|
deltaTEn2 = !sfmd_flg_heatPanT2OpenFlt && !sfmd_flg_heatPanT2RationFlt && !sfmd_flg_ACPlugTOpenFlt &&!sfmd_flg_ACPlugTRationFlt && !sfmd_flg_DCPlugTOpenFlt &&!sfmd_flg_DCPlugTRationFlt && ((ihd_T_heatPanT2 > ihd_T_ACPlugT + 5) && (ihd_T_heatPanT2 > ihd_T_DCPlugT + 5));
|
|
Enable1 = JudgeTimeSystem(1, tmsd_st_heatAct == 0, &DiagTime.N32, 600);
|
|
Enable1 = JudgeTimeSystem(1, tmsd_st_heatAct == 0, &DiagTime.N32, 600);
|
|
- sfmd_flg_heatCirClosFltEo = (((int16_T)(heatT2Arr[9] - heatT2Arr[0]) > 5 || (int16_T)(heatT1Arr[9] - heatT1Arr[0]) > 5) && Enable1 && (deltaTEn1 || deltaTEn2)) || sfmd_flg_heatCirClosFltEo || sfmd_flg_heatCirClosFltEi;
|
|
|
|
|
|
+ sfmd_flg_heatCirClosFltEo = (((int16_T)(heatT2Arr[9] - heatT2Arr[0]) > 5 || (int16_T)(heatT1Arr[9] - heatT1Arr[0]) > 5) && (modTMaxArr[9] > modTMaxArr[0] + 3) && Enable1 && (deltaTEn1 || deltaTEn2)) || sfmd_flg_heatCirClosFltEo || sfmd_flg_heatCirClosFltEi;
|
|
|
|
|
|
//33 加热回路常开故障
|
|
//33 加热回路常开故障
|
|
Enable2 = JudgeTimeSystem(1, tmsd_st_heatAct == 1, &DiagTime.N33, 600);
|
|
Enable2 = JudgeTimeSystem(1, tmsd_st_heatAct == 1, &DiagTime.N33, 600);
|
|
@@ -1043,7 +1072,7 @@ void SFM(void)
|
|
FltAct[30] = 0;
|
|
FltAct[30] = 0;
|
|
|
|
|
|
FltFlg[31] = sfmd_flg_heatCirClosFltEo;
|
|
FltFlg[31] = sfmd_flg_heatCirClosFltEo;
|
|
- FltLevel[31] = 5;
|
|
|
|
|
|
+ FltLevel[31] = 4;
|
|
FltAct[31] = 250; //32 加热回路常闭故障
|
|
FltAct[31] = 250; //32 加热回路常闭故障
|
|
|
|
|
|
FltFlg[32] = sfmd_flg_heatCirOpenFltEo;
|
|
FltFlg[32] = sfmd_flg_heatCirOpenFltEo;
|
|
@@ -1051,7 +1080,7 @@ void SFM(void)
|
|
FltAct[32] = 0; //33 加热回路常开故障
|
|
FltAct[32] = 0; //33 加热回路常开故障
|
|
|
|
|
|
FltFlg[33] = sfmd_flg_mainCirClosFltEo;
|
|
FltFlg[33] = sfmd_flg_mainCirClosFltEo;
|
|
- FltLevel[33] = 5;
|
|
|
|
|
|
+ FltLevel[33] = 4;
|
|
FltAct[33] = 250; //34 主回路常闭故障
|
|
FltAct[33] = 250; //34 主回路常闭故障
|
|
|
|
|
|
FltFlg[34] = 0;
|
|
FltFlg[34] = 0;
|