国发5.0平台收不到数据,数采仪却显示连接成功

故障现象:连接显示成功,数据却没有

“数采仪显示连接成功,国发5.0平台上就是没数据。”这是华东一家运维服务商上周发来的原话。现场设备指示灯正常,TCP 连接状态在线,心跳也在按时发,运维人员反复重启数采仪、换卡换网线,平台上那条排口的数据曲线依然是一条平线。

结论:问题出在报文未被平台解析,网络并未断开

这种情况九成以上属于“平台收下但没入库”:数采仪确实把 HJ212 报文发出去了,平台也回了应答,但报文里的关键字段与平台侧注册信息对不上,或者校验、版本不匹配,数据被丢弃,而连接状态由心跳独立维持,所以看起来一切正常。最常见的是 MN 设备编码、ST 系统编码与平台登记不一致,其次是因子编码、命令码版本对不上。少数是平台侧排口未启用或处于调试态。

按四层拆开看可能点

协议层

  • 数据段字段:QN 时间戳、ST 系统编码、CN 命令编码、PW 访问密码、MN 设备唯一标识、Flag 标志位、PN 指令参数、CP 数据区,任意一项格式错都会被整包丢弃。
  • 命令码:实时数据走 1011,历史分钟数据走 1012,平台取实时数据下发 2011。国发5.0平台考核以分钟数据为主,若数采仪只发 1011,平台侧统计仍可能为空。
  • 包结构:##后四位长度、CRC16 校验四位十六进制、结尾回车换行,长度算错或校验错,平台一律不应答或回错误码。
  • 应答侧:平台可能回 9011 请求应答超时类错误码,抓包能看到,但数采仪界面往往只显示“已连接”。

网络层

  • 心跳保活正常不代表数据通道正常,有的现场是防火墙按端口放行心跳包,大包数据被截断。
  • NAT 会话超时导致长连接假在线,表现为隔一段时间补一批数据。

设备层

  • 数采仪与仪表之间的 485/Modbus 通讯异常,采到的值为空或为固定值,报文发出去了但 CP 里没有有效数据。
  • 数采仪时钟偏差大,QN 时间戳落在考核时段外,平台按时间归档时归到了历史区。

平台层

  • 排口未启用、因子编码与平台字典不一致,例如同一污染物在不同平台使用不同编码。
  • 平台侧日志里能看到报文原文,但解析报错,这种要平台方配合查解析日志。

排查顺序:先看平台日志,再抓包,最后才动设备

顺序本身就是效率。平台日志能直接判断“报文到没到”,这是分水岭:没到查网络,到了但没入库查协议字段,入库了但曲线不显示查平台配置。先动设备是最费时的路径,因为重启会清掉现场抓包的机会。

每步的判断标准和处置动作

  • 现象:平台日志有报文、无数据。判断:报文字段或校验问题。动作:导出报文原文,逐字段比对 MN、ST、PW、因子编码。
  • 现象:平台日志无报文,抓包有 SYN 无数据。判断:网络侧拦截或端口错。动作:核对 IP、端口、白名单,换端口试。
  • 现象:抓包有数据、平台无日志。判断:中间设备截断或地址指错。动作:确认目标域名解析和路由。
  • 现象:数采仪界面数据为固定值。判断:仪表侧通讯异常。动作:查 485 接线、地址、波特率,看仪表是否有输出。
  • 现象:数据有但时段错位。判断:时钟偏差。动作:校准数采仪时间并开启自动对时。

三个容易误判的问题

  • 把心跳成功当成数据正常。心跳和业务报文是两条独立逻辑,平台只回心跳应答,不代表数据解析通过。
  • 认为补传就是把数据重发一遍。历史数据要用 1012 按时间顺序补,且补传时段、Flag 标志位与实时包不同,顺序乱了平台会判重或拒收。
  • 只改因子编码,不改量程和单位。编码对上但小数点位数不一致,平台会把数值按错误量级入库,曲线看着有数据,实际偏差一个数量级。

FAQ

问:我这个情况到底要不要传分钟数据?要。国发5.0平台的传输有效率按分钟数据统计,只发实时包统计上不去。

问:平台说收到了,可我这边看还是没有,谁的锅?先让平台方提供该排口的解析日志,看到原文才能定责,多数是字段对不上。

问:换了新数采仪还是没数据,是不是设备坏了?大概率不是。设备换了但 MN 编码没同步改,平台侧还是认不出。

问:能先手动补一段历史数据应应急吗?可以,但要按时间顺序补,且补完核对平台的接收回执,不要看数采仪发送成功就以为完成。