国发5.0联网连接成功却没数据,先查MN编码与PW密码

一位运维工程师的原话是:“数采仪上显示连接成功,TCP 也通了,可国发5.0平台上就是没数据。”这类电话我们一年要接不少。先把结论放在前面:绝大多数情况不是“网络不通”,而是应用层参数没对上——最常见的是 MN 编码与平台备案不一致,其次是 PW 访问密码、ST 系统编码填错,再次是 Flag 标志位与平台要求相反,导致平台收到了报文却不入库。下面按层次拆开讲。

一、“连接成功”这四个字,只说明一半的事

数采仪屏幕上的“连接成功”,通常只代表 TCP 三次握手完成,或者心跳包 9021 发了出去。它不代表平台认了你这台设备。按 HJ 212 的应用层结构,每一条报文都带 QN(请求编码)、ST(系统编码)、CN(命令编码)、PW(访问密码)、MN(设备唯一标识)、Flag(标志位)和 CP(数据段),段尾还有 CRC 校验和 结束符。这七项里任何一项对不上,平台都可能“收到但丢弃”,现场看起来就是一切正常、数据为零。

二、按四层拆原因

协议层

  • MN 编码与平台企业档案里登记的不一致,多一位、少一位、大小写不同、前缀写错都算。
  • PW 访问密码被改过,平台对 2011 数据包直接不应答,现场只能看到“已发送”。
  • ST 系统编码用了出厂默认值,没有按平台下发的值填写。
  • Flag 标志位的应答位设置与平台要求相反,平台不回 9014 请求应答,数采仪就一直重发。
  • 数据段里的污染物编码、时间格式平台侧没开通或不认,整包被跳过。
  • CRC16 计算时把结束符也算进去,或者报文里混进了空格、换行这类不可见字符。

网络层

  • 平台域名解析到了旧 IP,或者端口不是约定的那个。
  • 现场 4G 路由做了 NAT,运营商侧回收长连接后,数采仪重连成功但平台侧旧会话没释放。
  • 双网卡、双出口现场,数采仪走的是内网出口,白名单没放行。

设备层

  • 数采仪本地时钟漂移,QN 时间戳落后或超前,平台按时间落库后“看起来没数据”。
  • 前端仪表 RS485 采集失败,数采仪补零上传,平台显示 0 值而不报警。
  • 数采仪存储写满后停止生成分钟数据,只发心跳。

平台层

  • 数据其实已接收,但状态被标记为未审核、停运或故障,前台页面默认过滤掉了。
  • 平台对同一 MN 只保留最新一条,现场反复重发导致互相覆盖。

三、为什么按这个顺序查

顺序本身就是省时间的办法。先看心跳,是因为心跳不通报文内容再对也没用;再看 MN 与 PW,是因为这两个参数改动成本最低、出错率最高,五分钟能排除一半;再看报文,是因为抓一次包能同时把时间戳、Flag、CRC 全看清楚;最后才怀疑平台,是因为平台侧的东西你改不了,只能提工单等回复。反过来查,往往是在换卡、换路由上耗掉两天。

四、每一步看什么、怎么办

  • 现象:数采仪显示已连接,平台设备状态仍是离线。判断:心跳没通。动作:抓包确认 9021 是否发出、有无回包;用平台给的测试工具直连域名端口,排除解析和端口问题。
  • 现象:心跳通、平台在线,但无数据。判断:MN、PW、ST 三参数与平台档案不一致。动作:打开平台企业信息页逐字符比对 MN,密码找平台管理员重置,不要凭记忆填。
  • 现象:平台有零星数据,时间对不上。判断:设备时钟漂移。动作:对数采仪校时,补历史时用 3020 提取指令核对时间区间是否真的落库。
  • 现象:平台一直显示 0 值。判断:前端采集断了,不是上传问题。动作:查 RS485 接线与仪表地址,别在数采仪参数上反复折腾。
  • 现象:报文看着正常,平台回 CRC 错。判断:报文拼接时混入字符。动作:重新生成报文,检查换行与空格。

五、三个最容易踩的坑

坑一:把“连接成功”当成“登录成功”

有些平台在 MN 写错时照样回心跳,现场界面一直是绿的,很容易让人以为链路没问题。判断依据不能看界面指示灯,要看平台侧设备状态和最近一条数据的接收时间。

坑二:Flag 标志位照抄其他项目的配置

不同地区平台对是否需要应答、是否上传实时数据的要求不一样。照抄参数表,心跳通、数据也发,就是不入库,最后查出来是标志位反了。

坑三:看到 0 值就认为平台丢数据

数采仪采集不到前端数据时会补零,这个零是“合规地”传上去的,平台没丢,是源头断了。先把仪表侧的线摸一遍,再谈平台问题。

六、FAQ

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

只要设备在平台上登记、且处于联网状态,正常工况下的数据就该按约定周期上传。判断标准是平台的备案状态和你说好的上传周期,不是现场想不想传。

问:换了张物联网卡,MN 要不要重填?

不用。MN 跟设备绑定,跟卡无关。但换卡后如果 IP 变了,而平台侧做了 IP 白名单,需要让平台管理员同步更新,否则心跳能发出去、数据回不来。

问:平台说没收到,数采仪上明明显示已发送,谁对?

两边都不一定错。“已发送”只到网卡这一步,平台“未收到”可能是校验不过被丢弃。抓一次包,把 CN、MN、CRC 三段对着看,五分钟能定性。

问:补历史数据是等平台下发,还是现场主动发?

看平台约定。走 3020 提取历史数据指令的,是平台下发、现场应答;也有的平台要求现场按 2020 主动补传。两种都做过的话,注意别重复上报,容易互相覆盖。

国发5.0联网这件事,说到底不是拼网络,是拼参数有没有一个字一个字对过。把 MN、PW、ST 三个字段和 Flag 标志位核对清楚,大部分“连上了没数据”当场就能收工。