Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
D
DC360_1drap3_xiaoju_V1
概览
概览
详情
活动
周期分析
版本库
存储库
文件
提交
分支
标签
贡献者
分支图
比较
统计图
问题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程表
图表
维基
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
丁雨邯
DC360_1drap3_xiaoju_V1
Commits
5a5d23e5
提交
5a5d23e5
authored
5月 05, 2020
作者:
wysheng
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
修复一些错误
1. 错误的发送停止充电完成 2. BMS需求电压 电流
上级
6152cb7a
全部展开
显示空白字符变更
内嵌
并排
正在显示
5 个修改的文件
包含
193 行增加
和
93 行删除
+193
-93
Drv_TCUComm.c
DcPillar/Src/Drivers/Drv_TCUComm.c
+74
-14
Drv_SmartAllocation.c
DcPillar/Src/SmartAllocation/Drv_SmartAllocation.c
+84
-70
SmartAllocation_B_ChgRun.c
DcPillar/Src/SmartAllocation/SmartAllocation_B_ChgRun.c
+27
-3
SmartAllocation_ChgRun.c
DcPillar/Src/SmartAllocation/SmartAllocation_ChgRun.c
+0
-0
Thd_TCU.c
DcPillar/Src/Thread/Thd_TCU.c
+8
-6
没有找到文件。
DcPillar/Src/Drivers/Drv_TCUComm.c
浏览文件 @
5a5d23e5
...
@@ -1036,7 +1036,7 @@ void startCompSend_A(void)
...
@@ -1036,7 +1036,7 @@ void startCompSend_A(void)
memcpy
(
&
Data
[
len
],
BrmMsg
.
Vin
,
17
);
//车辆识别码 BIN码 17
memcpy
(
&
Data
[
len
],
BrmMsg
.
Vin
,
17
);
//车辆识别码 BIN码 17
len
+=
17
;
len
+=
17
;
TCUMultiPackSendMsg
(
Data
,
len
,
eCmd_startComp
,
4
,
ChargerCont1939Addr
);
TCUMultiPackSendMsg
(
Data
,
55
,
eCmd_startComp
,
4
,
ChargerCont1939Addr
);
}
}
...
@@ -1113,7 +1113,7 @@ void startCompSend_B(void)
...
@@ -1113,7 +1113,7 @@ void startCompSend_B(void)
Data
[
len
++
]
=
0x0F
;
//最小输出电流0A
Data
[
len
++
]
=
0x0F
;
//最小输出电流0A
memcpy
(
&
Data
[
len
],
BrmMsg_B
.
Vin
,
17
);
//车辆识别码 BIN码 17
memcpy
(
&
Data
[
len
],
BrmMsg_B
.
Vin
,
17
);
//车辆识别码 BIN码 17
len
+=
17
;
len
+=
17
;
TCUMultiPackSendMsg
(
Data
,
len
,
eCmd_startComp
,
4
,
ChargerCont1939Addr_B
);
//多包传输
TCUMultiPackSendMsg
(
Data
,
55
,
eCmd_startComp
,
4
,
ChargerCont1939Addr_B
);
//多包传输
}
}
...
@@ -1130,7 +1130,7 @@ void ACkStartCompMeg(StructTCUSend * pPgnRecv)
...
@@ -1130,7 +1130,7 @@ void ACkStartCompMeg(StructTCUSend * pPgnRecv)
TCUCurChgRecd
.
TCUChargeEnable
=
0
;
TCUCurChgRecd
.
TCUChargeEnable
=
0
;
}
}
TCUCurChgRecd
.
TCUChgStarCompNotetrl
=
3
;
TCUCurChgRecd
.
TCUChgStarCompNotetrl
=
0
;
}
}
else
if
(
pPgnRecv
->
DA
==
ChargerCont1939Addr_B
)
else
if
(
pPgnRecv
->
DA
==
ChargerCont1939Addr_B
)
{
{
...
@@ -1138,12 +1138,12 @@ void ACkStartCompMeg(StructTCUSend * pPgnRecv)
...
@@ -1138,12 +1138,12 @@ void ACkStartCompMeg(StructTCUSend * pPgnRecv)
AckStartCompMeg_B
.
LoadSswitch
=
pPgnRecv
->
Data
[
1
];
AckStartCompMeg_B
.
LoadSswitch
=
pPgnRecv
->
Data
[
1
];
AckStartCompMeg_B
.
AckFlag
=
pPgnRecv
->
Data
[
2
];
AckStartCompMeg_B
.
AckFlag
=
pPgnRecv
->
Data
[
2
];
if
(
AckStartCompMeg_
A
.
AckFlag
==
01
)
if
(
AckStartCompMeg_
B
.
AckFlag
==
01
)
{
{
TCUCurChgRecd_B
.
TCUChargeEnable
=
0
;
TCUCurChgRecd_B
.
TCUChargeEnable
=
0
;
}
}
TCUCurChgRecd_B
.
TCUChgStarCompNotetrl
=
3
;
TCUCurChgRecd_B
.
TCUChgStarCompNotetrl
=
0
;
}
}
}
}
...
@@ -2331,33 +2331,68 @@ void measuringReporting20_A(void)
...
@@ -2331,33 +2331,68 @@ void measuringReporting20_A(void)
u8
len
=
0
;
u8
len
=
0
;
Data
[
len
++
]
=
0x00
;
Data
[
len
++
]
=
0x00
;
//充电输出电压
Data
[
len
++
]
=
GetDcModuleVolt
();
Data
[
len
++
]
=
GetDcModuleVolt
();
Data
[
len
++
]
=
GetDcModuleVolt
()
>>
8
;
Data
[
len
++
]
=
GetDcModuleVolt
()
>>
8
;
Data
[
len
++
]
=
GetDcModuleCurrt
();
Data
[
len
++
]
=
GetDcModuleCurrt
()
>>
8
;
//充电输出电流
Data
[
len
++
]
=
4000
-
GetDcModuleCurrt
();
Data
[
len
++
]
=
(
4000
-
GetDcModuleCurrt
())
>>
8
;
//SOC
Data
[
len
++
]
=
BcsMsg
.
CurSoc
;
Data
[
len
++
]
=
BcsMsg
.
CurSoc
;
Data
[
len
++
]
=
BsmMsg
.
HighTemp
;
//电池组最低温度
Data
[
len
++
]
=
BsmMsg
.
LowTemp
;
Data
[
len
++
]
=
BsmMsg
.
LowTemp
;
//电池组最高温度
Data
[
len
++
]
=
BsmMsg
.
HighTemp
;
//单体电池最高 电压
Data
[
len
++
]
=
BcsMsg
.
BatVoltAndGroup
.
Value
.
Volt
;
Data
[
len
++
]
=
BcsMsg
.
BatVoltAndGroup
.
Value
.
Volt
;
Data
[
len
++
]
=
BcsMsg
.
BatVoltAndGroup
.
Value
.
Volt
>>
8
;
Data
[
len
++
]
=
BcsMsg
.
BatVoltAndGroup
.
Value
.
Volt
>>
8
;
//单体电池最低 电压
Data
[
len
++
]
=
BcsMsg
.
BatVoltAndGroup
.
Value
.
Volt
;
Data
[
len
++
]
=
BcsMsg
.
BatVoltAndGroup
.
Value
.
Volt
;
Data
[
len
++
]
=
BcsMsg
.
BatVoltAndGroup
.
Value
.
Volt
>>
8
;
Data
[
len
++
]
=
BcsMsg
.
BatVoltAndGroup
.
Value
.
Volt
>>
8
;
//充电机环境温 度
Data
[
len
++
]
=
Dht12_GetTemp
()
+
50
;
Data
[
len
++
]
=
Dht12_GetTemp
()
+
50
;
//充电导引电压
Data
[
len
++
]
=
0
;
Data
[
len
++
]
=
0
;
//BMS需求电压
Data
[
len
++
]
=
BclMsg
.
NeedVolt
;
Data
[
len
++
]
=
BclMsg
.
NeedVolt
;
Data
[
len
++
]
=
BclMsg
.
NeedVolt
>>
8
;
//12V
Data
[
len
++
]
=
BclMsg
.
NeedVolt
>>
8
;
//BMS需求电流
Data
[
len
++
]
=
BclMsg
.
NeedCurrt
;
Data
[
len
++
]
=
BclMsg
.
NeedCurrt
;
Data
[
len
++
]
=
BclMsg
.
NeedCurrt
>>
8
;
Data
[
len
++
]
=
BclMsg
.
NeedCurrt
>>
8
;
//充电模式
Data
[
len
++
]
=
BclMsg
.
ChgType
;
Data
[
len
++
]
=
BclMsg
.
ChgType
;
//BMS充电电压测量值
Data
[
len
++
]
=
BcsMsg
.
ChgVolt
;
Data
[
len
++
]
=
BcsMsg
.
ChgVolt
;
Data
[
len
++
]
=
BcsMsg
.
ChgVolt
>>
8
;
//12V
Data
[
len
++
]
=
BcsMsg
.
ChgVolt
>>
8
;
//BMS充电电流测量值
Data
[
len
++
]
=
BcsMsg
.
ChgCurrt
;
Data
[
len
++
]
=
BcsMsg
.
ChgCurrt
;
Data
[
len
++
]
=
BcsMsg
.
ChgCurrt
>>
8
;
Data
[
len
++
]
=
BcsMsg
.
ChgCurrt
>>
8
;
//估算剩余充电时间
Data
[
len
++
]
=
BcsMsg
.
RemainMin
;
Data
[
len
++
]
=
BcsMsg
.
RemainMin
;
Data
[
len
++
]
=
BcsMsg
.
RemainMin
>>
8
;
//充电接口温度探头1温度(充电接口1 DC+)
Data
[
len
++
]
=
Adc_Get_a_PTemp
()
+
50
;
Data
[
len
++
]
=
Adc_Get_a_PTemp
()
+
50
;
//充电接口温度探头2温度(充电接口1 DC-)
Data
[
len
++
]
=
Adc_Get_a_NTemp
()
+
50
;
Data
[
len
++
]
=
Adc_Get_a_NTemp
()
+
50
;
//充电接口温度探头3温度(充电接口2 DC+)
Data
[
len
++
]
=
Adc_Get_B_PTemp
()
+
50
;
Data
[
len
++
]
=
Adc_Get_B_PTemp
()
+
50
;
//充电接口温度探头4温度(充电接口2 DC-)
Data
[
len
++
]
=
Adc_Get_B_NTemp
()
+
50
;
Data
[
len
++
]
=
Adc_Get_B_NTemp
()
+
50
;
//电能表当前读数
len
+=
4
;
TCUMultiPackSendMsg
(
Data
,
34
,
eCmd_DCConMeasu
,
6
,
ChargerCont1939Addr
);
TCUMultiPackSendMsg
(
Data
,
34
,
eCmd_DCConMeasu
,
6
,
ChargerCont1939Addr
);
}
}
...
@@ -2370,16 +2405,21 @@ void measuringReporting20_B(void)
...
@@ -2370,16 +2405,21 @@ void measuringReporting20_B(void)
Data
[
len
++
]
=
0x00
;
Data
[
len
++
]
=
0x00
;
Data
[
len
++
]
=
GetDcModuleVolt_B
();
Data
[
len
++
]
=
GetDcModuleVolt_B
();
Data
[
len
++
]
=
GetDcModuleVolt_B
()
>>
8
;
Data
[
len
++
]
=
GetDcModuleVolt_B
()
>>
8
;
Data
[
len
++
]
=
GetDcModuleCurrt_B
();
Data
[
len
++
]
=
4000
-
GetDcModuleCurrt_B
();
Data
[
len
++
]
=
GetDcModuleCurrt_B
(
)
>>
8
;
Data
[
len
++
]
=
(
4000
-
GetDcModuleCurrt_B
()
)
>>
8
;
Data
[
len
++
]
=
BcsMsg_B
.
CurSoc
;
Data
[
len
++
]
=
BcsMsg_B
.
CurSoc
;
Data
[
len
++
]
=
BsmMsg_B
.
HighTemp
;
Data
[
len
++
]
=
BsmMsg_B
.
LowTemp
;
Data
[
len
++
]
=
BsmMsg_B
.
LowTemp
;
Data
[
len
++
]
=
BsmMsg_B
.
HighTemp
;
Data
[
len
++
]
=
BcsMsg_B
.
BatVoltAndGroup
.
Value
.
Volt
;
Data
[
len
++
]
=
BcsMsg_B
.
BatVoltAndGroup
.
Value
.
Volt
;
Data
[
len
++
]
=
BcsMsg_B
.
BatVoltAndGroup
.
Value
.
Volt
>>
8
;
Data
[
len
++
]
=
BcsMsg_B
.
BatVoltAndGroup
.
Value
.
Volt
>>
8
;
Data
[
len
++
]
=
BcsMsg_B
.
BatVoltAndGroup
.
Value
.
Volt
;
Data
[
len
++
]
=
BcsMsg_B
.
BatVoltAndGroup
.
Value
.
Volt
;
Data
[
len
++
]
=
BcsMsg_B
.
BatVoltAndGroup
.
Value
.
Volt
>>
8
;
Data
[
len
++
]
=
BcsMsg_B
.
BatVoltAndGroup
.
Value
.
Volt
>>
8
;
Data
[
len
++
]
=
Dht12_GetTemp
()
+
50
;
Data
[
len
++
]
=
Dht12_GetTemp
()
+
50
;
//充电导引电压
Data
[
len
++
]
=
0
;
Data
[
len
++
]
=
0
;
Data
[
len
++
]
=
BclMsg_B
.
NeedVolt
;
Data
[
len
++
]
=
BclMsg_B
.
NeedVolt
;
Data
[
len
++
]
=
BclMsg_B
.
NeedVolt
>>
8
;
//12V
Data
[
len
++
]
=
BclMsg_B
.
NeedVolt
>>
8
;
//12V
Data
[
len
++
]
=
BclMsg_B
.
NeedCurrt
;
Data
[
len
++
]
=
BclMsg_B
.
NeedCurrt
;
...
@@ -2390,7 +2430,7 @@ void measuringReporting20_B(void)
...
@@ -2390,7 +2430,7 @@ void measuringReporting20_B(void)
Data
[
len
++
]
=
BcsMsg_B
.
ChgCurrt
;
Data
[
len
++
]
=
BcsMsg_B
.
ChgCurrt
;
Data
[
len
++
]
=
BcsMsg_B
.
ChgCurrt
>>
8
;
Data
[
len
++
]
=
BcsMsg_B
.
ChgCurrt
>>
8
;
Data
[
len
++
]
=
BcsMsg_B
.
RemainMin
;
Data
[
len
++
]
=
BcsMsg_B
.
RemainMin
;
Data
[
len
++
]
=
BcsMsg_B
.
RemainMin
>>
8
;
Data
[
len
++
]
=
Adc_Get_a_PTemp
()
+
50
;
Data
[
len
++
]
=
Adc_Get_a_PTemp
()
+
50
;
Data
[
len
++
]
=
Adc_Get_a_NTemp
()
+
50
;
Data
[
len
++
]
=
Adc_Get_a_NTemp
()
+
50
;
Data
[
len
++
]
=
Adc_Get_B_PTemp
()
+
50
;
Data
[
len
++
]
=
Adc_Get_B_PTemp
()
+
50
;
...
@@ -2539,13 +2579,33 @@ void TCUErroCommAnalysis(StructTCUSend * pPgnRecv)
...
@@ -2539,13 +2579,33 @@ void TCUErroCommAnalysis(StructTCUSend * pPgnRecv)
void
TCUMeasuRecv
(
StructTCUSend
*
pPgnRecv
)
void
TCUMeasuRecv
(
StructTCUSend
*
pPgnRecv
)
{
{
u16
temp
=
0
;
if
(
pPgnRecv
->
DA
==
ChargerCont1939Addr
)
if
(
pPgnRecv
->
DA
==
ChargerCont1939Addr
)
{
{
TCUCommuStatus
.
DCMeasuErrCnt
=
0
;
TCUCommuStatus
.
DCMeasuErrCnt
=
0
;
//充电电量
temp
=
pPgnRecv
->
Data
[
2
];
temp
=
(
temp
<<
8
)
+
pPgnRecv
->
Data
[
1
];
MeterValue
.
Energy
=
temp
;
//充电时长
temp
=
pPgnRecv
->
Data
[
4
];
temp
=
(
temp
<<
8
)
+
pPgnRecv
->
Data
[
3
];
}
}
else
if
(
pPgnRecv
->
DA
==
ChargerCont1939Addr_B
)
else
if
(
pPgnRecv
->
DA
==
ChargerCont1939Addr_B
)
{
{
TCUCommuStatus_B
.
DCMeasuErrCnt
=
0
;
TCUCommuStatus_B
.
DCMeasuErrCnt
=
0
;
//充电电量
temp
=
pPgnRecv
->
Data
[
2
];
temp
=
(
temp
<<
8
)
+
pPgnRecv
->
Data
[
1
];
MeterValue_B
.
Energy
=
temp
;
//充电时长
temp
=
pPgnRecv
->
Data
[
4
];
temp
=
(
temp
<<
8
)
+
pPgnRecv
->
Data
[
3
];
}
}
}
}
...
...
DcPillar/Src/SmartAllocation/Drv_SmartAllocation.c
浏览文件 @
5a5d23e5
...
@@ -141,13 +141,13 @@ void DcModuleManageProcess_SmartAllocation(void)
...
@@ -141,13 +141,13 @@ void DcModuleManageProcess_SmartAllocation(void)
Flag
=
Flag
<<
1
;
Flag
=
Flag
<<
1
;
}
}
DcModuleManage_All
.
ValidNum
=
Count
;
//DcModuleManage_All.ValidNum = Count;
for
(
i
=
0
;
i
<
DcModuleGroupSize
;
i
++
)
for
(
i
=
0
;
i
<
DcModuleGroupSize
;
i
++
)
{
{
Currt
=
0
;
Currt
=
0
;
Volt
=
0
;
Volt
=
0
;
Count
=
0
;
Count
=
0
;
status
=
DcModuleGroup
[
i
].
modules
[
0
].
status
;
for
(
j
=
0
;
j
<
DcModuleGroup
[
i
].
num
;
j
++
)
for
(
j
=
0
;
j
<
DcModuleGroup
[
i
].
num
;
j
++
)
{
{
...
@@ -169,42 +169,21 @@ void DcModuleManageProcess_SmartAllocation(void)
...
@@ -169,42 +169,21 @@ void DcModuleManageProcess_SmartAllocation(void)
DcModuleGroup
[
i
].
modules
[
j
].
status
=
Invalid
;
DcModuleGroup
[
i
].
modules
[
j
].
status
=
Invalid
;
}
}
status
=
status
|
DcModuleGroup
[
i
].
modules
[
j
].
status
;
}
}
DcModuleGroup
[
i
].
ValidNum
=
Count
;
DcModuleGroup
[
i
].
ValidNum
=
Count
;
DcModuleGroup
[
i
].
Voltage
=
Volt
/
Count
;
DcModuleGroup
[
i
].
Voltage
=
Volt
/
Count
;
DcModuleGroup
[
i
].
Current
=
Currt
;
DcModuleGroup
[
i
].
Current
=
Currt
;
}
for
(
i
=
0
;
i
<
DcModuleGroupSize
;
i
++
)
{
status
=
DcModuleGroup
[
i
].
modules
[
0
].
status
;
if
(
DcModuleGroup
[
i
].
num
!=
DcModuleGroup
[
i
].
ValidNum
)
{
}
if
(
DcModuleGroup
[
i
].
num
>
1
)
if
(
status
==
Invalid
)
{
DcModuleGroup
[
i
].
status
=
status
;
if
(
status
!=
Valid
)
else
if
(
DcModuleGroup
[
i
].
status
==
Invalid
)
{
DcModuleGroup
[
i
].
status
=
status
;
if
(
DcModuleGroup
[
i
].
modules
[
1
].
status
!=
Valid
)
{
DcModuleGroup
[
i
].
status
=
Invalid
;
}
}
}
}
else
{
if
(
status
!=
Valid
)
{
DcModuleGroup
[
i
].
status
=
Invalid
;
}
}
}
Currt
=
0
;
Currt
=
0
;
Currt_A
=
0
;
Currt_A
=
0
;
...
@@ -216,6 +195,10 @@ void DcModuleManageProcess_SmartAllocation(void)
...
@@ -216,6 +195,10 @@ void DcModuleManageProcess_SmartAllocation(void)
Count_A
=
0
;
Count_A
=
0
;
Count_B
=
0
;
Count_B
=
0
;
u8
groupCount
=
0
;
u8
groupCount_A
=
0
;
u8
groupCount_B
=
0
;
for
(
i
=
0
;
i
<
DcModuleGroupSize
;
i
++
)
for
(
i
=
0
;
i
<
DcModuleGroupSize
;
i
++
)
{
{
if
(
DcModuleGroup
[
i
].
status
==
Valid
)
if
(
DcModuleGroup
[
i
].
status
==
Valid
)
...
@@ -223,27 +206,48 @@ void DcModuleManageProcess_SmartAllocation(void)
...
@@ -223,27 +206,48 @@ void DcModuleManageProcess_SmartAllocation(void)
Volt
+=
DcModuleGroup
[
i
].
Voltage
;
Volt
+=
DcModuleGroup
[
i
].
Voltage
;
Currt
+=
DcModuleGroup
[
i
].
Current
;
Currt
+=
DcModuleGroup
[
i
].
Current
;
Count
+=
DcModuleGroup
[
i
].
ValidNum
;
Count
+=
DcModuleGroup
[
i
].
ValidNum
;
groupCount
++
;
}
}
else
if
(
DcModuleGroup
[
i
].
status
==
Hold_A
)
else
if
(
DcModuleGroup
[
i
].
status
==
Hold_A
)
{
{
Volt_A
+=
DcModuleGroup
[
i
].
Voltage
;
Volt_A
+=
DcModuleGroup
[
i
].
Voltage
;
Currt_A
+=
DcModuleGroup
[
i
].
Current
;
Currt_A
+=
DcModuleGroup
[
i
].
Current
;
Count_A
+=
DcModuleGroup
[
i
].
ValidNum
;
Count_A
+=
DcModuleGroup
[
i
].
ValidNum
;
groupCount_A
++
;
}
}
else
if
(
DcModuleGroup
[
i
].
status
==
Hold_B
)
else
if
(
DcModuleGroup
[
i
].
status
==
Hold_B
)
{
{
Volt_B
+=
DcModuleGroup
[
i
].
Voltage
;
Volt_B
+=
DcModuleGroup
[
i
].
Voltage
;
Currt_B
+=
DcModuleGroup
[
i
].
Current
;
Currt_B
+=
DcModuleGroup
[
i
].
Current
;
Count_B
+=
DcModuleGroup
[
i
].
ValidNum
;
Count_B
+=
DcModuleGroup
[
i
].
ValidNum
;
groupCount_B
++
;
}
}
}
}
DcModuleCtrl
.
ActualCurrt
=
Currt_A
;
DcModuleCtrl
.
ActualCurrt
=
Currt_A
;
DcModuleCtrl
.
ActualVolt
=
Volt_A
;
DcModuleCtrl_ALL
.
ActualCurrt
=
Currt_A
;
if
(
groupCount_A
)
DcModuleCtrl_ALL
.
ActualVolt
=
Volt_A
;
DcModuleCtrl
.
ActualVolt
=
Volt_A
/
groupCount_A
;
else
DcModuleCtrl
.
ActualVolt
=
0
;
DcModuleCtrl_ALL
.
ActualCurrt
=
Currt
;
if
(
groupCount
)
DcModuleCtrl_ALL
.
ActualVolt
=
Volt
/
groupCount
;
else
DcModuleCtrl_ALL
.
ActualVolt
=
0
;
DcModuleCtrl_B
.
ActualCurrt
=
Currt_B
;
DcModuleCtrl_B
.
ActualCurrt
=
Currt_B
;
DcModuleCtrl_B
.
ActualVolt
=
Volt_B
;
if
(
groupCount_B
)
DcModuleCtrl_B
.
ActualVolt
=
Volt_B
/
(
groupCount_B
);
else
DcModuleCtrl_B
.
ActualVolt
=
0
;
DcModuleManage
.
ValidNum
=
Count_A
;
DcModuleManage
.
ValidNum
=
Count_A
;
DcModuleManage_All
.
ValidNum
=
Count
;
DcModuleManage_All
.
ValidNum
=
Count
;
...
@@ -275,6 +279,7 @@ void DcModuleCtrlProcess_SmartAllocation(void)
...
@@ -275,6 +279,7 @@ void DcModuleCtrlProcess_SmartAllocation(void)
u8
addr
;
u8
addr
;
u32
Volt
=
0
;
u32
Volt
=
0
;
u8
Cmd
=
0
;
u8
Cmd
=
0
;
Temp
=
0
;
Temp
=
0
;
for
(
u8
i
=
0
;
i
<
DcModuleGroupSize
;
i
++
)
for
(
u8
i
=
0
;
i
<
DcModuleGroupSize
;
i
++
)
...
@@ -283,76 +288,80 @@ void DcModuleCtrlProcess_SmartAllocation(void)
...
@@ -283,76 +288,80 @@ void DcModuleCtrlProcess_SmartAllocation(void)
{
{
Temp
=
1
;
Temp
=
1
;
Volt
=
DcModuleAbility
.
MinVolt
*
100
;
Volt
=
DcModuleAbility
.
MinVolt
*
100
;
if
(
DcModuleGroup
[
i
].
status
==
Valid
)
if
(
DcModuleGroup
[
i
].
status
==
Valid
)
{
{
//关机
//关机
if
(
status
[
i
]
==
Hold_A
)
if
(
status
[
i
]
==
Hold_A
)
{
{
if
(
i
==
0
)
if
(
i
==
0
)
{
{
DcModuleManage
.
SetVolt
=
DcModuleAbility
.
MinVolt
*
100
;
DcModuleManage
.
SetVolt
=
DcModuleAbility
.
MinVolt
*
100
;
DcModuleManage
.
SetCurrt
=
DcModuleAbility
.
MinCurrt
*
100
;
DcModuleManage
.
SetCurrt
=
DcModuleAbility
.
MinCurrt
*
100
;
DcModuleManage
.
Cmd
=
0xAA
;
//关机
DcModuleManage
.
Cmd
=
0xAA
;
//关机
}
}
else
if
(
i
==
1
)
else
if
(
i
==
1
)
{
{
GPIO_ResetBits
(
RELAY_K1K2_Port
,
RELAY_K1K2_Pin
);
GPIO_ResetBits
(
RELAY_K1K2_Port
,
RELAY_K1K2_Pin
);
}
}
else
if
(
i
==
2
)
else
if
(
i
==
2
)
{
{
GPIO_ResetBits
(
RELAY_K5K6_Port
,
RELAY_K5K6_Pin
);
GPIO_ResetBits
(
RELAY_K5K6_Port
,
RELAY_K5K6_Pin
);
}
}
else
// if(i == 3)
else
// if(i == 3)
{
{
GPIO_ResetBits
(
RELAY_K3K4_Port
,
RELAY_K3K4_Pin
);
GPIO_ResetBits
(
RELAY_K3K4_Port
,
RELAY_K3K4_Pin
);
}
}
}
}
else
if
(
status
[
i
]
==
Hold_B
)
else
if
(
status
[
i
]
==
Hold_B
)
{
{
if
(
i
==
2
)
if
(
i
==
2
)
{
{
DcModuleManage_B
.
SetVolt
=
DcModuleAbility
.
MinVolt
*
100
;
DcModuleManage_B
.
SetVolt
=
DcModuleAbility
.
MinVolt
*
100
;
DcModuleManage_B
.
SetCurrt
=
DcModuleAbility
.
MinCurrt
*
100
;
DcModuleManage_B
.
SetCurrt
=
DcModuleAbility
.
MinCurrt
*
100
;
DcModuleManage_B
.
Cmd
=
0xAA
;
//关机
DcModuleManage_B
.
Cmd
=
0xAA
;
//关机
}
}
else
if
(
i
==
0
)
else
if
(
i
==
0
)
{
{
GPIO_ResetBits
(
RELAY_K5K6_Port
,
RELAY_K5K6_Pin
);
GPIO_ResetBits
(
RELAY_K5K6_Port
,
RELAY_K5K6_Pin
);
}
}
else
if
(
i
==
1
)
else
if
(
i
==
1
)
{
{
GPIO_ResetBits
(
RELAY_K7K8_Port
,
RELAY_K7K8_Pin
);
GPIO_ResetBits
(
RELAY_K7K8_Port
,
RELAY_K7K8_Pin
);
}
}
else
// if(i == 3)
else
// if(i == 3)
{
{
GPIO_ResetBits
(
RELAY_K9K10_Port
,
RELAY_K9K10_Pin
);
GPIO_ResetBits
(
RELAY_K9K10_Port
,
RELAY_K9K10_Pin
);
}
}
}
}
//Volt = DcModuleAbility.MinVolt * 100;
//Volt = DcModuleAbility.MinVolt * 100;
Cmd
=
0xAA
;
//关机
Cmd
=
0xAA
;
//关机
}
}
else
if
(
DcModuleGroup
[
i
].
status
==
Hold_A
)
else
if
(
DcModuleGroup
[
i
].
status
==
Hold_A
)
{
{
if
(
i
!=
0
)
//升压
if
(
i
!=
0
)
//升压
{
{
Volt
=
DcModuleManage
.
SetVolt
;
Volt
=
DcModuleManage
.
SetVolt
;
}
}
else
if
(
status
[
i
]
==
Hold_B
)
else
if
(
status
[
i
]
==
Hold_B
)
{
{
GPIO_ResetBits
(
RELAY_K5K6_Port
,
RELAY_K5K6_Pin
);
GPIO_ResetBits
(
RELAY_K5K6_Port
,
RELAY_K5K6_Pin
);
}
}
Cmd
=
0x55
;
//开机
Cmd
=
0x55
;
//开机
}
}
else
if
(
DcModuleGroup
[
i
].
status
==
Hold_B
)
else
if
(
DcModuleGroup
[
i
].
status
==
Hold_B
)
{
{
if
(
i
!=
2
)
//升压
if
(
i
!=
2
)
//升压
{
{
Volt
=
DcModuleManage
.
SetVolt
;
Volt
=
DcModuleManage
.
SetVolt
;
}
}
else
if
(
status
[
i
]
==
Hold_A
)
else
if
(
status
[
i
]
==
Hold_A
)
{
{
GPIO_ResetBits
(
RELAY_K5K6_Port
,
RELAY_K5K6_Pin
);
GPIO_ResetBits
(
RELAY_K5K6_Port
,
RELAY_K5K6_Pin
);
}
}
Cmd
=
0x55
;
//开机
Cmd
=
0x55
;
//开机
}
}
else
else
...
@@ -371,7 +380,7 @@ void DcModuleCtrlProcess_SmartAllocation(void)
...
@@ -371,7 +380,7 @@ void DcModuleCtrlProcess_SmartAllocation(void)
Temp
=
DcModuleAbility
.
MinCurrt
*
100
;
Temp
=
DcModuleAbility
.
MinCurrt
*
100
;
DataSend
.
Data
[
2
]
=
(
u8
)
(
Temp
>>
8
);
DataSend
.
Data
[
2
]
=
(
u8
)
(
Temp
>>
8
);
DataSend
.
Data
[
3
]
=
(
u8
)
(
Temp
>>
0
);
DataSend
.
Data
[
3
]
=
(
u8
)
(
Temp
>>
0
);
Temp
=
Volt
;
//DcModuleAbility.MinVolt * 100;
Temp
=
Volt
;
//DcModuleAbility.MinVolt * 100;
DataSend
.
Data
[
4
]
=
(
u8
)
(
Temp
>>
24
);
DataSend
.
Data
[
4
]
=
(
u8
)
(
Temp
>>
24
);
DataSend
.
Data
[
5
]
=
(
u8
)
(
Temp
>>
16
);
DataSend
.
Data
[
5
]
=
(
u8
)
(
Temp
>>
16
);
DataSend
.
Data
[
6
]
=
(
u8
)
(
Temp
>>
8
);
DataSend
.
Data
[
6
]
=
(
u8
)
(
Temp
>>
8
);
...
@@ -400,12 +409,14 @@ void DcModuleCtrlProcess_SmartAllocation(void)
...
@@ -400,12 +409,14 @@ void DcModuleCtrlProcess_SmartAllocation(void)
//osDelay(10);
//osDelay(10);
}
}
}
}
status
[
i
]
=
DcModuleGroup
[
i
].
status
;
status
[
i
]
=
DcModuleGroup
[
i
].
status
;
}
}
}
}
if
(
Temp
)
return
;
if
(
Temp
)
return
;
Temp
=
0
;
Temp
=
0
;
...
@@ -414,6 +425,7 @@ void DcModuleCtrlProcess_SmartAllocation(void)
...
@@ -414,6 +425,7 @@ void DcModuleCtrlProcess_SmartAllocation(void)
if
(
status1
[
i
]
!=
DcModuleGroup
[
i
].
status
)
if
(
status1
[
i
]
!=
DcModuleGroup
[
i
].
status
)
{
{
Temp
=
1
;
Temp
=
1
;
if
(
DcModuleGroup
[
i
].
status
==
Valid
)
if
(
DcModuleGroup
[
i
].
status
==
Valid
)
{
{
//切换继电器
//切换继电器
...
@@ -431,41 +443,41 @@ void DcModuleCtrlProcess_SmartAllocation(void)
...
@@ -431,41 +443,41 @@ void DcModuleCtrlProcess_SmartAllocation(void)
else
if
(
DcModuleGroup
[
i
].
status
==
Hold_A
)
else
if
(
DcModuleGroup
[
i
].
status
==
Hold_A
)
{
{
//切换继电器
//切换继电器
if
(
i
==
0
)
if
(
i
==
0
)
{
{
}
}
else
if
(
i
==
1
)
else
if
(
i
==
1
)
{
{
GPIO_SetBits
(
RELAY_K1K2_Port
,
RELAY_K1K2_Pin
);
GPIO_SetBits
(
RELAY_K1K2_Port
,
RELAY_K1K2_Pin
);
}
}
else
if
(
i
==
2
)
else
if
(
i
==
2
)
{
{
GPIO_SetBits
(
RELAY_K5K6_Port
,
RELAY_K5K6_Pin
);
GPIO_SetBits
(
RELAY_K5K6_Port
,
RELAY_K5K6_Pin
);
}
}
else
// if(i == 3)
else
// if(i == 3)
{
{
GPIO_SetBits
(
RELAY_K3K4_Port
,
RELAY_K3K4_Pin
);
GPIO_SetBits
(
RELAY_K3K4_Port
,
RELAY_K3K4_Pin
);
}
}
}
}
else
if
(
DcModuleGroup
[
i
].
status
==
Hold_B
)
else
if
(
DcModuleGroup
[
i
].
status
==
Hold_B
)
{
{
//切换继电器
//切换继电器
if
(
i
==
2
)
if
(
i
==
2
)
{
{
}
}
else
if
(
i
==
0
)
else
if
(
i
==
0
)
{
{
GPIO_SetBits
(
RELAY_K5K6_Port
,
RELAY_K5K6_Pin
);
GPIO_SetBits
(
RELAY_K5K6_Port
,
RELAY_K5K6_Pin
);
}
}
else
if
(
i
==
1
)
else
if
(
i
==
1
)
{
{
GPIO_SetBits
(
RELAY_K7K8_Port
,
RELAY_K7K8_Pin
);
GPIO_SetBits
(
RELAY_K7K8_Port
,
RELAY_K7K8_Pin
);
}
}
else
// if(i == 3)
else
// if(i == 3)
{
{
GPIO_SetBits
(
RELAY_K9K10_Port
,
RELAY_K9K10_Pin
);
GPIO_SetBits
(
RELAY_K9K10_Port
,
RELAY_K9K10_Pin
);
}
}
}
}
else
else
...
@@ -478,7 +490,9 @@ void DcModuleCtrlProcess_SmartAllocation(void)
...
@@ -478,7 +490,9 @@ void DcModuleCtrlProcess_SmartAllocation(void)
}
}
}
}
if
(
Temp
)
return
;
if
(
Temp
)
return
;
if
(
LastFlag_A
!=
DcModuleCtrl
.
CtrlFlag
)
if
(
LastFlag_A
!=
DcModuleCtrl
.
CtrlFlag
)
{
{
...
...
DcPillar/Src/SmartAllocation/SmartAllocation_B_ChgRun.c
浏览文件 @
5a5d23e5
...
@@ -175,8 +175,8 @@ void ChgProChgRun_B(StructChargeCtrl_B *pChargeCtrl)
...
@@ -175,8 +175,8 @@ void ChgProChgRun_B(StructChargeCtrl_B *pChargeCtrl)
if
(
NeedCurrt
>
MaxCurrt
)
if
(
NeedCurrt
>
MaxCurrt
)
NeedCurrt
=
MaxCurrt
;
NeedCurrt
=
MaxCurrt
;
if
(
NeedCurrt
>
(
DcModuleAbility
.
MaxCurrt
*
DcModuleManage_B
.
ValidNum
))
if
(
NeedCurrt
>
(
DcModuleAbility
.
MaxCurrt
*
(
DcModuleManage_B
.
ValidNum
+
DcModuleManage_All
.
ValidNum
)
))
NeedCurrt
=
DcModuleAbility
.
MaxCurrt
*
DcModuleManage_B
.
ValidNum
;
NeedCurrt
=
DcModuleAbility
.
MaxCurrt
*
(
DcModuleManage_B
.
ValidNum
+
DcModuleManage_All
.
ValidNum
)
;
MaxVolt
=
BcpMsg_B
.
ChgMaxVolt
;
MaxVolt
=
BcpMsg_B
.
ChgMaxVolt
;
NeedVolt
=
BclMsg_B
.
NeedVolt
;
NeedVolt
=
BclMsg_B
.
NeedVolt
;
...
@@ -342,6 +342,30 @@ void ChgProChgRun_B(StructChargeCtrl_B *pChargeCtrl)
...
@@ -342,6 +342,30 @@ void ChgProChgRun_B(StructChargeCtrl_B *pChargeCtrl)
}
}
else
else
CemMsg_B
.
Cem
.
Value
.
Bcl
=
0
;
CemMsg_B
.
Cem
.
Value
.
Bcl
=
0
;
if
(((
GetSystemTick
()
-
BcsMsg_B
.
RecvTick
)
>
1000
+
500
)
&&
(
eChgVer_2011
==
UserParam
.
ChgVer
))
{
StructChargeSend
FrameSend
;
FrameSend
.
Id
.
Mult
=
0
;
FrameSend
.
Id
.
Disp
.
Prio
=
7
;
FrameSend
.
Id
.
Disp
.
PF
=
TPCM
>>
8
;
FrameSend
.
Id
.
Disp
.
DA_PS
=
Card1939Addr
;
FrameSend
.
Id
.
Disp
.
SA
=
Charger1939Addr
;
FrameSend
.
Data
[
0
]
=
0x13
;
FrameSend
.
Data
[
1
]
=
0x09
;
FrameSend
.
Data
[
2
]
=
0x00
;
FrameSend
.
Data
[
3
]
=
0x02
;
FrameSend
.
Data
[
4
]
=
0xFe
;
FrameSend
.
Data
[
5
]
=
0x00
;
FrameSend
.
Data
[
6
]
=
0x11
;
FrameSend
.
Data
[
7
]
=
0x00
;
FrameSend
.
Len
=
8
;
BmsCommSendMsg_B
(
&
FrameSend
);
BcsMsg_B
.
RecvTick
=
GetSystemTick
();
}
else
CemMsg_B
.
Cem
.
Value
.
Bcs
=
0
;
//ֶ֡
if
((
GetSystemTick
()
-
BcsMsg_B
.
RecvTick
)
>
MsgTimeout_B_5S
)
if
((
GetSystemTick
()
-
BcsMsg_B
.
RecvTick
)
>
MsgTimeout_B_5S
)
{
{
...
@@ -372,7 +396,7 @@ void ChgProChgRun_B(StructChargeCtrl_B *pChargeCtrl)
...
@@ -372,7 +396,7 @@ void ChgProChgRun_B(StructChargeCtrl_B *pChargeCtrl)
pChargeCtrl
->
Param
=
0
;
pChargeCtrl
->
Param
=
0
;
}
}
if
(
0
==
ChargeEnable_B
)
if
(
0
==
TCUCurChgRecd_B
.
TCUChargeEnable
)
{
//ⲿƽ
{
//ⲿƽ
CstMsg_B
.
StopReason
.
Value
.
Manual
=
1
;
CstMsg_B
.
StopReason
.
Value
.
Manual
=
1
;
CST_Send_B
(
&
CstMsg_B
);
CST_Send_B
(
&
CstMsg_B
);
...
...
DcPillar/Src/SmartAllocation/SmartAllocation_ChgRun.c
浏览文件 @
5a5d23e5
差异被折叠。
点击展开。
DcPillar/Src/Thread/Thd_TCU.c
浏览文件 @
5a5d23e5
...
@@ -663,7 +663,7 @@ void TCUCurChgRecordInterface_A(void)
...
@@ -663,7 +663,7 @@ void TCUCurChgRecordInterface_A(void)
}
}
else
if
(
TCUCurChgRecd
.
TCUChgStarCompNotetrl
==
1
)
else
if
(
TCUCurChgRecd
.
TCUChgStarCompNotetrl
==
1
)
{
{
st
op
CompSend_A
();
st
art
CompSend_A
();
ChgStartCompSendTick
=
GetSystemTick
();
ChgStartCompSendTick
=
GetSystemTick
();
TCUCurChgRecd
.
TCUChgStarCompNotetrl
=
2
;
TCUCurChgRecd
.
TCUChgStarCompNotetrl
=
2
;
}
}
...
@@ -725,6 +725,7 @@ void TCUCurChgRecordInterface_A(void)
...
@@ -725,6 +725,7 @@ void TCUCurChgRecordInterface_A(void)
stopCompSend_A
();
stopCompSend_A
();
ChgRecordSendTick
=
GetSystemTick
();
ChgRecordSendTick
=
GetSystemTick
();
TCUCurChgRecd
.
TCUChgStopCompNotetrl
=
2
;
TCUCurChgRecd
.
TCUChgStopCompNotetrl
=
2
;
ChgRecordSendErr
=
0
;
}
}
else
if
((
TCUCurChgRecd
.
TCUChgStopCompNotetrl
==
2
)
&&
(
0
!=
TCUCurChgRecd
.
TCUChargeEnable
))
else
if
((
TCUCurChgRecd
.
TCUChgStopCompNotetrl
==
2
)
&&
(
0
!=
TCUCurChgRecd
.
TCUChargeEnable
))
{
{
...
@@ -793,9 +794,10 @@ void TCUCurChgRecordInterface_B(void)
...
@@ -793,9 +794,10 @@ void TCUCurChgRecordInterface_B(void)
}
}
else
if
(
TCUCurChgRecd_B
.
TCUChgStarCompNotetrl
==
1
)
else
if
(
TCUCurChgRecd_B
.
TCUChgStarCompNotetrl
==
1
)
{
{
st
op
CompSend_B
();
st
art
CompSend_B
();
ChgStartCompSendTick
=
GetSystemTick
();
ChgStartCompSendTick
=
GetSystemTick
();
TCUCurChgRecd_B
.
TCUChgStarCompNotetrl
=
2
;
TCUCurChgRecd_B
.
TCUChgStarCompNotetrl
=
2
;
ChgStartCompSendEcount
=
0
;
}
}
else
if
(
TCUCurChgRecd_B
.
TCUChgStarCompNotetrl
==
2
)
else
if
(
TCUCurChgRecd_B
.
TCUChgStarCompNotetrl
==
2
)
{
{
...
@@ -892,7 +894,7 @@ u8 TcuGetChgStatus(void)
...
@@ -892,7 +894,7 @@ u8 TcuGetChgStatus(void)
{
{
status
=
0x00
;
status
=
0x00
;
}
}
else
if
(
old_status
==
0
)
else
//
if(old_status == 0)
{
{
status
=
0x01
;
status
=
0x01
;
}
}
...
@@ -942,12 +944,12 @@ u8 TcuGetChgStatus(void)
...
@@ -942,12 +944,12 @@ u8 TcuGetChgStatus(void)
{
{
status
=
0x0b
;
status
=
0x0b
;
}
}
else
if
((
ChargeCtrl
.
CurProcess
==
eChgPro_ChgIdle
)
\
/*
else if((ChargeCtrl.CurProcess == eChgPro_ChgIdle)\
&& (old_status == 0x0b))
&& (old_status == 0x0b))
{
{
status = 0x0b;
status = 0x0b;
}
}
*/
old_status
=
status
;
//
old_status = status;
return
status
;
return
status
;
}
}
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论