提交 ff085b0f 作者: wysheng

充电过程中的模块释放

上级 e095661a
......@@ -2564,8 +2564,8 @@ void TCUErroCommAnalysis(StructTCUSend * pPgnRecv)
{
memcpy(&TCUChgContralTCUEM_A.tcuem, &pPgnRecv->Data[1], 2);
//memset(&TCUCommuStatus, 0x00, sizeof(TCUCommuStatus)); //通讯初始化
//TCUCommuStatus.ConnectFlag = CONNECT_TIMEOUT;
memset(&TCUCommuStatus, 0x00, sizeof(TCUCommuStatus)); //通讯初始化
TCUCommuStatus.ConnectFlag = CONNECT_TIMEOUT;
//TCUCommuStatus.HeartBeatErrCnt = 0;
//HeartBeatVaild = 0; //心跳失效
......@@ -2573,8 +2573,8 @@ void TCUErroCommAnalysis(StructTCUSend * pPgnRecv)
else if (pPgnRecv->DA == ChargerCont1939Addr_B)
{
memcpy(&TCUChgContralTCUEM_B.tcuem, &pPgnRecv->Data[1], 2);
//memset(&TCUCommuStatus_B, 0x00, sizeof(TCUCommuStatus)); //通讯初始化
//TCUCommuStatus_B.ConnectFlag = CONNECT_TIMEOUT;
memset(&TCUCommuStatus_B, 0x00, sizeof(TCUCommuStatus)); //通讯初始化
TCUCommuStatus_B.ConnectFlag = CONNECT_TIMEOUT;
//TCUCommuStatus_B.HeartBeatErrCnt = 0;
//TCUCommuStatus_B.HeartBeatVaild = 0; //心跳失效
}
......
......@@ -119,6 +119,7 @@ void ChgProChgRun_B(StructChargeCtrl_B *pChargeCtrl)
NeedCurrt = abs((s32)BclMsg_B.NeedCurrt - 4000);
static s16 GetCurrt_bak;
static u32 ReleaseDcModuleTick = 0;
if(abs((s16)GetDcModuleCurrt_B()-GetCurrt_bak)<10 //输出电流稳定
&& (abs((s16)NeedCurrt-(s16)GetDcModuleCurrt_B())>(DcModuleAbility.MaxCurrt))
)
......@@ -126,7 +127,7 @@ void ChgProChgRun_B(StructChargeCtrl_B *pChargeCtrl)
if(0 == UniChgTick)
UniChgTick = GetSystemTick();
if((GetSystemTick() - UniChgTick) > (5 * 1000))
if((GetSystemTick() - UniChgTick) > (10 * 1000))
{
if(NeedCurrt > GetDcModuleCurrt_B())
{
......@@ -148,6 +149,22 @@ void ChgProChgRun_B(StructChargeCtrl_B *pChargeCtrl)
}
else
{
}
UniChgTick = 0;
}
}
else if(abs((s16)GetDcModuleCurrt_B()-GetCurrt_bak)<10 //输出电流稳定
&& (abs((s16)NeedCurrt-(s16)(DcModuleAbility.MaxCurrt*DcModuleManage_B.ValidNum))>(DcModuleAbility.MaxCurrt))
)
{
if(0 == ReleaseDcModuleTick)
ReleaseDcModuleTick = GetSystemTick();
if((GetSystemTick() - ReleaseDcModuleTick) > (10 * 1000))
{
if(NeedCurrt < (DcModuleAbility.MaxCurrt*DcModuleManage_B.ValidNum))
{
if(DcModuleGroup[0].status == Hold_B)
{
DcModuleGroup[0].status = Valid;
......@@ -164,14 +181,14 @@ void ChgProChgRun_B(StructChargeCtrl_B *pChargeCtrl)
DcModuleManage.ValidNum -= DcModuleGroup[3].ValidNum;
}
}
UniChgTick = 0;
ReleaseDcModuleTick = 0;
}
}
else
{
UniChgTick = 0;
ReleaseDcModuleTick = 0;
GetCurrt_bak = GetDcModuleCurrt_B();
}
......
......@@ -127,7 +127,7 @@ void ChgProChgRun(StructChargeCtrl * pChargeCtrl)
NeedCurrt = abs((s32) BclMsg.NeedCurrt - 4000);
static s16 GetCurrt_bak;
static u32 ReleaseDcModuleTick = 0;
if (abs((s16) GetDcModuleCurrt() -GetCurrt_bak) < 10 //ȶ
&& (abs((s16) NeedCurrt - (s16) GetDcModuleCurrt()) > (DcModuleAbility.MaxCurrt)))
{
......@@ -160,7 +160,21 @@ void ChgProChgRun(StructChargeCtrl * pChargeCtrl)
}
}
}
else
UniChgTick = 0;
}
}
else if (abs((s16) GetDcModuleCurrt() -GetCurrt_bak) < 10 //ȶ
&& (abs((s16) NeedCurrt - (s16)(DcModuleAbility.MaxCurrt * DcModuleManage.ValidNum)) > (DcModuleAbility.MaxCurrt)))
{
if (0 == ReleaseDcModuleTick)
ReleaseDcModuleTick = GetSystemTick();
if ((GetSystemTick() -ReleaseDcModuleTick) > (10 * 1000))
{
if(NeedCurrt < (DcModuleAbility.MaxCurrt * DcModuleManage.ValidNum))
{
if (DcModuleGroup[2].status == Hold_A)
{
......@@ -178,15 +192,13 @@ void ChgProChgRun(StructChargeCtrl * pChargeCtrl)
DcModuleManage.ValidNum -= DcModuleGroup[1].ValidNum;
}
}
UniChgTick = 0;
ReleaseDcModuleTick = 0;
}
}
else
{
UniChgTick = 0;
ReleaseDcModuleTick = 0;
GetCurrt_bak = GetDcModuleCurrt();
}
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论