Browse Source

Merge commit 'bebc7c861098d8c91e9fe59d7826c4c4324b4081' into V3-V31XX-7250

CHENJIE-PC\QiXiang_CHENJIE 3 years ago
parent
commit
c39be07d6a
3 changed files with 10 additions and 6 deletions
  1. 1 2
      src/EmbeddedCoder_src/BCU.c
  2. 7 3
      src/EmbeddedCoder_src/SFM.c
  3. 2 1
      src/EmbeddedCoder_src/TMS.c

+ 1 - 2
src/EmbeddedCoder_src/BCU.c

@@ -110,8 +110,7 @@ void BCU(void)
                     ihd_st_chrgMosControl = ChargeForbiddenControl == 0;
                     ihd_st_disChrgMosControl = DisChargeForbiddenControl == 0;
                     ihd_st_relayControl = RelayForbiddenControl == 0;
-                    //ihd_flg_DTCClear = ihd_flg_disChrgMosClosFlt;
-
+                    ihd_flg_DTCClear = 1;   //////clear
                     //调用算法
                     SFM();
                     TMS();

+ 7 - 3
src/EmbeddedCoder_src/SFM.c

@@ -23,6 +23,8 @@ void SFM(void)
     static uint16_T Time2Cntl;
     static uint16_T heatT2Arr[10];
     static uint16_T SumT2;
+    boolean_T deltaTEn1;
+	boolean_T deltaTEn2;
 
     static uint8_T Cntl;
     static uint16_T CellUArry[4][cmnc_num_cellUNumMax];
@@ -139,7 +141,7 @@ void SFM(void)
     static boolean_T sfmd_flg_modTOpenFlt_keep;
     static uint16_T CntB;
 	static boolean_T ihd_flg_urtRecFlt_Delay = false;
-
+	
     int32_T SumR;
 	int32_T SumRR;
     boolean_T sfmd_flg_deltRFlt;
@@ -896,8 +898,10 @@ void SFM(void)
     }
     ihd_T_heatPanT2_Delay1 =ihd_T_heatPanT2;
     //32 加热回路常闭故障
-    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) || sfmd_flg_heatCirClosFltEo || sfmd_flg_heatCirClosFltEi;
+    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));
+	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;
 
     //33 加热回路常开故障
     Enable2 = JudgeTimeSystem(1, tmsd_st_heatAct == 1, &DiagTime.N33, 600);

+ 2 - 1
src/EmbeddedCoder_src/TMS.c

@@ -53,7 +53,7 @@ void TMS(void)
     //================================温度判定 开关热管理状态===============================
     if (tmsd_st_heatAct == 0)
     {
-        if (TminLowNr >= 5 && ( socd_pct_battSoc > 100 || ihd_st_chrgConnect == 1))
+        if (TminLowNr >= 5 && ((socd_pct_battSoc > 100 && ihd_st_disChrgMosControl == 1) || ihd_st_chrgConnect == 1))
         {
             tmsd_st_heatAct = 1;
         }
@@ -81,6 +81,7 @@ void TMS(void)
     {
         tmsd_st_heatAct = 0;
     }
+	printf("tmsd_st_heatAct:%d\n",tmsd_st_heatAct);
     
     FirstRun_TMS = false;
 }