江苏环保数采仪显示连接成功平台无数据怎么排查

先给结论:链路通了,不代表业务通了

客户的原话是这么说的:“数采仪界面上显示连接成功,心跳也在跳,可平台那边一条数据都查不到。”这种情况在我们接到的江苏环保数采仪报障里出现频率最高,结论往往就一句话:TCP 链路建起来了,但 HJ212 的业务报文没有被平台接收,或者被平台接收后判定为无效丢弃了。连接成功只说明四层网络握手通过,业务是否真正上报,要看握手报文、命令码、MN 编码、CRC 校验这一串是否全部对得上。只要有一个字段不对,平台就会“收而不认”,现场看到的依旧是“在线”。

现象拆开看:四层里每一层都可能断

协议层

  • 平台下发的提取指令(1013 提取小时数据、1014 提取日数据)现场机没有正确应答,握手环节就断了。
  • 上传报文的 CN 命令码用错:实时数据用 2011,小时数据用 2061,命令码和 CP 数据段内容对不上,平台解析直接失败。
  • 报文结构缺字段。正常组包是“##”开头,依次带 QN 请求编号、ST 系统编码、CN 命令码、PW 访问密码、MN 设备编号、Flag 数据标志位、CP 数据段,最后是 CRC 校验和“&&”结束符。少一个分号或字段顺序错位,整包作废。
  • CRC 校验不通过。校验范围是从“##”之后到 CP 数据段结束,多算或少算一个字符,平台侧不会提示“校验错误”,只会静默丢弃。
  • PW 访问密码与平台建档时登记的不一致,平台回错误应答,现场机不显示。

网络层

  • 用的是普通流量卡而不是专网卡,IP 白名单没报备,平台侧防火墙直接拒绝。
  • 能 ping 通服务器,但平台只开放了指定业务端口,端口不通,链路照样是“假在线”。
  • NAT 会话超时导致长连接被中间设备回收,数采仪以为还连着,实际早已断开。
  • 4G 信号弱、丢包严重,报文发出去了但重传次数用完也没到达。

设备层

  • MN 设备编号填错,或者换了新设备没在平台重新备案,数据被挂到别的排口下面。
  • ST 系统编码选错,废水和废气不是同一套编码,平台按类目匹配,对不上就不入库。
  • Flag 数据标志位没打开对应位,现场机认为“这类数据不需要上报”。
  • 参数改完没有重启采集程序,运行中的还是旧配置。

平台层

  • 企业在平台上还没建档,或者排口、监测因子没配全。
  • 平台侧设置了数据有效性规则,比如时间标签超前、缺因子,会被审核环节过滤掉。
  • 平台在做升级或迁移,接收服务短暂不可用。

排查顺序:为什么先查协议再查网络

顺序本身就是知识。很多运维一上来就 ping、就换卡,折腾半天,问题其实在报文里。先近后远、先软后硬:先在数采仪本地看原始报文,确认组包对不对;再看平台侧有没有收到“脏包”;最后才动网络和硬件。因为网络排查成本最高、最容易误伤生产,而报文问题在本地几分钟就能看出来。

具体顺序是:第一步,在数采仪调试口或日志里抓一包原始报文,核对 QN、ST、CN、PW、MN、Flag 和 CRC;第二步,让平台侧查该 MN 的接入日志,看有没有收到报文、是被拒还是被丢;第三步,用业务端口做 TCP 连通性测试,而不是 ping;第四步,检查卡状态、APN、白名单和信号强度;第五步,回平台核对建档信息与实际参数是否一致。

每一步怎么判断、怎么处置

  • 看报文:如果 MN 与自己登记的不一致,或者 CN 是 2011 但 CP 里装的是小时数据,判断为组包错误,动作是改参数后重新下发配置并重启采集程序。
  • 看 CRC:如果平台日志显示收到包但解析失败,判断为校验或字段格式问题,动作是逐字段比对分隔符和结束符,必要时用抓包工具做一次人工校验。
  • 看平台接入日志:日志里完全没有这个 MN,判断为链路或端口问题;有连接记录但没有数据入库,判断为协议或建档问题。
  • 测端口:ping 通但业务端口连不上,判断为白名单或端口未开放,动作是联系平台侧确认放行。
  • 看信号与流量:信号强度长期偏低、流量消耗异常,判断为链路不稳,动作是换天线位置或改用专网卡。

三个最容易踩的坑

第一个坑:ping 通就当网络没问题。ICMP 和业务端口是两回事,平台常常只放行指定端口和白名单 IP,ping 得通、连不上,这种情况在江苏环保数采仪上非常典型。

第二个坑:一看平台没数据就狂补历史。补传前没核对 MN 和 ST,补上去的数据要么落到别的排口,要么被平台判为无效,越补越乱。正确做法是先补一条测试数据,确认能入库再批量补。

第三个坑:把“连接成功”当成“上报成功”。不少设备的在线状态只看 TCP 是否建立,不含业务应答。真正的判断标准是平台侧能查到最近一条数据的时间标签,而不是设备界面上的小绿点。

FAQ

我这个情况到底要不要传?

要传。只要排口在平台建档了,数据就得按规定上传;设备在线但平台没数据,属于未有效上传,先按上面的顺序排掉,别用“设备显示在线”当解释。

平台说没收到,我这显示上传成功,到底谁的问题?

大概率是本地“发送成功”不等于平台“入库成功”。让平台侧按 MN 号查接入日志,有没有收到原始报文一查就清楚,这比两边互相猜快得多。

断网两天的数据还能补上去吗?

能,但要在设备缓存容量范围内,并且补传前把 MN、ST、时间标签核对好,补传命令与正常上传走的是同一套报文格式,字段错了照样进不去。

换了台新数采仪,参数照着旧的抄为什么还不行?

旧参数里可能带着旧设备的 MN 和密码,新设备要在平台重新登记或变更,PW 也要同步,抄参数不等于抄身份,这一步最容易漏。