客户原话:“数采仪显示连接成功,平台就是没数据。”
结论:最可能出在协议层——命令码、MN号或校验方式与平台不匹配,而不是网络断了。
一、先分四层看
- 协议层:HJ 212 报文中的 CN 命令码(实时数据 2000–2999、历史数据 3020、超时重发 1014)、MN 设备标识、ST 系统编码、CRC 校验字段是否与平台约定一致。
- 网络层:TCP 连接虽通,但平台端口、防火墙白名单、NAT 映射可能只放行了心跳,没放行数据包。
- 设备层:串口参数(波特率、数据位)、采集周期、数据标识配置错误,导致无有效数据可发。
- 平台层:MN 号未注册、协议版本解析规则不同、数据表字段不匹配。
二、排查顺序
先抓包看平台是否收到报文——这是分水岭。收到但解析失败,查协议层;没收到,查网络和设备层。
- 第一步:在数采仪侧抓包,确认是否有 QN、ST、CN、PW、MN、Flag、CP 字段的报文发出。
- 第二步:比对 CN 命令码。平台若只收 3020 历史数据,设备却只发 2000–2999 实时数据,就会“连接成功但无数据”。
- 第三步:核对 MN 号与平台注册信息,一字不差。
- 第四步:检查校验方式(CRC16)和 1014 超时重发参数。
三、三个容易误判的坑
- 坑一:“连接成功”不等于“数据可达”。TCP 通只证明链路层握手成功,应用层报文可能被平台丢弃。
- 坑二:一上来就换设备或改 IP,不抓包,结果把配置改乱。先抓包再动手。
- 坑三:只怪数采仪,忽略平台侧 MN 号未激活或协议版本不匹配。让平台方查接收日志最直接。
四、FAQ
问:我这个情况到底要不要传?答:看平台是否收到报文。抓包有报文但平台无数据,就要传;没报文先查网络和采集配置。
问:数采仪显示连接成功,平台没数据,是不是平台坏了?答:不一定。先让平台查接收日志,确认有没有收到 MN 号对应的报文,再判断。
问:改了 MN 号还是不行,怎么回事?答:检查 ST 系统编码、CN 命令码和校验方式是否同步修改,平台侧是否重新注册。
问:用 3020 补历史数据,平台只显示实时数据,为什么?答:平台可能只解析 2000–2999 实时数据,3020 需平台开启历史数据接收和补传规则。