“数采仪上显示连接成功,指示灯也正常,平台那边就是一条数据都没有。”这是近几个月被问得最多的一句话,集中在HJ212-2025标准切换前后。先把结论说在前面:这类故障八成不在网络上,而在报文里——设备把包发出去了,平台没认,或者认了没入库。真正断网、丢包的情况反而少见。
TCP 显示连接成功,只证明三次握手完成了,跟“数据被正确解析”是两件事。所以排查顺序要从报文往网络走,不是反过来。
一、能连上却不入库,通常卡在这几个字段
HJ212 的报文结构是 ## 加数据段再加 CRC,数据段里 QN、ST、CN、PW、MN、Flag、CP 逐项排开。现场遇到的“连上没数”,绝大多数落在 CP 和 MN 上。
- MN:24 位设备唯一标识,必须和平台备案表一字不差。少一位、大小写不同、带了空格,平台可能照样回确认,但数据不入库。
- CN 命令编码:1011 小时数据、1014 实时数据、9011 设备运行状态、9021 心跳是常用的几个。版本切换时如果有调整,数采仪还按老编码发,平台按新规则解析就会静默丢弃。2000 至 2999 是自定义段,两边没用同一份约定时最容易各说各话。
- CP 里的 DataTime 与 Flag:DataTime 要是 yyyyMMddHHmmss 格式;Flag 标记位(N、M、D、C 等)缺失或给了平台不认的值,整条 CP 会被判为无效数据。
- QN 请求编码:17 位时间戳,重复的会被平台按去重规则只留一条,看起来就像丢数。
二、分四层看,问题落到哪一层
协议层
- 命令编码、字段顺序、字段长度与平台约定不一致。
- CRC 校验:数据段做 CRC16,取两位十六进制。大小写、是否计入长度字节、高低位顺序,两边必须一致,否则平台整包丢弃,而且多半不回错误码。
- 字符编码:站点名称、点位描述含中文时,GBK 和 UTF-8 不一致会直接解析失败。
网络层
- 平台要求心跳 9021 保活,如果中间 NAT 会话老化时间比心跳间隔短,就会出现“看着连着、实际断了”的假在线。
- 防火墙放行了建链,但长连接被中途重置。
- 4G 信号虚高,模块重连后没有重新注册。
设备层
- ST 系统编码、PW 访问密码与平台不匹配。
- 设备本地时间没同步,DataTime 落在平台可接受窗口之外。
- 本地存储满,历史补传队列堵住,实时数据也被拖慢。
平台层
- 解析服务已按新版升级,但设备备案表没同步更新。
- 数据其实收到了,入库后按“有效数据”规则过滤掉,界面上看不到。这种要查平台侧原始报文日志才能确认。
三、为什么先看报文,后查网络
顺序本身就是经验。连接成功已经把链路层和传输层的问题排掉大半,先去翻交换机、重启路由器,多半是白忙。合理的顺序是:先看数采仪发送日志里的原始报文,再核设备参数,再核平台备案,最后才回头查网络细节。
先看报文还有一个好处:一包就能看出是“没发出去”还是“发了没被认”。前者查设备与网络,后者查字段与平台。
四、每步的现象、判断与动作
- 现象:日志里能看到完整报文,## 开头、CRC 结尾。判断:设备在正常发送。动作:把一包原文复制出来,逐字段对平台给的对接确认单。
- 现象:报文里 MN 与备案不一致。判断:设备标识错。动作:改 MN 后重启通讯,观察 15 分钟内是否有 1011 或 1014 入库。
- 现象:报文正常但平台侧无接收记录。判断:可能卡在防火墙、端口或平台解析服务。动作:让平台侧提供原始报文接收日志,确认到底有没有收到包。
- 现象:平台有接收记录但无数据。判断:解析或入库过滤。动作:核对 Flag 与 DataTime,确认是否被判为无效数据。
五、三个容易踩的坑
第一,把“连接成功”当成“数据已入库”。指示灯和 TCP 状态只说明链路通,与解析结果没关系。很多现场在这一步就停了,后面全在错误方向上折腾。
第二,只改设备不改平台,或者反过来。HJ212-2025标准切换时,最怕单边升级:数采仪按新规则发,平台还按老规则解,字段错位后平台往往不报错、直接丢。升级前先跟平台确认版本号和命令编码表,这一步省不得。
第三,抓到心跳就以为万事大吉。9021 心跳只能证明连接活着,证明不了业务报文正确。要验证数据通不通,得看有没有带 CP 的 1011 或 1014,以及平台有没有回对应的确认。
六、FAQ
我这个情况到底要不要传?
只要属于联网监管范围内的点位,就得传。判断依据不是设备型号,而是你的排放口和监控因子是否在要求范围内。拿不准就把点位清单发给属地管理部门确认,别自己猜。
平台说连接成功,怎么就是查不到数?
先要一包原始报文。报文里 MN、CN、CP 三个字段对不上对接确认单,基本就能定位。平台说“连接成功”,通常只是指 TCP 层。
MN 编码随便填一个行不行?
不行。MN 是设备唯一标识,平台靠它把数据挂到具体点位。填错不会立刻报错,但数据会全部挂空,排查起来最费时间。
升级到 HJ212-2025标准是不是必须换数采仪?
不一定。关键看现有设备的固件是否支持新版字段和命令编码。支持就升级固件并重新核对参数,不支持再考虑更换。换之前先拿对接确认单测一轮,别整批换完才发现字段还是不齐。
历史数据补传平台收不到,是谁的问题?
先看补传用的命令编码和时间范围是否符合平台约定,再看 DataTime 是否超出平台允许的补传窗口。这两项排掉之后,再让平台侧查接收日志,比互相推责任快得多。