如何导出并读懂 JK-BMS 详细日志(Detail Log)

JK-BMS 详细日志(Detail Log)是一长串事件列表,每个事件都附带当时电池组的快照。它会告诉你 BMS 什么时候切断了充电或放电、是哪一节单体引起的,以及当时的电压、电流和温度。先从 JK app 把它导出为文本文件,然后可以手工阅读,也可以在日志分析页中打开,该页面会把每次保护动作与对应的解除配对,并指出可能的原因。

详细日志是什么

app 导出的文件名类似 detaillogs-20261001171819.txt,名称里带有导出的日期和时间。虽然扩展名是 txt,它其实是 CSV。第一行是列名,其余每一行是一个事件。

事件行包含:时间、消息(例如 "Cell 01 over charge protection")、充电 MOS、放电 MOS、均衡器和加热器的状态、最高和最低单体的编号及其电压、总电压、电流、剩余容量和满容量、各处温度以及加热电流。

较旧的固件只保留约 50 条的短事件列表,写满后会滚动覆盖,PC 监控软件也只记录它们自己的数据。详细日志则是 BMS 自己写入的另一份更长的记录,因此即使什么都没连接,也能覆盖几天甚至几周。

从 app 导出

  1. 在 JK app 中通过蓝牙连接 BMS。
  2. 打开设备界面,找到日志部分。不同版本 app 的菜单名称略有差别。
  3. 选择详细日志并导出,app 会保存为 .txt 文件。
  4. 把文件发送到电脑,或直接在手机上打开。这一步不需要 BMS 一直保持连接。

读懂各列

有几处细节很容易搞错。

  • 消息文本中的单体编号从 1 开始,所以 "Cell 01" 是第一节单体。最高和最低单体列从 0 开始,对比时要加 1。两者也并不总是一致:快照可能比事件滞后,所以消息里点名的单体不一定就是此刻该列显示的那节。在示例中,写着 "Cell 01" 的行里,最高单体列显示 0 的只有 1083 行中的 366 行,其他行最高可到 7 号单体。
  • Boot(启动)行的电压和电流列都是零。BMS 写入这些行时还没有测量任何数据。
  • 时间校准行出现在 app 连接并设置时钟的时候。它们标记的是你自己的连接会话,不是故障。
  • 日期早于 2021 年的行,通常是 2020-01-01,表示时钟尚未设置。它们是真实事件,只是时间未知,所以分析在计算时间点和持续时间时会忽略它们。
  • 一些旧导出文件中的电压只有一位小数,精度太低,无法判断单体压差。
  • 分析页接受最大 10 MB 的文件,并会丢弃彼此相隔不到 2 秒的重复行。

消息类别

这些消息可分为几类。

  • 保护动作与解除:过压、欠压、充电和放电过流、短路、充电和放电的过温或低温,以及 MOS 过温。每次保护动作通常都有一条对应的解除记录。
  • 用户和 app 操作:电源按键、紧急开关、app 关闭 BMS。
  • 远程开关:app、RS485 或 CAN 打开或关闭充电、放电。
  • 电源事件:启动(Boot)、关机和休眠。
  • 故障:异常状态,例如串数错误、协处理器错误或 MOS 故障。这些不是普通的保护动作,值得认真对待。

过压和欠压保护会点明是哪一节单体,这是整个文件里最有用的信息。

保护事件段(episode)

一次保护动作加上它的解除,构成一个事件段。两者之间的时间就是保护持续的时长。从解除到同类型下一次保护动作的时间,则是重新触发间隔。

事件段能解释为什么一个问题会产生上千行记录。如果充电器不断把某节单体推过限值,BMS 就会保护、停顿片刻后解除,然后再次保护。每循环一次增加两行。这是同一个问题在反复出现。

Boot 行会结束所有未关闭的事件段,因为 BMS 已经丢失了状态。直到文件末尾都没有解除的保护动作则保持未关闭。

常见诊断

下面是分析页会查找的模式,以及它使用的数字。

充电器超过单体限值(充电器电压过高)。 示例日志有 1090 次过压保护,其中 1083 次发生在 01 号单体,最高和最低单体之间的压差大多低于 10 mV。这说明各单体是均衡的,是充电器把电池组充得过高;具体数字和解决办法见单体过充保护为何反复触发。

充满端的弱单体。 如果至少 80% 的保护动作点名同一节单体,且压差达到 50 mV 或更大,那节单体就是问题所在。请先看压差,因为只看被点名的单体可能被误导。查看均衡设置,并检查这节单体及其接线。这种模式在数据中的表现见在日志中找出弱单体。

欠压。 底部同样适用这种区分。某节单体远低于其他单体,说明它是弱单体。压差很小则说明整组电池已经放空,往往是逆变器的截止电压设得太低。请把单体欠压保护(UVP)和 SOC-0% 电压与逆变器停机的点作比较。

循环触发。 10 次或更多过压保护且重新触发间隔的中位数低于 60 s,会被报告为循环触发。需要检查的字段是单体过压恢复(OVPR)和请求充电电压(RCV)。

温度和短路。 温度保护会显示达到的峰值。MOS 温度达到 70 °C 或更高但没有触发保护,会被标为警告。任何短路保护都属于严重级别。请检查负载、接线,以及过流与短路设置中介绍的延时设置。

意外重启。 如果某条 Boot 行之前 60 s 内没有关机或断电记录,就算作意外。示例中有 7 次 Boot,其中 2 次是意外的,因为另外五次都跟在 "Button to turn it off" 行之后。请检查 BMS 的供电和接线,并参阅读懂重启和电源事件。

容量变化。 如果日志中满容量发生变化,例如从 200 Ah 变成 334 Ah,说明有人修改了容量设置。关于 BMS 如何跟踪剩余容量,请参阅 SOC 校准。

在浏览器中分析你的日志

打开日志分析页,把 .txt 文件拖进去。文件在你的浏览器中读取,不会上传。你会得到事件段、各单体的保护次数,以及上面介绍的各项结论。

你还可以附上同一台 BMS 的 .jkcfg 导出文件。页面随后会把你的阈值画成图表上的线,并用它们交叉核对日志:保护电压对比单体过压保护(OVP)、串数、容量、充电器设定值对比串数 × 请求充电电压(RCV)、接近过流限值的峰值电流,以及接近 MOS 限值的 MOS 温度。把它发现的问题在编辑器中改好,最好通过蓝牙写入修改;如果 BMS 拒绝导入的文件,请参阅 JK BMS 发送失败。

相关指南

全部指南