江苏环保数采仪连上平台却没数据,先查这三处

“数采仪面板上显示已连接,心跳也正常,平台那边设备是在线的,可数据一条都没有。”这是上周一位做运维的客户打电话来说的原话。现场在苏南某工业园区,用的是 njxrhb 的 PS-S01,接的是省里的监控平台。

先说结论:这种情况大多并不是网络断了,而是报文确实传上去了、平台也收下了,但被判成无效包,或者归到了别的设备名下。先查 MN(设备唯一标识)、上报时标、CRC 这三样,不必急着换卡换天线。

一、“在线”为什么不能证明“通”

平台判断一台江苏环保数采仪在线,依据的往往是最近一次收到该 MN 的任意报文,或者 TCP 长连接还挂着。心跳包(CN=9012)每隔一段时间发一次,就足以让设备在列表里显示为绿色。

但业务数据要过的是另一关:平台收到报文后,还要按 HJ 212 的格式逐字段解析,校验 MN 是否在台账里、PW 是否正确、CRC 是否匹配、CP 里的参数编码是否有对应因子。任何一项不过,平台多数是静默丢弃,不回错误码,页面上只表现为“没有数据”。所以连接层通不等于数据层通。

二、按四层拆开看

协议层

  • MN:设备唯一标识,位数、大小写、字母数字必须和平台台账一字不差。多一位、少一位、把 0 写成 O,都会让数据落到一台不存在的设备上。
  • ST 与 PW:系统编码和访问密码,部分平台对 PW 做长度校验,改密码后没同步就会全线丢包。
  • CN 命令编码:9011 登录、9012 心跳、2011 实时数据、3011 请求历史数据、3020 上传历史数据。抓包时先看 CN,确认发的到底是数据包还是心跳包。
  • QN 请求编码:14 位时间加 4 位序号。序号长期不变,部分平台会按 QN 去重,重复包直接不处理。
  • CP 数据段:以 && 包裹,内部用分号分隔字段,参数编码如 w 开头的五位数,数据项形如“编码-数据标志=数值”。DataTime 为空或格式不对,整包作废。
  • CRC:覆盖 QN 到 CP 结尾的 && 为止,不含包头 ## 和包尾校验位,采用 MODBUS 循环冗余算法,结果取四位十六进制、低字节在前。

网络层

  • 定向卡的白名单和 APN 没开全,能连上但只放行部分端口。
  • 域名解析失败后回落到了备用地址,实际连的是测试环境。
  • 现场有两条链路,主备切换后出口 IP 变了,被平台侧防火墙拦掉。

设备层

  • 采集源本身没有新数据,仪表通讯断在 RS485 那一侧,数采仪只是在空转。
  • 量程、小数位配置错误,数值被判为超范围而丢弃。
  • 设备处于维护或停运标记状态,数据被打上标志,平台不纳入统计。

平台层

  • 台账里的上报因子没勾全,现场发了但平台没有对应位置显示。
  • 平台侧对分钟数据和小时数据分开配置,只开了其中一套。
  • 数据进了待审核队列,未审核前不对外展示。

三、排查顺序:为什么先协议后网络

顺序本身就是效率。既然平台已经把设备显示为在线,说明 TCP 连接建立过、至少有一个报文被接收,网络层的大坑基本可以排除,这时候再去测信号强度、换天线,多半是白费工夫。

所以先抓包看应用层:一个完整的 ## 开头报文发出去,平台有没有回包。有回包说明链路和协议头都没问题,问题在 CP 数据段;没回包说明报文在平台解析这一关就被拦下了,回到 MN、PW、CRC 上找。协议层确认无误之后,才轮到网络层、设备层,最后才是平台侧的台账和配置。把这个顺序倒过来,很容易在网线和 SIM 卡上耗掉一整天。

四、每一步的判断标准

现象判断动作
平台显示在线,抓包看到报文有去无回多半是 MN 或 PW 与台账不一致,或者 CRC 算错用调试工具重发同一条报文,逐项比对台账字段
平台有应答,但页面上查不到数据报文合法,是因子没匹配上核对 CP 内参数编码与平台因子表
数据时间比平台时间明显超前或滞后设备 RTC 漂移,或时标取了本地时间用 9014 校时,确认取时来源一致
整点有数、分钟数据全无上报策略只配了小时包打开分钟上报,保证 QN 序号递增
换卡后完全不通定向卡白名单未放行找卡商核对 APN 与目标地址

五、三个最容易误判的坑

第一个坑:把“在线”当成“通了”。在线只看心跳,数据要看解析。很多人一看设备是绿的,就断定平台有问题,来回扯皮几天,最后发现是 MN 末尾多了一个空格。

第二个坑:改完参数不重启。MN、ST、IP、端口这类参数,改完必须重启数采仪或重新拨号建立连接。旧连接还挂着的时候,新旧两套配置同时存在,表现为时通时不通,最容易让人误判成“网络不稳定”。

第三个坑:手工改报文没重算 CRC。调试时为了省事,直接改 CP 里的数值再发出去,校验位没跟着更新,平台一声不吭地丢掉。另外 CRC 是低字节在前,按常规习惯倒过来写同样过不了,而且平台不会提示你错在哪。

六、常见问题

“我这个厂是间歇性生产的,停产那几天到底要不要传?”要传。停产期间应当上传停运标记,由平台按标记处理,不能直接断电让设备离线。断电离线在天数统计上会被算作数据传输异常。

“平台显示在线,是不是就说明通了?”不通。在线只代表心跳到达,数据包是另一条路径。判断是否真通,要看平台能不能查到具体的分钟数据。

“我把 IP 和端口改了,需要重启吗?”需要。改完保存只是写进配置,连接还是旧的。重启后确认新的连接已经建立,再抓一次包看回包地址对不对。

“断了三天,数据能补传回去吗?”要看本地存储有没有留住。数采仪一般会缓存一段时间的历史数据,恢复联网后可以用 3011 请求、3020 上传的方式补。缓存被覆盖了就补不回来,这也是平时要留意存储占用的原因。