1,首先抓取故障报文,建议保存格式为.CSV,便于分析报文排查故障2,打开报文筛选出对我们分析故障有利的数据并对照协议解析报文例如,百路佳项目现场工程师经常反应掉高压问题即继电器断开,其中绿控协议里有一帧报文就显示出了继电器状态,报文ID:0x18FF14F3,我们只需要找到这一帧报文解析一下就知道继电器状态了。ID:18FF14F3,其中 0xFF14是 PGN,PGN表示参数组编号, 0xF3 是源地址表示数据是由哪个模块发出来,绿控协议规定0xF3 表示 BMS,所以凡是BMS 发出来的报文,报文ID 最后一个字节肯定是0xF3。协议内容: 有些内容无需用一个字节(一个字节有八个位)来表示甚至用两个位就可以表示出来,例如总正辅助触点状态,有些内容用一个字节不能完全表示甚至用两个字节来表示,例如 SOC,至于协议内容是选取一个字节、两个位还是两个字节来表示通常与表示数据范围有关。Byte1 Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0 0xF 总负辅助触点状态总正辅助触点状态Byte2 Bit15 Bit14 Bit13 Bit12 Bit11 Bit10 Bit9 Bit8 SOC低字节Byte3 Bit23 Bit22 Bit21 Bit20 Bit19 Bit18 Bit17 Bit16 SOC高字节Byte4 Bit31 Bit30 Bit29 Bit28 Bit27 Bit26 Bit25 Bit24 SOH Byte5 Bit39 Bit38 Bit37 Bit36 Bit35 Bit34 Bit33 Bit32 0x1 Fault Active/Severity Indicator Battery State Byte6 Bit47 Bit46 Bi45 Bit44 Bit43 Bit42 Bit41 Bit40 Isolation Resistance/ 绝缘电阻Byte7 Bit55 Bit54 Bi53 Bit52 Bit51 Bit50 Bit49 Bit48 0xFF Byte8 Bit63 Bi62 Bi61 Bit60 Bit59 Bit58 Bit57 Bit56 Message Checksum/消息校验和Message Counter/ 计数器注意协议里Start Bit Length(bits )start bit :0, length 2,从第 0 位开始长度2 个 bit,所以第 0 位第 1 位表示总正辅助触点状态start bit :32, length 4,从第 32 位开始长度4 个 bit,所以第 32 位第 33 位第 34 位第 35 位表示继电器状态start bit :8, length 16 ,从第 8 位开始长度16 个 bit,所以第 8 位一直到第23 位表示 SOC且第 8 位到第 15 位表示 SOC的低字节,第16 位到第 23 位表示 SOC的高字节从报文里筛选出18FF14F3,数据 >>自动筛选点击确定之后第二字节第三字节表示SOC,低字节在前,0x47E0 转成十进制18400 比例为 0.0025,单位 %,所以实际上SOC值为 18400*0.0025% = 46%,即 SOC为 46%。继电器状态第五个字节低四位表示,上面报文第五个字节为0x83,二进制如下:Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0 1 0 0 0 0 0 1 1 低四位十进制为3,查表“ 3”表示 BATT_STATE_READY即已上高压状态Bit4~bit6 表示 BMS 故障等级,这里为0 表示 BMS 没有上报故障