Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
D
DC360_1drap3_xiaoju_V1
概览
概览
详情
活动
周期分析
版本库
存储库
文件
提交
分支
标签
贡献者
分支图
比较
统计图
问题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程表
图表
维基
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
丁雨邯
DC360_1drap3_xiaoju_V1
Commits
be32b969
提交
be32b969
authored
5月 20, 2020
作者:
wysheng
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
梳理TCU通讯协议,修改部分错误
上级
a044ceb9
显示空白字符变更
内嵌
并排
正在显示
1 个修改的文件
包含
37 行增加
和
72 行删除
+37
-72
Drv_TCUComm.c
DcPillar/Src/Drivers/Drv_TCUComm.c
+37
-72
没有找到文件。
DcPillar/Src/Drivers/Drv_TCUComm.c
浏览文件 @
be32b969
...
...
@@ -1328,130 +1328,97 @@ void StopMegAck_B(void)
}
/*
01H:计费控制单元正常停止
02H:计费控制单元自身故障终止
03H:计费控制单元判断充电控制器故障停止
04H:启动完成状态帧确认超时故障终止
05H:充电中控制导引故障
06H:充电控制器与计费控制单元通讯超时
07H:充电桩充电中暂停超时
08H:急停按钮动作故障
09H:门禁故障(充电桩)
0AH:避雷器故障
0BH:烟感故障
0CH:交流输入断路器故障
0DH:交流输入接触器拒动/误动故障
0EH:交流输入接触器粘连故障
0FH:交流输入故障(过压,欠压,缺相,过流)
10H:充电桩过温故障
11H:充电接口过温故障
12H:充电接口电子锁故障
13H:直流输出接触器拒动/误动故障
14H:直流输出接触器粘连故障
15H:直流输出熔断器故障
16H:并联接触器拒动/误动故障
17H:并联接触器粘连故障
18H:泄放回路故障
19H:辅助电源故障
1AH:充电机模块故障
1BH:直流母线输出电压过压故障
1CH:直流母线输出电压欠压故障
1DH:直流母线输出电流过流故障
1EH:直流母线输出短路故障
1FH:电池充电需求报文(BCL)超时
20H:电池充电总状态报文(BCS)超时
21H:动力蓄电池状态信息(BSM)超时
22H:BSM 报文中单体动力蓄电池电压过压
23H:BSM 报文中单体动力蓄电池电压过低
24H:BSM 报文中SOC 过高
25H:BSM 报文中SOC 过低
26H:BSM 报文中充电过电流
27H:BSM 报文中动力蓄电池温度过高
28H:BSM 报文中动力蓄电池绝缘状态异常
29H:BSM 报文中连接器连接状态异常
2AH:BMS 正常终止充电
2BH:BMS 异常终止充电
2CH:充电桩判断BMS 其他异常终止
2DH:预留
2EH:无有效电流停止
2FH:环境监控板通信故障
30H:灯板通信故障
31H: 电能表通信故障
FFH:充电桩其他故障
*/
void
GetStopReason_A
(
u8
*
stopReason
)
{
if
(
TCUCurChgRecd
.
TCUChgStopType
==
1
)
*
stopReason
=
01
;
*
stopReason
=
01
;
//01H:计费控制单元正常停止
else
if
(
TCUCurChgRecd
.
TCUChgStopType
==
2
)
*
stopReason
=
02
;
*
stopReason
=
02
;
//02H:计费控制单元自身故障终止
else
if
(
TCUCurChgRecd
.
TCUChgStopType
==
3
)
*
stopReason
=
03
;
*
stopReason
=
03
;
//03H:计费控制单元判断充电控制器故障停止
else
if
(
TCUCommuStatus
.
ErrData
.
Value
.
startCompAck
==
1
)
*
stopReason
=
0x04
;
*
stopReason
=
0x04
;
//04H:启动完成状态帧确认超时故障终止
else
if
(
ChargeStopType
==
eChgStop_Run_CcOpen
)
*
stopReason
=
0x05
;
//
控制导引超时
//充电过程中充电导引枪连接
*
stopReason
=
0x05
;
//
05H:充电中控制导引故障
//充电过程中充电导引枪连接
else
if
(
TCUCommuStatus
.
ConnectFlag
==
CONNECT_TIMEOUT
)
*
stopReason
=
0x06
;
//
充电控制器与计费单元通讯超时停止
*
stopReason
=
0x06
;
//
06H:充电控制器与计费控制单元通讯超时
else
if
(
PillarError
.
Value
.
Emergency
)
*
stopReason
=
0x08
;
//急停按钮动作故障
*
stopReason
=
0x08
;
//
08H:
急停按钮动作故障
else
if
(
PillarError
.
Value
.
Door
)
*
stopReason
=
0x09
;
//
门禁故障
*
stopReason
=
0x09
;
//
09H:门禁故障(充电桩)
else
if
(
PillarError
.
Value
.
SPD
)
*
stopReason
=
0x0A
;
//
防
雷器故障
*
stopReason
=
0x0A
;
//
0AH:避
雷器故障
else
if
(
PillarError
.
Value
.
ACContactor
)
*
stopReason
=
0x0E
;
//
交流
接触器粘连故障
*
stopReason
=
0x0E
;
//
0EH:交流输入
接触器粘连故障
else
if
(
PillarError
.
Value
.
InVolt
)
*
stopReason
=
0x0F
;
//
交流输入故障//过欠压缺相
*
stopReason
=
0x0F
;
//
0FH:交流输入故障(过压,欠压,缺相,过流)
else
if
(
PillarError
.
Value
.
EleLock
)
*
stopReason
=
0x
0F
;
//交流输入故障//过欠压缺相
*
stopReason
=
0x
12
;
//12H:充电接口电子锁故障
else
if
(
PillarError
.
Value
.
Contactor
)
*
stopReason
=
0x14
;
//
直流输出继电
器粘连故障
*
stopReason
=
0x14
;
//
14H:直流输出接触
器粘连故障
else
if
(
PillarError
.
Value
.
UniContactor
)
*
stopReason
=
0x16
;
//
并联接触器粘连
故障
*
stopReason
=
0x16
;
//
16H:并联接触器拒动/误动
故障
else
if
(
PillarError
.
Value
.
DCmodError
)
*
stopReason
=
0x1A
;
//
充电
模块故障
*
stopReason
=
0x1A
;
//
1AH:充电机
模块故障
else
if
(
ChargeStopType
==
eChgStop_Run_VoltOutHighErr
)
*
stopReason
=
0x1B
;
//
直流输出电
压故障
*
stopReason
=
0x1B
;
//
1BH:直流母线输出电压过
压故障
else
if
(
ChargeStopType
==
eChgStop_Run_CurrtOutHighErr
)
*
stopReason
=
0x1D
;
//
直流输出
过流故障
*
stopReason
=
0x1D
;
//
1DH:直流母线输出电流
过流故障
else
if
(
PillarError
.
Value
.
OutShort
)
*
stopReason
=
0x1E
;
//
直流
输出短路故障
*
stopReason
=
0x1E
;
//
1EH:直流母线
输出短路故障
else
if
(
CemMsg
.
Cem
.
Value
.
Bcl
==
1
)
*
stopReason
=
0x1F
;
*
stopReason
=
0x1F
;
//1FH:电池充电需求报文(BCL)超时
else
if
(
CemMsg
.
Cem
.
Value
.
Bcs
==
1
)
*
stopReason
=
0x20
;
*
stopReason
=
0x20
;
//20H:电池充电总状态报文(BCS)超时
//else if(CemMsg.Cem.Value.Bsm==1)
// *stopReason = 0x21;
else
if
(
BsmMsg
.
BatSta
.
Value
.
Volt
==
0x01
)
*
stopReason
=
0x22
;
*
stopReason
=
0x22
;
//22H:BSM 报文中单体动力蓄电池电压过压
else
if
(
BsmMsg
.
BatSta
.
Value
.
Volt
==
0x02
)
*
stopReason
=
0x23
;
*
stopReason
=
0x23
;
//23H:BSM 报文中单体动力蓄电池电压过低
else
if
(
BsmMsg
.
BatSta
.
Value
.
Soc
==
0x01
)
*
stopReason
=
0x24
;
*
stopReason
=
0x24
;
//24H:BSM 报文中SOC 过高
else
if
(
BsmMsg
.
BatSta
.
Value
.
Soc
==
0x02
)
*
stopReason
=
0x25
;
*
stopReason
=
0x25
;
//25H:BSM 报文中SOC 过低
else
if
(
BsmMsg
.
BatSta
.
Value
.
Currt
==
0x01
)
*
stopReason
=
0x26
;
*
stopReason
=
0x26
;
//26H:BSM 报文中充电过电流
else
if
(
BsmMsg
.
BatSta
.
Value
.
Temp
==
0x01
)
*
stopReason
=
0x27
;
*
stopReason
=
0x27
;
//27H:BSM 报文中动力蓄电池温度过高
else
if
(
BsmMsg
.
ChgSta
.
Value
.
Imd
==
0x01
)
*
stopReason
=
0x28
;
*
stopReason
=
0x28
;
//28H:BSM 报文中动力蓄电池绝缘状态异常
else
if
(
BsmMsg
.
ChgSta
.
Value
.
Connect
==
0x01
)
*
stopReason
=
0x29
;
*
stopReason
=
0x29
;
//29H:BSM 报文中连接器连接状态异常
else
if
((
BstMsg
.
StopReason
.
Value
.
NeedSoc
==
0x01
)
||
(
BstMsg
.
StopReason
.
Value
.
SetVolt
==
0x01
)
||
(
BstMsg
.
StopReason
.
Value
.
PerSetVolt
==
0x01
))
*
stopReason
=
0x2A
;
*
stopReason
=
0x2A
;
//2AH:BMS 正常终止充电
else
if
((
BstMsg
.
StopTruble
.
Mult
!=
0
)
||
((
BstMsg
.
StopFault
.
Mult
&
0x0F
)
!=
0
))
*
stopReason
=
0x2B
;
*
stopReason
=
0x2B
;
//2BH:BMS 异常终止充电
else
if
(
ChargeCtrl
.
CurProcess
==
eChgPro_ChgBreak
)
*
stopReason
=
0x2
D
;
*
stopReason
=
0x2
C
;
//2CH:充电桩判断BMS 其他异常终止
else
*
stopReason
=
0x
2c
;
*
stopReason
=
0x
ff
;
//FFH:充电桩其他故障
return
;
...
...
@@ -1470,7 +1437,7 @@ void GetStopReason_B(u8 * stopReason)
*
stopReason
=
0x04
;
else
if
(
ChargeStopType_B
==
eChgStop_Run_CcOpen
)
*
stopReason
=
0x05
;
//控制导引超时//充电过程中充电导引枪连接
else
if
(
TCUCommuStatus
.
ConnectFlag
==
CONNECT_TIMEOUT
)
else
if
(
TCUCommuStatus
_B
.
ConnectFlag
==
CONNECT_TIMEOUT
)
*
stopReason
=
0x06
;
//充电控制器与计费单元通讯超时停止
else
if
(
PillarError_B
.
Value
.
Emergency
)
*
stopReason
=
0x08
;
//急停按钮动作故障
...
...
@@ -1483,7 +1450,7 @@ void GetStopReason_B(u8 * stopReason)
else
if
(
PillarError_B
.
Value
.
InVolt
)
*
stopReason
=
0x0F
;
//交流输入故障//过欠压缺相
else
if
(
PillarError_B
.
Value
.
EleLock
)
*
stopReason
=
0x
0F
;
//交流输入故障//过欠压缺相
*
stopReason
=
0x
12
;
//
else
if
(
PillarError_B
.
Value
.
Contactor
)
*
stopReason
=
0x14
;
//直流输出继电器粘连故障
else
if
(
PillarError_B
.
Value
.
UniContactor
)
...
...
@@ -1525,13 +1492,11 @@ void GetStopReason_B(u8 * stopReason)
else
if
((
BstMsg_B
.
StopTruble
.
Mult
!=
0
)
||
((
BstMsg_B
.
StopFault
.
Mult
&
0x0F
)
!=
0
))
*
stopReason
=
0x2B
;
else
if
(
ChargeCtrl_B
.
CurProcess
==
eChgPro_B_ChgBreak
)
*
stopReason
=
0x2
D
;
*
stopReason
=
0x2
C
;
else
*
stopReason
=
0x
2c
;
*
stopReason
=
0x
FF
;
return
;
}
...
...
@@ -1740,7 +1705,7 @@ void TCUHeartBeat_A(void)
{
0
};
static
u8
CountNum
;
//最大255
static
u8
CountNum
=
0
;
//最大255
Data
[
0
]
=
0x00
;
Data
[
1
]
=
CountNum
++
;
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论