排污单位自行监测数据传不上平台,八成卡在这三处

「数采仪屏幕上显示连接成功,平台那边一条数据都没有。」这是做排污单位自行监测的运维最常碰到的一句话。先说结论:多数情况不是网络断了,而是 HJ 212 报文里的 MN 编号、污染物因子编码、QN 时间戳这三样里有一样对不上——平台其实收到了包,只是没能入库,或者入库后被判成了无效数据。

第一步永远是分清「没收到」还是「收到了不认」

这两种情况处置方向完全相反。让平台侧发一条 1014(提取小时数据)召测,或者下发 3020 触发现场机立即采一轮,看应答:

  • 命令超时、无应答 → 链路不通或设备不在线,往下查网络层、设备层。
  • 有应答、但数据条数为 0 → 现场机本地就没存下数据,问题在数采仪到仪表这一段。
  • 有应答、数据也回来了,平台实时列表里却没有 → 报文字段问题,重点查 MN、ST、因子编码、QN。

四层原因,一层层往下捋

协议层:包能到,不代表能入库

  • MN 编号与平台备案的不一致。数采仪改过 MN,平台侧没同步,包会被直接丢弃,现场日志里看不出异常。
  • 污染物因子编码不匹配。同一个 COD,有的平台用短编码,有的用长编码,编码对不上就是「传了但显示为空」。
  • QN 时间戳格式错。HJ 212 要求 QN 精确到秒或毫秒,数采仪断电重启后没对时,时钟跑偏,补传的数据会被判成「未来时间」或「超期数据」。
  • CRC 校验错。数据段里出现 &、&& 等特殊字符没转义,整包校验失败,平台连解析都不做。
  • ST 系统编码选错(污水/废气),废气的折算浓度、含氧量字段对不上,同样判无效。

网络层:连接成功只说明 TCP 通了

  • 专网卡 APN 错,或平台侧 IP 白名单没加这台设备,TCP 能握手,应用层一直重连。
  • NAT 会话老化,长时间无数据后连接变成半开状态,看着「在线」,实际发不出去。
  • 4G 信号弱,CSQ 长期偏低或频繁掉线,数据积压在数采仪本地缓存里出不来。

设备层:数采仪没问题,不代表仪表没问题

  • RS485 接线虚接、波特率或从站地址与仪表不一致,采上来的是空值或零值。
  • 仪表与数采仪时间不同步,小时数据凑不满有效分钟数,明明有数却组不成一条小时值。
  • 停排期间没置停运标记,数据一直传 0,被平台判成异常低值。

平台层:报文对了,规则也可能卡住

  • 排污单位自行监测的上报口径各地不同,小时数据要求有效分钟数据达到一定条数,缺分钟值的会被标无效。
  • 废气折算、量程设置两端不一致,同一份原始数据算出来的结果不同,看着像「数据不实」。
  • 部分省份的平台对补传数据单独打标,实时报表里看不到,要进补传记录里查。

排查顺序:先召测,再 ping,最后动仪表

顺序本身就是知识。先召测,是因为一次 1014 就能把「网络问题」和「报文问题」分开;先看数采仪日志,是因为日志里有收发原始报文,比在平台上猜快得多。前面都排除了,才去动仪表和接线。

  • 现象:召测 1014 超时。判断:链路不通或数采仪离线。动作:在数采仪上 ping 平台 IP、telnet 平台端口;不通就查 APN、专网卡、白名单。
  • 现象:召测有应答但条数为 0。判断:数采仪没采到数。动作:核对 RS485 参数和仪表从站地址,用 Modbus 调试工具直读一次寄存器。
  • 现象:应答有数据、平台不显示。判断:字段对不上。动作:导出报文日志,逐字段比对 MN、ST、因子编码、QN,再请平台侧查入库日志。
  • 现象:实时有数、历史缺段。判断:补传没走通。动作:确认断网期间是否开了本地缓存,补传时间戳是否落在平台允许的窗口内。

三个最容易踩的坑

坑一:看到「连接成功」就当链路没问题

这四个字只代表 Socket 建起来了,协议层照样可能被平台回错误应答。真正要看的是应用层有没有应答码。

坑二:一没数据就换数采仪

换完还是没数据,多半是平台侧备案信息或因子字典的问题。先花十分钟让平台查一下入库日志,比拆设备划算。

坑三:拿实时数据去补历史

补传必须走历史数据命令,QN 用数据实际产生的时间。用实时报文补历史,平台会按「时间不符」直接丢弃,看着像补传失败,其实是发错了包。

FAQ

问:数采仪上显示连接成功,平台就是没数据,是不是平台坏了?
先别怀疑平台。发一条 1014 召测,有应答说明链路通,问题在报文字段或平台入库规则上。

问:断网两天,数据补传上去平台不认,说时间不对,咋回事?
看两处:QN 是不是数据实际产生的时间,有没有超过平台允许的补传期限。另外数采仪断电后没对时,时间跑了也会这样。

问:我这个情况到底要不要装数采仪,直接用仪表传行不行?
看仪表支不支持 HJ 212、能不能存历史数据。只传实时值、断网就丢数的,排污单位自行监测这块很难过。

问:平台说我们数据超标,可我们那天停产了,怎么办?
先确认停产期间有没有置停运标记。不置标记只传 0,平台按正常数据判定;有标记的话,可以走无效数据说明流程。