提交 c68ce5d6 作者: wysheng

取消固定分组;BST异常结束

上级 b8f91cf9
......@@ -1466,7 +1466,8 @@ void GetStopReason_A(u8 * stopReason)
else if (BsmMsg.ChgSta.Value.Connect == 0x01)
*stopReason = 0x29; //29H:BSM 报文中连接器连接状态异常
else if ((BstMsg.StopReason.Value.NeedSoc == 0x01) || (BstMsg.StopReason.Value.SetVolt == 0x01) ||
(BstMsg.StopReason.Value.PerSetVolt == 0x01)||(ChargeStopType == eChgStop_Run_BmsStop)
(BstMsg.StopReason.Value.PerSetVolt == 0x01)
||((ChargeStopType == eChgStop_Run_BmsStop)&&(BstMsg.StopTruble.Mult == 0)&&(BstMsg.StopFault.Mult & 0x0F == 0))
|| ChargeStopType == eChgStop_Run_Soc98)
*stopReason = 0x2A; //2AH:BMS 正常终止充电
else if ((BstMsg.StopTruble.Mult != 0) || ((BstMsg.StopFault.Mult & 0x0F) != 0))
......@@ -1543,7 +1544,8 @@ void GetStopReason_B(u8 * stopReason)
else if (BsmMsg_B.ChgSta.Value.Connect == 0x01)
*stopReason = 0x29;
else if ((BstMsg_B.StopReason.Value.NeedSoc == 0x01) || (BstMsg_B.StopReason.Value.SetVolt == 0x01) ||
(BstMsg_B.StopReason.Value.PerSetVolt == 0x01)||(ChargeStopType_B == eChgStop_Run_BmsStop)
(BstMsg_B.StopReason.Value.PerSetVolt == 0x01)
||((ChargeStopType_B == eChgStop_Run_BmsStop)&&(BstMsg_B.StopTruble.Mult == 0)&&(BstMsg_B.StopFault.Mult & 0x0F == 0))
|| ChargeStopType_B == eChgStop_Run_Soc98)
*stopReason = 0x2A;
else if ((BstMsg_B.StopTruble.Mult != 0) || ((BstMsg_B.StopFault.Mult & 0x0F) != 0))
......
......@@ -68,6 +68,8 @@ u8 DcModuleGetStatus(u8 addr);
void DcModuleSetGroupNum(void);
extern void GetNXRAcVoltMsg(u32 addr);
void DcModuleCancelGroupNum(u16 addr);
void DcModuleManageProcess_SmartAllocation(void)
{
......@@ -1077,16 +1079,22 @@ void SendCheckToDcModule_ZhongXing(void)
for (u8 i = 0; i < DcModuleGroupSize; i++)
{
if(DcModuleStatus_ALL[i].Temp == 0)//未分组
{
DcModuleSetGroupNum();
//return;//continue;
}
for (u8 j = 0; j < DcModuleGroup[i].num; j++)
{
addr = DcModuleGroup[i].modules[j].addr;
if(DcModuleStatus_ALL[addr].State&0x0080 == 0x0000)
{
DcModuleCancelGroupNum(addr);
}
if(DcModuleStatus_ALL[addr].Temp == 0)//未分组
{
DcModuleSetGroupNum();
//return;//continue;
}
DataSend.Id = 0x180160A0 | (addr<<8);
DataSend.Len = 8;
DataSend.Data[0] = 0x00;
......@@ -1235,6 +1243,29 @@ void DcModuleSetGroupNum(void) //中兴模块分组设置
}
}
void DcModuleCancelGroupNum(u16 addr)
{
//改为动态分组
StructDcModuleSend DataSend;
DataSend.Id = 0x180260A0 | (addr<<8);
DataSend.Len = 8;
DataSend.Data[0] = 0x00;
DataSend.Data[1] = 0x0E;
DataSend.Data[2] = 0x03;
DataSend.Data[3] = 0x00;
DataSend.Data[4] = 0x00;
DataSend.Data[5] = 0x00;
DataSend.Data[6] = 0x00;
DataSend.Data[7] = 0x02;
//DcModuleSendMsg(&DataSend);
//放入队列
if (pdTRUE != xQueueSend(DcModeMsg, &DataSend, 0))
{
//osDelay(10);
}
}
void SendDataToDcModule_A(EnumSwitchStatus Set, u16 Volt, u16 Currt)
{
u8 cmd = 0;
......
......@@ -15,7 +15,7 @@ typedef struct
{
u8 addr;
u8 online;
u8 status;
u16 status;
u8 cmd;
u32 Voltage;
u32 Current;
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论