提交 d4f17265 作者: wysheng

增加判断防止输出过流

上级 9416f001
......@@ -265,7 +265,7 @@ void DcModuleManageProcess_SmartAllocation(void)
void DcModuleCtrlProcess_SmartAllocation(void)
{
u32 Temp = 0;
static u32 Tick = 0; //
static u32 Tick = 0; //
u8 flag = 0;
if ((GetSystemTick() -Tick) < 100)
......@@ -336,7 +336,7 @@ void DcModuleCtrlProcess_SmartAllocation(void)
if (DcModuleManage.ValidNum)
{
Temp = (DcModuleCtrl.NeedCurrt * 100) / DcModuleManage.ValidNum;
Temp = (DcModuleCtrl.NeedCurrt * 100) / DcModuleManage.ValidNum;
if ((DcModuleCtrl.NeedCurrt * 100) % DcModuleManage.ValidNum)
Temp++;
......@@ -372,7 +372,11 @@ void DcModuleCtrlProcess_SmartAllocation(void)
DcModuleManage.Cmd = 0x55; //开机
SendDataToDcModule(i, DcModuleManage.Cmd, DcModuleManage.SetVolt, DcModuleManage.SetCurrt);
//增加判断,防止输出过流
if(DcModuleGroup[i].flag == 1)
SendDataToDcModule(i, DcModuleManage.Cmd, DcModuleManage.SetVolt, DcModuleAbility.MinCurrt * 100);
else
SendDataToDcModule(i, DcModuleManage.Cmd, DcModuleManage.SetVolt, DcModuleManage.SetCurrt);
}
}
else
......@@ -433,9 +437,10 @@ void DcModuleCtrlProcess_SmartAllocation(void)
continue;
DcModuleManage_B.Cmd = 0x55; //开机
SendDataToDcModule(i, DcModuleManage_B.Cmd, DcModuleManage_B.SetVolt,
DcModuleManage_B.SetCurrt);
if(DcModuleGroup[i].flag == 1)
SendDataToDcModule(i, DcModuleManage_B.Cmd, DcModuleManage_B.SetVolt, DcModuleAbility.MinCurrt * 100);
else
SendDataToDcModule(i, DcModuleManage_B.Cmd, DcModuleManage_B.SetVolt, DcModuleManage_B.SetCurrt);
}
}
......@@ -640,18 +645,18 @@ void SendDataToDcModule_ZhongXing(u8 group_index, u8 cmd, u32 volt, u32 current)
DataSend.Len = 8;
DataSend.Data[0] = (flag<<4) | sendCmd;
DataSend.Data[1] = group_index + 1;
Temp = current/10;
DataSend.Data[4] = (u8) (Temp >> 8);
DataSend.Data[5] = (u8) (Temp >> 0);
Temp = volt/100;
DataSend.Data[2] = (u8) (Temp >> 8);
DataSend.Data[3] = (u8) (Temp >> 0);
DataSend.Data[6] = (u8) (Temp >> 8);
DataSend.Data[7] = (u8) (Temp >> 0);
if(((sendCmd==0x01||sendCmd==0x03)&&DcModuleGroup[group_index].modules[0].status.Value.OnOff!=0x02)
||(sendCmd==0x02&&DcModuleGroup[group_index].modules[0].status.Value.OnOff!=0x01))
{
Temp = current/10;
DataSend.Data[4] = (u8) (Temp >> 8);
DataSend.Data[5] = (u8) (Temp >> 0);
Temp = volt/100;
DataSend.Data[2] = (u8) (Temp >> 8);
DataSend.Data[3] = (u8) (Temp >> 0);
DataSend.Data[6] = (u8) (Temp >> 8);
DataSend.Data[7] = (u8) (Temp >> 0);
//放入队列
if (pdTRUE != xQueueSend(DcModeMsg, &DataSend, 0))
{
......@@ -662,14 +667,6 @@ void SendDataToDcModule_ZhongXing(u8 group_index, u8 cmd, u32 volt, u32 current)
if(DcModuleGroup[group_index].modules[0].status.Value.OnOff == 0x02) //非停止充电,下发修改充电参数
{
DataSend.Data[0] = (flag<<4) | 0x05;
Temp = current/10;
DataSend.Data[4] = (u8) (Temp >> 8);
DataSend.Data[5] = (u8) (Temp >> 0);
Temp = volt/100;
DataSend.Data[2] = (u8) (Temp >> 8);
DataSend.Data[3] = (u8) (Temp >> 0);
DataSend.Data[6] = (u8) (Temp >> 8);
DataSend.Data[7] = (u8) (Temp >> 0);
if (pdTRUE != xQueueSend(DcModeMsg, &DataSend, 0))
{
//osDelay(10);
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论