Ver código fonte

V3.1.0.64 对MLS电池做适应性修改

CHENJIE-PC\QiXiang_CHENJIE 3 anos atrás
pai
commit
bba1fec053

+ 2 - 2
inc/AppConfig.h

@@ -2,7 +2,7 @@
  * @Author       : ChenJie
  * @Date         : 2021-10-14 09:27:15
  * @LastEditors  : ChenJie
- * @LastEditTime : 2021-12-08 18:12:25
+ * @LastEditTime : 2021-12-09 13:18:56
  * @Description  : App Config H file 配置文件,可以针对不同参数进行更改
  * @FilePath     : \PLAT\project\ec616_0h00\apps\qx_app\inc\AppConfig.h
  */
@@ -14,7 +14,7 @@
 #define DATA_MODULE_TYPE (1)           // 1表示NB模块,2表示4G cat1
 #define EOLSTATE (0)                   // 1表示下线检测跳过,使用默认值,0表示使用下线检测
 #define DEFAULT_SN "RLTEST00000000001" //默认上传的SN编码
-#define APPSWVERSION 0x0301003F        //数据模块软件版本号
+#define APPSWVERSION 0x03010040        //数据模块软件版本号
 #define RELAYCONFIG 1                  //继电器配置
 #define TCP_ADD "iotp.fast-fun.cn"     //数据上传的地址
 #define TCP_PORT 8712                  //数据上传的端口

+ 2 - 2
inc/EmbeddedCoder_inc/BCUCal.h

@@ -8,8 +8,8 @@ extern const uint16_T blcc_T_open;  /* 均衡暂停恢复温度; */
 extern const uint16_T blcc_V_low;   /* 均衡开启电压阈值 */
 
 extern const uint16_T cmnc_Q_ratedCp;                /* 电池容量; */
-extern const uint16_T cmnc_num_cellUNum;             /* 电压采样点实际个数; */
-extern const uint16_T cmnc_num_modTNum;              /* 温度采样点实际个数; */
+extern uint16_T cmnc_num_cellUNum;                   /* 电压采样点实际个数; */
+extern uint16_T cmnc_num_modTNum;                    /* 温度采样点实际个数; */
 extern const uint16_T cmnc_tm_parkTime;              /* 静置时间阈值; */
 extern const uint16_T cmnm_F_polar[13];              /* 电池放电参数的C数组; */
 extern const uint16_T cmnm_R_ohm[13];                /* 电池放电参数的Ro数组; */

+ 12 - 10
src/EmbeddedCoder_src/BCU.c

@@ -26,7 +26,7 @@ void BCU(void)
             RecvCounter++;
             osDelay(1000);
         }
-        //printf("RecvCounter:%d\n ",RecvCounter);
+        // printf("RecvCounter:%d\n ",RecvCounter);
     }
 
     PROC_BCU_STATE_SWITCH(PROCESS_STATE_INIT);
@@ -38,6 +38,8 @@ void BCU(void)
         case PROCESS_STATE_INIT:
         {
             BCU_Init();
+            cmnc_num_cellUNum = AppDataInfo.BattCellCount; /* 电压采样点实际个数; */
+            cmnc_num_modTNum = AppDataInfo.BattTempCount;  /* 温度采样点实际个数; */
             memcpy(blcv_Q_totalCpEi, BcuDataInfo.blcv_Q_totalCpE, sizeof(blcv_Q_totalCpEi));
             memcpy(blcv_Q_reqCpEi, BcuDataInfo.blcv_Q_reqCpE, sizeof(blcv_Q_reqCpEi));
             socd_pct_bcuSocEi = BcuDataInfo.socd_pct_bcuSocE;
@@ -49,14 +51,14 @@ void BCU(void)
             memcpy(sohv_Q_packCapArrEi, BcuDataInfo.sohv_Q_packCapArrE, sizeof(sohv_Q_packCapArrEi));
             memcpy(sohv_Q_cellCapArrEi, BcuDataInfo.sohv_Q_cellCapArrE, sizeof(sohv_Q_cellCapArrEi));
             memcpy(iscv_Q_remainCpEi, BcuDataInfo.iscv_Q_remainCpE, sizeof(iscv_Q_remainCpEi));
-			memcpy(sorv_ohm_cellREi, BcuDataInfo.sorv_ohm_cellRE, sizeof(sorv_ohm_cellREi));
+            memcpy(sorv_ohm_cellREi, BcuDataInfo.sorv_ohm_cellRE, sizeof(sorv_ohm_cellREi));
             iscd_tm_totalEi = BcuDataInfo.iscd_tm_totalE;
             sfmd_flg_mainCirClosFltEi = BcuDataInfo.sfmd_flg_mainCirClosFltE;
             sfmd_flg_heatCirClosFltEi = BcuDataInfo.sfmd_flg_heatCirClosFltE;
             sfmd_flg_heatCirOpenFltEi = BcuDataInfo.sfmd_flg_heatCirOpenFltE;
             sfmd_flg_heatRunFltEi = BcuDataInfo.sfmd_flg_heatRunFltE;
             sfmd_flg_iscFltEi = BcuDataInfo.sfmd_flg_iscFltE;
-			ihd_tm_parkTime = BcuDataInfo.ihd_tm_parkTimeE;
+            ihd_tm_parkTime = BcuDataInfo.ihd_tm_parkTimeE;
             ihd_st_EOLState = AppNVMData.EOLState;
 
             PROC_BCU_STATE_SWITCH(PROCESS_STATE_WORK);
@@ -88,7 +90,7 @@ void BCU(void)
                         PROC_BCU_STATE_SWITCH(PROCESS_STATE_SLEEP);
                         break;
                     }
