一位运维工程师的原话是:“数采仪显示连接成功,平台就是没数据。”我的判断是:最可能的原因不是网线或4G完全断开,而是HJ212-2025标准对接中,链路层“连上了”,业务报文却没有被平台接收或入库。先别急着换模块,优先核对MN、PW、CN、Flag、CP、DataTime,以及平台侧的分组参数。
一、先把“连接成功”拆开看
“连接成功”通常只代表TCP三次握手完成,或者数采仪登录到了平台端口。它不等于平台已经认可这条报文。HJ212报文常见结构是“##+数据段长度+数据段+CRC16”,数据段里QN、ST、CN、PW、MN、Flag、CP、DataTime任一字段对不上,平台都可能收包但不入库。
- 协议层:CN命令码是否落在上传数据命令段2000–2999;状态类是否用3020;时间交互是否走1014;Flag标志位、CP数据段、DataTime格式是否与平台样例一致。
- 网络层:端口、白名单、APN/VPN、DNS、NTP。TCP能通不代表平台业务端口放行,也不代表时间同步正常。
- 设备层:RS485接线、仪表地址、串口参数、采样周期;RtdInterval、MinInterval、OverTime、ReCount是否被改乱。数据没进CP,平台当然没数据。
- 平台层:MN未注册、PW不对、CN未开通、分组参数不一致、平台应答超时或入库过滤。部分平台对HJ212-2025标准的接入字段要求更细,旧模板直接套用容易漏字段。
二、排查顺序为什么这样排
顺序本身比“多试几次”有用。先看平台有没有收到原始报文,再看有没有应答,最后才回到设备侧查采集。因为连接成功已经说明链路大概率可达,先查平台日志能最快区分“没收到”和“收到了不认”。
- 现象:平台无原始报文。判断:网络、端口、白名单或APN问题。动作:在数采仪侧临时抓包,核对目标IP端口,把平台出口地址加入白名单。
- 现象:平台有原始报文但无正确应答。判断:MN、PW、CN、Flag不匹配。动作:核对平台注册的MN和密码,用1014做时间交互验证,状态类按3020样例比对。
- 现象:平台有应答但数据为空。判断:CP字段缺失、因子编码不对、DataTime格式不一致。动作:拿平台样例报文逐字段对照,先保字段完整再谈加密和压缩。
- 现象:平台有数据但前台不显示。判断:分组、权限、入库延迟或统计口径。动作:查平台接收日志和入库日志,不要继续改数采仪。
三、三个容易误判的坑
- 把TCP连接成功当成协议通。只说明三次握手,平台可能连一个完整数据段都没解析。
- 只改IP和端口,不改MN、PW、Flag。平台常按MN分组,MN对不上,报文再完整也会被丢。
- 看到校验错就只怀疑CRC16。先看“数据段长度”字段与CP实际长度是否一致,长度字段错了,CRC也会跟着错。
四、FAQ
- 问:我这个情况到底要不要传?答:先看平台是否已注册MN、2000–2999命令段有没有报文、当地是否按HJ212-2025标准要求接入。不要一刀切,先看平台接收日志。
- 问:连接成功但平台没数据,先重启数采仪有用吗?答:重启只能排除临时进程卡死。先看平台原始报文和应答,再决定是否重启。
- 问:1014和3020都要发吗?答:看平台要求。时间交互和状态上送不是越多越好,关键看平台有没有正确应答。
- 问:CRC校验对了为什么还不入库?答:CRC只保证报文完整。MN、PW、Flag、CP、DataTime任一不一致,平台都可能过滤。