总磷总氮在线监测仪传不上去,多半卡在CP数据区

“数采仪上显示连接正常,仪表那边数据也在跳,可平台这边总磷总氮一整天都是空的。”

先给结论:这类上传异常,多数时候网络没有断,问题出在报文没有被平台认下来。常见就三种:MN 设备标识和平台备案对不上,CP 数据区里少了总磷或总氮那一项,QN 时间戳偏差过大被平台判为无效。真正物理断网的比例,比大家想得低得多。

一、总磷总氮在线监测仪的上传链路是什么样的

一台总磷总氮在线监测仪一般不会直接连平台。它通过 RS-485、RS-232 或 4-20mA 把测量值交给环保数采仪,数采仪按 HJ 212-2017 组报文,走 4G 或有线网络发到平台。这台设备的特点是“一表两因子、间歇出数”:总磷和总氮是两个污染物编码,总氮还要经过消解,一个测量周期本来就不是秒级的。所以判断“有没有在传”,不能只看屏幕上的实时值。

报文主干是这样的:QN=时间戳;ST=系统编码;CN=命令编码;PW=密码;MN=设备标识;Flag=标志位;CP=&&数据区&&,末尾带 CRC 校验。日常上传实时数据走 1011/1012 这类命令,补传历史数据落在 2000–2999 命令区间,设备运行状态另有 3020 这类命令上报。任何一段对不上,平台都不会入库。

二、按四层拆,问题通常出在这几处

协议层

  • MN 与平台备案不一致。台账迁移、换表、改站房编号后,最容易漏改这一位。
  • CP 数据区缺项。只带了总磷,没带总氮;或者只传了实时数据(Rtd),没传分钟数据(Min)和小时数据(Hour),平台按小时均值展示时就是空的。
  • QN 时间戳用的是数采仪本地时间,仪表时间没同步,偏差超过平台阈值,整条数据被丢弃。
  • CRC 校验算错。数采仪日志里显示“发送成功”,平台侧却是丢包,两边说法完全相反。
  • Flag 数据标志位没置对,平台认为这条不算有效数据。

网络层

  • TCP 长连接处于半开状态。NAT 表项老化后链路其实已经断了,数采仪还显示“已连接”,靠 CN=1000 心跳维持,心跳没有收到应答就该重连。
  • 平台端口只开了单向,或者现场防火墙把回包拦了。
  • 4G 路由或 DTU 掉线后没有自动重连。

设备层

  • 仪表 Modbus 从站地址、寄存器偏移配错,数采仪读回来的全是 0 或满量程值。
  • 仪表处在校准、维护或试剂耗尽状态,输出的是固定值。
  • 量程和单位不一致,mg/L 与 μg/L 混用,平台显示 0.00。
  • 总氮消解周期长,两小时才出一个数,被当成“断传”。

平台层

  • 平台侧有数据有效性审核,异常值被置为无效后不展示。
  • 平台只统计小时数据,分钟数据到了但界面上看不到。
  • 平台没有回 1013 这类应答,数采仪重发队列越堆越长。

三、为什么建议先查平台,再查数采仪,最后才爬塔

顺序本身就是经验。先看平台报文日志,一分钟就能分清是“根本没收到”还是“收到了但没入库”,这两种情况的排查方向完全相反。确认收到了再回来看数采仪的发送记录和补传队列,只有前面都对得上,才值得去现场核对仪表读数。网络和接线放在最后,一是占的比例小,二是现场核实最费时间。

四、每一步看什么、怎么处置

  • 平台日志里搜不到 MN:说明链路层没通,或者 MN 根本对不上。动作是先测端口连通性,再逐位核对 MN。
  • 平台收到了报文但入库为空:看 CP 里有没有总氮那一项,看 Flag 位。动作是补全数据项,重发。
  • 报文被丢在 CRC 校验:动作是核对数采仪与平台两端的字符集和校验设置。
  • 数采仪显示已连接但心跳无应答:动作是观察重连日志,必要时重启通信模块。
  • 数采仪读到的仪表值恒定不变:动作是现场确认仪表状态,查试剂、查校准、查 485 接线极性。
  • 只有总磷没有总氮:先查两台仪表的通道配置,别急着判断仪表坏了。

五、三个最容易误判的坑

1. 屏幕显示“已连接”就跳过网络

这个“已连接”只代表 TCP 曾经握手成功,长连接半开时它照样显示正常。真正的判断依据是心跳有没有应答。

2. 把总氮的测量周期当成断传

总磷总氮在线监测仪不是连续出数的设备。总氮要消解,周期本来就长,短时间没有新值很正常。要看的是历史数据有没有按周期补齐,而不是盯着某一分钟。

3. 单位或量程不一致,看着像 0

数采仪配置的量程和仪表实际量程不一致时,平台上就是 0.00 或者满量程,很容易被当成仪表故障,实际只是配置问题。

六、客户常问的四个问题

“我这个情况到底要不要传分钟数据?”

以当地平台要求为准。多数平台要求实时数据和分钟数据同时上,只传实时数据的话,界面上的小时均值往往是空的。

“数采仪显示已连接,平台就是没数,是不是平台的问题?”

不一定。先看平台日志里能不能搜到你的 MN,搜得到就是数据项的问题,搜不到再查链路。

“总磷有数、总氮一直是空的,是不是表坏了?”

先查通道配置和污染物编码映射,这两项配错的表现和仪表故障一模一样。

“停电重启后断了半天,要不要补?”

要补。用 2000–2999 命令区间把历史数据补上去,比事后解释省事。