-					//printf("time:%d\n",ihd_tm_parkTime);
+                    // printf("time:%d\n",ihd_tm_parkTime);
                     //
                     //数据获取
                     ihd_I_curr = (int16_T)(-(battI - 10000));
@@ -127,7 +129,7 @@ void BCU(void)
                     ihd_st_chrgMosControl = ChargeForbiddenControl == 0;
                     ihd_st_disChrgMosControl = DisChargeForbiddenControl == 0;
                     ihd_st_relayControl = RelayForbiddenControl == 0;
-                    //ihd_flg_DTCClear = 1;   //////clear
+                    // ihd_flg_DTCClear = 1;   //////clear
                     //调用算法
                     SFM();
                     TMS();
@@ -155,8 +157,8 @@ void BCU(void)
                     {
                         appd_st_preCyc = 0;
                     }
-					
-					BcuDataInfo.ihd_tm_parkTimeE = 0;
+
+                    BcuDataInfo.ihd_tm_parkTimeE = 0;
                     BcuDataInfo.appDataModify = TRUE;
                 }
                 osDelay(100);
@@ -173,9 +175,9 @@ void BCU(void)
                 if (TimeCounter % 10 == 0)
                 {
                     ihd_tm_parkTime++;
-					//printf("time:%d\n",ihd_tm_parkTime);	
+                    // printf("time:%d\n",ihd_tm_parkTime);
                 }
-				if (TimeCounter % 1000 == 0)
+                if (TimeCounter % 1000 == 0)
                 {
                     BcuDataInfo.ihd_tm_parkTimeE = ihd_tm_parkTime;
                     BcuDataInfo.appDataModify = TRUE;
@@ -238,7 +240,7 @@ void BCUEEDataSave(void)
     memcpy(BcuDataInfo.sohv_Q_packCapArrE, sohv_Q_packCapArrEo, sizeof(sohv_Q_packCapArrEo));
     memcpy(BcuDataInfo.sohv_Q_cellCapArrE, sohv_Q_cellCapArrEo, sizeof(sohv_Q_cellCapArrEo));
     memcpy(BcuDataInfo.iscv_Q_remainCpE, iscv_Q_remainCpEo, sizeof(iscv_Q_remainCpEo));
-	memcpy(BcuDataInfo.sorv_ohm_cellRE, sorv_ohm_cellREo, sizeof(sorv_ohm_cellREo));
+    memcpy(BcuDataInfo.sorv_ohm_cellRE, sorv_ohm_cellREo, sizeof(sorv_ohm_cellREo));
     BcuDataInfo.iscd_tm_totalE = iscd_tm_totalEo;
     BcuDataInfo.sfmd_flg_mainCirClosFltE = sfmd_flg_mainCirClosFltEo;
     BcuDataInfo.sfmd_flg_heatCirClosFltE = sfmd_flg_heatCirClosFltEo;

+ 2 - 2
src/EmbeddedCoder_src/BCUCal.c

@@ -7,8 +7,8 @@ const uint16_T blcc_T_open = 100U;  /* 均衡暂停恢复温度; */
 const uint16_T blcc_V_low = 10U;    /* 均衡开启电压阈值 */
 
 const uint16_T cmnc_Q_ratedCp = 500U;                                                                                                     /* 电池容量; */
-const uint16_T cmnc_num_cellUNum = 20U;                                                                                                   /* 电压采样点实际个数; */
-const uint16_T cmnc_num_modTNum = 4U;                                                                                                     /* 温度采样点实际个数; */
+uint16_T cmnc_num_cellUNum = 20U;                                                                                                         /* 电压采样点实际个数; */
+uint16_T cmnc_num_modTNum = 4U;                                                                                                           /* 温度采样点实际个数; */
 const uint16_T cmnc_tm_parkTime = 1800U;                                                                                                  /* 静置时间阈值; */
 const uint16_T cmnm_F_polar[13] = {1152U, 4862U, 12567U, 20299U, 23334U, 22612U, 23075U, 17084U, 14510U, 15551U, 17127U, 17475U, 20043U}; /* 电池放电参数的C数组; */
 const uint16_T cmnm_R_ohm[13] = {2364U, 2284U, 2234U, 2166U, 2128U, 2111U, 2090U, 2077U, 2077U, 2072U, 2085U, 2090U, 2077U};              /* 电池放电参数的Ro数组; */