Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
D
DC360_1drap3_xiaoju_V1
概览
概览
详情
活动
周期分析
版本库
存储库
文件
提交
分支
标签
贡献者
分支图
比较
统计图
问题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程表
图表
维基
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
丁雨邯
DC360_1drap3_xiaoju_V1
Commits
245b1af3
提交
245b1af3
authored
6月 04, 2020
作者:
wysheng
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
完善测试协议;插枪交流接触器吸合,避免绝缘监测阶段无电压
上级
1dc50805
隐藏空白字符变更
内嵌
并排
正在显示
20 个修改的文件
包含
208 行增加
和
103 行删除
+208
-103
Drv_SmartAllocation.c
DcPillar/Src/SmartAllocation/Drv_SmartAllocation.c
+63
-15
Drv_SmartAllocation.h
DcPillar/Src/SmartAllocation/Drv_SmartAllocation.h
+5
-0
ChgPro_ChgBreak.c
DcPillar/Src/Thread/Charge/ChgPro_ChgBreak.c
+1
-1
ChgPro_ChgIdle.c
DcPillar/Src/Thread/Charge/ChgPro_ChgIdle.c
+4
-0
ChgPro_ChgStop.c
DcPillar/Src/Thread/Charge/ChgPro_ChgStop.c
+2
-2
ChgPro_CommBreak.c
DcPillar/Src/Thread/Charge/ChgPro_CommBreak.c
+2
-2
ChgPro_CommError.c
DcPillar/Src/Thread/Charge/ChgPro_CommError.c
+1
-1
ChgPro_ImdCheck.c
DcPillar/Src/Thread/Charge/ChgPro_ImdCheck.c
+15
-15
ChgPro_WaitBmsReady.c
DcPillar/Src/Thread/Charge/ChgPro_WaitBmsReady.c
+2
-2
ChgPro_WaitPillarReady.c
DcPillar/Src/Thread/Charge/ChgPro_WaitPillarReady.c
+43
-22
ChgPro_B_ChgIdle.c
DcPillar/Src/Thread/Charge_B/ChgPro_B_ChgIdle.c
+5
-0
ChgPro_B_ChgStop.c
DcPillar/Src/Thread/Charge_B/ChgPro_B_ChgStop.c
+2
-2
ChgPro_B_CommBreak.c
DcPillar/Src/Thread/Charge_B/ChgPro_B_CommBreak.c
+1
-1
ChgPro_B_ImdCheck.c
DcPillar/Src/Thread/Charge_B/ChgPro_B_ImdCheck.c
+15
-15
ChgPro_B_WaitPillarReady.c
DcPillar/Src/Thread/Charge_B/ChgPro_B_WaitPillarReady.c
+40
-20
ChgPro_B_WaitVoltChgRun.c
DcPillar/Src/Thread/Charge_B/ChgPro_B_WaitVoltChgRun.c
+1
-1
Thd_Charge.c
DcPillar/Src/Thread/Thd_Charge.c
+1
-1
Thd_Charge_B.h
DcPillar/Src/Thread/Thd_Charge_B.h
+1
-1
Thd_TcuControl.c
DcPillar/Src/Thread/Thd_TcuControl.c
+2
-0
main.c
DcPillar/Src/main.c
+2
-2
没有找到文件。
DcPillar/Src/SmartAllocation/Drv_SmartAllocation.c
浏览文件 @
245b1af3
...
...
@@ -9,7 +9,7 @@
#include "Thd_Charge_B.h"
StructDcModuleGroup
DcModuleGroup
[
]
=
StructDcModuleGroup
DcModuleGroup
[
4
]
;
/*
=
{
{
2, 0,
...
...
@@ -39,7 +39,7 @@ StructDcModuleGroup DcModuleGroup[] =
},
Invalid, 0, 0, 0
},
};
};
*/
static
u8
DcModuleGroupSize
=
sizeof
(
DcModuleGroup
)
/
sizeof
(
DcModuleGroup
[
0
]);
...
...
@@ -245,7 +245,7 @@ void DcModuleManageProcess_SmartAllocation(void)
DcModuleManage_B
.
ValidNum
=
Count_B
;
if
(
0
==
DcModuleManage_All
.
OnlineFlag
)
DcModuleCanInit
();
;
//
DcModuleCanInit();
}
...
...
@@ -286,7 +286,6 @@ void DcModuleCtrlProcess_SmartAllocation(void)
{
if
(
status
[
i
]
!=
DcModuleGroup
[
i
].
status
)
{
Temp
=
1
;
Volt
=
DcModuleAbility
.
MinVolt
*
100
;
Current
=
DcModuleAbility
.
MinCurrt
*
100
;
if
(
DcModuleGroup
[
i
].
status
==
Valid
)
//释放模块,模块关机
...
...
@@ -305,6 +304,7 @@ void DcModuleCtrlProcess_SmartAllocation(void)
//关机降流
Current
=
0
;
}
Temp
=
1
;
}
else
if
(
status
[
i
]
==
Hold_B
)
{
...
...
@@ -319,6 +319,12 @@ void DcModuleCtrlProcess_SmartAllocation(void)
//关机降流
Current
=
0
;
}
Temp
=
1
;
}
else
{
status
[
i
]
=
DcModuleGroup
[
i
].
status
;
continue
;
}
Cmd
=
0xAA
;
//关机
...
...
@@ -330,13 +336,19 @@ void DcModuleCtrlProcess_SmartAllocation(void)
if
(
i
!=
0
)
//升压
{
Volt
=
DcModuleManage
.
SetVolt
;
Temp
=
1
;
}
else
if
(
status
[
i
]
==
Hold_B
)
{
//处理模块0组被B枪占用
//GPIO_ResetBits(RELAY_K5K6_Port, RELAY_K5K6_Pin);
}
else
{
status
[
i
]
=
DcModuleGroup
[
i
].
status
;
continue
;
}
Cmd
=
0x55
;
//开机
}
else
if
(
DcModuleGroup
[
i
].
status
==
Hold_B
)
...
...
@@ -345,13 +357,18 @@ void DcModuleCtrlProcess_SmartAllocation(void)
if
(
i
!=
2
)
//升压
{
Volt
=
DcModuleManage_B
.
SetVolt
;
Temp
=
1
;
}
else
if
(
status
[
i
]
==
Hold_A
)
{
//处理模块组 2 被A枪占用
//GPIO_ResetBits(RELAY_K5K6_Port, RELAY_K5K6_Pin);
}
else
{
status
[
i
]
=
DcModuleGroup
[
i
].
status
;
continue
;
}
Cmd
=
0x55
;
//开机
}
else
...
...
@@ -448,8 +465,7 @@ void DcModuleCtrlProcess_SmartAllocation(void)
{
if
(
status1
[
i
]
!=
DcModuleGroup
[
i
].
status
)
{
Temp
=
1
;
if
(
DcModuleGroup
[
i
].
status
==
Valid
)
{
//切换继电器
...
...
@@ -543,10 +559,7 @@ void DcModuleCtrlProcess_SmartAllocation(void)
}
if
(
Temp
)
return
;
if
(
LastFlag_A
!=
DcModuleCtrl
.
CtrlFlag
)
/*if (LastFlag_A != DcModuleCtrl.CtrlFlag)
{
LastFlag_A = DcModuleCtrl.CtrlFlag;
Temp++;
...
...
@@ -565,7 +578,7 @@ void DcModuleCtrlProcess_SmartAllocation(void)
}
if (0 == Temp)
return
;
return;
*/
if
(
DcModuleCtrl
.
CtrlFlag
)
{
...
...
@@ -730,12 +743,13 @@ void SendDataToDcModule_Incre(u8 group_index, u8 cmd, u32 volt, u32 current)
{
addr
=
DcModuleGroup
[
group_index
].
modules
[
j
].
addr
;
DcModuleGroup
[
group_index
].
modules
[
j
].
cmd
=
cmd
;
DcModuleGroup
[
group_index
].
modules
[
j
].
VoltageSet
=
volt
;
DcModuleGroup
[
group_index
].
modules
[
j
].
CurrentSet
=
current
;
DataSend
.
Id
=
0x1307C080
+
addr
;
DataSend
.
Len
=
8
;
DataSend
.
Data
[
0
]
=
0x00
;
DataSend
.
Data
[
1
]
=
0x00
;
if
(
current
!=
0
)
//
if(current != 0)
{
Temp
=
current
;
DataSend
.
Data
[
2
]
=
(
u8
)
(
Temp
>>
8
);
...
...
@@ -1107,3 +1121,37 @@ void DcModuleSetGroupNum(void) //中兴模块分组设置
}
}
void
SendDataToDcModule_A
(
EnumSwitchStatus
Set
,
u16
Volt
,
u16
Currt
)
{
u8
cmd
=
0
;
if
(
eSwSta_Off
==
Set
)
{
cmd
=
0xAA
;
//机
}
else
{
cmd
=
0x55
;
//机
}
DcModuleSet
(
Set
,
Volt
,
Currt
);
Currt
=
2
;
SendDataToDcModule
(
0
,
cmd
,
Volt
*
100
,
Currt
*
100
);
}
void
SendDataToDcModule_B
(
EnumSwitchStatus
Set
,
u16
Volt
,
u16
Currt
)
{
u8
cmd
=
0
;
if
(
eSwSta_Off
==
Set
)
{
cmd
=
0xAA
;
//机
}
else
{
cmd
=
0x55
;
//机
}
DcModuleSet_B
(
Set
,
Volt
,
Currt
);
Currt
=
2
;
SendDataToDcModule
(
2
,
cmd
,
Volt
*
100
,
Currt
*
100
);
}
DcPillar/Src/SmartAllocation/Drv_SmartAllocation.h
浏览文件 @
245b1af3
...
...
@@ -19,6 +19,8 @@ typedef struct
u8
cmd
;
u32
Voltage
;
u32
Current
;
u32
VoltageSet
;
u32
CurrentSet
;
}
StructDcModule
;
typedef
struct
...
...
@@ -46,6 +48,9 @@ extern StructDcModuleGroup DcModuleGroup[];
extern
void
DcModuleGroupDateInit
(
void
);
void
SendDataToDcModule_A
(
EnumSwitchStatus
Set
,
u16
Volt
,
u16
Currt
);
void
SendDataToDcModule_B
(
EnumSwitchStatus
Set
,
u16
Volt
,
u16
Currt
);
#endif
/*__DRV_SMARTALLOCATION_H__*/
DcPillar/Src/Thread/Charge/ChgPro_ChgBreak.c
浏览文件 @
245b1af3
...
...
@@ -133,7 +133,7 @@ void ChgProChgBreak(StructChargeCtrl *pChargeCtrl)
while
(
1
)
{
if
((
0
!=
CST_SendTick
)
&&
((
GetSystemTick
()
-
CST_SendTick
)
>
10
))
if
((
0
==
CemMsg
.
Cem
.
Value
.
Bst
)
&&
(
0
!=
CST_SendTick
)
&&
((
GetSystemTick
()
-
CST_SendTick
)
>
7
))
{
CST_Send
(
&
CstMsg
);
CST_SendTick
=
GetSystemTick
();
...
...
DcPillar/Src/Thread/Charge/ChgPro_ChgIdle.c
浏览文件 @
245b1af3
...
...
@@ -45,7 +45,10 @@ void ChgProChgIdle(StructChargeCtrl *pChargeCtrl)
CcStatusChkTick
=
GetSystemTick
();
}
else
{
CcStatusChkTick
=
0
;
CemMsg
.
Cem
.
Mult
=
0
;
}
if
((
0
!=
CcStatusChkTick
)
&&
((
GetSystemTick
()
-
CcStatusChkTick
)
>
1500
))
{
...
...
@@ -55,6 +58,7 @@ void ChgProChgIdle(StructChargeCtrl *pChargeCtrl)
pChargeCtrl
->
CurProcess
=
eChgPro_ShakeHand
;
pChargeCtrl
->
Param
=
0
;
}
ACContactorSet
(
eSwSta_On
);
}
if
(
(
0
!=
PillarError
.
Value
.
Emergency
)
...
...
DcPillar/Src/Thread/Charge/ChgPro_ChgStop.c
浏览文件 @
245b1af3
...
...
@@ -56,10 +56,10 @@ void ChgProChgStop(StructChargeCtrl *pChargeCtrl)
while
(
1
)
{
if
((
0
!=
CST_SendTick
)
&&
((
GetSystemTick
()
-
CST_SendTick
)
>
10
))
if
((
0
==
CemMsg
.
Cem
.
Value
.
Bst
)
&&
(
0
!=
CST_SendTick
)
&&
((
GetSystemTick
()
-
CST_SendTick
)
>
7
))
{
CST_Send
(
&
CstMsg
);
CST_SendTick
=
GetSystemTick
();
CST_Send
(
&
CstMsg
);
}
if
((
0
!=
CSD_SendTick
)
&&
((
GetSystemTick
()
-
CSD_SendTick
)
>
250
))
//时间到
...
...
DcPillar/Src/Thread/Charge/ChgPro_CommBreak.c
浏览文件 @
245b1af3
...
...
@@ -26,7 +26,7 @@ void ChgProCommBeak(StructChargeCtrl *pChargeCtrl)
}
CommErrorCount
++
;
if
(
CommErrorCount
>
2
)
if
(
CommErrorCount
>
3
)
{
CstMsg
.
StopReason
.
Value
.
Truble
=
1
;
//故障停止
CstMsg
.
StopTruble
.
Value
.
Other
=
1
;
//其他故障 通信超时超过三次
...
...
@@ -104,7 +104,7 @@ void ChgProCommBeak(StructChargeCtrl *pChargeCtrl)
pChargeCtrl
->
CurProcess
=
eChgPro_ChgStop
;
pChargeCtrl
->
Param
=
0
;
}
if
(
0
==
TCUCurChgRecd
.
TCUChargeEnable
)
if
(
0
==
TCUCurChgRecd
.
TCUChargeEnable
)
{
//外部控制结束充电
CstMsg
.
StopReason
.
Value
.
Manual
=
1
;
ChargeStopType
=
eChgStop_ComBreak_UserCancel
;
...
...
DcPillar/Src/Thread/Charge/ChgPro_CommError.c
浏览文件 @
245b1af3
...
...
@@ -46,7 +46,7 @@ void ChgProCommError(StructChargeCtrl *pChargeCtrl)
while
(
1
)
{
if
((
0
!=
CST_SendTick
)
&&
((
GetSystemTick
()
-
CST_SendTick
)
>
10
))
if
((
0
==
CemMsg
.
Cem
.
Value
.
Bst
)
&&
(
0
!=
CST_SendTick
)
&&
((
GetSystemTick
()
-
CST_SendTick
)
>
7
))
{
CST_Send
(
&
CstMsg
);
CST_SendTick
=
GetSystemTick
();
...
...
DcPillar/Src/Thread/Charge/ChgPro_ImdCheck.c
浏览文件 @
245b1af3
...
...
@@ -115,7 +115,7 @@ void ImdProcess(EnumImdChkStep *pImdChckStep)
else
Tmep
=
DcModuleAbility
.
MinVolt
;
DcModuleSet
(
eSwSta_On
,
Tmep
,
DcModuleAbility
.
MinCurrt
*
DcModuleManage
.
ValidNum
);
SendDataToDcModule_A
(
eSwSta_On
,
Tmep
,
DcModuleAbility
.
MinCurrt
*
DcModuleManage
.
ValidNum
);
*
pImdChckStep
=
eImdStep_DcModOut
;
ImdTimeout
=
0
;
break
;
...
...
@@ -169,7 +169,7 @@ void ImdProcess(EnumImdChkStep *pImdChckStep)
ChargeError
.
Value
.
IsolateWarn
=
1
;
//绝缘警告
ChargeError
.
Value
.
IsolateError
=
0
;
DcModuleSet
(
eSwSta_Off
,
DcModuleAbility
.
MinVolt
,
DcModuleAbility
.
MinCurrt
*
DcModuleManage
.
ValidNum
);
//关直流模块输出
SendDataToDcModule_A
(
eSwSta_Off
,
DcModuleAbility
.
MinVolt
,
DcModuleAbility
.
MinCurrt
*
DcModuleManage
.
ValidNum
);
//关直流模块输出
osDelay
(
100
);
//DrainResistSet(eSwSta_On);
ImdCheckSet
(
eSwSta_Off
);
...
...
@@ -190,7 +190,7 @@ void ImdProcess(EnumImdChkStep *pImdChckStep)
{
ChargeError
.
Value
.
IsolateWarn
=
0
;
//绝缘警告
ChargeError
.
Value
.
IsolateError
=
0
;
//绝缘故障
DcModuleSet
(
eSwSta_Off
,
DcModuleAbility
.
MinVolt
,
DcModuleAbility
.
MinCurrt
*
DcModuleManage
.
ValidNum
);
//关直流模块输出
SendDataToDcModule_A
(
eSwSta_Off
,
DcModuleAbility
.
MinVolt
,
DcModuleAbility
.
MinCurrt
*
DcModuleManage
.
ValidNum
);
//关直流模块输出
osDelay
(
100
);
//DrainResistSet(eSwSta_On);
ImdCheckSet
(
eSwSta_Off
);
...
...
@@ -201,7 +201,7 @@ void ImdProcess(EnumImdChkStep *pImdChckStep)
{
ChargeError
.
Value
.
IsolateWarn
=
1
;
//绝缘警告
ChargeError
.
Value
.
IsolateError
=
0
;
//绝缘故障
DcModuleSet
(
eSwSta_Off
,
DcModuleAbility
.
MinVolt
,
DcModuleAbility
.
MinCurrt
*
DcModuleManage
.
ValidNum
);
//关直流模块输出
SendDataToDcModule_A
(
eSwSta_Off
,
DcModuleAbility
.
MinVolt
,
DcModuleAbility
.
MinCurrt
*
DcModuleManage
.
ValidNum
);
//关直流模块输出
osDelay
(
100
);
//DrainResistSet(eSwSta_On);
ImdCheckSet
(
eSwSta_Off
);
...
...
@@ -212,7 +212,7 @@ void ImdProcess(EnumImdChkStep *pImdChckStep)
{
ChargeError
.
Value
.
IsolateWarn
=
0
;
//绝缘警告
ChargeError
.
Value
.
IsolateError
=
1
;
//绝缘故障
DcModuleSet
(
eSwSta_Off
,
DcModuleAbility
.
MinVolt
,
DcModuleAbility
.
MinCurrt
*
DcModuleManage
.
ValidNum
);
//关直流模块输出
SendDataToDcModule_A
(
eSwSta_Off
,
DcModuleAbility
.
MinVolt
,
DcModuleAbility
.
MinCurrt
*
DcModuleManage
.
ValidNum
);
//关直流模块输出
osDelay
(
100
);
//DrainResistSet(eSwSta_On);
ImdCheckSet
(
eSwSta_Off
);
...
...
@@ -222,7 +222,7 @@ void ImdProcess(EnumImdChkStep *pImdChckStep)
}
break
;
case
eImdStep_Bleeder
:
DcModuleSet
(
eSwSta_Off
,
DcModuleAbility
.
MinVolt
,
DcModuleAbility
.
MinCurrt
*
DcModuleManage
.
ValidNum
);
//关直流模块输出
SendDataToDcModule_A
(
eSwSta_Off
,
DcModuleAbility
.
MinVolt
,
DcModuleAbility
.
MinCurrt
*
DcModuleManage
.
ValidNum
);
//关直流模块输出
DcOutSet
(
eSwSta_Off
);
//DrainResistSet(eSwSta_On);
ImdWorkSet
(
eSwSta_Off
);
...
...
@@ -245,7 +245,7 @@ void ImdProcess(EnumImdChkStep *pImdChckStep)
}
break
;
case
eImdStep_Stop
:
DcModuleSet
(
eSwSta_Off
,
DcModuleAbility
.
MinVolt
,
DcModuleAbility
.
MinCurrt
*
DcModuleManage
.
ValidNum
);
//关直流模块输出
SendDataToDcModule_A
(
eSwSta_Off
,
DcModuleAbility
.
MinVolt
,
DcModuleAbility
.
MinCurrt
*
DcModuleManage
.
ValidNum
);
//关直流模块输出
DcOutSet
(
eSwSta_Off
);
ImdWorkSet
(
eSwSta_Off
);
ImdCheckSet
(
eSwSta_Off
);
...
...
@@ -347,7 +347,7 @@ void ChgProImdCheck(StructChargeCtrl *pChargeCtrl)
CcStatusChkTick
=
0
;
if
((
0
!=
CcStatusChkTick
)
&&
((
GetSystemTick
()
-
CcStatusChkTick
)
>
CC_CheckTick
*
2
))
{
DcModuleSet
(
eSwSta_Off
,
DcModuleAbility
.
MinVolt
,
DcModuleAbility
.
MinCurrt
*
DcModuleManage
.
ValidNum
);
SendDataToDcModule_A
(
eSwSta_Off
,
DcModuleAbility
.
MinVolt
,
DcModuleAbility
.
MinCurrt
*
DcModuleManage
.
ValidNum
);
DcOutSet
(
eSwSta_Off
);
CcStatusChkTick
=
0
;
ChargeStopType
=
eChgStop_Imd_CcOpen
;
...
...
@@ -356,7 +356,7 @@ void ChgProImdCheck(StructChargeCtrl *pChargeCtrl)
}
if
(
0
!=
PillarError
.
Value
.
Emergency
)
{
DcModuleSet
(
eSwSta_Off
,
DcModuleAbility
.
MinVolt
,
DcModuleAbility
.
MinCurrt
*
DcModuleManage
.
ValidNum
);
SendDataToDcModule_A
(
eSwSta_Off
,
DcModuleAbility
.
MinVolt
,
DcModuleAbility
.
MinCurrt
*
DcModuleManage
.
ValidNum
);
DcOutSet
(
eSwSta_Off
);
ChargeStopType
=
eChgStop_Imd_EmerClose
;
pChargeCtrl
->
CurProcess
=
eChgPro_ChgBreak
;
...
...
@@ -364,7 +364,7 @@ void ChgProImdCheck(StructChargeCtrl *pChargeCtrl)
}
if
(
0
!=
PillarError
.
Value
.
Door
)
{
DcModuleSet
(
eSwSta_Off
,
DcModuleAbility
.
MinVolt
,
DcModuleAbility
.
MinCurrt
*
DcModuleManage
.
ValidNum
);
SendDataToDcModule_A
(
eSwSta_Off
,
DcModuleAbility
.
MinVolt
,
DcModuleAbility
.
MinCurrt
*
DcModuleManage
.
ValidNum
);
DcOutSet
(
eSwSta_Off
);
ChargeStopType
=
eChgStop_Imd_DoorOpen
;
pChargeCtrl
->
CurProcess
=
eChgPro_ChgBreak
;
...
...
@@ -372,7 +372,7 @@ void ChgProImdCheck(StructChargeCtrl *pChargeCtrl)
}
if
(
0
!=
PillarError
.
Value
.
Contactor
)
{
DcModuleSet
(
eSwSta_Off
,
DcModuleAbility
.
MinVolt
,
DcModuleAbility
.
MinCurrt
*
DcModuleManage
.
ValidNum
);
SendDataToDcModule_A
(
eSwSta_Off
,
DcModuleAbility
.
MinVolt
,
DcModuleAbility
.
MinCurrt
*
DcModuleManage
.
ValidNum
);
DcOutSet
(
eSwSta_Off
);
ChargeStopType
=
eChgStop_Imd_Contactor
;
pChargeCtrl
->
CurProcess
=
eChgPro_ChgBreak
;
...
...
@@ -380,7 +380,7 @@ void ChgProImdCheck(StructChargeCtrl *pChargeCtrl)
}
if
(
0
!=
PillarError
.
Value
.
UniContactor
)
{
DcModuleSet
(
eSwSta_Off
,
DcModuleAbility
.
MinVolt
,
DcModuleAbility
.
MinCurrt
*
DcModuleManage
.
ValidNum
);
SendDataToDcModule_A
(
eSwSta_Off
,
DcModuleAbility
.
MinVolt
,
DcModuleAbility
.
MinCurrt
*
DcModuleManage
.
ValidNum
);
DcOutSet
(
eSwSta_Off
);
ChargeStopType
=
eChgStop_Imd_Contactor
;
pChargeCtrl
->
CurProcess
=
eChgPro_ChgBreak
;
...
...
@@ -388,7 +388,7 @@ void ChgProImdCheck(StructChargeCtrl *pChargeCtrl)
}
if
(
0
!=
PillarError
.
Value
.
InVolt
)
{
DcModuleSet
(
eSwSta_Off
,
DcModuleAbility
.
MinVolt
,
DcModuleAbility
.
MinCurrt
*
DcModuleManage
.
ValidNum
);
SendDataToDcModule_A
(
eSwSta_Off
,
DcModuleAbility
.
MinVolt
,
DcModuleAbility
.
MinCurrt
*
DcModuleManage
.
ValidNum
);
DcOutSet
(
eSwSta_Off
);
ChargeStopType
=
eChgStop_Imd_InVolt
;
pChargeCtrl
->
CurProcess
=
eChgPro_ChgBreak
;
...
...
@@ -396,7 +396,7 @@ void ChgProImdCheck(StructChargeCtrl *pChargeCtrl)
}
if
(
0
!=
PillarError
.
Value
.
NoDcmod
)
{
DcModuleSet
(
eSwSta_Off
,
DcModuleAbility
.
MinVolt
,
DcModuleAbility
.
MinCurrt
*
DcModuleManage
.
ValidNum
);
SendDataToDcModule_A
(
eSwSta_Off
,
DcModuleAbility
.
MinVolt
,
DcModuleAbility
.
MinCurrt
*
DcModuleManage
.
ValidNum
);
DcOutSet
(
eSwSta_Off
);
ChargeStopType
=
eChgStop_Imd_NoDcmod
;
pChargeCtrl
->
CurProcess
=
eChgPro_ChgBreak
;
...
...
@@ -404,7 +404,7 @@ void ChgProImdCheck(StructChargeCtrl *pChargeCtrl)
}
if
(
0
!=
PillarError
.
Value
.
Meter
)
{
DcModuleSet
(
eSwSta_Off
,
DcModuleAbility
.
MinVolt
,
DcModuleAbility
.
MinCurrt
*
DcModuleManage
.
ValidNum
);
SendDataToDcModule_A
(
eSwSta_Off
,
DcModuleAbility
.
MinVolt
,
DcModuleAbility
.
MinCurrt
*
DcModuleManage
.
ValidNum
);
DcOutSet
(
eSwSta_Off
);
ChargeStopType
=
eChgStop_Imd_Meter
;
pChargeCtrl
->
CurProcess
=
eChgPro_ChgBreak
;
...
...
DcPillar/Src/Thread/Charge/ChgPro_WaitBmsReady.c
浏览文件 @
245b1af3
...
...
@@ -40,7 +40,7 @@ void ChgProWaitBmsReady(StructChargeCtrl *pChargeCtrl)
BroMsg
.
RecvTick
=
GetSystemTick
();
BRO_AA_RecvTick
=
GetSystemTick
();
CemMsg
.
Cem
.
Mult
=
0
;
while
(
1
)
{
if
((
GetSystemTick
()
-
CML_SendTick
)
>
250
)
...
...
@@ -51,7 +51,7 @@ void ChgProWaitBmsReady(StructChargeCtrl *pChargeCtrl)
CML_Send
(
DcModuleAbility
.
MaxVolt
,
DcModuleAbility
.
MinVolt
,
4000
-
(
DcModuleAbility
.
MaxCurrt
*
DcModuleManage
.
ValidNum
),
4000
-
DcModuleAbility
.
MinCurrt
);
CML_SendTick
=
GetSystemTick
();
}
if
((
GetSystemTick
()
-
CTS_SendTick
)
>
50
0
)
if
((
GetSystemTick
()
-
CTS_SendTick
)
>
48
0
)
{
CTS_Send
();
CTS_SendTick
=
GetSystemTick
();
...
...
DcPillar/Src/Thread/Charge/ChgPro_WaitPillarReady.c
浏览文件 @
245b1af3
...
...
@@ -38,7 +38,7 @@ void ChgProWaitPillarReady(StructChargeCtrl *pChargeCtrl)
u8
CroStarus
=
0x00
;
u32
CcStatusChkTick
=
0
;
u32
VoltReadyTick
=
0
;
u32
Bro_00_Tick
=
0
;
BemMsg
.
Valid
=
0
;
BmsCanInit
();
osDelay
(
20
);
...
...
@@ -56,16 +56,16 @@ void ChgProWaitPillarReady(StructChargeCtrl *pChargeCtrl)
CRO_SendTick
=
GetSystemTick
();
if
((
BcpMsg
.
StartVolt
>=
DcModuleAbility
.
MinVolt
)
&&
(
BcpMsg
.
StartVolt
<=
DcModuleAbility
.
MaxVolt
))
DcModuleSet
(
eSwSta_On
,
BcpMsg
.
StartVolt
,
DcModuleAbility
.
MinCurrt
*
DcModuleManage
.
ValidNum
);
SendDataToDcModule_A
(
eSwSta_On
,
BcpMsg
.
StartVolt
,
DcModuleAbility
.
MinCurrt
*
DcModuleManage
.
ValidNum
);
else
if
(
BcpMsg
.
StartVolt
<
DcModuleAbility
.
MinVolt
)
DcModuleSet
(
eSwSta_On
,
DcModuleAbility
.
MinVolt
,
DcModuleAbility
.
MinCurrt
*
DcModuleManage
.
ValidNum
);
SendDataToDcModule_A
(
eSwSta_On
,
DcModuleAbility
.
MinVolt
,
DcModuleAbility
.
MinCurrt
*
DcModuleManage
.
ValidNum
);
else
{
CstMsg
.
StopReason
.
Value
.
Truble
=
1
;
CstMsg
.
StopTruble
.
Value
.
Other
=
1
;
CstMsg
.
StopFault
.
Value
.
Volt
=
1
;
DcOutSet
(
eSwSta_Off
);
DcModuleSet
(
eSwSta_Off
,
DcModuleAbility
.
MinVolt
,
DcModuleAbility
.
MinCurrt
*
DcModuleManage
.
ValidNum
);
SendDataToDcModule_A
(
eSwSta_Off
,
DcModuleAbility
.
MinVolt
,
DcModuleAbility
.
MinCurrt
*
DcModuleManage
.
ValidNum
);
ChargeStopType
=
eChgStop_PillarReady_BatVoltOverPillarMax
;
pChargeCtrl
->
CurProcess
=
eChgPro_ChgStop
;
pChargeCtrl
->
Param
=
0
;
...
...
@@ -80,7 +80,8 @@ void ChgProWaitPillarReady(StructChargeCtrl *pChargeCtrl)
CRO_Send
(
CroStarus
);
CRO_SendTick
=
GetSystemTick
();
}
ChgPgnRecv
(
&
PgnRecv
);
if
((
eChgVer_2011
!=
UserParam
.
ChgVer
)
&&
(
eChgVer_2011
!=
ChgVer
))
...
...
@@ -94,7 +95,7 @@ void ChgProWaitPillarReady(StructChargeCtrl *pChargeCtrl)
CstMsg
.
StopTruble
.
Value
.
Other
=
1
;
CstMsg
.
StopFault
.
Value
.
Volt
=
1
;
DcOutSet
(
eSwSta_Off
);
DcModuleSet
(
eSwSta_Off
,
DcModuleAbility
.
MinVolt
,
DcModuleAbility
.
MinCurrt
*
DcModuleManage
.
ValidNum
);
SendDataToDcModule_A
(
eSwSta_Off
,
DcModuleAbility
.
MinVolt
,
DcModuleAbility
.
MinCurrt
*
DcModuleManage
.
ValidNum
);
ChargeStopType
=
eChgStop_PillarReady_BatVoltError
;
pChargeCtrl
->
CurProcess
=
eChgPro_ChgStop
;
pChargeCtrl
->
Param
=
0
;
...
...
@@ -107,7 +108,7 @@ void ChgProWaitPillarReady(StructChargeCtrl *pChargeCtrl)
CstMsg
.
StopTruble
.
Value
.
Other
=
1
;
CstMsg
.
StopFault
.
Value
.
Volt
=
1
;
DcOutSet
(
eSwSta_Off
);
DcModuleSet
(
eSwSta_Off
,
DcModuleAbility
.
MinVolt
,
DcModuleAbility
.
MinCurrt
*
DcModuleManage
.
ValidNum
);
SendDataToDcModule_A
(
eSwSta_Off
,
DcModuleAbility
.
MinVolt
,
DcModuleAbility
.
MinCurrt
*
DcModuleManage
.
ValidNum
);
ChargeStopType
=
eChgStop_PillarReady_BatVoltMismatchBcpVolt
;
pChargeCtrl
->
CurProcess
=
eChgPro_ChgStop
;
pChargeCtrl
->
Param
=
0
;
...
...
@@ -122,9 +123,9 @@ void ChgProWaitPillarReady(StructChargeCtrl *pChargeCtrl)
else
{
if
((
GetBatVoltWaitPillarReady
()
>=
DcModuleAbility
.
MinVolt
)
&&
(
GetBatVoltWaitPillarReady
()
<=
DcModuleAbility
.
MaxVolt
))
DcModuleSet
(
eSwSta_On
,
GetBatVoltWaitPillarReady
(),
DcModuleAbility
.
MinCurrt
*
DcModuleManage
.
ValidNum
);
SendDataToDcModule_A
(
eSwSta_On
,
GetBatVoltWaitPillarReady
(),
DcModuleAbility
.
MinCurrt
*
DcModuleManage
.
ValidNum
);
else
if
(
GetBatVoltWaitPillarReady
()
<
DcModuleAbility
.
MinVolt
)
DcModuleSet
(
eSwSta_On
,
DcModuleAbility
.
MinVolt
,
DcModuleAbility
.
MinCurrt
*
DcModuleManage
.
ValidNum
);
SendDataToDcModule_A
(
eSwSta_On
,
DcModuleAbility
.
MinVolt
,
DcModuleAbility
.
MinCurrt
*
DcModuleManage
.
ValidNum
);
}
}
if
((
0
!=
VoltReadyTick
)
&&
((
GetSystemTick
()
-
VoltReadyTick
)
>
(
MsgTimeout_60S
)))
...
...
@@ -136,7 +137,7 @@ void ChgProWaitPillarReady(StructChargeCtrl *pChargeCtrl)
CstMsg
.
StopTruble
.
Value
.
Other
=
1
;
CstMsg
.
StopFault
.
Value
.
Volt
=
1
;
DcOutSet
(
eSwSta_Off
);
DcModuleSet
(
eSwSta_Off
,
DcModuleAbility
.
MinVolt
,
DcModuleAbility
.
MinCurrt
*
DcModuleManage
.
ValidNum
);
SendDataToDcModule_A
(
eSwSta_Off
,
DcModuleAbility
.
MinVolt
,
DcModuleAbility
.
MinCurrt
*
DcModuleManage
.
ValidNum
);
ChargeStopType
=
eChgStop_Conf_ChgMaxVoltLessPillarMinVolt
;
pChargeCtrl
->
CurProcess
=
eChgPro_ChgStop
;
pChargeCtrl
->
Param
=
0
;
...
...
@@ -176,7 +177,7 @@ void ChgProWaitPillarReady(StructChargeCtrl *pChargeCtrl)
if
((
GetSystemTick
()
-
BroMsg
.
RecvTick
)
>
MsgTimeout_5S
)
{
CemMsg
.
Cem
.
Value
.
Bro
=
1
;
DcModuleSet
(
eSwSta_Off
,
DcModuleAbility
.
MinVolt
,
DcModuleAbility
.
MinCurrt
*
DcModuleManage
.
ValidNum
);
SendDataToDcModule_A
(
eSwSta_Off
,
DcModuleAbility
.
MinVolt
,
DcModuleAbility
.
MinCurrt
*
DcModuleManage
.
ValidNum
);
pChargeCtrl
->
CurProcess
=
eChgPro_CommBreak
;
pChargeCtrl
->
Param
=
0
;
}
...
...
@@ -185,14 +186,34 @@ void ChgProWaitPillarReady(StructChargeCtrl *pChargeCtrl)
if
(
0
!=
BemMsg
.
Valid
)
{
DcModuleSet
(
eSwSta_Off
,
DcModuleAbility
.
MinVolt
,
DcModuleAbility
.
MinCurrt
*
DcModuleManage
.
ValidNum
);
SendDataToDcModule_A
(
eSwSta_Off
,
DcModuleAbility
.
MinVolt
,
DcModuleAbility
.
MinCurrt
*
DcModuleManage
.
ValidNum
);
pChargeCtrl
->
CurProcess
=
eChgPro_CommBreak
;
pChargeCtrl
->
Param
=
0
;
}
#if 1
if
(
0x00
==
BroMsg
.
Status
)
Bro_00_Tick
=
GetSystemTick
();
else
Bro_00_Tick
=
GetSystemTick
();
if
(
GetSystemTick
()
-
Bro_00_Tick
>=
MsgTimeout_1S
)
{
/*VoltReadyTick = 0;
pChargeCtrl->CurProcess = eChgPro_ChgStart;
pChargeCtrl->Param = 0;*/
//CstMsg.StopReason.Value.Truble = 1;
// CstMsg.StopTruble.Value.Other = 1;
// CstMsg.StopFault.Value.Volt = 1;
CemMsg
.
Cem
.
Mult
=
0
;
DcOutSet
(
eSwSta_Off
);
SendDataToDcModule_A
(
eSwSta_Off
,
DcModuleAbility
.
MinVolt
,
DcModuleAbility
.
MinCurrt
*
DcModuleManage
.
ValidNum
);
ChargeStopType
=
eChgStop_Conf_ChgMaxVoltLessPillarMinVolt
;
pChargeCtrl
->
CurProcess
=
eChgPro_CommError
;
pChargeCtrl
->
Param
=
0
;
}
#endif
if
(
0
==
TCUCurChgRecd
.
TCUChargeEnable
)
{
//外部控制结束充电
DcModuleSet
(
eSwSta_Off
,
DcModuleAbility
.
MinVolt
,
DcModuleAbility
.
MinCurrt
*
DcModuleManage
.
ValidNum
);
SendDataToDcModule_A
(
eSwSta_Off
,
DcModuleAbility
.
MinVolt
,
DcModuleAbility
.
MinCurrt
*
DcModuleManage
.
ValidNum
);
ChargeStopType
=
eChgStop_PillarReady_UserCancel
;
pChargeCtrl
->
CurProcess
=
eChgPro_ChgStop
;
pChargeCtrl
->
Param
=
0
;
...
...
@@ -207,7 +228,7 @@ void ChgProWaitPillarReady(StructChargeCtrl *pChargeCtrl)
CcStatusChkTick
=
0
;
if
((
0
!=
CcStatusChkTick
)
&&
((
GetSystemTick
()
-
CcStatusChkTick
)
>
CC_CheckTick
*
2
))
{
DcModuleSet
(
eSwSta_Off
,
DcModuleAbility
.
MinVolt
,
DcModuleAbility
.
MinCurrt
*
DcModuleManage
.
ValidNum
);
SendDataToDcModule_A
(
eSwSta_Off
,
DcModuleAbility
.
MinVolt
,
DcModuleAbility
.
MinCurrt
*
DcModuleManage
.
ValidNum
);
CcStatusChkTick
=
0
;
ChargeStopType
=
eChgStop_PillarReady_CcOpen
;
pChargeCtrl
->
CurProcess
=
eChgPro_ChgBreak
;
...
...
@@ -215,49 +236,49 @@ void ChgProWaitPillarReady(StructChargeCtrl *pChargeCtrl)
}
if
(
0
!=
PillarError
.
Value
.
Emergency
)
{
DcModuleSet
(
eSwSta_Off
,
DcModuleAbility
.
MinVolt
,
DcModuleAbility
.
MinCurrt
*
DcModuleManage
.
ValidNum
);
SendDataToDcModule_A
(
eSwSta_Off
,
DcModuleAbility
.
MinVolt
,
DcModuleAbility
.
MinCurrt
*
DcModuleManage
.
ValidNum
);
ChargeStopType
=
eChgStop_PillarReady_EmerClose
;
pChargeCtrl
->
CurProcess
=
eChgPro_ChgBreak
;
pChargeCtrl
->
Param
=
0
;
}
if
(
0
!=
PillarError
.
Value
.
Door
)
{
DcModuleSet
(
eSwSta_Off
,
DcModuleAbility
.
MinVolt
,
DcModuleAbility
.
MinCurrt
*
DcModuleManage
.
ValidNum
);
SendDataToDcModule_A
(
eSwSta_Off
,
DcModuleAbility
.
MinVolt
,
DcModuleAbility
.
MinCurrt
*
DcModuleManage
.
ValidNum
);
ChargeStopType
=
eChgStop_PillarReady_DoorOpen
;
pChargeCtrl
->
CurProcess
=
eChgPro_ChgBreak
;
pChargeCtrl
->
Param
=
0
;
}
if
(
0
!=
PillarError
.
Value
.
Contactor
)
{
DcModuleSet
(
eSwSta_Off
,
DcModuleAbility
.
MinVolt
,
DcModuleAbility
.
MinCurrt
*
DcModuleManage
.
ValidNum
);
SendDataToDcModule_A
(
eSwSta_Off
,
DcModuleAbility
.
MinVolt
,
DcModuleAbility
.
MinCurrt
*
DcModuleManage
.
ValidNum
);
ChargeStopType
=
eChgStop_PillarReady_Contactor
;
pChargeCtrl
->
CurProcess
=
eChgPro_ChgBreak
;
pChargeCtrl
->
Param
=
0
;
}
if
(
0
!=
PillarError
.
Value
.
UniContactor
)
{
DcModuleSet
(
eSwSta_Off
,
DcModuleAbility
.
MinVolt
,
DcModuleAbility
.
MinCurrt
*
DcModuleManage
.
ValidNum
);
SendDataToDcModule_A
(
eSwSta_Off
,
DcModuleAbility
.
MinVolt
,
DcModuleAbility
.
MinCurrt
*
DcModuleManage
.
ValidNum
);
ChargeStopType
=
eChgStop_PillarReady_Contactor
;
pChargeCtrl
->
CurProcess
=
eChgPro_ChgBreak
;
pChargeCtrl
->
Param
=
0
;
}
if
(
0
!=
PillarError
.
Value
.
InVolt
)
{
DcModuleSet
(
eSwSta_Off
,
DcModuleAbility
.
MinVolt
,
DcModuleAbility
.
MinCurrt
*
DcModuleManage
.
ValidNum
);
SendDataToDcModule_A
(
eSwSta_Off
,
DcModuleAbility
.
MinVolt
,
DcModuleAbility
.
MinCurrt
*
DcModuleManage
.
ValidNum
);
ChargeStopType
=
eChgStop_PillarReady_InVolt
;
pChargeCtrl
->
CurProcess
=
eChgPro_ChgBreak
;
pChargeCtrl
->
Param
=
0
;
}
if
(
0
!=
PillarError
.
Value
.
NoDcmod
)
{
DcModuleSet
(
eSwSta_Off
,
DcModuleAbility
.
MinVolt
,
DcModuleAbility
.
MinCurrt
*
DcModuleManage
.
ValidNum
);
SendDataToDcModule_A
(
eSwSta_Off
,
DcModuleAbility
.
MinVolt
,
DcModuleAbility
.
MinCurrt
*
DcModuleManage
.
ValidNum
);
ChargeStopType
=
eChgStop_PillarReady_NoDcmod
;
pChargeCtrl
->
CurProcess
=
eChgPro_ChgBreak
;
pChargeCtrl
->
Param
=
0
;
}
if
(
0
!=
PillarError
.
Value
.
Meter
)
{
DcModuleSet
(
eSwSta_Off
,
DcModuleAbility
.
MinVolt
,
DcModuleAbility
.
MinCurrt
*
DcModuleManage
.
ValidNum
);
SendDataToDcModule_A
(
eSwSta_Off
,
DcModuleAbility
.
MinVolt
,
DcModuleAbility
.
MinCurrt
*
DcModuleManage
.
ValidNum
);
ChargeStopType
=
eChgStop_PillarReady_Meter
;
pChargeCtrl
->
CurProcess
=
eChgPro_ChgBreak
;
pChargeCtrl
->
Param
=
0
;
...
...
DcPillar/Src/Thread/Charge_B/ChgPro_B_ChgIdle.c
浏览文件 @
245b1af3
...
...
@@ -48,7 +48,10 @@ void ChgProChgIdle_B(StructChargeCtrl_B *pChargeCtrl)
CcStatusChkTick
=
GetSystemTick
();
}
else
{
CcStatusChkTick
=
0
;
CemMsg_B
.
Cem
.
Mult
=
0
;
}
if
((
0
!=
CcStatusChkTick
)
&&
((
GetSystemTick
()
-
CcStatusChkTick
)
>
1500
))
{
...
...
@@ -58,6 +61,8 @@ void ChgProChgIdle_B(StructChargeCtrl_B *pChargeCtrl)
pChargeCtrl
->
CurProcess
=
eChgPro_B_ShakeHand
;
pChargeCtrl
->
Param
=
0
;
}
ACContactorSet
(
eSwSta_On
);
}
if
(
...
...
DcPillar/Src/Thread/Charge_B/ChgPro_B_ChgStop.c
浏览文件 @
245b1af3
...
...
@@ -56,10 +56,10 @@ void ChgProChgStop_B(StructChargeCtrl_B *pChargeCtrl)
while
(
1
)
{
if
((
0
!=
CST_SendTick
)
&&
((
GetSystemTick
()
-
CST_SendTick
)
>
10
))
if
((
0
!=
CST_SendTick
)
&&
((
GetSystemTick
()
-
CST_SendTick
)
>
7
))
{
CST_Send_B
(
&
CstMsg_B
);
CST_SendTick
=
GetSystemTick
();
CST_Send_B
(
&
CstMsg_B
);
}
if
((
0
!=
CSD_SendTick
)
&&
((
GetSystemTick
()
-
CSD_SendTick
)
>
250
))
//时间到
...
...
DcPillar/Src/Thread/Charge_B/ChgPro_B_CommBreak.c
浏览文件 @
245b1af3
...
...
@@ -26,7 +26,7 @@ void ChgProCommBeak_B(StructChargeCtrl_B *pChargeCtrl)
}
CommErrorCount_B
++
;
if
(
CommErrorCount_B
>
2
)
if
(
CommErrorCount_B
>
3
)
{
CstMsg_B
.
StopReason
.
Value
.
Truble
=
1
;
//故障停止
CstMsg_B
.
StopTruble
.
Value
.
Other
=
1
;
//其他故障 通信超时超过三次
...
...
DcPillar/Src/Thread/Charge_B/ChgPro_B_ImdCheck.c
浏览文件 @
245b1af3
...
...
@@ -115,7 +115,7 @@ void ImdProcess_B(EnumImdChkStep *pImdChckStep)
else
Tmep
=
DcModuleAbility
.
MinVolt
;
DcModuleSet
_B
(
eSwSta_On
,
Tmep
,
DcModuleAbility
.
MinCurrt
*
DcModuleManage_B
.
ValidNum
);
SendDataToDcModule
_B
(
eSwSta_On
,
Tmep
,
DcModuleAbility
.
MinCurrt
*
DcModuleManage_B
.
ValidNum
);
*
pImdChckStep
=
eImdStep_DcModOut
;
ImdTimeout
=
0
;
break
;
...
...
@@ -169,7 +169,7 @@ void ImdProcess_B(EnumImdChkStep *pImdChckStep)
ChargeError_B
.
Value
.
IsolateWarn
=
1
;
//绝缘警告
ChargeError_B
.
Value
.
IsolateError
=
0
;
DcModuleSet
_B
(
eSwSta_Off
,
DcModuleAbility
.
MinVolt
,
DcModuleAbility
.
MinCurrt
*
DcModuleManage_B
.
ValidNum
);
//关直流模块输出
SendDataToDcModule
_B
(
eSwSta_Off
,
DcModuleAbility
.
MinVolt
,
DcModuleAbility
.
MinCurrt
*
DcModuleManage_B
.
ValidNum
);
//关直流模块输出
osDelay
(
100
);
//DrainResistSet_B(eSwSta_On);
ImdCheckSet_B
(
eSwSta_Off
);
...
...
@@ -190,7 +190,7 @@ void ImdProcess_B(EnumImdChkStep *pImdChckStep)
{
ChargeError_B
.
Value
.
IsolateWarn
=
0
;
//绝缘警告
ChargeError_B
.
Value
.
IsolateError
=
0
;
//绝缘故障
DcModuleSet
_B
(
eSwSta_Off
,
DcModuleAbility
.
MinVolt
,
DcModuleAbility
.
MinCurrt
*
DcModuleManage_B
.
ValidNum
);
//关直流模块输出
SendDataToDcModule
_B
(
eSwSta_Off
,
DcModuleAbility
.
MinVolt
,
DcModuleAbility
.
MinCurrt
*
DcModuleManage_B
.
ValidNum
);
//关直流模块输出
osDelay
(
100
);
//DrainResistSet_B(eSwSta_On);
ImdCheckSet_B
(
eSwSta_Off
);
...
...
@@ -201,7 +201,7 @@ void ImdProcess_B(EnumImdChkStep *pImdChckStep)
{
ChargeError_B
.
Value
.
IsolateWarn
=
1
;
//绝缘警告
ChargeError_B
.
Value
.
IsolateError
=
0
;
//绝缘故障
DcModuleSet
_B
(
eSwSta_Off
,
DcModuleAbility
.
MinVolt
,
DcModuleAbility
.
MinCurrt
*
DcModuleManage_B
.
ValidNum
);
//关直流模块输出
SendDataToDcModule
_B
(
eSwSta_Off
,
DcModuleAbility
.
MinVolt
,
DcModuleAbility
.
MinCurrt
*
DcModuleManage_B
.
ValidNum
);
//关直流模块输出
osDelay
(
100
);
//DrainResistSet_B(eSwSta_On);
ImdCheckSet_B
(
eSwSta_Off
);
...
...
@@ -212,7 +212,7 @@ void ImdProcess_B(EnumImdChkStep *pImdChckStep)
{
ChargeError_B
.
Value
.
IsolateWarn
=
0
;
//绝缘警告
ChargeError_B
.
Value
.
IsolateError
=
1
;
//绝缘故障
DcModuleSet
_B
(
eSwSta_Off
,
DcModuleAbility
.
MinVolt
,
DcModuleAbility
.
MinCurrt
*
DcModuleManage_B
.
ValidNum
);
//关直流模块输出
SendDataToDcModule
_B
(
eSwSta_Off
,
DcModuleAbility
.
MinVolt
,
DcModuleAbility
.
MinCurrt
*
DcModuleManage_B
.
ValidNum
);
//关直流模块输出
osDelay
(
100
);
//DrainResistSet_B(eSwSta_On);
ImdCheckSet_B
(
eSwSta_Off
);
...
...
@@ -222,7 +222,7 @@ void ImdProcess_B(EnumImdChkStep *pImdChckStep)
}
break
;
case
eImdStep_Bleeder
:
DcModuleSet
_B
(
eSwSta_Off
,
DcModuleAbility
.
MinVolt
,
DcModuleAbility
.
MinCurrt
*
DcModuleManage_B
.
ValidNum
);
//关直流模块输出
SendDataToDcModule
_B
(
eSwSta_Off
,
DcModuleAbility
.
MinVolt
,
DcModuleAbility
.
MinCurrt
*
DcModuleManage_B
.
ValidNum
);
//关直流模块输出
DcOutSet_B
(
eSwSta_Off
);
//DrainResistSet_B(eSwSta_On);
ImdWorkSet_B
(
eSwSta_Off
);
...
...
@@ -245,7 +245,7 @@ void ImdProcess_B(EnumImdChkStep *pImdChckStep)
}
break
;
case
eImdStep_Stop
:
DcModuleSet
_B
(
eSwSta_Off
,
DcModuleAbility
.
MinVolt
,
DcModuleAbility
.
MinCurrt
*
DcModuleManage_B
.
ValidNum
);
//关直流模块输出
SendDataToDcModule
_B
(
eSwSta_Off
,
DcModuleAbility
.
MinVolt
,
DcModuleAbility
.
MinCurrt
*
DcModuleManage_B
.
ValidNum
);
//关直流模块输出
DcOutSet_B
(
eSwSta_Off
);
ImdWorkSet_B
(
eSwSta_Off
);
ImdCheckSet_B
(
eSwSta_Off
);
...
...
@@ -347,7 +347,7 @@ void ChgProImdCheck_B(StructChargeCtrl_B *pChargeCtrl)
CcStatusChkTick
=
0
;
if
((
0
!=
CcStatusChkTick
)
&&
((
GetSystemTick
()
-
CcStatusChkTick
)
>
CC_CheckTick_B
*
2
))
{
DcModuleSet
_B
(
eSwSta_Off
,
DcModuleAbility
.
MinVolt
,
DcModuleAbility
.
MinCurrt
*
DcModuleManage_B
.
ValidNum
);
SendDataToDcModule
_B
(
eSwSta_Off
,
DcModuleAbility
.
MinVolt
,
DcModuleAbility
.
MinCurrt
*
DcModuleManage_B
.
ValidNum
);
DcOutSet_B
(
eSwSta_Off
);
CcStatusChkTick
=
0
;
ChargeStopType_B
=
eChgStop_Imd_CcOpen
;
...
...
@@ -356,7 +356,7 @@ void ChgProImdCheck_B(StructChargeCtrl_B *pChargeCtrl)
}
if
(
0
!=
PillarError_B
.
Value
.
Emergency
)
{
DcModuleSet
_B
(
eSwSta_Off
,
DcModuleAbility
.
MinVolt
,
DcModuleAbility
.
MinCurrt
*
DcModuleManage_B
.
ValidNum
);
SendDataToDcModule
_B
(
eSwSta_Off
,
DcModuleAbility
.
MinVolt
,
DcModuleAbility
.
MinCurrt
*
DcModuleManage_B
.
ValidNum
);
DcOutSet_B
(
eSwSta_Off
);
ChargeStopType_B
=
eChgStop_Imd_EmerClose
;
pChargeCtrl
->
CurProcess
=
eChgPro_B_ChgBreak
;
...
...
@@ -364,7 +364,7 @@ void ChgProImdCheck_B(StructChargeCtrl_B *pChargeCtrl)
}
if
(
0
!=
PillarError_B
.
Value
.
Door
)
{
DcModuleSet
_B
(
eSwSta_Off
,
DcModuleAbility
.
MinVolt
,
DcModuleAbility
.
MinCurrt
*
DcModuleManage_B
.
ValidNum
);
SendDataToDcModule
_B
(
eSwSta_Off
,
DcModuleAbility
.
MinVolt
,
DcModuleAbility
.
MinCurrt
*
DcModuleManage_B
.
ValidNum
);
DcOutSet_B
(
eSwSta_Off
);
ChargeStopType_B
=
eChgStop_Imd_DoorOpen
;
pChargeCtrl
->
CurProcess
=
eChgPro_B_ChgBreak
;
...
...
@@ -372,7 +372,7 @@ void ChgProImdCheck_B(StructChargeCtrl_B *pChargeCtrl)
}
if
(
0
!=
PillarError_B
.
Value
.
Contactor
)
{
DcModuleSet
_B
(
eSwSta_Off
,
DcModuleAbility
.
MinVolt
,
DcModuleAbility
.
MinCurrt
*
DcModuleManage_B
.
ValidNum
);
SendDataToDcModule
_B
(
eSwSta_Off
,
DcModuleAbility
.
MinVolt
,
DcModuleAbility
.
MinCurrt
*
DcModuleManage_B
.
ValidNum
);
DcOutSet_B
(
eSwSta_Off
);
ChargeStopType_B
=
eChgStop_Imd_Contactor
;
pChargeCtrl
->
CurProcess
=
eChgPro_B_ChgBreak
;
...
...
@@ -380,7 +380,7 @@ void ChgProImdCheck_B(StructChargeCtrl_B *pChargeCtrl)
}
if
(
0
!=
PillarError_B
.
Value
.
UniContactor
)
{
DcModuleSet
_B
(
eSwSta_Off
,
DcModuleAbility
.
MinVolt
,
DcModuleAbility
.
MinCurrt
*
DcModuleManage_B
.
ValidNum
);
SendDataToDcModule
_B
(
eSwSta_Off
,
DcModuleAbility
.
MinVolt
,
DcModuleAbility
.
MinCurrt
*
DcModuleManage_B
.
ValidNum
);
DcOutSet_B
(
eSwSta_Off
);
ChargeStopType_B
=
eChgStop_Imd_Contactor
;
pChargeCtrl
->
CurProcess
=
eChgPro_B_ChgBreak
;
...
...
@@ -388,7 +388,7 @@ void ChgProImdCheck_B(StructChargeCtrl_B *pChargeCtrl)
}
if
(
0
!=
PillarError_B
.
Value
.
InVolt
)
{
DcModuleSet
_B
(
eSwSta_Off
,
DcModuleAbility
.
MinVolt
,
DcModuleAbility
.
MinCurrt
*
DcModuleManage_B
.
ValidNum
);
SendDataToDcModule
_B
(
eSwSta_Off
,
DcModuleAbility
.
MinVolt
,
DcModuleAbility
.
MinCurrt
*
DcModuleManage_B
.
ValidNum
);
DcOutSet_B
(
eSwSta_Off
);
ChargeStopType_B
=
eChgStop_Imd_InVolt
;
pChargeCtrl
->
CurProcess
=
eChgPro_B_ChgBreak
;
...
...
@@ -396,7 +396,7 @@ void ChgProImdCheck_B(StructChargeCtrl_B *pChargeCtrl)
}
if
(
0
!=
PillarError_B
.
Value
.
NoDcmod
)
{
DcModuleSet
_B
(
eSwSta_Off
,
DcModuleAbility
.
MinVolt
,
DcModuleAbility
.
MinCurrt
*
DcModuleManage_B
.
ValidNum
);
SendDataToDcModule
_B
(
eSwSta_Off
,
DcModuleAbility
.
MinVolt
,
DcModuleAbility
.
MinCurrt
*
DcModuleManage_B
.
ValidNum
);
DcOutSet_B
(
eSwSta_Off
);
ChargeStopType_B
=
eChgStop_Imd_NoDcmod
;
pChargeCtrl
->
CurProcess
=
eChgPro_B_ChgBreak
;
...
...
@@ -404,7 +404,7 @@ void ChgProImdCheck_B(StructChargeCtrl_B *pChargeCtrl)
}
if
(
0
!=
PillarError_B
.
Value
.
Meter
)
{
DcModuleSet
_B
(
eSwSta_Off
,
DcModuleAbility
.
MinVolt
,
DcModuleAbility
.
MinCurrt
*
DcModuleManage_B
.
ValidNum
);
SendDataToDcModule
_B
(
eSwSta_Off
,
DcModuleAbility
.
MinVolt
,
DcModuleAbility
.
MinCurrt
*
DcModuleManage_B
.
ValidNum
);
DcOutSet_B
(
eSwSta_Off
);
ChargeStopType_B
=
eChgStop_Imd_Meter
;
pChargeCtrl
->
CurProcess
=
eChgPro_B_ChgBreak
;
...
...
DcPillar/Src/Thread/Charge_B/ChgPro_B_WaitPillarReady.c
浏览文件 @
245b1af3
...
...
@@ -38,11 +38,12 @@ void ChgProWaitPillarReady_B(StructChargeCtrl_B *pChargeCtrl)
u8
CroStarus
=
0x00
;
u32
CcStatusChkTick
=
0
;
u32
VoltReadyTick
=
0
;
u32
Bro_00_Tick_B
=
0
;
BemMsg_B
.
Valid
=
0
;
BmsCanInit_B
();
osDelay
(
20
);
ChargeTimerSet_B
(
eSwSta_Off
);
BmsPowerSet_B
(
eSwSta_On
);
LockSet_B
(
eSwSta_On
);
...
...
@@ -56,16 +57,16 @@ void ChgProWaitPillarReady_B(StructChargeCtrl_B *pChargeCtrl)
CRO_SendTick
=
GetSystemTick
();
if
((
BcpMsg_B
.
StartVolt
>=
DcModuleAbility
.
MinVolt
)
&&
(
BcpMsg_B
.
StartVolt
<=
DcModuleAbility
.
MaxVolt
))
DcModuleSet
_B
(
eSwSta_On
,
BcpMsg_B
.
StartVolt
,
DcModuleAbility
.
MinCurrt
*
DcModuleManage_B
.
ValidNum
);
SendDataToDcModule
_B
(
eSwSta_On
,
BcpMsg_B
.
StartVolt
,
DcModuleAbility
.
MinCurrt
*
DcModuleManage_B
.
ValidNum
);
else
if
(
BcpMsg_B
.
StartVolt
<
DcModuleAbility
.
MinVolt
)
DcModuleSet
_B
(
eSwSta_On
,
DcModuleAbility
.
MinVolt
,
DcModuleAbility
.
MinCurrt
*
DcModuleManage_B
.
ValidNum
);
SendDataToDcModule
_B
(
eSwSta_On
,
DcModuleAbility
.
MinVolt
,
DcModuleAbility
.
MinCurrt
*
DcModuleManage_B
.
ValidNum
);
else
{
CstMsg_B
.
StopReason
.
Value
.
Truble
=
1
;
CstMsg_B
.
StopTruble
.
Value
.
Other
=
1
;
CstMsg_B
.
StopFault
.
Value
.
Volt
=
1
;
DcOutSet_B
(
eSwSta_Off
);
DcModuleSet
_B
(
eSwSta_Off
,
DcModuleAbility
.
MinVolt
,
DcModuleAbility
.
MinCurrt
*
DcModuleManage_B
.
ValidNum
);
SendDataToDcModule
_B
(
eSwSta_Off
,
DcModuleAbility
.
MinVolt
,
DcModuleAbility
.
MinCurrt
*
DcModuleManage_B
.
ValidNum
);
ChargeStopType_B
=
eChgStop_PillarReady_BatVoltOverPillarMax
;
pChargeCtrl
->
CurProcess
=
eChgPro_B_ChgStop
;
pChargeCtrl
->
Param
=
0
;
...
...
@@ -93,7 +94,7 @@ void ChgProWaitPillarReady_B(StructChargeCtrl_B *pChargeCtrl)
CstMsg_B
.
StopTruble
.
Value
.
Other
=
1
;
CstMsg_B
.
StopFault
.
Value
.
Volt
=
1
;
DcOutSet_B
(
eSwSta_Off
);
DcModuleSet
_B
(
eSwSta_Off
,
DcModuleAbility
.
MinVolt
,
DcModuleAbility
.
MinCurrt
*
DcModuleManage_B
.
ValidNum
);
SendDataToDcModule
_B
(
eSwSta_Off
,
DcModuleAbility
.
MinVolt
,
DcModuleAbility
.
MinCurrt
*
DcModuleManage_B
.
ValidNum
);
ChargeStopType_B
=
eChgStop_PillarReady_BatVoltError
;
pChargeCtrl
->
CurProcess
=
eChgPro_B_ChgStop
;
pChargeCtrl
->
Param
=
0
;
...
...
@@ -106,7 +107,7 @@ void ChgProWaitPillarReady_B(StructChargeCtrl_B *pChargeCtrl)
CstMsg_B
.
StopTruble
.
Value
.
Other
=
1
;
CstMsg_B
.
StopFault
.
Value
.
Volt
=
1
;
DcOutSet_B
(
eSwSta_Off
);
DcModuleSet
_B
(
eSwSta_Off
,
DcModuleAbility
.
MinVolt
,
DcModuleAbility
.
MinCurrt
*
DcModuleManage_B
.
ValidNum
);
SendDataToDcModule
_B
(
eSwSta_Off
,
DcModuleAbility
.
MinVolt
,
DcModuleAbility
.
MinCurrt
*
DcModuleManage_B
.
ValidNum
);
ChargeStopType_B
=
eChgStop_PillarReady_BatVoltMismatchBcpVolt
;
pChargeCtrl
->
CurProcess
=
eChgPro_B_ChgStop
;
pChargeCtrl
->
Param
=
0
;
...
...
@@ -121,9 +122,9 @@ void ChgProWaitPillarReady_B(StructChargeCtrl_B *pChargeCtrl)
else
{
if
((
GetBatVoltWaitPillarReady_B
()
>=
DcModuleAbility
.
MinVolt
)
&&
(
GetBatVoltWaitPillarReady_B
()
<=
DcModuleAbility
.
MaxVolt
))
DcModuleSet
_B
(
eSwSta_On
,
GetBatVoltWaitPillarReady_B
(),
DcModuleAbility
.
MinCurrt
*
DcModuleManage_B
.
ValidNum
);
SendDataToDcModule
_B
(
eSwSta_On
,
GetBatVoltWaitPillarReady_B
(),
DcModuleAbility
.
MinCurrt
*
DcModuleManage_B
.
ValidNum
);
else
if
(
GetBatVoltWaitPillarReady_B
()
<
DcModuleAbility
.
MinVolt
)
DcModuleSet
_B
(
eSwSta_On
,
DcModuleAbility
.
MinVolt
,
DcModuleAbility
.
MinCurrt
*
DcModuleManage_B
.
ValidNum
);
SendDataToDcModule
_B
(
eSwSta_On
,
DcModuleAbility
.
MinVolt
,
DcModuleAbility
.
MinCurrt
*
DcModuleManage_B
.
ValidNum
);
}
}
if
((
0
!=
VoltReadyTick
)
&&
((
GetSystemTick
()
-
VoltReadyTick
)
>
(
MsgTimeout_B_60S
)))
...
...
@@ -135,7 +136,7 @@ void ChgProWaitPillarReady_B(StructChargeCtrl_B *pChargeCtrl)
CstMsg_B
.
StopTruble
.
Value
.
Other
=
1
;
CstMsg_B
.
StopFault
.
Value
.
Volt
=
1
;
DcOutSet_B
(
eSwSta_Off
);
DcModuleSet
_B
(
eSwSta_Off
,
DcModuleAbility
.
MinVolt
,
DcModuleAbility
.
MinCurrt
*
DcModuleManage_B
.
ValidNum
);
SendDataToDcModule
_B
(
eSwSta_Off
,
DcModuleAbility
.
MinVolt
,
DcModuleAbility
.
MinCurrt
*
DcModuleManage_B
.
ValidNum
);
ChargeStopType_B
=
eChgStop_Conf_ChgMaxVoltLessPillarMinVolt
;
pChargeCtrl
->
CurProcess
=
eChgPro_B_ChgStop
;
pChargeCtrl
->
Param
=
0
;
...
...
@@ -176,23 +177,42 @@ void ChgProWaitPillarReady_B(StructChargeCtrl_B *pChargeCtrl)
if
((
GetSystemTick
()
-
BroMsg_B
.
RecvTick
)
>
MsgTimeout_B_5S
)
{
CemMsg_B
.
Cem
.
Value
.
Bro
=
1
;
DcModuleSet
_B
(
eSwSta_Off
,
DcModuleAbility
.
MinVolt
,
DcModuleAbility
.
MinCurrt
*
DcModuleManage_B
.
ValidNum
);
SendDataToDcModule
_B
(
eSwSta_Off
,
DcModuleAbility
.
MinVolt
,
DcModuleAbility
.
MinCurrt
*
DcModuleManage_B
.
ValidNum
);
pChargeCtrl
->
CurProcess
=
eChgPro_B_CommBreak
;
pChargeCtrl
->
Param
=
0
;
}
else
CemMsg_B
.
Cem
.
Value
.
Bro
=
0
;
if
(
0x00
==
BroMsg_B
.
Status
)
Bro_00_Tick_B
=
GetSystemTick
();
else
Bro_00_Tick_B
=
GetSystemTick
();
if
(
GetSystemTick
()
-
Bro_00_Tick_B
>=
MsgTimeout_1S
)
{
/*VoltReadyTick = 0;
pChargeCtrl->CurProcess = eChgPro_ChgStart;
pChargeCtrl->Param = 0;*/
//CstMsg.StopReason.Value.Truble = 1;
// CstMsg.StopTruble.Value.Other = 1;
// CstMsg.StopFault.Value.Volt = 1;
CemMsg_B
.
Cem
.
Mult
=
0
;
DcOutSet_B
(
eSwSta_Off
);
SendDataToDcModule_B
(
eSwSta_Off
,
DcModuleAbility
.
MinVolt
,
DcModuleAbility
.
MinCurrt
*
DcModuleManage
.
ValidNum
);
ChargeStopType_B
=
eChgStop_Conf_ChgMaxVoltLessPillarMinVolt
;
pChargeCtrl
->
CurProcess
=
eChgPro_B_CommError
;
pChargeCtrl
->
Param
=
0
;
}
if
(
0
!=
BemMsg_B
.
Valid
)
{
DcModuleSet
_B
(
eSwSta_Off
,
DcModuleAbility
.
MinVolt
,
DcModuleAbility
.
MinCurrt
*
DcModuleManage_B
.
ValidNum
);
SendDataToDcModule
_B
(
eSwSta_Off
,
DcModuleAbility
.
MinVolt
,
DcModuleAbility
.
MinCurrt
*
DcModuleManage_B
.
ValidNum
);
pChargeCtrl
->
CurProcess
=
eChgPro_B_CommBreak
;
pChargeCtrl
->
Param
=
0
;
}
if
(
0
==
TCUCurChgRecd_B
.
TCUChargeEnable
)
{
//外部控制结束充电
DcModuleSet
_B
(
eSwSta_Off
,
DcModuleAbility
.
MinVolt
,
DcModuleAbility
.
MinCurrt
*
DcModuleManage_B
.
ValidNum
);
SendDataToDcModule
_B
(
eSwSta_Off
,
DcModuleAbility
.
MinVolt
,
DcModuleAbility
.
MinCurrt
*
DcModuleManage_B
.
ValidNum
);
ChargeStopType_B
=
eChgStop_PillarReady_UserCancel
;
pChargeCtrl
->
CurProcess
=
eChgPro_B_ChgStop
;
pChargeCtrl
->
Param
=
0
;
...
...
@@ -207,7 +227,7 @@ void ChgProWaitPillarReady_B(StructChargeCtrl_B *pChargeCtrl)
CcStatusChkTick
=
0
;
if
((
0
!=
CcStatusChkTick
)
&&
((
GetSystemTick
()
-
CcStatusChkTick
)
>
CC_CheckTick_B
*
2
))
{
DcModuleSet
_B
(
eSwSta_Off
,
DcModuleAbility
.
MinVolt
,
DcModuleAbility
.
MinCurrt
*
DcModuleManage_B
.
ValidNum
);
SendDataToDcModule
_B
(
eSwSta_Off
,
DcModuleAbility
.
MinVolt
,
DcModuleAbility
.
MinCurrt
*
DcModuleManage_B
.
ValidNum
);
CcStatusChkTick
=
0
;
ChargeStopType_B
=
eChgStop_PillarReady_CcOpen
;
pChargeCtrl
->
CurProcess
=
eChgPro_B_ChgBreak
;
...
...
@@ -215,49 +235,49 @@ void ChgProWaitPillarReady_B(StructChargeCtrl_B *pChargeCtrl)
}
if
(
0
!=
PillarError_B
.
Value
.
Emergency
)
{
DcModuleSet
_B
(
eSwSta_Off
,
DcModuleAbility
.
MinVolt
,
DcModuleAbility
.
MinCurrt
*
DcModuleManage_B
.
ValidNum
);
SendDataToDcModule
_B
(
eSwSta_Off
,
DcModuleAbility
.
MinVolt
,
DcModuleAbility
.
MinCurrt
*
DcModuleManage_B
.
ValidNum
);
ChargeStopType_B
=
eChgStop_PillarReady_EmerClose
;
pChargeCtrl
->
CurProcess
=
eChgPro_B_ChgBreak
;
pChargeCtrl
->
Param
=
0
;
}
if
(
0
!=
PillarError_B
.
Value
.
Door
)
{
DcModuleSet
_B
(
eSwSta_Off
,
DcModuleAbility
.
MinVolt
,
DcModuleAbility
.
MinCurrt
*
DcModuleManage_B
.
ValidNum
);
SendDataToDcModule
_B
(
eSwSta_Off
,
DcModuleAbility
.
MinVolt
,
DcModuleAbility
.
MinCurrt
*
DcModuleManage_B
.
ValidNum
);
ChargeStopType_B
=
eChgStop_PillarReady_DoorOpen
;
pChargeCtrl
->
CurProcess
=
eChgPro_B_ChgBreak
;
pChargeCtrl
->
Param
=
0
;
}
if
(
0
!=
PillarError_B
.
Value
.
Contactor
)
{
DcModuleSet
_B
(
eSwSta_Off
,
DcModuleAbility
.
MinVolt
,
DcModuleAbility
.
MinCurrt
*
DcModuleManage_B
.
ValidNum
);
SendDataToDcModule
_B
(
eSwSta_Off
,
DcModuleAbility
.
MinVolt
,
DcModuleAbility
.
MinCurrt
*
DcModuleManage_B
.
ValidNum
);
ChargeStopType_B
=
eChgStop_PillarReady_Contactor
;
pChargeCtrl
->
CurProcess
=
eChgPro_B_ChgBreak
;
pChargeCtrl
->
Param
=
0
;
}
if
(
0
!=
PillarError_B
.
Value
.
UniContactor
)
{
DcModuleSet
_B
(
eSwSta_Off
,
DcModuleAbility
.
MinVolt
,
DcModuleAbility
.
MinCurrt
*
DcModuleManage_B
.
ValidNum
);
SendDataToDcModule
_B
(
eSwSta_Off
,
DcModuleAbility
.
MinVolt
,
DcModuleAbility
.
MinCurrt
*
DcModuleManage_B
.
ValidNum
);
ChargeStopType_B
=
eChgStop_PillarReady_Contactor
;
pChargeCtrl
->
CurProcess
=
eChgPro_B_ChgBreak
;
pChargeCtrl
->
Param
=
0
;
}
if
(
0
!=
PillarError_B
.
Value
.
InVolt
)
{
DcModuleSet
_B
(
eSwSta_Off
,
DcModuleAbility
.
MinVolt
,
DcModuleAbility
.
MinCurrt
*
DcModuleManage_B
.
ValidNum
);
SendDataToDcModule
_B
(
eSwSta_Off
,
DcModuleAbility
.
MinVolt
,
DcModuleAbility
.
MinCurrt
*
DcModuleManage_B
.
ValidNum
);
ChargeStopType_B
=
eChgStop_PillarReady_InVolt
;
pChargeCtrl
->
CurProcess
=
eChgPro_B_ChgBreak
;
pChargeCtrl
->
Param
=
0
;
}
if
(
0
!=
PillarError_B
.
Value
.
NoDcmod
)
{
DcModuleSet
_B
(
eSwSta_Off
,
DcModuleAbility
.
MinVolt
,
DcModuleAbility
.
MinCurrt
*
DcModuleManage_B
.
ValidNum
);
SendDataToDcModule
_B
(
eSwSta_Off
,
DcModuleAbility
.
MinVolt
,
DcModuleAbility
.
MinCurrt
*
DcModuleManage_B
.
ValidNum
);
ChargeStopType_B
=
eChgStop_PillarReady_NoDcmod
;
pChargeCtrl
->
CurProcess
=
eChgPro_B_ChgBreak
;
pChargeCtrl
->
Param
=
0
;
}
if
(
0
!=
PillarError_B
.
Value
.
Meter
)
{
DcModuleSet
_B
(
eSwSta_Off
,
DcModuleAbility
.
MinVolt
,
DcModuleAbility
.
MinCurrt
*
DcModuleManage_B
.
ValidNum
);
SendDataToDcModule
_B
(
eSwSta_Off
,
DcModuleAbility
.
MinVolt
,
DcModuleAbility
.
MinCurrt
*
DcModuleManage_B
.
ValidNum
);
ChargeStopType_B
=
eChgStop_PillarReady_Meter
;
pChargeCtrl
->
CurProcess
=
eChgPro_B_ChgBreak
;
pChargeCtrl
->
Param
=
0
;
...
...
DcPillar/Src/Thread/Charge_B/ChgPro_B_WaitVoltChgRun.c
浏览文件 @
245b1af3
...
...
@@ -627,7 +627,7 @@ void ChgProWaitVoltChgRun_B(StructChargeCtrl_B *pChargeCtrl)
}
else
CemMsg_B
.
Cem
.
Value
.
Bcl
=
0
;
if
((
GetSystemTick
()
-
BcsMsg_B
.
RecvTick
)
>
MsgTimeout_B_5S
)
{
CemMsg_B
.
Cem
.
Value
.
Bcs
=
1
;
...
...
DcPillar/Src/Thread/Thd_Charge.c
浏览文件 @
245b1af3
...
...
@@ -185,7 +185,7 @@ void Thd_Charge(void const *parameter)
ChargeCtrl
.
Param
=
0
;
osDelay
(
100
);
while
(
1
)
{
if
(
ChargeCtrl
.
CurProcess
<
eChgPro_Max
)
...
...
DcPillar/Src/Thread/Thd_Charge_B.h
浏览文件 @
245b1af3
...
...
@@ -12,7 +12,7 @@
#define MsgTimeout_B_1S (1000+200)
#define MsgTimeout_B_5S (5000+500)
#define MsgTimeout_B_10S (10*1000+3000)
#define MsgTimeout_B_60S (60*1000+
30
00)
#define MsgTimeout_B_60S (60*1000+
87
00)
#define MsgTimeout_B_10M (10*60*1000+3000)
typedef
enum
...
...
DcPillar/Src/Thread/Thd_TcuControl.c
浏览文件 @
245b1af3
...
...
@@ -149,6 +149,7 @@ void TCUBuildComm(StructTCUCtrl *pLcdCtrl)
TCUCurChgRecd
.
TCUChgStarCompNotetrl
=
1
;
//开始完成帧发送标志
pLcdCtrl
->
CurScreen
=
GetTCUProcess
(
eLcdPro_TCUMainMenu
);
pLcdCtrl
->
Param
=
0
;
TCUCurChgRecd
.
TCUChargeEnable
=
0
;
break
;
/*case eChgPro_ChgRecognize:
case eChgPro_ChgRecognizeEx:
...
...
@@ -192,6 +193,7 @@ void TCUBuildComm_B(StructTCUCtrl *pLcdCtrl)
TCUCurChgRecd_B
.
TCUChgStarCompNotetrl
=
1
;
//开始完成帧发送标志
pLcdCtrl
->
CurScreen
=
GetTCUProcess
(
eLcdPro_TCUMainMenu
);
pLcdCtrl
->
Param
=
0
;
TCUCurChgRecd_B
.
TCUChargeEnable
=
0
;
break
;
/*case eChgPro_ChgRecognize:
case eChgPro_ChgRecognizeEx:
...
...
DcPillar/Src/main.c
浏览文件 @
245b1af3
...
...
@@ -25,7 +25,7 @@ void vApplicationStackOverflowHook( TaskHandle_t xTask, char *pcTaskName )
void
vApplicationIdleHook
(
void
)
{
FeedDog
();
//
FeedDog();
}
//#pragma section = ".checksum"
...
...
@@ -136,7 +136,7 @@ int main(void)
}
DBGMCU_Config
(
DBGMCU_IWDG_STOP
,
ENABLE
);
WdgInit
();
//
WdgInit();
/* Start scheduler */
osKernelStart
();
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论