Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
D
DC360_1drap3_xiaoju_V1
概览
概览
详情
活动
周期分析
版本库
存储库
文件
提交
分支
标签
贡献者
分支图
比较
统计图
问题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程表
图表
维基
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
丁雨邯
DC360_1drap3_xiaoju_V1
Commits
5dd57d55
提交
5dd57d55
authored
6月 17, 2020
作者:
wysheng
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
根据小桔反馈增加上报信息
上级
e12903e0
隐藏空白字符变更
内嵌
并排
正在显示
3 个修改的文件
包含
661 行增加
和
570 行删除
+661
-570
Drv_TCUComm.c
DcPillar/Src/Drivers/Drv_TCUComm.c
+253
-185
Drv_TCUComm.h
DcPillar/Src/Drivers/Drv_TCUComm.h
+392
-384
Global.h
DcPillar/Src/Global.h
+16
-1
没有找到文件。
DcPillar/Src/Drivers/Drv_TCUComm.c
浏览文件 @
5dd57d55
...
@@ -721,15 +721,8 @@ void StartMeg(StructTCUSend * pPgnRecv)
...
@@ -721,15 +721,8 @@ void StartMeg(StructTCUSend * pPgnRecv)
/*
/*
00H:成功
00H:成功
0CH:烟感故障
0CH:烟感故障
0DH:充电桩过温故障(一体式充电桩内部过温故障保护,分体式充电桩充电机柜内部过温�
13H:输入高压断路器故障
��障保护或充电桩内部过温故障保护)
0EH:充电接口过温故障
14H:输入高压接触器拒动/误动故障
15H:输入高压接触器粘连故障
16H:输出高压接触器拒动/误动故障
18H:输出高压熔断器故障
18H:输出高压熔断器故障
19H:并联接触器拒动/误动故障(仅直流桩使用)
1BH:泄放回路故障
1CH:辅助电源故障(仅直流桩使用)
1CH:辅助电源故障(仅直流桩使用)
20H:输出电压欠压故障
20H:输出电压欠压故障
23H:无空余充电机模块可用(仅限具备功率分配功能的直流充电桩使用)
23H:无空余充电机模块可用(仅限具备功率分配功能的直流充电桩使用)
...
@@ -740,7 +733,6 @@ void StartMeg(StructTCUSend * pPgnRecv)
...
@@ -740,7 +733,6 @@ void StartMeg(StructTCUSend * pPgnRecv)
28H:直流充电主控模块与功率控制模块通信超时(仅直流桩使用)
28H:直流充电主控模块与功率控制模块通信超时(仅直流桩使用)
29H:功率控制模块与开关模块通信超时(仅直流桩使用)
29H:功率控制模块与开关模块通信超时(仅直流桩使用)
2AH:开关模块故障(仅直流桩使用)
2AH:开关模块故障(仅直流桩使用)
2BH:绝缘监测仪通信故障
2CH:环境监控板通信故障
2CH:环境监控板通信故障
2DH:灯板通信故障
2DH:灯板通信故障
2EH: 电能表通信故障
2EH: 电能表通信故障
...
@@ -770,22 +762,34 @@ u8 AllowDTUStartCharge(u8 * Reason)
...
@@ -770,22 +762,34 @@ u8 AllowDTUStartCharge(u8 * Reason)
*
Reason
=
0x0A
;
//0AH:门禁故障(充电桩)
*
Reason
=
0x0A
;
//0AH:门禁故障(充电桩)
else
if
(
PillarError
.
Value
.
SPD
==
1
)
else
if
(
PillarError
.
Value
.
SPD
==
1
)
*
Reason
=
0x0B
;
//0BH:避雷器故障
*
Reason
=
0x0B
;
//0BH:避雷器故障
else
if
(
ChargeError
.
Value
.
TempError
==
1
)
*
Reason
=
0x0D
;
//0DH:充电桩过温故障
else
if
(
ChargeError
.
Value
.
GunTempError
==
1
)
*
Reason
=
0x0E
;
//0EH:充电接口过温故障
else
if
(
PillarError
.
Value
.
EleLock
==
1
)
else
if
(
PillarError
.
Value
.
EleLock
==
1
)
*
Reason
=
0x0F
;
//0FH:充电接口电子锁故障
*
Reason
=
0x0F
;
//0FH:充电接口电子锁故障
else
if
(
(
PillarError
.
Value
.
Insulation
==
1
)
||
(
PillarError
.
Value
.
ImdDev
==
1
)
)
else
if
(
PillarError
.
Value
.
Insulation
==
1
)
*
Reason
=
0x010
;
//10H:绝缘监测故障(仅直流桩使用)
*
Reason
=
0x010
;
//10H:绝缘监测故障(仅直流桩使用)
else
if
(
ChargeStopType
==
eChgStop_PillarReady_BatVoltError
)
else
if
(
ChargeStopType
==
eChgStop_PillarReady_BatVoltError
)
*
Reason
=
0x11
;
//11H:电池极性反接故障(仅直流桩使用)
*
Reason
=
0x11
;
//11H:电池极性反接故障(仅直流桩使用)
else
if
((
ChargeStopType
==
eChgStop_Imd_BhmTimeOut
)
||
(
ChargeStopType
==
eChgStop_ComBreak_CommError
))
else
if
((
ChargeStopType
==
eChgStop_Imd_BhmTimeOut
)
||
(
ChargeStopType
==
eChgStop_ComBreak_CommError
))
*
Reason
=
0x12
;
//12H:BMS通信超时故障(仅直流桩使用)备注:还未进入自检阶段,实际不存在此失败原因
*
Reason
=
0x12
;
//12H:BMS通信超时故障(仅直流桩使用)备注:还未进入自检阶段,实际不存在此失败原因
else
if
(
PillarError
.
Value
.
ACContactor
==
1
)
else
if
(
PillarError
.
Value
.
ACContactor1
==
1
)
*
Reason
=
0x13
;
//13H:输入高压断路器故障
*
Reason
=
0x14
;
//14H:输入高压接触器拒动/误动故障
else
if
(
PillarError
.
Value
.
Contactor
)
else
if
(
PillarError
.
Value
.
ACContactor2
==
1
)
*
Reason
=
0x15
;
//15H:输入高压接触器粘连故障
else
if
(
PillarError
.
Value
.
Contactor1
)
*
Reason
=
0x16
;
//16H:输出高压接触器拒动/误动故障
else
if
(
PillarError
.
Value
.
Contactor2
)
*
Reason
=
0x17
;
//17H:输出高压接触器粘连故障
*
Reason
=
0x17
;
//17H:输出高压接触器粘连故障
else
if
(
PillarError
.
Value
.
UniContactor
)
else
if
(
PillarError
.
Value
.
UniContactor1
)
*
Reason
=
0x19
;
//19H:并联接触器拒动/误动故障(仅直流桩使用)
else
if
(
PillarError
.
Value
.
UniContactor2
)
*
Reason
=
0x1A
;
//1AH:并联接触器粘连故障(仅直流桩使用)
*
Reason
=
0x1A
;
//1AH:并联接触器粘连故障(仅直流桩使用)
else
if
(
PillarError
.
Value
.
DCmodError
)
else
if
(
PillarError
.
Value
.
DCmodError
)
*
Reason
=
0x1D
;
//1DH:充电机模块故障
*
Reason
=
0x1D
;
//1DH:充电机模块故障
else
if
(
ChargeError
.
Value
.
DrainError
==
1
)
*
Reason
=
0x1B
;
//1BH:泄放回路故障
else
if
(
PillarError
.
Value
.
InVolt
)
else
if
(
PillarError
.
Value
.
InVolt
)
*
Reason
=
0x1E
;
//1EH:输入电源故障(交流输入电压过压故障、交流输入电压欠压故障、交流输入缺相故障、交流输入电流过流故障等)
*
Reason
=
0x1E
;
//1EH:输入电源故障(交流输入电压过压故障、交流输入电压欠压故障、交流输入缺相故障、交流输入电流过流故障等)
else
if
(
PillarError
.
Value
.
OutVolt
)
else
if
(
PillarError
.
Value
.
OutVolt
)
...
@@ -794,6 +798,8 @@ u8 AllowDTUStartCharge(u8 * Reason)
...
@@ -794,6 +798,8 @@ u8 AllowDTUStartCharge(u8 * Reason)
*
Reason
=
0x21
;
//21H:输出电流过流故障
*
Reason
=
0x21
;
//21H:输出电流过流故障
else
if
(
ChargeStopType
==
eChgStop_Imd_Short
)
else
if
(
ChargeStopType
==
eChgStop_Imd_Short
)
*
Reason
=
0x22
;
//22H:输出短路故障
*
Reason
=
0x22
;
//22H:输出短路故障
else
if
(
PillarError
.
Value
.
ImdDev
==
1
)
*
Reason
=
0x2B
;
//2BH:绝缘监测仪通信故障
else
else
{
{
*
Reason
=
0x00
;
*
Reason
=
0x00
;
...
@@ -810,49 +816,65 @@ u8 AllowDTUStartCharge(u8 * Reason)
...
@@ -810,49 +816,65 @@ u8 AllowDTUStartCharge(u8 * Reason)
u8
AllowDTUStartCharge_B
(
u8
*
Reason
)
u8
AllowDTUStartCharge_B
(
u8
*
Reason
)
{
{
if
(
TCUCurChgRecd_B
.
StarValid
==
0
)
if
(
TCUCurChgRecd_B
.
StarValid
==
0
)
*
Reason
=
0x01
;
*
Reason
=
0x01
;
//数据合法性校验失败(“充电启动帧”中“负荷控制开关”等数据项合法性校验失败)
else
if
(
TCUCommuStatus_B
.
ConnectFlag
==
CONNECT_TIMEOUT
)
else
if
(
TCUCommuStatus_B
.
ConnectFlag
==
CONNECT_TIMEOUT
)
*
Reason
=
0x02
;
*
Reason
=
0x02
;
//充电控制器与计费控制单元通讯超时(“计费控制单元心跳帧”接收超时)
else
if
(
TCUCommuStatus_B
.
VerChkVaild
==
0
)
else
if
(
TCUCommuStatus_B
.
VerChkVaild
==
0
)
*
Reason
=
0x03
;
*
Reason
=
0x03
;
//03H:充电控制器与计费控制单元“版本校验”未完成
else
if
(
TCUCommuStatus_B
.
ParamVaild
==
0
)
else
if
(
TCUCommuStatus_B
.
ParamVaild
==
0
)
*
Reason
=
0x05
;
*
Reason
=
0x04
;
//04H:充电控制器与计费控制单元“下发充电参数”未完成
else
if
(
TCUControlInfo
.
ChargingServiceFlag
==
0x01
)
//服务暂停
*
Reason
=
0x05
;
//05H:充电桩暂停服务(参见9.7节 充电服务启停控制)
else
if
(
ChargeCtrl_B
.
CurProcess
!=
eChgPro_B_ChgIdle
)
else
if
(
ChargeCtrl_B
.
CurProcess
!=
eChgPro_B_ChgIdle
)
*
Reason
=
0x06
;
*
Reason
=
0x06
;
//06H:充电桩处于“工作”状态
else
if
(
ChargePauseFlag_B
==
1
)
else
if
(
ChargePauseFlag_B
==
1
)
//充电暂停
*
Reason
=
0x07
;
*
Reason
=
0x07
;
//07H:充电桩处于“暂停”状态(参见GB/T 27930-2015中10.3.3和10.3.4小节)
else
if
(
eSwSta_On
!=
CcStatusRead_B
())
else
if
(
eSwSta_On
!=
CcStatusRead_B
())
*
Reason
=
0x08
;
*
Reason
=
0x08
;
//08H:充电桩与车辆处于未连接状态
else
if
(
PillarError_B
.
Value
.
Emergency
==
1
)
else
if
(
PillarError_B
.
Value
.
Emergency
==
1
)
*
Reason
=
0x09
;
*
Reason
=
0x09
;
//09H:急停按钮动作故障
else
if
(
PillarError_B
.
Value
.
Door
==
1
)
else
if
(
PillarError_B
.
Value
.
Door
==
1
)
*
Reason
=
0x0A
;
*
Reason
=
0x0A
;
//0AH:门禁故障(充电桩)
else
if
(
PillarError_B
.
Value
.
SPD
==
1
)
else
if
(
PillarError_B
.
Value
.
SPD
==
1
)
*
Reason
=
0x0B
;
*
Reason
=
0x0B
;
//0BH:避雷器故障
else
if
(
PillarError_B
.
Value
.
EleLock
==
1
)
else
if
(
ChargeError_B
.
Value
.
TempError
==
1
)
*
Reason
=
0x0F
;
*
Reason
=
0x0D
;
//0DH:充电桩过温故障
else
if
((
PillarError_B
.
Value
.
Insulation
==
1
)
||
(
PillarError_B
.
Value
.
ImdDev
==
1
))
else
if
(
ChargeError_B
.
Value
.
GunTempError
==
1
)
*
Reason
=
0x010
;
*
Reason
=
0x0E
;
//0EH:充电接口过温故障
else
if
(
PillarError
.
Value
.
EleLock
==
1
)
*
Reason
=
0x0F
;
//0FH:充电接口电子锁故障
else
if
(
PillarError_B
.
Value
.
Insulation
==
1
)
*
Reason
=
0x010
;
//10H:绝缘监测故障(仅直流桩使用)
else
if
(
ChargeStopType_B
==
eChgStop_PillarReady_BatVoltError
)
else
if
(
ChargeStopType_B
==
eChgStop_PillarReady_BatVoltError
)
*
Reason
=
0x11
;
*
Reason
=
0x11
;
//11H:电池极性反接故障(仅直流桩使用)
else
if
((
ChargeStopType_B
==
eChgStop_Imd_BhmTimeOut
)
||
(
ChargeStopType_B
==
eChgStop_ComBreak_CommError
))
else
if
((
ChargeStopType_B
==
eChgStop_Imd_BhmTimeOut
)
||
(
ChargeStopType_B
==
eChgStop_ComBreak_CommError
))
*
Reason
=
0x12
;
*
Reason
=
0x12
;
//12H:BMS通信超时故障(仅直流桩使用)备注:还未进入自检阶段,实际不存在此失败原因
else
if
(
PillarError_B
.
Value
.
ACContactor
==
1
)
else
if
(
PillarError_B
.
Value
.
ACContactor1
==
1
)
*
Reason
=
0x13
;
*
Reason
=
0x14
;
//14H:输入高压接触器拒动/误动故障
else
if
(
PillarError_B
.
Value
.
Contactor
)
else
if
(
PillarError_B
.
Value
.
ACContactor2
==
1
)
*
Reason
=
0x17
;
*
Reason
=
0x15
;
//15H:输入高压接触器粘连故障
else
if
(
PillarError_B
.
Value
.
UniContactor
)
else
if
(
PillarError_B
.
Value
.
Contactor1
)
*
Reason
=
0x1A
;
*
Reason
=
0x16
;
//16H:输出高压接触器拒动/误动故障
else
if
(
PillarError_B
.
Value
.
Contactor2
)
*
Reason
=
0x17
;
//17H:输出高压接触器粘连故障
else
if
(
PillarError_B
.
Value
.
UniContactor1
)
*
Reason
=
0x19
;
//19H:并联接触器拒动/误动故障(仅直流桩使用)
else
if
(
PillarError_B
.
Value
.
UniContactor2
)
*
Reason
=
0x1A
;
//1AH:并联接触器粘连故障(仅直流桩使用)
else
if
(
PillarError_B
.
Value
.
DCmodError
)
else
if
(
PillarError_B
.
Value
.
DCmodError
)
*
Reason
=
0x1D
;
*
Reason
=
0x1D
;
//1DH:充电机模块故障
else
if
(
ChargeError_B
.
Value
.
DrainError
==
1
)
*
Reason
=
0x1B
;
//1BH:泄放回路故障
else
if
(
PillarError_B
.
Value
.
InVolt
)
else
if
(
PillarError_B
.
Value
.
InVolt
)
*
Reason
=
0x1E
;
*
Reason
=
0x1E
;
//1EH:输入电源故障(交流输入电压过压故障、交流输入电压欠压故障、交流输入缺相故障、交流输入电流过流故障等)
else
if
(
PillarError_B
.
Value
.
OutVolt
)
else
if
(
PillarError_B
.
Value
.
OutVolt
)
*
Reason
=
0x1F
;
*
Reason
=
0x1F
;
//1FH:输出电压过压故障
else
if
(
PillarError_B
.
Value
.
OutCurrt
)
else
if
(
PillarError_B
.
Value
.
OutCurrt
)
*
Reason
=
0x21
;
*
Reason
=
0x21
;
//21H:输出电流过流故障
else
if
(
ChargeStopType_B
==
eChgStop_Imd_Short
)
else
if
(
ChargeStopType_B
==
eChgStop_Imd_Short
)
*
Reason
=
0x22
;
*
Reason
=
0x22
;
//22H:输出短路故障
else
if
(
PillarError_B
.
Value
.
ImdDev
==
1
)
*
Reason
=
0x2B
;
//2BH:绝缘监测仪通信故障
else
else
{
{
*
Reason
=
0x00
;
*
Reason
=
0x00
;
...
@@ -920,23 +942,14 @@ void StartMegAck_B(void)
...
@@ -920,23 +942,14 @@ void StartMegAck_B(void)
00H:成功
00H:成功
01H:充电中控制导引故障
01H:充电中控制导引故障
06H:烟感故障
06H:烟感故障
08H:交流输入接触器拒动/误动故障
07H:交流输入断路器故障
09H:交流输入接触器粘连故障
0BH:充电桩过温故障
0CH:充电接口过温故障
10H:直流输出接触器拒动/误动故障
12H:直流输出熔断器故障
12H:直流输出熔断器故障
13H:并联接触器拒动/误动故障
15H:泄放回路故障
16H:辅助电源故障
16H:辅助电源故障
19H:直流母线输出电压欠压故障
19H:直流母线输出电压欠压故障
21H:电池端电压大于电池最高允许充电电压
23H:BRM 报文数据项异常(报文数据长度错误,BMS 通信协议版本号错误,其他数据错误)
23H:BRM 报文数据项异常(报文数据长度错误,BMS 通信协议版本号错误,其他数据错误)
25H:BCP 报文数据项异常(报文数据长度错误,电池当前电压越限,其他数据项错误)
25H:BCP 报文数据项异常(报文数据长度错误,电池当前电压越限,其他数据项错误)
26H:BRO 报文(0x00)接收超时
26H:BRO 报文(0x00)接收超时
28H:预留
28H:预留
2BH:门禁故障(充电机柜,仅直流桩使用)
2BH:门禁故障(充电机柜,仅直流桩使用)
2CH:水浸故障(充电桩)
2CH:水浸故障(充电桩)
2DH:水浸故障(充电机柜,仅直流桩使用)
2DH:水浸故障(充电机柜,仅直流桩使用)
...
@@ -944,7 +957,6 @@ void StartMegAck_B(void)
...
@@ -944,7 +957,6 @@ void StartMegAck_B(void)
2FH:功率控制模块与开关模块通信超时(仅直流桩使用)
2FH:功率控制模块与开关模块通信超时(仅直流桩使用)
30H:开关模块故障(仅直流桩使用)
30H:开关模块故障(仅直流桩使用)
31H:BMS通信协议版本不匹配
31H:BMS通信协议版本不匹配
32H:绝缘监测仪通信故障
33H:设备自检超时
33H:设备自检超时
34H:预充功率分配超时
34H:预充功率分配超时
36H:启动充电超时(收到启动命令开始120秒未进入充电阶段)
36H:启动充电超时(收到启动命令开始120秒未进入充电阶段)
...
@@ -972,20 +984,32 @@ u8 AllowDTUStartCompCharge(u8 * Reason)
...
@@ -972,20 +984,32 @@ u8 AllowDTUStartCompCharge(u8 * Reason)
*
Reason
=
0x04
;
//04H:门禁故障(充电桩)
*
Reason
=
0x04
;
//04H:门禁故障(充电桩)
else
if
(
PillarError
.
Value
.
SPD
==
1
)
else
if
(
PillarError
.
Value
.
SPD
==
1
)
*
Reason
=
0x05
;
//05H:避雷器故障
*
Reason
=
0x05
;
//05H:避雷器故障
else
if
(
PillarError
.
Value
.
ACContactor
==
1
)
else
if
(
PillarError
.
Value
.
ACContactor1
==
1
)
*
Reason
=
0x08
;
//07H:交流输入断路器故障
*
Reason
=
0x08
;
//08H:交流输入接触器拒动/误动故障
else
if
(
PillarError
.
Value
.
ACContactor2
==
1
)
*
Reason
=
0x09
;
//09H:交流输入接触器粘连故障
else
if
(
PillarError
.
Value
.
InVolt
==
1
)
else
if
(
PillarError
.
Value
.
InVolt
==
1
)
*
Reason
=
0x0A
;
//0AH:交流输入故障(过压,欠压,缺相,过流)
*
Reason
=
0x0A
;
//0AH:交流输入故障(过压,欠压,缺相,过流)
else
if
(
PillarError
.
Value
.
EleLock
==
1
)
else
if
(
PillarError
.
Value
.
EleLock
==
1
)
*
Reason
=
0x0D
;
//0DH:充电接口电子锁故障
*
Reason
=
0x0D
;
//0DH:充电接口电子锁故障
else
if
(
(
PillarError
.
Value
.
Insulation
==
1
)
||
(
PillarError
.
Value
.
ImdDev
==
1
)
)
else
if
(
PillarError
.
Value
.
Insulation
==
1
)
*
Reason
=
0x0E
;
//0EH:绝缘监测故障
*
Reason
=
0x0E
;
//0EH:绝缘监测故障
else
if
(
ChargeStopType
==
eChgStop_PillarReady_BatVoltError
)
else
if
(
ChargeStopType
==
eChgStop_PillarReady_BatVoltError
)
*
Reason
=
0x0F
;
//0FH:电池极性反接故障
*
Reason
=
0x0F
;
//0FH:电池极性反接故障
else
if
(
PillarError
.
Value
.
Contactor
)
else
if
(
ChargeError
.
Value
.
TempError
)
*
Reason
=
0x0B
;
//0BH:充电桩过温故障
else
if
(
ChargeError
.
Value
.
GunTempError
)
*
Reason
=
0x0C
;
//0CH:充电接口过温故障
else
if
(
PillarError
.
Value
.
Contactor1
)
*
Reason
=
0x10
;
//10H:直流输出接触器拒动/误动故障
else
if
(
PillarError
.
Value
.
Contactor2
)
*
Reason
=
0x11
;
//11H:直流输出接触器粘连故障
*
Reason
=
0x11
;
//11H:直流输出接触器粘连故障
else
if
(
PillarError
.
Value
.
UniContactor
)
else
if
(
PillarError
.
Value
.
UniContactor1
)
*
Reason
=
0x13
;
//13H:并联接触器拒动/误动故障
else
if
(
PillarError
.
Value
.
UniContactor2
)
*
Reason
=
0x14
;
//14H:并联接触器粘连故障
*
Reason
=
0x14
;
//14H:并联接触器粘连故障
else
if
(
ChargeError
.
Value
.
DrainError
)
*
Reason
=
0x15
;
//15H:泄放回路故障
else
if
(
PillarError
.
Value
.
DCmodError
)
else
if
(
PillarError
.
Value
.
DCmodError
)
*
Reason
=
0x17
;
//17H:充电机模块故障
*
Reason
=
0x17
;
//17H:充电机模块故障
else
if
(
PillarError
.
Value
.
OutVolt
)
else
if
(
PillarError
.
Value
.
OutVolt
)
...
@@ -1006,20 +1030,26 @@ u8 AllowDTUStartCompCharge(u8 * Reason)
...
@@ -1006,20 +1030,26 @@ u8 AllowDTUStartCompCharge(u8 * Reason)
*
Reason
=
0x1f
;
//1FH:启动充电前直流输出接触器外侧电压小于充电机最小输出电压
*
Reason
=
0x1f
;
//1FH:启动充电前直流输出接触器外侧电压小于充电机最小输出电压
else
if
(
ChargeStopType
==
eChgStop_Conf_StartVoltOverPillarMax
)
else
if
(
ChargeStopType
==
eChgStop_Conf_StartVoltOverPillarMax
)
*
Reason
=
0x20
;
//20H:启动充电前直流输出接触器外侧电压大于充电机最大输出电压
*
Reason
=
0x20
;
//20H:启动充电前直流输出接触器外侧电压大于充电机最大输出电压
else
if
(
ChargeStopType
==
eChgStop_Conf_BatVoltOverPermitMax
)
*
Reason
=
0x21
;
//21H:电池端电压大于电池最高允许充电电压
else
if
(
CemMsg
.
Cem
.
Value
.
Brm
==
1
)
else
if
(
CemMsg
.
Cem
.
Value
.
Brm
==
1
)
*
Reason
=
0x22
;
//22H:BRM 报文接收超时
*
Reason
=
0x22
;
//22H:BRM 报文接收超时
else
if
(
CemMsg
.
Cem
.
Value
.
Bcp
==
1
)
else
if
(
CemMsg
.
Cem
.
Value
.
Bcp
==
1
)
*
Reason
=
0x24
;
//24H:BCP 报文接收超时
*
Reason
=
0x24
;
//24H:BCP 报文接收超时
else
if
(
ChargeError
.
Value
.
Bcp
)
*
Reason
=
0x25
;
//25H:BCP 报文数据项异常
else
if
(
CemMsg
.
Cem
.
Value
.
Bro
==
1
)
else
if
(
CemMsg
.
Cem
.
Value
.
Bro
==
1
)
*
Reason
=
0x27
;
//27H:BRO 报文(0xAA)接收超时
*
Reason
=
0x27
;
//27H:BRO 报文(0xAA)接收超时
//else if ((CemMsg.Cem.Value.Bro != 0) || (ChargeStopType != 0))
// *Reason = 0x28;
else
if
(
CemMsg
.
Cem
.
Value
.
Bcl
==
1
)
else
if
(
CemMsg
.
Cem
.
Value
.
Bcl
==
1
)
*
Reason
=
0x29
;
//29H:BCL报文接收超时
*
Reason
=
0x29
;
//29H:BCL报文接收超时
else
if
(
CemMsg
.
Cem
.
Value
.
Bcs
==
1
)
else
if
(
CemMsg
.
Cem
.
Value
.
Bcs
==
1
)
*
Reason
=
0x2A
;
//2AH:BCS报文接收超时
*
Reason
=
0x2A
;
//2AH:BCS报文接收超时
else
if
(
PillarError
.
Value
.
ImdDev
==
1
)
*
Reason
=
0x32
;
//32H:绝缘监测仪通信故障
else
if
(
ChargeStopType
==
eChgStop_PillarReady_NoVolt
)
else
if
(
ChargeStopType
==
eChgStop_PillarReady_NoVolt
)
*
Reason
=
0x35
;
//35H:预充阶段调压失败
*
Reason
=
0x35
;
//35H:预充阶段调压失败
else
if
(
ChargeError
.
Value
.
DCMoudleOnTimeOut
)
*
Reason
=
0x37
;
//37H:充电模块开机超时
else
if
((
VerificaInfo
.
result
==
1
)
&&
(
StartMeg_A
.
StarChgType
==
1
))
else
if
((
VerificaInfo
.
result
==
1
)
&&
(
StartMeg_A
.
StarChgType
==
1
))
*
Reason
=
0x3F
;
//3DH: 车辆验证确认帧超时
*
Reason
=
0x3F
;
//3DH: 车辆验证确认帧超时
else
if
(
TCUCommuStatus
.
ErrData
.
Value
.
verificationAck
==
1
)
else
if
(
TCUCommuStatus
.
ErrData
.
Value
.
verificationAck
==
1
)
...
@@ -1027,7 +1057,7 @@ u8 AllowDTUStartCompCharge(u8 * Reason)
...
@@ -1027,7 +1057,7 @@ u8 AllowDTUStartCompCharge(u8 * Reason)
else
if
(
TCUCurChgRecd
.
TCUStartCompresult
==
2
)
else
if
(
TCUCurChgRecd
.
TCUStartCompresult
==
2
)
*
Reason
=
0x01
;
//控制导引故障
*
Reason
=
0x01
;
//控制导引故障
else
else
*
Reason
=
0xFF
;
//其他故障
*
Reason
=
0xFF
;
//其他故障
return
FALSE
;
return
FALSE
;
}
}
...
@@ -1041,71 +1071,90 @@ u8 AllowDTUStartCompCharge_B(u8 * Reason)
...
@@ -1041,71 +1071,90 @@ u8 AllowDTUStartCompCharge_B(u8 * Reason)
return
TRUE
;
return
TRUE
;
}
}
else
if
(
TCUCommuStatus_B
.
ConnectFlag
==
CONNECT_TIMEOUT
)
else
if
(
TCUCommuStatus_B
.
ConnectFlag
==
CONNECT_TIMEOUT
)
*
Reason
=
0x02
;
//通讯超时
*
Reason
=
0x02
;
//
充电控制器与计费控制单元
通讯超时
else
if
(
PillarError_B
.
Value
.
Emergency
==
1
)
else
if
(
PillarError_B
.
Value
.
Emergency
==
1
)
*
Reason
=
0x03
;
*
Reason
=
0x03
;
//03H:急停按钮动作故障
else
if
(
PillarError_B
.
Value
.
Door
==
1
)
else
if
(
PillarError_B
.
Value
.
Door
==
1
)
*
Reason
=
0x04
;
*
Reason
=
0x04
;
//04H:门禁故障(充电桩)
else
if
(
PillarError_B
.
Value
.
SPD
==
1
)
else
if
(
PillarError_B
.
Value
.
SPD
==
1
)
*
Reason
=
0x05
;
*
Reason
=
0x05
;
//05H:避雷器故障
else
if
(
PillarError_B
.
Value
.
ACContactor
==
1
)
else
if
(
PillarError_B
.
Value
.
ACContactor1
==
1
)
*
Reason
=
0x08
;
*
Reason
=
0x08
;
//08H:交流输入接触器拒动/误动故障
else
if
(
PillarError_B
.
Value
.
ACContactor2
==
1
)
*
Reason
=
0x09
;
//09H:交流输入接触器粘连故障
else
if
(
PillarError_B
.
Value
.
InVolt
==
1
)
else
if
(
PillarError_B
.
Value
.
InVolt
==
1
)
*
Reason
=
0x0A
;
*
Reason
=
0x0A
;
//0AH:交流输入故障(过压,欠压,缺相,过流)
else
if
(
PillarError_B
.
Value
.
EleLock
==
1
)
else
if
(
PillarError_B
.
Value
.
EleLock
==
1
)
*
Reason
=
0x0D
;
*
Reason
=
0x0D
;
//0DH:充电接口电子锁故障
else
if
(
(
PillarError_B
.
Value
.
Insulation
==
1
)
||
(
PillarError_B
.
Value
.
ImdDev
==
1
)
)
else
if
(
PillarError_B
.
Value
.
Insulation
==
1
)
*
Reason
=
0x0E
;
*
Reason
=
0x0E
;
//0EH:绝缘监测故障
else
if
(
ChargeStopType_B
==
eChgStop_PillarReady_BatVoltError
)
else
if
(
ChargeStopType_B
==
eChgStop_PillarReady_BatVoltError
)
*
Reason
=
0x0F
;
*
Reason
=
0x0F
;
//0FH:电池极性反接故障
else
if
(
PillarError_B
.
Value
.
Contactor
)
else
if
(
ChargeError_B
.
Value
.
TempError
)
*
Reason
=
0x11
;
*
Reason
=
0x0B
;
//0BH:充电桩过温故障
else
if
(
PillarError_B
.
Value
.
UniContactor
)
else
if
(
ChargeError_B
.
Value
.
GunTempError
)
*
Reason
=
0x14
;
*
Reason
=
0x0C
;
//0CH:充电接口过温故障
else
if
(
PillarError_B
.
Value
.
Contactor1
)
*
Reason
=
0x10
;
//10H:直流输出接触器拒动/误动故障
else
if
(
PillarError_B
.
Value
.
Contactor2
)
*
Reason
=
0x11
;
//11H:直流输出接触器粘连故障
else
if
(
PillarError_B
.
Value
.
UniContactor1
)
*
Reason
=
0x13
;
//13H:并联接触器拒动/误动故障
else
if
(
PillarError_B
.
Value
.
UniContactor2
)
*
Reason
=
0x14
;
//14H:并联接触器粘连故障
else
if
(
ChargeError_B
.
Value
.
DrainError
)
*
Reason
=
0x15
;
//15H:泄放回路故障
else
if
(
PillarError_B
.
Value
.
DCmodError
)
else
if
(
PillarError_B
.
Value
.
DCmodError
)
*
Reason
=
0x17
;
*
Reason
=
0x17
;
//17H:充电机模块故障
else
if
(
PillarError_B
.
Value
.
OutVolt
)
else
if
(
PillarError_B
.
Value
.
OutVolt
)
*
Reason
=
0x18
;
*
Reason
=
0x18
;
//18H:直流母线输出电压过压故障
else
if
(
PillarError_B
.
Value
.
OutCurrt
)
else
if
(
PillarError_B
.
Value
.
OutCurrt
)
*
Reason
=
0x1A
;
*
Reason
=
0x1A
;
//1AH:直流母线输出电流过流故障
else
if
(
PillarError_B
.
Value
.
OutShort
)
else
if
(
PillarError_B
.
Value
.
OutShort
)
*
Reason
=
0x1B
;
*
Reason
=
0x1B
;
//1BH:直流母线输出短路故障
else
if
(
ChargeStopType_B
==
eChgStop_Imd_Short
)
else
if
(
ChargeStopType_B
==
eChgStop_Imd_Short
)
*
Reason
=
0x1B
;
*
Reason
=
0x1B
;
else
if
(
ChargeStopType_B
==
eChgStop_Conf_ChgMaxVoltLessPillarMinVolt
)
else
if
(
ChargeStopType_B
==
eChgStop_Conf_ChgMaxVoltLessPillarMinVolt
)
*
Reason
=
0x1C
;
*
Reason
=
0x1C
;
//1CH:电池最高允许充电电压小于充电机最小输出电压
else
if
(
TCUCurChgRecd_B
.
TCUChgStopType
==
0x1d
)
else
if
(
TCUCurChgRecd_B
.
TCUChgStopType
==
0x1d
)
*
Reason
=
0x1D
;
*
Reason
=
0x1D
;
//1DH:绝缘监测前直流输出接触器外侧电压≥10 V
else
if
(
ChargeStopType_B
==
eChgStop_PillarReady_BatVoltMismatchBcpVolt
)
else
if
(
ChargeStopType_B
==
eChgStop_PillarReady_BatVoltMismatchBcpVolt
)
*
Reason
=
0x1E
;
*
Reason
=
0x1E
;
//1EH:启动充电前直流输出接触器外侧电压与通信报文电池电压相差>±5%
else
if
(
ChargeStopType_B
==
eChgStop_Conf_BatVoltLessPillarMinVolt
)
else
if
(
ChargeStopType_B
==
eChgStop_Conf_BatVoltLessPillarMinVolt
)
*
Reason
=
0x1f
;
*
Reason
=
0x1f
;
//1FH:启动充电前直流输出接触器外侧电压小于充电机最小输出电压
else
if
(
ChargeStopType_B
==
eChgStop_Conf_StartVoltOverPillarMax
)
else
if
(
ChargeStopType_B
==
eChgStop_Conf_StartVoltOverPillarMax
)
*
Reason
=
0x20
;
*
Reason
=
0x20
;
//20H:启动充电前直流输出接触器外侧电压大于充电机最大输出电压
else
if
(
ChargeStopType_B
==
eChgStop_Conf_BatVoltOverPermitMax
)
*
Reason
=
0x21
;
//21H:电池端电压大于电池最高允许充电电压
else
if
(
CemMsg_B
.
Cem
.
Value
.
Brm
==
1
)
else
if
(
CemMsg_B
.
Cem
.
Value
.
Brm
==
1
)
*
Reason
=
0x22
;
*
Reason
=
0x22
;
//22H:BRM 报文接收超时
else
if
(
CemMsg_B
.
Cem
.
Value
.
Bcp
==
1
)
else
if
(
CemMsg_B
.
Cem
.
Value
.
Bcp
==
1
)
*
Reason
=
0x24
;
*
Reason
=
0x24
;
//24H:BCP 报文接收超时
else
if
(
ChargeError_B
.
Value
.
Bcp
)
*
Reason
=
0x25
;
//25H:BCP 报文数据项异常
else
if
(
CemMsg_B
.
Cem
.
Value
.
Bro
==
1
)
else
if
(
CemMsg_B
.
Cem
.
Value
.
Bro
==
1
)
*
Reason
=
0x27
;
*
Reason
=
0x27
;
//27H:BRO 报文(0xAA)接收超时
//else if ((CemMsg_B.Cem.Value.Bro != 0) || (ChargeStopType_B != 0))
// *Reason = 0x28;
else
if
(
CemMsg_B
.
Cem
.
Value
.
Bcl
==
1
)
else
if
(
CemMsg_B
.
Cem
.
Value
.
Bcl
==
1
)
*
Reason
=
0x29
;
//29H:BCL报文接收超时
*
Reason
=
0x29
;
//29H:BCL报文接收超时
else
if
(
CemMsg_B
.
Cem
.
Value
.
Bcs
==
1
)
else
if
(
CemMsg_B
.
Cem
.
Value
.
Bcs
==
1
)
*
Reason
=
0x2A
;
//2AH:BCS报文接收超时
*
Reason
=
0x2A
;
//2AH:BCS报文接收超时
else
if
(
PillarError_B
.
Value
.
ImdDev
==
1
)
*
Reason
=
0x32
;
//32H:绝缘监测仪通信故障
else
if
(
ChargeStopType_B
==
eChgStop_PillarReady_NoVolt
)
else
if
(
ChargeStopType_B
==
eChgStop_PillarReady_NoVolt
)
*
Reason
=
0x35
;
//35H:预充阶段调压失败
*
Reason
=
0x35
;
//35H:预充阶段调压失败
else
if
(
ChargeError_B
.
Value
.
DCMoudleOnTimeOut
)
*
Reason
=
0x37
;
//37H:充电模块开机超时
else
if
((
VerificaInfo_B
.
result
==
1
)
&&
(
StartMeg_B
.
StarChgType
==
1
))
else
if
((
VerificaInfo_B
.
result
==
1
)
&&
(
StartMeg_B
.
StarChgType
==
1
))
*
Reason
=
0x3F
;
*
Reason
=
0x3F
;
//3DH: 车辆验证确认帧超时
else
if
(
TCUCommuStatus_B
.
ErrData
.
Value
.
verificationAck
==
1
)
else
if
(
TCUCommuStatus_B
.
ErrData
.
Value
.
verificationAck
==
1
)
*
Reason
=
0x3D
;
*
Reason
=
0x3D
;
//3FH:车辆鉴权不通过
else
if
(
TCUCurChgRecd_B
.
TCUStartCompresult
==
2
)
else
if
(
TCUCurChgRecd_B
.
TCUStartCompresult
==
2
)
*
Reason
=
0x01
;
//控制导引故障
*
Reason
=
0x01
;
//控制导引故障
else
else
*
Reason
=
0xFF
;
//其他故障
*
Reason
=
0xFF
;
//其他故障
return
FALSE
;
return
FALSE
;
}
}
...
@@ -1386,16 +1435,11 @@ void StopMegAck_B(void)
...
@@ -1386,16 +1435,11 @@ void StopMegAck_B(void)
07H:充电桩充电中暂停超时
07H:充电桩充电中暂停超时
0BH:烟感故障
0BH:烟感故障
0CH:交流输入断路器故障
0CH:交流输入断路器故障
0DH:交流输入接触器拒动/误动故障
10H:充电桩过温故障
11H:充电接口过温故障
13H:直流输出接触器拒动/误动故障
15H:直流输出熔断器故障
15H:直流输出熔断器故障
17H:并联接触器粘连故障
18H:泄放回路故障
19H:辅助电源故障
19H:辅助电源故障
1CH:直流母线输出电压欠压故障
1CH:直流母线输出电压欠压故障
21H:动力蓄电池状态信息(BSM)超时
2DH:预留
2DH:预留
2EH:无有效电流停止
2EH:无有效电流停止
2FH:环境监控板通信故障
2FH:环境监控板通信故障
...
@@ -1422,16 +1466,28 @@ void GetStopReason_A(u8 * stopReason)
...
@@ -1422,16 +1466,28 @@ void GetStopReason_A(u8 * stopReason)
*
stopReason
=
0x09
;
//09H:门禁故障(充电桩)
*
stopReason
=
0x09
;
//09H:门禁故障(充电桩)
else
if
(
PillarError
.
Value
.
SPD
)
else
if
(
PillarError
.
Value
.
SPD
)
*
stopReason
=
0x0A
;
//0AH:避雷器故障
*
stopReason
=
0x0A
;
//0AH:避雷器故障
else
if
(
PillarError
.
Value
.
ACContactor
)
else
if
(
PillarError
.
Value
.
ACContactor1
)
*
stopReason
=
0x0D
;
//0DH:交流输入接触器拒动/误动故障
else
if
(
PillarError
.
Value
.
ACContactor2
)
*
stopReason
=
0x0E
;
//0EH:交流输入接触器粘连故障
*
stopReason
=
0x0E
;
//0EH:交流输入接触器粘连故障
else
if
(
PillarError
.
Value
.
InVolt
)
else
if
(
PillarError
.
Value
.
InVolt
)
*
stopReason
=
0x0F
;
//0FH:交流输入故障(过压,欠压,缺相,过流)
*
stopReason
=
0x0F
;
//0FH:交流输入故障(过压,欠压,缺相,过流)
else
if
(
ChargeError
.
Value
.
TempError
)
*
stopReason
=
0x10
;
//10H:充电桩过温故障
else
if
(
ChargeError
.
Value
.
GunTempError
)
*
stopReason
=
0x11
;
//11H:充电接口过温故障
else
if
(
PillarError
.
Value
.
EleLock
)
else
if
(
PillarError
.
Value
.
EleLock
)
*
stopReason
=
0x12
;
//12H:充电接口电子锁故障
*
stopReason
=
0x12
;
//12H:充电接口电子锁故障
else
if
(
PillarError
.
Value
.
Contactor
)
else
if
(
PillarError
.
Value
.
Contactor1
)
*
stopReason
=
0x13
;
//13H:直流输出接触器拒动/误动故障
else
if
(
PillarError
.
Value
.
Contactor2
)
*
stopReason
=
0x14
;
//14H:直流输出接触器粘连故障
*
stopReason
=
0x14
;
//14H:直流输出接触器粘连故障
else
if
(
PillarError
.
Value
.
UniContactor
)
else
if
(
PillarError
.
Value
.
UniContactor
1
)
*
stopReason
=
0x16
;
//16H:并联接触器拒动/误动故障
*
stopReason
=
0x16
;
//16H:并联接触器拒动/误动故障
else
if
(
PillarError
.
Value
.
UniContactor2
)
*
stopReason
=
0x17
;
//17H:并联接触器粘连故障
else
if
(
ChargeError
.
Value
.
DrainError
)
*
stopReason
=
0x18
;
//18H:泄放回路故障
else
if
(
PillarError
.
Value
.
DCmodError
)
else
if
(
PillarError
.
Value
.
DCmodError
)
*
stopReason
=
0x1A
;
//1AH:充电机模块故障
*
stopReason
=
0x1A
;
//1AH:充电机模块故障
else
if
(
ChargeStopType
==
eChgStop_Run_VoltOutHighErr
)
else
if
(
ChargeStopType
==
eChgStop_Run_VoltOutHighErr
)
...
@@ -1444,19 +1500,16 @@ void GetStopReason_A(u8 * stopReason)
...
@@ -1444,19 +1500,16 @@ void GetStopReason_A(u8 * stopReason)
*
stopReason
=
0x1F
;
//1FH:电池充电需求报文(BCL)超时
*
stopReason
=
0x1F
;
//1FH:电池充电需求报文(BCL)超时
else
if
(
CemMsg
.
Cem
.
Value
.
Bcs
==
1
)
else
if
(
CemMsg
.
Cem
.
Value
.
Bcs
==
1
)
*
stopReason
=
0x20
;
//20H:电池充电总状态报文(BCS)超时
*
stopReason
=
0x20
;
//20H:电池充电总状态报文(BCS)超时
else
if
(
ChargeError
.
Value
.
Bsm
)
//else if(CemMsg.Cem.Value.Bsm==1)
*
stopReason
=
0x21
;
//21H:动力蓄电池状态信息(BSM)超时
// *stopReason = 0x21;
else
if
(
BsmMsg
.
BatSta
.
Value
.
Volt
==
0x01
)
else
if
(
BsmMsg
.
BatSta
.
Value
.
Volt
==
0x01
)
*
stopReason
=
0x22
;
//22H:BSM 报文中单体动力蓄电池电压过压
*
stopReason
=
0x22
;
//22H:BSM 报文中单体动力蓄电池电压过压
else
if
(
BsmMsg
.
BatSta
.
Value
.
Volt
==
0x02
)
else
if
(
BsmMsg
.
BatSta
.
Value
.
Volt
==
0x02
)
*
stopReason
=
0x23
;
//23H:BSM 报文中单体动力蓄电池电压过低
*
stopReason
=
0x23
;
//23H:BSM 报文中单体动力蓄电池电压过低
else
if
(
BsmMsg
.
BatSta
.
Value
.
Soc
==
0x01
)
else
if
(
BsmMsg
.
BatSta
.
Value
.
Soc
==
0x01
)
*
stopReason
=
0x24
;
//24H:BSM 报文中SOC 过高
*
stopReason
=
0x24
;
//24H:BSM 报文中SOC 过高
else
if
(
BsmMsg
.
BatSta
.
Value
.
Soc
==
0x02
)
else
if
(
BsmMsg
.
BatSta
.
Value
.
Soc
==
0x02
)
*
stopReason
=
0x25
;
//25H:BSM 报文中SOC 过低
*
stopReason
=
0x25
;
//25H:BSM 报文中SOC 过低
else
if
(
BsmMsg
.
BatSta
.
Value
.
Currt
==
0x01
)
else
if
(
BsmMsg
.
BatSta
.
Value
.
Currt
==
0x01
)
*
stopReason
=
0x26
;
//26H:BSM 报文中充电过电流
*
stopReason
=
0x26
;
//26H:BSM 报文中充电过电流
else
if
(
BsmMsg
.
BatSta
.
Value
.
Temp
==
0x01
)
else
if
(
BsmMsg
.
BatSta
.
Value
.
Temp
==
0x01
)
...
@@ -1485,75 +1538,86 @@ void GetStopReason_A(u8 * stopReason)
...
@@ -1485,75 +1538,86 @@ void GetStopReason_A(u8 * stopReason)
void
GetStopReason_B
(
u8
*
stopReason
)
void
GetStopReason_B
(
u8
*
stopReason
)
{
{
if
(
TCUCurChgRecd_B
.
TCUChgStopType
==
1
)
if
(
TCUCurChgRecd_B
.
TCUChgStopType
==
1
)
*
stopReason
=
01
;
*
stopReason
=
01
;
//01H:计费控制单元正常停止
else
if
(
TCUCurChgRecd_B
.
TCUChgStopType
==
2
)
else
if
(
TCUCurChgRecd_B
.
TCUChgStopType
==
2
)
*
stopReason
=
02
;
*
stopReason
=
02
;
//02H:计费控制单元自身故障终止
else
if
(
TCUCurChgRecd_B
.
TCUChgStopType
==
3
)
else
if
(
TCUCurChgRecd_B
.
TCUChgStopType
==
3
)
*
stopReason
=
03
;
*
stopReason
=
03
;
//03H:计费控制单元判断充电控制器故障停止
else
if
(
TCUCommuStatus_B
.
ErrData
.
Value
.
startCompAck
==
1
)
else
if
(
TCUCommuStatus_B
.
ErrData
.
Value
.
startCompAck
==
1
)
*
stopReason
=
0x04
;
*
stopReason
=
0x04
;
//04H:启动完成状态帧确认超时故障终止
else
if
(
ChargeStopType_B
==
eChgStop_Run_CcOpen
)
else
if
(
ChargeStopType_B
==
eChgStop_Run_CcOpen
)
*
stopReason
=
0x05
;
//
控制导引超时
//充电过程中充电导引枪连接
*
stopReason
=
0x05
;
//
05H:充电中控制导引故障
//充电过程中充电导引枪连接
else
if
(
TCUCommuStatus_B
.
ConnectFlag
==
CONNECT_TIMEOUT
)
else
if
(
TCUCommuStatus_B
.
ConnectFlag
==
CONNECT_TIMEOUT
)
*
stopReason
=
0x06
;
//
充电控制器与计费单元通讯超时停止
*
stopReason
=
0x06
;
//
06H:充电控制器与计费控制单元通讯超时
else
if
(
PillarError_B
.
Value
.
Emergency
)
else
if
(
PillarError_B
.
Value
.
Emergency
)
*
stopReason
=
0x08
;
//急停按钮动作故障
*
stopReason
=
0x08
;
//
08H:
急停按钮动作故障
else
if
(
PillarError_B
.
Value
.
Door
)
else
if
(
PillarError_B
.
Value
.
Door
)
*
stopReason
=
0x09
;
//
门禁故障
*
stopReason
=
0x09
;
//
09H:门禁故障(充电桩)
else
if
(
PillarError_B
.
Value
.
SPD
)
else
if
(
PillarError_B
.
Value
.
SPD
)
*
stopReason
=
0x0A
;
//防雷器故障
*
stopReason
=
0x0A
;
//0AH:避雷器故障
else
if
(
PillarError_B
.
Value
.
ACContactor
)
else
if
(
PillarError_B
.
Value
.
ACContactor1
)
*
stopReason
=
0x0E
;
//交流接触器粘连故障
*
stopReason
=
0x0D
;
//0DH:交流输入接触器拒动/误动故障
else
if
(
PillarError_B
.
Value
.
ACContactor2
)
*
stopReason
=
0x0E
;
//0EH:交流输入接触器粘连故障
else
if
(
PillarError_B
.
Value
.
InVolt
)
else
if
(
PillarError_B
.
Value
.
InVolt
)
*
stopReason
=
0x0F
;
//交流输入故障//过欠压缺相
*
stopReason
=
0x0F
;
//0FH:交流输入故障(过压,欠压,缺相,过流)
else
if
(
ChargeError_B
.
Value
.
TempError
)
*
stopReason
=
0x10
;
//10H:充电桩过温故障
else
if
(
ChargeError_B
.
Value
.
GunTempError
)
*
stopReason
=
0x11
;
//11H:充电接口过温故障
else
if
(
PillarError_B
.
Value
.
EleLock
)
else
if
(
PillarError_B
.
Value
.
EleLock
)
*
stopReason
=
0x12
;
//
*
stopReason
=
0x12
;
//12H:充电接口电子锁故障
else
if
(
PillarError_B
.
Value
.
Contactor
)
else
if
(
PillarError_B
.
Value
.
Contactor1
)
*
stopReason
=
0x14
;
//直流输出继电器粘连故障
*
stopReason
=
0x13
;
//13H:直流输出接触器拒动/误动故障
else
if
(
PillarError_B
.
Value
.
UniContactor
)
else
if
(
PillarError_B
.
Value
.
Contactor2
)
*
stopReason
=
0x16
;
//并联接触器粘连故障
*
stopReason
=
0x14
;
//14H:直流输出接触器粘连故障
else
if
(
PillarError_B
.
Value
.
UniContactor1
)
*
stopReason
=
0x16
;
//16H:并联接触器拒动/误动故障
else
if
(
PillarError_B
.
Value
.
UniContactor2
)
*
stopReason
=
0x17
;
//17H:并联接触器粘连故障
else
if
(
ChargeError_B
.
Value
.
DrainError
)
*
stopReason
=
0x18
;
//18H:泄放回路故障
else
if
(
PillarError_B
.
Value
.
DCmodError
)
else
if
(
PillarError_B
.
Value
.
DCmodError
)
*
stopReason
=
0x1A
;
//
充电
模块故障
*
stopReason
=
0x1A
;
//
1AH:充电机
模块故障
else
if
(
ChargeStopType_B
==
eChgStop_Run_VoltOutHighErr
)
else
if
(
ChargeStopType_B
==
eChgStop_Run_VoltOutHighErr
)
*
stopReason
=
0x1B
;
//
直流输出电
压故障
*
stopReason
=
0x1B
;
//
1BH:直流母线输出电压过
压故障
else
if
(
ChargeStopType_B
==
eChgStop_Run_CurrtOutHighErr
)
else
if
(
ChargeStopType_B
==
eChgStop_Run_CurrtOutHighErr
)
*
stopReason
=
0x1D
;
//
直流输出
过流故障
*
stopReason
=
0x1D
;
//
1DH:直流母线输出电流
过流故障
else
if
(
PillarError_B
.
Value
.
OutShort
)
else
if
(
PillarError_B
.
Value
.
OutShort
)
*
stopReason
=
0x1E
;
//
直流
输出短路故障
*
stopReason
=
0x1E
;
//
1EH:直流母线
输出短路故障
else
if
(
CemMsg_B
.
Cem
.
Value
.
Bcl
==
1
)
else
if
(
CemMsg_B
.
Cem
.
Value
.
Bcl
==
1
)
*
stopReason
=
0x1F
;
*
stopReason
=
0x1F
;
//1FH:电池充电需求报文(BCL)超时
else
if
(
CemMsg_B
.
Cem
.
Value
.
Bcs
==
1
)
else
if
(
CemMsg_B
.
Cem
.
Value
.
Bcs
==
1
)
*
stopReason
=
0x20
;
*
stopReason
=
0x20
;
//20H:电池充电总状态报文(BCS)超时
else
if
(
ChargeError_B
.
Value
.
Bsm
)
//else if(CemMsg_B.Cem.Value.Bsm==1)
*
stopReason
=
0x21
;
//21H:动力蓄电池状态信息(BSM)超时
// *stopReason = 0x21;
else
if
(
BsmMsg_B
.
BatSta
.
Value
.
Volt
==
0x01
)
else
if
(
BsmMsg_B
.
BatSta
.
Value
.
Volt
==
0x01
)
*
stopReason
=
0x22
;
*
stopReason
=
0x22
;
//22H:BSM 报文中单体动力蓄电池电压过压
else
if
(
BsmMsg_B
.
BatSta
.
Value
.
Volt
==
0x02
)
else
if
(
BsmMsg_B
.
BatSta
.
Value
.
Volt
==
0x02
)
*
stopReason
=
0x23
;
*
stopReason
=
0x23
;
//23H:BSM 报文中单体动力蓄电池电压过低
else
if
(
BsmMsg_B
.
BatSta
.
Value
.
Soc
==
0x01
)
else
if
(
BsmMsg_B
.
BatSta
.
Value
.
Soc
==
0x01
)
*
stopReason
=
0x24
;
*
stopReason
=
0x24
;
//24H:BSM 报文中SOC 过高
else
if
(
BsmMsg_B
.
BatSta
.
Value
.
Soc
==
0x02
)
else
if
(
BsmMsg_B
.
BatSta
.
Value
.
Soc
==
0x02
)
*
stopReason
=
0x25
;
*
stopReason
=
0x25
;
//25H:BSM 报文中SOC 过低
else
if
(
BsmMsg_B
.
BatSta
.
Value
.
Currt
==
0x01
)
else
if
(
BsmMsg_B
.
BatSta
.
Value
.
Currt
==
0x01
)
*
stopReason
=
0x26
;
*
stopReason
=
0x26
;
//26H:BSM 报文中充电过电流
else
if
(
BsmMsg_B
.
BatSta
.
Value
.
Temp
==
0x01
)
else
if
(
BsmMsg_B
.
BatSta
.
Value
.
Temp
==
0x01
)
*
stopReason
=
0x27
;
*
stopReason
=
0x27
;
//27H:BSM 报文中动力蓄电池温度过高
else
if
(
BsmMsg_B
.
ChgSta
.
Value
.
Imd
==
0x01
)
else
if
(
BsmMsg_B
.
ChgSta
.
Value
.
Imd
==
0x01
)
*
stopReason
=
0x28
;
*
stopReason
=
0x28
;
//28H:BSM 报文中动力蓄电池绝缘状态异常
else
if
(
BsmMsg_B
.
ChgSta
.
Value
.
Connect
==
0x01
)
else
if
(
BsmMsg_B
.
ChgSta
.
Value
.
Connect
==
0x01
)
*
stopReason
=
0x29
;
*
stopReason
=
0x29
;
//29H:BSM 报文中连接器连接状态异常
else
if
((
BstMsg_B
.
StopReason
.
Value
.
NeedSoc
==
0x01
)
||
(
BstMsg_B
.
StopReason
.
Value
.
SetVolt
==
0x01
)
||
else
if
((
BstMsg_B
.
StopReason
.
Value
.
NeedSoc
==
0x01
)
||
(
BstMsg_B
.
StopReason
.
Value
.
SetVolt
==
0x01
)
||
(
BstMsg_B
.
StopReason
.
Value
.
PerSetVolt
==
0x01
)
(
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_BmsStop
)
&&
(
BstMsg_B
.
StopTruble
.
Mult
==
0
)
&&
(
BstMsg_B
.
StopFault
.
Mult
&
0x0F
==
0
))
||
ChargeStopType_B
==
eChgStop_Run_Soc98
)
||
ChargeStopType_B
==
eChgStop_Run_Soc98
)
*
stopReason
=
0x2A
;
*
stopReason
=
0x2A
;
//2AH:BMS 正常终止充电
else
if
((
BstMsg_B
.
StopTruble
.
Mult
!=
0
)
||
((
BstMsg_B
.
StopFault
.
Mult
&
0x0F
)
!=
0
))
else
if
((
BstMsg_B
.
StopTruble
.
Mult
!=
0
)
||
((
BstMsg_B
.
StopFault
.
Mult
&
0x0F
)
!=
0
))
*
stopReason
=
0x2B
;
*
stopReason
=
0x2B
;
//2BH:BMS 异常终止充电
else
if
(
ChargeCtrl_B
.
CurProcess
==
eChgPro_B_ChgBreak
)
else
if
(
ChargeCtrl_B
.
CurProcess
==
eChgPro_B_ChgBreak
)
*
stopReason
=
0x2C
;
*
stopReason
=
0x2C
;
//2CH:充电桩判断BMS 其他异常终止
else
else
*
stopReason
=
0x
FF
;
*
stopReason
=
0x
ff
;
//FFH:充电桩其他故障
return
;
return
;
}
}
...
@@ -2383,27 +2447,30 @@ void InformationReporting_22_A(void)
...
@@ -2383,27 +2447,30 @@ void InformationReporting_22_A(void)
InformainReport_A
.
InfRe
.
Emergency
=
PillarError
.
Value
.
Emergency
;
InformainReport_A
.
InfRe
.
Emergency
=
PillarError
.
Value
.
Emergency
;
InformainReport_A
.
InfRe
.
smoke
=
0x00
;
InformainReport_A
.
InfRe
.
smoke
=
0x00
;
InformainReport_A
.
InfRe
.
AccContac
=
0x00
;
InformainReport_A
.
InfRe
.
AccContac
=
0x00
;
InformainReport_A
.
InfRe
.
DCOutConOff
=
PillarError
.
Value
.
Contactor
;
InformainReport_A
.
InfRe
.
DCOutConOff
=
PillarError
.
Value
.
Contactor
1
;
InformainReport_A
.
InfRe
.
DCFuse
=
00
;
InformainReport_A
.
InfRe
.
DCFuse
=
00
;
InformainReport_A
.
InfRe
.
EleLock
=
PillarError
.
Value
.
EleLock
;
InformainReport_A
.
InfRe
.
EleLock
=
PillarError
.
Value
.
EleLock
;
InformainReport_A
.
InfRe
.
Fan
=
00
;
InformainReport_A
.
InfRe
.
Fan
=
00
;
InformainReport_A
.
InfRe
.
SPD
=
PillarError
.
Value
.
SPD
;
InformainReport_A
.
InfRe
.
SPD
=
PillarError
.
Value
.
SPD
;
InformainReport_A
.
InfRe
.
ImdDev
=
PillarError
.
Value
.
I
mdDev
;
InformainReport_A
.
InfRe
.
ImdDev
=
PillarError
.
Value
.
I
nsulation
;
if
(
(
ChargeStopType
==
eChgStop_PillarReady_BatVoltError
)
&&
(
TCUCurChgRecd
.
TCUChargeEnable
==
1
)
)
if
(
ChargeStopType
==
eChgStop_PillarReady_BatVoltError
)
InformainReport_A
.
InfRe
.
BattPola
=
01
;
InformainReport_A
.
InfRe
.
BattPola
=
01
;
else
else
InformainReport_A
.
InfRe
.
BattPola
=
0
;
InformainReport_A
.
InfRe
.
BattPola
=
0
;
InformainReport_A
.
InfRe
.
ContGuid
=
0
;
//控制导引
InformainReport_A
.
InfRe
.
ContGuid
=
0
;
//控制导引
/*if (eSwSta_On != CcStatusRead()
&& (1 == TCUCurChgRecd.TCUChargeEnable) )*/
if
(
CstMsg
.
StopReason
.
Value
.
Manual
==
1
)
{
InformainReport_A
.
InfRe
.
ContGuid
=
1
;
}
InformainReport_A
.
InfRe
.
tempOver
=
ChargeError
.
Value
.
TempError
;
InformainReport_A
.
InfRe
.
tempOver
=
0
;
InformainReport_A
.
InfRe
.
ConnTemp
=
ChargeError
.
Value
.
GunTempError
;
if
((
BstMsg
.
StopTruble
.
Value
.
ComponentTemp
==
0x01
)
&&
(
TCUCurChgRecd
.
TCUChargeEnable
==
1
))
InformainReport_A
.
InfRe
.
ConnTemp
=
0x01
;
else
InformainReport_A
.
InfRe
.
ConnTemp
=
0x00
;
InformainReport_A
.
InfRe
.
PutBack
=
PillarError
.
Value
.
PutBack
;
InformainReport_A
.
InfRe
.
PutBack
=
PillarError
.
Value
.
PutBack
;
...
@@ -2432,8 +2499,6 @@ void InformationReporting_22_A(void)
...
@@ -2432,8 +2499,6 @@ void InformationReporting_22_A(void)
}
}
}
}
if
((
ChargeStopType
==
eChgStop_Run_VoltOutHighErr
)
&&
(
TCUCurChgRecd
.
TCUChargeEnable
==
1
))
if
((
ChargeStopType
==
eChgStop_Run_VoltOutHighErr
)
&&
(
TCUCurChgRecd
.
TCUChargeEnable
==
1
))
InformainReport_A
.
InfRe
.
DcVolHi
=
01
;
InformainReport_A
.
InfRe
.
DcVolHi
=
01
;
else
else
...
@@ -2516,13 +2581,13 @@ void InformationReporting_22_B(void)
...
@@ -2516,13 +2581,13 @@ void InformationReporting_22_B(void)
InformainReport_B
.
InfRe
.
Emergency
=
PillarError_B
.
Value
.
Emergency
;
InformainReport_B
.
InfRe
.
Emergency
=
PillarError_B
.
Value
.
Emergency
;
InformainReport_B
.
InfRe
.
smoke
=
0x00
;
InformainReport_B
.
InfRe
.
smoke
=
0x00
;
InformainReport_B
.
InfRe
.
AccContac
=
0x00
;
InformainReport_B
.
InfRe
.
AccContac
=
0x00
;
InformainReport_B
.
InfRe
.
DCOutConOff
=
PillarError_B
.
Value
.
Contactor
;
InformainReport_B
.
InfRe
.
DCOutConOff
=
PillarError_B
.
Value
.
Contactor
1
;
InformainReport_B
.
InfRe
.
DCFuse
=
00
;
InformainReport_B
.
InfRe
.
DCFuse
=
00
;
InformainReport_B
.
InfRe
.
EleLock
=
PillarError_B
.
Value
.
EleLock
;
InformainReport_B
.
InfRe
.
EleLock
=
PillarError_B
.
Value
.
EleLock
;
InformainReport_B
.
InfRe
.
Fan
=
00
;
InformainReport_B
.
InfRe
.
Fan
=
00
;
InformainReport_B
.
InfRe
.
SPD
=
PillarError_B
.
Value
.
SPD
;
InformainReport_B
.
InfRe
.
SPD
=
PillarError_B
.
Value
.
SPD
;
InformainReport_B
.
InfRe
.
ImdDev
=
PillarError_B
.
Value
.
I
mdDev
;
InformainReport_B
.
InfRe
.
ImdDev
=
PillarError_B
.
Value
.
I
nsulation
;
if
((
ChargeStopType_B
==
eChgStop_PillarReady_BatVoltError
)
&&
(
TCUCurChgRecd_B
.
TCUChargeEnable
==
1
))
if
((
ChargeStopType_B
==
eChgStop_PillarReady_BatVoltError
)
&&
(
TCUCurChgRecd_B
.
TCUChargeEnable
==
1
))
InformainReport_B
.
InfRe
.
BattPola
=
01
;
InformainReport_B
.
InfRe
.
BattPola
=
01
;
...
@@ -2530,13 +2595,14 @@ void InformationReporting_22_B(void)
...
@@ -2530,13 +2595,14 @@ void InformationReporting_22_B(void)
InformainReport_B
.
InfRe
.
BattPola
=
0
;
InformainReport_B
.
InfRe
.
BattPola
=
0
;
InformainReport_B
.
InfRe
.
ContGuid
=
0
;
//控制导引
InformainReport_B
.
InfRe
.
ContGuid
=
0
;
//控制导引
if
(
CstMsg_B
.
StopReason
.
Value
.
Manual
==
1
)
{
InformainReport_B
.
InfRe
.
ContGuid
=
1
;
}
InformainReport_B
.
InfRe
.
tempOver
=
ChargeError_B
.
Value
.
TempError
;
InformainReport_B
.
InfRe
.
tempOver
=
0
;
InformainReport_B
.
InfRe
.
ConnTemp
=
ChargeError_B
.
Value
.
GunTempError
;
if
((
BstMsg_B
.
StopTruble
.
Value
.
ComponentTemp
==
0x01
)
&&
(
TCUCurChgRecd_B
.
TCUChargeEnable
==
1
))
InformainReport_B
.
InfRe
.
ConnTemp
=
0x01
;
else
InformainReport_B
.
InfRe
.
ConnTemp
=
0x00
;
InformainReport_B
.
InfRe
.
PutBack
=
PillarError_B
.
Value
.
PutBack
;
InformainReport_B
.
InfRe
.
PutBack
=
PillarError_B
.
Value
.
PutBack
;
...
@@ -2626,22 +2692,23 @@ void InformationReporting_23_A(void)
...
@@ -2626,22 +2692,23 @@ void InformationReporting_23_A(void)
Data
[
0
]
=
0x00
;
Data
[
0
]
=
0x00
;
InformainReport2_A
.
InfRe
.
Door
=
PillarError
.
Value
.
Door
;
InformainReport2_A
.
InfRe
.
Door
=
PillarError
.
Value
.
Door
;
InformainReport2_A
.
InfRe
.
DCOutConOn
=
0x00
;
InformainReport2_A
.
InfRe
.
DCOutConOn
=
PillarError
.
Value
.
Contactor2
;
if
(((
ChargeError
.
Value
.
IsolateWarn
==
1
)
||
(
ChargeError
.
Value
.
IsolateError
==
1
))
&&
if
((
ChargeError
.
Value
.
IsolateWarn
==
1
)
&&
(
TCUCurChgRecd
.
TCUChargeEnable
==
1
))
(
TCUCurChgRecd
.
TCUChargeEnable
==
1
))
InformainReport2_A
.
InfRe
.
ImdWarm
=
0x01
;
InformainReport2_A
.
InfRe
.
ImdWarm
=
0x01
;
else
else
InformainReport2_A
.
InfRe
.
ImdWarm
=
0x00
;
InformainReport2_A
.
InfRe
.
ImdWarm
=
0x00
;
InformainReport2_A
.
InfRe
.
DrainResist
=
0x00
;
InformainReport2_A
.
InfRe
.
DrainResist
=
ChargeError
.
Value
.
DrainError
;
InformainReport2_A
.
InfRe
.
tempOver
=
0
;
InformainReport2_A
.
InfRe
.
tempOver
=
ChargeError
.
Value
.
TempWarn
;
InformainReport2_A
.
InfRe
.
gunTemp
=
0
;
InformainReport2_A
.
InfRe
.
gunTemp
=
ChargeError
.
Value
.
GunTempWarn
;
InformainReport2_A
.
InfRe
.
AccContacON
=
PillarError
.
Value
.
ACContactor
;
InformainReport2_A
.
InfRe
.
AccContacON
=
PillarError
.
Value
.
ACContactor
1
;
InformainReport2_A
.
InfRe
.
AccContacOff
=
00
;
InformainReport2_A
.
InfRe
.
AccContacOff
=
PillarError
.
Value
.
ACContactor2
;
InformainReport2_A
.
InfRe
.
Power
=
00
;
InformainReport2_A
.
InfRe
.
Power
=
00
;
InformainReport2_A
.
InfRe
.
UniContactorOff
=
PillarError
.
Value
.
UniContactor
;
InformainReport2_A
.
InfRe
.
UniContactorOff
=
PillarError
.
Value
.
UniContactor1
;
InformainReport2_A
.
InfRe
.
UniContactorOn
=
0x00
;
InformainReport2_A
.
InfRe
.
UniContactorOn
=
PillarError
.
Value
.
UniContactor2
;
InformainReport2_A
.
InfRe
.
ImdCon
=
PillarError
.
Value
.
ImdDev
;
memcpy
(
&
Data
[
1
],
&
InformainReport2_A
.
data
,
2
);
memcpy
(
&
Data
[
1
],
&
InformainReport2_A
.
data
,
2
);
TCUSinglePackSendMsg
(
Data
,
8
,
eCmd_DCConInfor2
,
4
,
ChargerCont1939Addr
);
TCUSinglePackSendMsg
(
Data
,
8
,
eCmd_DCConInfor2
,
4
,
ChargerCont1939Addr
);
}
}
...
@@ -2656,22 +2723,23 @@ void InformationReporting_23_B(void)
...
@@ -2656,22 +2723,23 @@ void InformationReporting_23_B(void)
Data
[
0
]
=
0x00
;
Data
[
0
]
=
0x00
;
InformainReport2_B
.
InfRe
.
Door
=
PillarError_B
.
Value
.
Door
;
InformainReport2_B
.
InfRe
.
Door
=
PillarError_B
.
Value
.
Door
;
InformainReport2_B
.
InfRe
.
DCOutConOn
=
0x0
;
InformainReport2_B
.
InfRe
.
DCOutConOn
=
PillarError_B
.
Value
.
Contactor2
;
if
(((
ChargeError_B
.
Value
.
IsolateWarn
==
1
)
||
(
ChargeError_B
.
Value
.
IsolateError
==
1
))
&&
if
((
ChargeError_B
.
Value
.
IsolateWarn
==
1
)
&&
(
TCUCurChgRecd_B
.
TCUChargeEnable
==
1
))
(
TCUCurChgRecd_B
.
TCUChargeEnable
==
1
))
InformainReport2_B
.
InfRe
.
ImdWarm
=
0x01
;
InformainReport2_B
.
InfRe
.
ImdWarm
=
0x01
;
else
else
InformainReport2_B
.
InfRe
.
ImdWarm
=
0x00
;
InformainReport2_B
.
InfRe
.
ImdWarm
=
0x00
;
InformainReport2_B
.
InfRe
.
DrainResist
=
0x00
;
InformainReport2_B
.
InfRe
.
DrainResist
=
ChargeError_B
.
Value
.
DrainError
;
InformainReport2_B
.
InfRe
.
tempOver
=
0
;
InformainReport2_B
.
InfRe
.
tempOver
=
ChargeError_B
.
Value
.
TempWarn
;
InformainReport2_B
.
InfRe
.
gunTemp
=
0
;
InformainReport2_B
.
InfRe
.
gunTemp
=
ChargeError_B
.
Value
.
GunTempWarn
;
InformainReport2_B
.
InfRe
.
AccContacON
=
PillarError_B
.
Value
.
ACContactor
;
InformainReport2_B
.
InfRe
.
AccContacON
=
PillarError_B
.
Value
.
ACContactor
1
;
InformainReport2_B
.
InfRe
.
AccContacOff
=
00
;
InformainReport2_B
.
InfRe
.
AccContacOff
=
PillarError_B
.
Value
.
ACContactor2
;
InformainReport2_B
.
InfRe
.
Power
=
00
;
InformainReport2_B
.
InfRe
.
Power
=
00
;
InformainReport2_B
.
InfRe
.
UniContactorOff
=
PillarError_B
.
Value
.
UniContactor
;
InformainReport2_B
.
InfRe
.
UniContactorOff
=
PillarError_B
.
Value
.
UniContactor1
;
InformainReport2_B
.
InfRe
.
UniContactorOn
=
0x00
;
InformainReport2_B
.
InfRe
.
UniContactorOn
=
PillarError_B
.
Value
.
UniContactor2
;
InformainReport2_B
.
InfRe
.
ImdCon
=
PillarError_B
.
Value
.
ImdDev
;
memcpy
(
&
Data
[
1
],
&
InformainReport2_B
.
data
,
2
);
memcpy
(
&
Data
[
1
],
&
InformainReport2_B
.
data
,
2
);
TCUSinglePackSendMsg
(
Data
,
8
,
eCmd_DCConInfor2
,
4
,
ChargerCont1939Addr_B
);
TCUSinglePackSendMsg
(
Data
,
8
,
eCmd_DCConInfor2
,
4
,
ChargerCont1939Addr_B
);
}
}
...
...
DcPillar/Src/Drivers/Drv_TCUComm.h
浏览文件 @
5dd57d55
#ifndef __DRV_TCUCOMM_H__
#ifndef __DRV_TCUCOMM_H__
#define __DRV_TCUCOMM_H__
#define __DRV_TCUCOMM_H__
#include "Global.h"
#include "Global.h"
#include "Thd_Charge.h"
#include "Thd_Charge.h"
#include "Memory.h"
#include "Memory.h"
...
@@ -10,103 +10,108 @@
...
@@ -10,103 +10,108 @@
#include "Thd_TcuControl.h"
#include "Thd_TcuControl.h"
extern
u8
TCUSendMsg
(
StructChargeSend
*
pMsg
);
extern
u8
TCUSendMsg
(
StructChargeSend
*
pMsg
);
extern
void
TCUCanInit_B
(
void
);
extern
void
TCUCanInit_B
(
void
);
extern
osMessageQId
TCUMsg
;
extern
osMessageQId
TCUMsg
;
typedef
struct
typedef
struct
{
{
u8
ControlType
;
u8
ControlType
;
s16
Kwh
;
s16
Kwh
;
u8
Percentage
;
u8
Percentage
;
}
StructPowerControl
;
}
StructPowerControl
;
typedef
struct
cp56time2a
{
typedef
struct
cp56time2a
{
u16
msec
;
u16
msec
;
u16
min
:
6
;
u16
min
:
6
;
u8
res1
:
1
;
u8
res1
:
1
;
u8
iv
:
1
;
// invalid, iv = 0 有效; iv = 1 无效
u8
iv
:
1
;
// invalid, iv = 0 有效; iv = 1 无效
u8
hour
:
5
;
u8
hour
:
5
;
u8
res2
:
2
;
u8
res2
:
2
;
u8
su
:
1
;
//summer time, su = 0 标准时间; su = 1 夏季时间
u8
su
:
1
;
//summer time, su = 0 标准时间; su = 1 夏季时间
u8
mday
:
5
;
u8
mday
:
5
;
u8
wday
:
3
;
u8
wday
:
3
;
u8
month
:
4
;
u8
month
:
4
;
u8
res3
:
4
;
u8
res3
:
4
;
u8
year
:
7
;
u8
year
:
7
;
u8
res4
:
1
;
u8
res4
:
1
;
}
cp56time2a
;
}
cp56time2a
;
typedef
struct
{
typedef
struct
{
//u8 Len;
//u8 Len;
// u8 Data[8];
// u8 Data[8];
// Union1939Id Id;
// Union1939Id Id;
u8
Prio
;
u8
Prio
;
u8
DP
;
u8
DP
;
u8
PF
;
u8
PF
;
u8
DA
;
u8
DA
;
u8
SA
;
u8
SA
;
u8
Len
;
u8
Len
;
u8
Data
[
8
];
u8
Data
[
8
];
u32
Pgn
;
u32
Pgn
;
}
StructTCUSend
;
}
StructTCUSend
;
typedef
struct
{
typedef
struct
{
//u8 GunNum; //抢号 单枪 0 一机多冲 1-255
//u8 GunNum; //抢号 单枪 0 一机多冲 1-255
u8
LoadSswitch
;
//负荷控制开关 是否根据用户型号提供不同输出功率 01启用02关闭其他无效
u8
LoadSswitch
;
//负荷控制开关 是否根据用户型号提供不同输出功率 01启用02关闭其他无效
u8
StarChgType
;
//即插即充标识 00非 01 即插即充other:invalid
u8
StarChgType
;
//即插即充标识 00非 01 即插即充other:invalid
u8
AuxiliaryPower
;
//辅助电源选择:00H:使用12V(默认)01H: 24V(优先使用12V探测,失败后切24V电源探测)其他:无效
u8
AuxiliaryPower
;
//辅助电源选择:00H:使用12V(默认)01H: 24V(优先使用12V探测,失败后切24V电源探测)其他:无效
u8
ParallelCharging
;
//并充(两把枪充一辆车)选择:00H:关闭(默认) 01H:启用 其他:无效
u8
ParallelCharging
;
//并充(两把枪充一辆车)选择:00H:关闭(默认) 01H:启用 其他:无效
}
StructStartMeg
;
}
StructStartMeg
;
typedef
struct
{
//u8 GunNum; //抢号 单枪 0 一机多冲 1-255
typedef
struct
{
u8
LoadSswitch
;
//负荷控制开关 是否根据用户型号提供不同输出功率 01启用02关闭其他无效
//u8 GunNum; //抢号 单枪 0 一机多冲 1-255
u8
AckFlag
;
u8
LoadSswitch
;
//负荷控制开关 是否根据用户型号提供不同输出功率 01启用02关闭其他无效
//u32 RecvTick;
u8
AckFlag
;
}
StructStartCompMeg
;
typedef
struct
//u32 RecvTick;
{
}
StructStartCompMeg
;
//u8 GunNum; //抢号 单枪 0 一机多冲 1-255
u8
StopReason
;
u8
AckFlag
;
typedef
struct
{
}
StructStopCompMeg
;
//u8 GunNum; //抢号 单枪 0 一机多冲 1-255
u8
StopReason
;
typedef
enum
u8
AckFlag
;
{
}
StructStopCompMeg
;
stopIdle
=
0
,
commStop
=
1
,
TcuFultStop
=
2
,
typedef
enum
{
ChgFultStop
=
3
,
stopIdle
=
0
,
}
stopReason
;
commStop
=
1
,
typedef
struct
TcuFultStop
=
2
,
{
ChgFultStop
=
3
,
//u8 GunNum; //抢号 单枪 0 一机多冲 1-255
}
stopReason
;
stopReason
StopReason
;
//
}
StructStopMeg
;
typedef
struct
{
typedef
struct
//u8 GunNum; //抢号 单枪 0 一机多冲 1-255
{
stopReason
StopReason
;
//
u8
ChargingServiceFlag
;
//01充电服务停止02充电服务启用
}
StructStopMeg
;
u16
version
;
u8
ChargeNum
[
8
];
u8
ManufacturerCode
[
4
];
//厂家编码
typedef
struct
{
u8
DeviceModel
[
2
];
//设备型号
u8
ChargingServiceFlag
;
//01充电服务停止02充电服务启用
u8
HardwareVersion
[
2
];
//硬件版本
u16
version
;
u8
SoftwareVersion
[
2
];
//软件版本
u8
ChargeNum
[
8
];
u8
SoftwareData
[
4
];
//软件日期
u8
ManufacturerCode
[
4
];
//厂家编码
u8
BmsVersion
;
//BMS协议版本号01H GB/27930-2011 02HGB/27930-2011
u8
DeviceModel
[
2
];
//设备型号
u16
DcMaxVolt
;
//模块最大电压 XXX.xV
u8
HardwareVersion
[
2
];
//硬件版本
u16
DcMinVolt
;
//模块最小电压 XXX.xV
u8
SoftwareVersion
[
2
];
//软件版本
u16
DcMaxCurrt
;
//模块最大电流 XX.xA
u8
SoftwareData
[
4
];
//软件日期
u16
DcMinCurrt
;
//模块最小电流 XX.xA
u8
BmsVersion
;
//BMS协议版本号01H GB/27930-2011 02HGB/27930-2011
StructPowerControl
PowerControl_A
;
u16
DcMaxVolt
;
//模块最大电压 XXX.xV
StructPowerControl
PowerControl_B
;
u16
DcMinVolt
;
//模块最小电压 XXX.xV
u16
DcMaxCurrt
;
//模块最大电流 XX.xA
}
StructTCUCControl
;
u16
DcMinCurrt
;
//模块最小电流 XX.xA
StructPowerControl
PowerControl_A
;
StructPowerControl
PowerControl_B
;
}
StructTCUCControl
;
/*
/*
...
@@ -116,231 +121,236 @@ typedef struct
...
@@ -116,231 +121,236 @@ typedef struct
其它类型故障
其它类型故障
*/
*/
typedef
union
typedef
union
{
{
u8
data
[
5
];
u8
data
[
5
];
struct
{
struct
{
u8
workStau
:
2
;
//工作状态
u8
workStau
:
2
;
//工作状态
u8
sumFalt
:
1
;
//总故障
u8
sumFalt
:
1
;
//总故障
u8
sumWarm
:
1
;
//总告警
u8
sumWarm
:
1
;
//总告警
u8
Emergency
:
1
;
//急停按钮动作 故障
u8
Emergency
:
1
;
//急停按钮动作 故障
u8
smoke
:
1
;
//烟感故障
u8
smoke
:
1
;
//烟感故障
u8
AccContac
:
1
;
//交流输入断路器故障
u8
AccContac
:
1
;
//交流输入断路器故障
u8
DCOutConOff
:
1
;
//直流母线输出接触器拒动/误动故障
u8
DCOutConOff
:
1
;
//直流母线输出接触器拒动/误动故障
u8
DCFuse
:
1
;
//熔断器故障
u8
DCFuse
:
1
;
//熔断器故障
u8
EleLock
:
1
;
//充电接口电子锁故障
u8
EleLock
:
1
;
//充电接口电子锁故障
u8
Fan
:
1
;
//充电桩风扇故障
u8
Fan
:
1
;
//充电桩风扇故障
u8
SPD
:
1
;
//避雷器故障
u8
SPD
:
1
;
//避雷器故障
u8
ImdDev
:
1
;
//绝缘监测故障
u8
ImdDev
:
1
;
//绝缘监测故障
u8
BattPola
:
1
;
//电池极性反接故障
u8
BattPola
:
1
;
//电池极性反接故障
u8
ContGuid
:
1
;
//充电中控制导引故障
u8
ContGuid
:
1
;
//充电中控制导引故障
u8
tempOver
:
1
;
//充电桩过温故障
u8
tempOver
:
1
;
//充电桩过温故障
/*
/*
充电接口过温故障
充电接口过温故障
充电枪未归位告警
充电枪未归位告警
BMS 通信故障
BMS 通信故障
交流输入电压过压故障
交流输入电压过压故障
交流输入电压欠压故障
交流输入电压欠压故障
直流母线输出 过压故障
直流母线输出 过压故障
直流母线输出 欠压故障
直流母线输出 欠压故障
直流母线输出过流故障
直流母线输出过流故障
*/
*/
u8
ConnTemp
:
1
;
u8
ConnTemp
:
1
;
u8
PutBack
:
1
;
u8
PutBack
:
1
;
u8
BMSComm
:
1
;
u8
BMSComm
:
1
;
u8
InVoltHi
:
1
;
u8
InVoltHi
:
1
;
u8
InVoltlo
:
1
;
u8
InVoltlo
:
1
;
u8
DcVolHi
:
1
;
u8
DcVolHi
:
1
;
u8
DcVolLo
:
1
;
u8
DcVolLo
:
1
;
u8
DCCurrHi
:
1
;
u8
DCCurrHi
:
1
;
/*
/*
充电模块故障
充电模块故障
充电模块交流输入故障
充电模块交流输入故障
充电模块交流输入过压故障
充电模块交流输入过压故障
充电模块交流输入欠压故障
充电模块交流输入欠压故障
充电模块交流输入缺相故障
充电模块交流输入缺相故障
充电模块直流输出短路故障
充电模块直流输出短路故障
充电模块直流输出过流故障
充电模块直流输出过流故障
充电模块直流输出过压故障
充电模块直流输出过压故障
*/
*/
u8
DcModErr
:
1
;
u8
DcModErr
:
1
;
u8
DCModIn
:
1
;
u8
DCModIn
:
1
;
u8
DCModInHi
:
1
;
u8
DCModInHi
:
1
;
u8
DCModInLo
:
1
;
u8
DCModInLo
:
1
;
u8
DCModPhas
:
1
;
u8
DCModPhas
:
1
;
u8
DcOutShor
:
1
;
u8
DcOutShor
:
1
;
u8
DCModOutCuHi
:
1
;
u8
DCModOutCuHi
:
1
;
u8
DCModOutVoHi
:
1
;
u8
DCModOutVoHi
:
1
;
/*
/*
充电模块直流输出欠压故障
充电模块直流输出欠压故障
充电模块过温故障
充电模块过温故障
充电模块通信故障
充电模块通信故障
充电模块风扇故障
充电模块风扇故障
车辆连接状态
车辆连接状态
充电桩充电枪座状态
充电桩充电枪座状态
充电接口电子锁状态
充电接口电子锁状态
直流输出接触器状态
直流输出接触器状态
*/
*/
u8
DCModOutVoLo
:
1
;
u8
DCModOutVoLo
:
1
;
u8
DCModTempHi
:
1
;
u8
DCModTempHi
:
1
;
u8
DCModComm
:
1
;
u8
DCModComm
:
1
;
u8
DCModFan
:
1
;
u8
DCModFan
:
1
;
u8
CCConnect
:
1
;
u8
CCConnect
:
1
;
u8
InsertGunSta
:
1
;
u8
InsertGunSta
:
1
;
u8
ElectLock
:
1
;
u8
ElectLock
:
1
;
u8
DcOutContSta
:
1
;
u8
DcOutContSta
:
1
;
}
InfRe
;
}
InfRe
;
}
UnionInformainReport1
;
typedef
union
}
UnionInformainReport1
;
{
u32
data
;
struct
typedef
union
{
{
u32
data
;
/*
充电桩门禁故障
直流输出接触器粘连故障
struct
{
绝缘监测告警
/*
泄放回路故障
充电桩门禁故障
充电桩过温告警
直流输出接触器粘连故障
充电枪过温告警
绝缘监测告警
交流输入接触器拒动/误动故障
泄放回路故障
交流输入接触器粘连故障
充电桩过温告警
*/
充电枪过温告警
u16
Door
:
1
;
//
交流输入接触器拒动/误动故障
u16
DCOutConOn
:
1
;
//母线接触器粘连故障
交流输入接触器粘连故障
u16
ImdWarm
:
1
;
*/
u16
DrainResist
:
1
;
u16
Door
:
1
;
//
u16
tempOver
:
1
;
u16
DCOutConOn
:
1
;
//母线接触器粘连故障
u16
gunTemp
:
1
;
u16
ImdWarm
:
1
;
u16
AccContacON
:
1
;
//交流数日接触器据动/误动故障
u16
DrainResist
:
1
;
u16
AccContacOff
:
1
;
//粘连故障
u16
tempOver
:
1
;
u16
gunTemp
:
1
;
/*
u16
AccContacON
:
1
;
//交流数日接触器据动/误动故障
辅助电源故障
u16
AccContacOff
:
1
;
//粘连故障
并联接触器拒动/误动故障
并联接触器粘连故障
/*
并联接触器状态
辅助电源故障
模块紧急停机状态
并联接触器拒动/误动故障
充电桩水浸故障
并联接触器粘连故障
充电机柜门禁故障
并联接触器状态
充电机柜水浸故障
模块紧急停机状态
*/
充电桩水浸故障
u16
Power
:
1
;
//辅助电源
充电机柜门禁故障
u16
UniContactorOff
:
1
;
//母线接触器据动/误动故障
充电机柜水浸故障
u16
UniContactorOn
:
1
;
//并联接触器粘连故障
*/
u16
Power
:
1
;
//辅助电源
/*
u16
UniContactorOff
:
1
;
//接触器据动/误动故障
充电机柜烟感故障
u16
UniContactorOn
:
1
;
//并联接触器粘连故障
功率控制模块通信故障
u16
reserve1
:
5
;
功率控制模块通信告警
功率控制模块故障
/*
功率控制模块告警
充电机柜烟感故障
开关模块通信故障
功率控制模块通信故障
开关模块通信告警
功率控制模块通信告警
开关模块故障
功率控制模块故障
*/
功率控制模块告警
开关模块通信故障
/*
开关模块通信告警
开关模块告警
开关模块故障
直流充电主控模块判断BMS故障
*/
BMS发送故障信息
u16
reserve2
:
8
;
充电模块泄放故障
绝缘监测仪通信故障
/*
环境监控板通信故障
开关模块告警
灯板通信故障
直流充电主控模块判断BMS故障
电能表通信故障
BMS发送故障信息
*/
充电模块泄放故障
}
InfRe
;
绝缘监测仪通信故障
}
UnionInformainReport2
;
环境监控板通信故障
灯板通信故障
电能表通信故障
typedef
union
*/
{
u16
reserve3
:
4
;
u32
Mult
;
u16
ImdCon
:
1
;
struct
u16
reserve4
:
3
;
{
}
InfRe
;
u32
Idle
:
1
;
//预留
u32
paramAck
:
1
;
//下发充电参数应答超时
u32
startAck
:
1
;
//充电启动命令应答超时
}
UnionInformainReport2
;
u32
startComp
:
1
;
//等待充电启动完成状态超时
u32
stopAck
:
1
;
//充电停止命令应答超时
u32
stopComp
:
1
;
//等待充电停止完成状态超时
typedef
union
{
u32
timeAck
:
1
;
//对时操作应答超时
u32
Mult
;
u32
SerConAck
:
1
;
//充电服务启停应答超时
u32
GunAck
:
1
;
//电子锁控制应答超时
struct
{
u32
powerAck
:
1
;
//充电功率调节应答超时
u32
Idle
:
1
;
//预留
u32
QueryAck
:
1
;
//充电桩配置信息查询应答超时
u32
paramAck
:
1
;
//下发充电参数应答超时
u32
DCConInfor
:
1
;
//遥信报文接收超时
u32
startAck
:
1
;
//充电启动命令应答超时
u32
DCConMeasu
:
1
;
//遥测报文接收超时
u32
startComp
:
1
;
//等待充电启动完成状态超时
u32
StartDownload
:
1
;
//启动下载命令应答超时
u32
stopAck
:
1
;
//充电停止命令应答超时
u32
DataRequestSend
:
1
;
//请求发送数据帧应答超时
u32
stopComp
:
1
;
//等待充电停止完成状态超时
u32
DataSend
:
1
;
//数据发送帧应答超时
u32
timeAck
:
1
;
//对时操作应答超时
u32
SerConAck
:
1
;
//充电服务启停应答超时
u32
ProgramVerification
:
1
;
//程序校验命令帧应答超时
u32
CarVerification
:
1
;
//车辆验证报文接收超时
u32
GunAck
:
1
;
//电子锁控制应答超时
u32
powerAck
:
1
;
//充电功率调节应答超时
u32
QueryAck
:
1
;
//充电桩配置信息查询应答超时
}
Value
;
u32
DCConInfor
:
1
;
//遥信报文接收超时
}
UnionTCUEM
;
u32
DCConMeasu
:
1
;
//遥测报文接收超时
typedef
struct
u32
StartDownload
:
1
;
//启动下载命令应答超时
{
u32
DataRequestSend
:
1
;
//请求发送数据帧应答超时
// u8 Valid;
u32
DataSend
:
1
;
//数据发送帧应答超时
UnionTCUEM
tcuem
;
//充电控制器反馈超时
}
StructTCUEM
;
u32
ProgramVerification
:
1
;
//程序校验命令帧应答超时
u32
CarVerification
:
1
;
//车辆验证报文接收超时
typedef
struct
{
}
Value
;
u8
result
;
u8
FailReason
;
}
UnionTCUEM
;
}
StructVerificationInformain
;
#define TCU1939Addr (0x8A)
typedef
struct
{
#define ChargerCont1939Addr (0xE0)
// u8 Valid;
#define ChargerCont1939Addr_B (0xE1)
UnionTCUEM
tcuem
;
//充电控制器反馈超时
}
StructTCUEM
;
typedef
enum
{
eCmd_start
=
0x000100
,
// 充电启动帧
typedef
struct
{
eCmd_startAck
=
0x000200
,
// 充电启动帧反馈
u8
result
;
u8
FailReason
;
eCmd_stop
=
0x000300
,
// 充电停止帧
eCmd_stopAck
=
0x000400
,
// 充电停止帧反馈
}
StructVerificationInformain
;
eCmd_time
=
0x000500
,
// 对时帧
eCmd_timeAck
=
0x000600
,
// 对时帧反馈
#define TCU1939Addr (0x8A)
#define ChargerCont1939Addr (0xE0)
eCmd_versi
=
0x000700
,
//版本校验帧
#define ChargerCont1939Addr_B (0xE1)
eCmd_versiAck
=
0x000800
,
//版本校验帧反馈
typedef
enum
{
eCmd_param
=
0x000900
,
// 下发充电参数信息帧
eCmd_start
=
0x000100
,
// 充电启动帧
eCmd_paramAck
=
0x000A00
,
// 下发充电参数信息应答帧
eCmd_startAck
=
0x000200
,
// 充电启动帧反馈
eCmd_stop
=
0x000300
,
// 充电停止帧
eCmd_SerCon
=
0x000B00
,
// 充电服务启停控制帧
eCmd_stopAck
=
0x000400
,
// 充电停止帧反馈
eCmd_SerConAck
=
0x000C00
,
// 充电服务启停控制帧应答
eCmd_time
=
0x000500
,
// 对时帧
eCmd_timeAck
=
0x000600
,
// 对时帧反馈
eCmd_Gun
=
0x000D00
,
// 电子锁可控制帧
eCmd_versi
=
0x000700
,
//版本校验帧
eCmd_GunAck
=
0x000E00
,
// 电子锁可控制应答帧
eCmd_versiAck
=
0x000800
,
//版本校验帧反馈
eCmd_param
=
0x000900
,
// 下发充电参数信息帧
eCmd_power
=
0x000F00
,
// 功率调节控制帧
eCmd_paramAck
=
0x000A00
,
// 下发充电参数信息应答帧
eCmd_powerAck
=
0x001000
,
// 功率调节控制应答帧
eCmd_SerCon
=
0x000B00
,
// 充电服务启停控制帧
eCmd_SerConAck
=
0x000C00
,
// 充电服务启停控制帧应答
eCmd_Query
=
0x006000
,
// 充电桩配置信息查询帧
eCmd_Gun
=
0x000D00
,
// 电子锁可控制帧
eCmd_QueryAck
=
0x006100
,
// 充电桩配置信息查询应答帧
eCmd_GunAck
=
0x000E00
,
// 电子锁可控制应答帧
eCmd_power
=
0x000F00
,
// 功率调节控制帧
/*****************在线升级命令 start*******************/
eCmd_powerAck
=
0x001000
,
// 功率调节控制应答帧
eCmd_upDateHeart
=
0x007000
,
//升级心跳帧 007000H
eCmd_Query
=
0x006000
,
// 充电桩配置信息查询帧
eCmd_upDateHeartAck
=
0x007100
,
//升级心跳应答帧 007100H
eCmd_QueryAck
=
0x006100
,
// 充电桩配置信息查询应答帧
eCmd_startDownload
=
0x007200
,
//启动下载命令帧 007200H
eCmd_startDownloadAck
=
0x007300
,
//启动下载应答帧 007300H
/*****************在线升级命令 start*******************/
eCmd_upDateHeart
=
0x007000
,
//升级心跳帧 007000H
eCmd_upDateHeartAck
=
0x007100
,
//升级心跳应答帧 007100H
eCmd_startDownload
=
0x007200
,
//启动下载命令帧 007200H
eCmd_startDownloadAck
=
0x007300
,
//启动下载应答帧 007300H
//索要区间命令帧 007400H
//索要区间命令帧 007400H
//索要区间应答帧1 007500H
//索要区间应答帧1 007500H
//索要区间应答帧2 007600H
//索要区间应答帧2 007600H
...
@@ -351,112 +361,110 @@ typedef enum
...
@@ -351,112 +361,110 @@ typedef enum
//完成组包应答帧 007B00H
//完成组包应答帧 007B00H
//程序校验数据帧 007C00H
//程序校验数据帧 007C00H
//程序校验应答帧 007D00H
//程序校验应答帧 007D00H
eCmd_reset
=
0x007E00
,
//立即复位命令帧 007E00H
eCmd_reset
=
0x007E00
,
//立即复位命令帧 007E00H
eCmd_resetAck
=
0x007F00
,
//立即复位应答帧 007F00H
eCmd_resetAck
=
0x007F00
,
//立即复位应答帧 007F00H
/*****************在线升级命令 end*******************/
/*****************在线升级命令 end*******************/
eCmd_valueSet
=
0x008000
,
//定值设置命令帧 008000H
eCmd_valueSet
=
0x008000
,
//定值设置命令帧 008000H
eCmd_valueSetAck
=
0x008100
,
//定值设置命令应答帧 008100H
eCmd_valueSetAck
=
0x008100
,
//定值设置命令应答帧 008100H
eCmd_valueQuery
=
0x008200
,
//定值查询命令帧 008200H
eCmd_valueQuery
=
0x008200
,
//定值查询命令帧 008200H
eCmd_valueQueryAck
=
0x008300
,
//定值查询命令应答帧 008300H
eCmd_valueQueryAck
=
0x008300
,
//定值查询命令应答帧 008300H
eCmd_debugInfo
=
0x008E00
,
//调试信息下行命令帧 0x8E
eCmd_debugInfoAck
=
0x008F00
,
//调试信息上行帧 0x8F
eCmd_debugInfo
=
0x008E00
,
//调试信息下行命令帧 0x8E
eCmd_verification
=
0x002D00
,
//车辆验证数据帧
eCmd_debugInfoAck
=
0x008F00
,
//调试信息上行帧 0x8F
eCmd_verificationAck
=
0x002E00
,
//车辆验证应答帧
eCmd_verification
=
0x002D00
,
//车辆验证数据帧
////////////状态帧/////////////////
eCmd_verificationAck
=
0x002E00
,
//车辆验证应答帧
eCmd_startComp
=
0x001100
,
// 充电启动完成帧
eCmd_startCompAck
=
0x001200
,
// 充电启动完成应答帧
////////////状态帧/////////////////
eCmd_stopComp
=
0x001300
,
// 充电停止完成帧
eCmd_startComp
=
0x001100
,
// 充电启动完成帧
eCmd_stopCompAck
=
0x001400
,
// 充电停止完成应答帧
eCmd_startCompAck
=
0x001200
,
// 充电启动完成应答帧
eCmd_status
=
0x001500
,
//充电桩状态帧
eCmd_stopComp
=
0x001300
,
// 充电停止完成帧
///////////数据帧/直流////////////
eCmd_stopCompAck
=
0x001400
,
// 充电停止完成应答帧
eCmd_DCConMeasu
=
0x002000
,
// 充电控制器遥测帧
eCmd_DCTCUMeasu
=
0x002100
,
// 计费单元遥测帧
eCmd_status
=
0x001500
,
//充电桩状态帧
eCmd_DCConInfor1
=
0x002200
,
// 充电控制器遥信帧
eCmd_DCConInfor2
=
0x002300
,
// 充电控制器遥信帧
///////////数据帧/直流////////////
eCmd_DCConMeasu
=
0x002000
,
// 充电控制器遥测帧
///////////数据帧/交流////////////
eCmd_DCTCUMeasu
=
0x002100
,
// 计费单元遥测帧
eCmd_ACConMeasu
=
0x003000
,
// 充电控制器遥测帧
eCmd_DCConInfor1
=
0x002200
,
// 充电控制器遥信帧
eCmd_ACTCUMeasu
=
0x003100
,
// 计费单元遥测 帧
eCmd_DCConInfor2
=
0x002300
,
// 充电控制器遥信帧
eCmd_ACConInfor
=
0x003200
,
// 充电控制器遥信帧
///////////数据帧/交流////////////
eCmd_ACTCUInfor
=
0x003300
,
// 计费单元遥信帧
eCmd_ACConMeasu
=
0x003000
,
// 充电控制器遥测帧
eCmd_ACTCUMeasu
=
0x003100
,
// 计费单元遥测 帧
///////////心跳帧///////////
eCmd_ACConInfor
=
0x003200
,
// 充电控制器遥信帧
eCmd_TcuHeart
=
0x004000
,
// 计费单元心跳
eCmd_ACTCUInfor
=
0x003300
,
// 计费单元遥信帧
eCmd_ContHeart
=
0x004100
,
// 充电控制器心跳帧
///////////心跳帧///////////
eCmd_TCUErroComm
=
0x005100
,
// 计费单元错误帧
eCmd_TcuHeart
=
0x004000
,
// 计费单元心跳
eCmd_ConErroComm
=
0x005200
,
//充电控制器错误帧
eCmd_ContHeart
=
0x004100
,
// 充电控制器心跳帧
}
EnumTCUCommPgn
;
eCmd_TCUErroComm
=
0x005100
,
// 计费单元错误帧
eCmd_ConErroComm
=
0x005200
,
//充电控制器错误帧
}
EnumTCUCommPgn
;
extern
u8
TCUCommInit
(
void
);
extern
u8
TCUCommInit
(
void
);
extern
void
StartMeg
(
StructTCUSend
*
pPgnRecv
);
extern
void
StartMeg
(
StructTCUSend
*
pPgnRecv
);
extern
void
StartMegAck_A
(
void
);
extern
void
StartMegAck_A
(
void
);
extern
void
StartMegAck_B
(
void
);
extern
void
StartMegAck_B
(
void
);
extern
void
AckTCUHeartBeat
(
StructTCUSend
*
pPgnRecv
);
extern
void
AckTCUHeartBeat
(
StructTCUSend
*
pPgnRecv
);
extern
void
TCUParamAck
(
u8
);
extern
void
TCUParamAck
(
u8
);
extern
void
startCompSend_A
(
void
);
extern
void
startCompSend_A
(
void
);
extern
void
startCompSend_B
(
void
);
extern
void
startCompSend_B
(
void
);
extern
void
ACkStartCompMeg
(
StructTCUSend
*
pPgnRecv
);
extern
void
ACkStartCompMeg
(
StructTCUSend
*
pPgnRecv
);
extern
void
StopMeg
(
StructTCUSend
*
pPgnRecv
);
extern
void
StopMeg
(
StructTCUSend
*
pPgnRecv
);
extern
void
StopMegAck_A
(
void
);
extern
void
StopMegAck_A
(
void
);
extern
void
StopMegAck_B
(
void
);
extern
void
StopMegAck_B
(
void
);
extern
void
stopCompSend_A
(
void
);
extern
void
stopCompSend_A
(
void
);
extern
void
stopCompSend_B
(
void
);
extern
void
stopCompSend_B
(
void
);
extern
void
stopCompAck
(
StructTCUSend
*
pPgnRecv
);
extern
void
stopCompAck
(
StructTCUSend
*
pPgnRecv
);
extern
void
TCUHeartBeat_A
(
void
);
extern
void
TCUHeartBeat_A
(
void
);
extern
void
TCUHeartBeat_B
(
void
);
extern
void
TCUHeartBeat_B
(
void
);
extern
void
TCUtimeSet
(
StructTCUSend
*
pPgnRecv
);
extern
void
TCUtimeSet
(
StructTCUSend
*
pPgnRecv
);
extern
void
TCUtimeSetAck
(
u8
);
extern
void
TCUtimeSetAck
(
u8
);
extern
void
TCUVersionCheck
(
StructTCUSend
*
pPgnRecv
);
extern
void
TCUVersionCheck
(
StructTCUSend
*
pPgnRecv
);
extern
void
TCUVersionCheckSent
(
u8
);
extern
void
TCUVersionCheckSent
(
u8
);
extern
void
SerConAckAnalysis
(
StructTCUSend
*
pPgnRecv
);
extern
void
SerConAckAnalysis
(
StructTCUSend
*
pPgnRecv
);
extern
void
SerConAck
(
u8
);
extern
void
SerConAck
(
u8
);
extern
void
ElectControlAnalysis
(
StructTCUSend
*
pPgnRecv
);
extern
void
ElectControlAnalysis
(
StructTCUSend
*
pPgnRecv
);
extern
void
ElectControlAck
(
u8
);
extern
void
ElectControlAck
(
u8
);
extern
void
PowerControlAnalysis
(
StructTCUSend
*
pPgnRecv
);
extern
void
PowerControlAnalysis
(
StructTCUSend
*
pPgnRecv
);
extern
void
PowerControlAck
(
u8
);
extern
void
PowerControlAck
(
u8
);
extern
void
InformationReporting_22_A
(
void
);
extern
void
InformationReporting_22_A
(
void
);
extern
void
InformationReporting_22_B
(
void
);
extern
void
InformationReporting_22_B
(
void
);
extern
void
InformationReporting_23_A
(
void
);
extern
void
InformationReporting_23_A
(
void
);
extern
void
InformationReporting_23_B
(
void
);
extern
void
InformationReporting_23_B
(
void
);
extern
void
measuringReporting20_A
(
void
);
extern
void
measuringReporting20_A
(
void
);
extern
void
measuringReporting20_B
(
void
);
extern
void
measuringReporting20_B
(
void
);
extern
void
ChgInfornQueryAck
(
u8
);
extern
void
ChgInfornQueryAck
(
u8
);
extern
void
verification
(
void
);
extern
void
verification
(
void
);
extern
void
verificationAck
(
StructTCUSend
*
pPgnRecv
);
extern
void
verificationAck
(
StructTCUSend
*
pPgnRecv
);
extern
void
TcuEMMsg
(
u16
data
);
extern
void
TcuEMMsg
(
u16
data
);
extern
void
TcuEMMsg_B
(
u16
data
);
extern
void
TcuEMMsg_B
(
u16
data
);
extern
void
TCUParam
(
StructTCUSend
*
pPgnRecv
);
extern
void
TCUParam
(
StructTCUSend
*
pPgnRecv
);
extern
void
TCUMeasuRecv
(
StructTCUSend
*
pPgnRecv
);
extern
void
TCUMeasuRecv
(
StructTCUSend
*
pPgnRecv
);
extern
StructStartMeg
StartMeg_A
;
extern
StructStartMeg
StartMeg_A
;
extern
StructStartMeg
StartMeg_B
;
extern
StructStartMeg
StartMeg_B
;
extern
StructStartCompMeg
AckStartCompMeg_A
;
extern
StructStartCompMeg
AckStartCompMeg_A
;
extern
StructStartCompMeg
AckStartCompMeg_B
;
extern
StructStartCompMeg
AckStartCompMeg_B
;
extern
StructStopMeg
StopMeg_A
;
extern
StructStopMeg
StopMeg_A
;
extern
StructStopMeg
StopMeg_B
;
extern
StructStopMeg
StopMeg_B
;
extern
StructStopCompMeg
AckStopCompMeg_A
;
extern
StructStopCompMeg
AckStopCompMeg_A
;
extern
StructStopCompMeg
AckStopCompMeg_B
;
extern
StructStopCompMeg
AckStopCompMeg_B
;
extern
UnionInformainReport1
InformainReport_A
;
extern
UnionInformainReport1
InformainReport_A
;
extern
UnionInformainReport1
InformainReport_B
;
extern
UnionInformainReport1
InformainReport_B
;
extern
UnionInformainReport2
InformainReport2_A
;
extern
UnionInformainReport2
InformainReport2_A
;
extern
UnionInformainReport2
InformainReport2_B
;
extern
UnionInformainReport2
InformainReport2_B
;
extern
StructVerificationInformain
VerificaInfo
;
extern
StructVerificationInformain
VerificaInfo
;
extern
StructVerificationInformain
VerificaInfo_B
;
extern
StructVerificationInformain
VerificaInfo_B
;
extern
StructTCUEM
TCUChgContralTCUEM_A
;
extern
StructTCUEM
TCUChgContralTCUEM_A
;
extern
StructTCUEM
TCUChgContralTCUEM_B
;
extern
StructTCUEM
TCUChgContralTCUEM_B
;
void
TCUStartDownloadHandle
(
StructTCUSend
*
pPgnRecv
);
void
TCUStartDownloadHandle
(
StructTCUSend
*
pPgnRecv
);
void
StartDownloadAck
(
u8
ChgNum
);
void
StartDownloadAck
(
u8
ChgNum
);
...
...
DcPillar/Src/Global.h
浏览文件 @
5dd57d55
...
@@ -282,6 +282,7 @@ typedef enum
...
@@ -282,6 +282,7 @@ typedef enum
eChgStop_PillarReady_NoVolt
=
100
,
eChgStop_PillarReady_NoVolt
=
100
,
eChgStop_Conf_BatVoltLessPillarMinVolt
=
101
,
eChgStop_Conf_BatVoltLessPillarMinVolt
=
101
,
eChgStop_PillarReady_UniContactor
,
eChgStop_PillarReady_UniContactor
,
eChgStop_BatVoltOverBatMax
,
}
EnumChgStopType
;
}
EnumChgStopType
;
...
@@ -353,7 +354,12 @@ typedef union
...
@@ -353,7 +354,12 @@ typedef union
u32
PutBack
:
1
;
u32
PutBack
:
1
;
u32
OutShort
:
1
;
u32
OutShort
:
1
;
u32
UniContactor1
:
1
;
//据动,误动
u32
UniContactor2
:
1
;
//粘连
u32
ACContactor1
:
1
;
//据动,误动
u32
ACContactor2
:
1
;
//粘连
u32
Contactor1
:
1
;
//据动,误动
u32
Contactor2
:
1
;
//粘连
}
Value
;
}
Value
;
}
UnionPillarError
;
}
UnionPillarError
;
...
@@ -367,6 +373,15 @@ typedef union
...
@@ -367,6 +373,15 @@ typedef union
u32
IsolateError
:
1
;
u32
IsolateError
:
1
;
u32
VoltOutError
:
1
;
u32
VoltOutError
:
1
;
u32
CurrtOutError
:
1
;
u32
CurrtOutError
:
1
;
u32
TempError
:
1
;
//桩内温度错误
u32
TempWarn
:
1
;
//桩内温度告警
u32
GunTempError
:
1
;
//枪/充电接口温度错误
u32
GunTempWarn
:
1
;
//枪/充电接口温度告警
u32
DrainError
:
1
;
//泄放回路故障
u32
DCMoudleOnTimeOut
:
1
;
//充电模块开机超时
u32
Bcp
:
1
;
//BCP 报文数据项异常
u32
Bsm
:
1
;
//动力蓄电池状态信息(BSM)超时
}
Value
;
}
Value
;
}
UnionChgError
;
}
UnionChgError
;
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论