本文主要讲解新能源行业技术人员在拿到一份电动汽车充电的通讯报文之后,该怎样快速的获取我们所需的数据,并定位报文中暴漏出来的问题。
1、一份充电报文应该是什么样的
以下表格是在一次售后问题处理过程中截取的充电报文,该报文并非完整报文,只是截取了其中必要的几条报文组成一次不太完整的充电流程
表1
序号 |
帧ID(靠右对齐) |
数据长度 |
数据(HEX) |
1 |
0x1826f456 |
3 |
00 00 00 |
2 |
0x182756f4 |
2 |
a6 0e |
3 |
0x1801f456 |
8 |
00 01 00 00 00 00 00 00 |
4 |
0x1cec56f4 |
8 |
10 31 00 07 ff 00 02 00 |
5 |
0x1cecf456 |
8 |
11 07 01 ff ff 00 02 00 |
6 |
0x1ceb56f4 |
8 |
01 01 01 00 06 b0 05 02 |
7 |
0x1ceb56f4 |
8 |
02 0d ff ff ff ff 00 00 |
8 |
0x1ceb56f4 |
8 |
03 00 00 11 01 0a 0c 00 |
9 |
0x1ceb56f4 |
8 |
04 00 00 ff 00 00 00 00 |
10 |
0x1ceb56f4 |
8 |
05 00 00 00 00 00 00 00 |
11 |
0x1ceb56f4 |
8 |
06 00 00 00 00 00 00 01 |
12 |
0x1ceb56f4 |
8 |
07 15 04 07 e0 ff ff ff |
13 |
0x1cecf456 |
8 |
13 31 00 07 ff 00 02 00 |
14 |
0x1801f456 |
8 |
aa 01 00 00 00 00 00 00 |
15 |
0x1cec56f4 |
8 |
10 0d 00 02 ff 00 06 00 |
16 |
0x1cecf456 |
8 |
11 02 01 ff ff 00 06 00 |
17 |
0x1ceb56f4 |
8 |
01 9f 01 c6 0c d7 01 a6 |
18 |
0x1ceb56f4 |
8 |
02 0e 69 e3 03 58 0e ff |
19 |
0x1cecf456 |
8 |
13 0d 00 02 ff 00 06 00 |
20 |
0x1807f456 |
7 |
00 00 00 00 00 00 00 |
21 |
0x1808f456 |
8 |
4c 1d d0 07 d0 07 a0 0f |
22 |
0x100956f4 |
1 |
aa |
23 |
0x100af456 |
1 |
aa |
24 |
0x181056f4 |
5 |
a6 0e 00 00 02 |
25 |
0x1cec56f4 |
8 |
10 09 00 02 ff 00 11 00 |
26 |
0x1cecf456 |
8 |
11 02 01 ff ff 00 11 00 |
27 |
0x1ceb56f4 |
8 |
01 58 0e a0 0f 99 01 63 |
28 |
0x1ceb56f4 |
8 |
02 00 00 ff ff ff ff ff |
29 |
0x1cecf456 |
8 |
13 09 00 02 ff 00 11 00 |
30 |
0x1812f456 |
8 |
56 0e a0 0f 00 00 01 00 |
31 |
0x181356f4 |
7 |
17 38 00 37 0d 00 10 |
32 |
0x101956f4 |
4 |
00 00 40 f0 |
33 |
0x081e56f4 |
4 |
f0 f0 f1 f0 |
拿到一份充电报文之后首先要了解的是现场技术人员看到的是什么现象,是不能成功建立充电过程还是充电过程中出现自动停机等问题,如果现场人员描述问题不清又要怎么做
首先我建议在对充电流程不是很熟悉的技术人员在拿到报文的第一时间先标注出具体的报文代码,然后标注报文代码
表2
序号 |
帧ID(靠右对齐) |
数据长度 |
数据(HEX) |
报文代码 |
1 |
0x1826f456 |
3 |
00 00 00 |
CHM |
2 |
0x182756f4 |
2 |
a6 0e |
BHM |
3 |
0x1801f456 |
8 |
00 01 00 00 00 00 00 00 |
CRM |
4 |
0x1cec56f4 |
8 |
10 31 00 07 ff 00 02 00 |
BRM |
5 |
0x1cecf456 |
8 |
11 07 01 ff ff 00 02 00 |
|
6 |
0x1ceb56f4 |
8 |
01 01 01 00 06 b0 05 02 |
|
7 |
0x1ceb56f4 |
8 |
02 0d ff ff ff ff 00 00 |
|
8 |
0x1ceb56f4 |
8 |
03 00 00 11 01 0a 0c 00 |
|
9 |
0x1ceb56f4 |
8 |
04 00 00 ff 00 00 00 00 |
|
10 |
0x1ceb56f4 |
8 |
05 00 00 00 00 00 00 00 |
|
11 |
0x1ceb56f4 |
8 |
06 00 00 00 00 00 00 01 |
|
12 |
0x1ceb56f4 |
8 |
07 15 04 07 e0 ff ff ff |
|
13 |
0x1cecf456 |
8 |
13 31 00 07 ff 00 02 00 |
|
14 |
0x1801f456 |
8 |
aa 01 00 00 00 00 00 00 |
CRM |
15 |
0x1cec56f4 |
8 |
10 0d 00 02 ff 00 06 00 |
BCP |
16 |
0x1cecf456 |
8 |
11 02 01 ff ff 00 06 00 |
|
17 |
0x1ceb56f4 |
8 |
01 9f 01 c6 0c d7 01 a6 |
|
18 |
0x1ceb56f4 |
8 |
02 0e 69 e3 03 58 0e ff |
|
19 |
0x1cecf456 |
8 |
13 0d 00 02 ff 00 06 00 |
|
20 |
0x1807f456 |
7 |
00 00 00 00 00 00 00 |
CTS |
21 |
0x1808f456 |
8 |
4c 1d d0 07 d0 07 a0 0f |
CML |
22 |
0x100956f4 |
1 |
aa |
BRO |
23 |
0x100af456 |
1 |
aa |
CRO |
24 |
0x181056f4 |
5 |
a6 0e 00 00 02 |
BCL |
25 |
0x1cec56f4 |
8 |
10 09 00 02 ff 00 11 00 |
BCS |
26 |
0x1cecf456 |
8 |
11 02 01 ff ff 00 11 00 |
|
27 |
0x1ceb56f4 |
8 |
01 58 0e a0 0f 99 01 63 |
|
28 |
0x1ceb56f4 |
8 |
02 00 00 ff ff ff ff ff |
|
29 |
0x1cecf456 |
8 |
13 09 00 02 ff 00 11 00 |
|
30 |
0x1812f456 |
8 |
56 0e a0 0f 00 00 01 00 |
CCS |
31 |
0x181356f4 |
7 |
17 38 00 37 0d 00 10 |
BSM |
32 |
0x101956f4 |
4 |
00 00 40 f0 |
BST |
33 |
0x081e56f4 |
4 |
f0 f0 f1 f0 |
BEM |
假设我们此时并不知道本次充电现场的实际现象,那么报文代码标注之后要先关注四条报文,BHM或BRM、BCL、BST/CST、BEM/CEM
①:BHM或BRM
执行15年标准的车在通讯过程中发送给充电桩的第一条报文是BHM报文,即BMS握手报文。执行11年标准的车在通讯过程中发送给充电桩的第一条报文是BRM报文,即BMS和车辆辨识报文。那么通过这两条报文可判定出车辆对电动汽车的握手请求是否正确响应。
如果车辆未对充电桩握手请求报文做出响应,那么可对充电系统中的辅助电源(A+、A-)的通断以及输出电压的精度进行确认(特别注意执行11年标准的车两辅助电源有12V和24V两种,确认充电系统辅助电源正常后可与车辆工作人员协助检查车辆低压电源开关的状态(根据不同车型,低压电源开关在充电时的开关状态不同,同时要注意11标准的车辆中也有部分车型要求手动关闭高压预警开关的))
②:BCL
如果车辆对充电桩握手报文正常响应之后,通过是否有BCL报文判断车辆是否进入充电阶段。
如果车辆未进入充电阶段则可讲问题排查重点放在BRO和CRO两条报文上
如果有BRO报文并且报文数据域内容为AA(如表2报文第22行),则表示电动汽车BMS校验充电参数完成,对于车辆来说,充电桩发送的CML报文参数可用于车辆充电,如果没有BRO_AA报文,则可解析出BCP和CML报文中BMS和充电桩的输出信息判定具体是哪个参数不匹配
若参数不匹配
上表中15-19行为BCP报文,由于报文内容超过8字节,所以在报文传输时使用TPCM协议进行分包处理,但是具体的分包过程我们目前无需了解,只需知道帧ID为0x1ceb56f4的报文为具体数据帧,报文数据域的第一个字节代表数据包的序号,所以将BCP报文按照上述规则进行提取之后得到如下一帧报文
BCP报文如下
9f 01 c6 0c d7 01 a6 0e 69 e3 03 58 0e ff
根据《GB/T27930-2015》协议10.2.1内容进行解析可得如下数据
单体动力蓄电池最高允许充电电压:
报文数据9F 01,解析值0x019F * 0.01V=415 * 0.01V = 4.15V
最高运行充电电流:
报文数据 C6 0C,解析值(0x0CC6 * 0.1 -400)A = -73A(本协议中负值表示充电,正值表示放电)
动力蓄电池标称总能量:
报文数据 D7 01,解析值0x01D7 *0.1Kw.h = 47.1Kw.h
最高允许充电电压:
报文数据 A6 0E,解析值0x0EA6 * 0.1V = 375V
最高允许温度:
报文数据 69,解析值0x69-50℃ = 55℃
整车动力蓄电池荷电状态:
报文数据 E3 03 ,解析值(0x03E3 * 0.1)% = 99.5%
整车动力蓄电池当前电池电压:
报文数据 58 0E,解析值0x0E58 * 0.1V = 367.2V
CML报文如下
4c 1d d0 07 d0 07 a0 0f
根据《GB/T27930-2015》协议10.2.3内容进行解析可得如下数据
最高输出电压:
报文数据 4C 1D,解析值0x1D4C * 0.1V = 750V
最低输出电压:
报文数据D0 07,解析值0x07D0 * 0.1V = 200V
最大输出电流:
报文数据D0 07,解析值 (0x07D0*0.1-400)A = -200A
最小输出电流:
报文数据A0 0F,解析值 (0x0FA0*0.1-400)A = 0A
那么得到充电桩和和BMS的输出和充电参数之后,再通过具体数值判定是哪个参数不匹配就能找到问题所在,比如BMS最高允许充电电压和充电桩最小输出电压对比,再比如BMS最大充电电流和充电桩最小输出电流等。
若参数匹配
若收到BMS的准备就绪报文,而充电桩的准备就绪报文CRO_AA没有发出,则表示充电桩在准备就绪阶段发生问题或检测到错误,根据《GB/T27930-2015》协议附录A.6流程图所示着重检查以下几处可疑点
DC继电器外侧电压是否正确?
判定标准1、与通讯报文电池电压相差≤±5%
2、在充电机的最大最小输出电压之间
预充电压是否正确?
判定标准 比电池电压小1-10V
充电机DC继电器是否闭合?
判定标准 充电桩自测回路反馈状态
③:BST/CST
BST报文为BMS中止充电报文,BMS内部检测到故障、错误、触发停机条件等信息都将在该报文中体现出,如表2第32行报文内容如下
00 00 40 f0
根据《GB/T27930-2015》协议10.3.9内容进行解析可得如下数据
BMS中止原因:
原始数据00 = 0b(00 00 00 00),对照协议可知未触发BMS正常停机原因
BMS中止充电故障原因:
原始数据00 40 ,高低位反转后得到0x4000 ,转化为二进制数据得到
0b(01 00 00 00,00 00 00 00),对应协议得知为其他故障0x01
BMS中止充电错误原因:
原始数据 F0 = 0b( 11 11 00 00),对照协议可知未发生错误
CST报文为充电桩中止充电报文,充电桩内部检测到故障、错误、触发停机条件等 信息都将在该报文中体现出,CST解析方式与BST相同
④:BEM/CEM
BEM报文为BMS错误报文,该报文中体现在通讯过程中捕捉到的充电桩报文超时行为,如表2的33行报文内容如下
f0 f0 f1 f0
根据《GB/T27930-2015》协议10.5.1中定义可知,错误报文只取每个字节的低4位,所以在解析此条报文只需看低四位即可,高四位默认0b(1111) = 0xF0
所以可以看出只有第三个字节0xF1中有错误报出,那么只解析这一个字节即可,0xF1 = 0b(11 11 00 01),说明第三字节第一、第二位为01,对照协议可知表示接收充电机状态报文超时
CEM报文为充电桩错误报文该报文中体现在通讯过程中捕捉到的BMS报文超时行为,CEM报文的解析方式与BEM相同。
从上面报文解析过程不难看出,技术人员实际在现场调试过程中抓取报文的时候,由于复杂的环境因素并不能保证每次斗争抓取完整的充电报文,所以就需要我们从一份不完整的报文中提取一些关键信息,从而确定本次充电的主要问题。