故障现象:连接成功,平台就是没数据
“数采仪显示连接成功,平台就是没数据。”这是国发平台数采仪现场最常被问到的一句话。先给结论:多数不是网络断了,也不是设备坏了,而是平台档案里的MN号、ST号、排口编码与数采仪上报内容对不上;其次是上报命令码段和平台要求不一致,最后才看心跳、时钟和校验。
先查平台层:MN号、ST号和排口档案
国发平台数采仪上线,TCP连上只说明链路通。平台判断有没有数据,看的是报文里的MN、ST、CN和污染物编码。换过数采仪、改过排口、搬过站点,最常见是设备里MN号是新码,平台档案还是旧码;或者平台排口处于停用、未绑定状态。此时设备日志显示发送成功,平台端却查不到数据。
- 平台显示“离线”:先看TCP和心跳,不要急着改协议。
- 平台显示“在线无数据”:优先核对MN、ST、排口编码和因子编码。
- 平台只缺某几个因子:查CP字段里的污染物编码和量程单位,不要整机重置。
再查协议层:命令码和报文字段
212协议里,平台收数据主要看QN、ST、CN、PW、MN、Flag、CP、DataTime。实时数据常用CN=2011,分钟数据常用2051,小时数据常用2061;2000–2999段是现场上报数据的高频区。平台只认分钟数据,数采仪一直发实时数据;或者反控命令3020、参数设置命令1014的应答格式不对,也会出现“链路在线、业务无数据”。抓包先看有没有完整CN报文,再看CRC校验和包长度。
网络层和设备层放在后面查
网络层常见的是端口、防火墙、APN和NAT超时。设备能连上但隔几分钟掉线,重点看心跳间隔和平台超时设置;一直连不上,才查IP、端口和专网卡。设备层先看时钟,时间偏差太大会导致DataTime落在平台查询范围外;再看采集周期、数据表是否写入、量程单位是否和平台一致。网络层放后面,是因为它最容易“看起来像”,改完往往不解决问题。
排查顺序:先平台档案,再报文,再网络,最后设备
- 第一步看平台档案:确认MN、ST、排口、因子编码。判断标准是平台“在线无数据”还是“离线”,动作是先同步档案再重启上报。
- 第二步抓报文:看CN=2011/2051/2061是否出现,字段是否齐全。没有CN报文,查设备上报任务;有CN报文,查MN和CP。
- 第三步看校验:CRC16不对、包长度不对,平台会丢弃。动作是对比抓包原文和平台日志,不要只改设备参数。
- 第四步看心跳和时钟:心跳正常但数据时间戳超前或滞后,先校时再观察一个上报周期。
三个容易误判的坑
- 坑一:把“连接成功”当成“数据通了”。TCP连接只是链路层,平台业务层还要认MN和命令码。
- 坑二:只改设备不改平台。设备端MN号改完,平台档案没同步,照样无数据。
- 坑三:看到平台无数据就恢复出厂。先查平台排口是否停用、账号是否有数据权限,再动设备配置。
FAQ
问:我这个情况到底要不要传?答:排口在国发平台有档案、且属于应联网范围,就要按平台要求传;只连内网不上国发平台的,另说。
问:数采仪显示连接成功,平台就是没数据,先动哪里?答:先核对平台MN、ST和排口编码,再看抓包里有没有CN=2011或2051。
问:MN号改了,平台也改了,为什么还不上数?答:看ST号、因子编码和CRC校验,三个里有一个不一致,平台就会丢包。
问:平台说协议不对,是不是要换数采仪?答:先确认平台要求的命令码段和上报周期,多数是参数配置问题,不是设备本身不能用。