污染源在线自动监控数据采集传输仪上传中断,先查3020

“数采仪屏幕上显示已连接,信号满格,平台那边一条数据都没有。”这是我们在华东某化工园区做回访时,一位运维工程师的原话。设备指示灯正常、能ping通平台IP、重启也试过,问题依旧。先说结论:这类“连上了但没数据”的故障,八成不是链路断了,而是平台下发3020(取实时数据)或3011(取历史数据)命令之后,污染源在线自动监控数据采集传输仪的回包在协议层被丢掉了——最常见的是QN请求编码重复、CN命令编码不对、CRC校验不过,或者平台端MN编号档案对不上,数据到了门口进不去。

先分清是哪一层出的问题

HJ 212协议下的传输链路,本质是平台问、现场机答。所以判断故障,第一步永远是:设备到底有没有收到平台的“问”。这个动作在数采仪的通信日志里能直接看到,收到请求会打印一条带QN时间戳的记录。没收到,问题在网络层往下;收到了但平台没入库,问题在协议层和平台层。

  • 协议层:QN请求编码(时间戳)重复,同一分钟内重发同一QN会被平台判重丢弃;CN命令编码与数据类别不匹配,比如把分钟数据用2051以外的编码上报;数据段前后分隔符&&与!!不完整;Flag标志位D位与有无数据段不一致;CRC校验按CRC16、多项式A001计算,低字节在前,算错一位整包作废。
  • 网络层:专网APN拨号成功但NAT会话表超时,长连接被中间设备静默踢掉,设备端仍显示在线;平台IP白名单未加;心跳间隔设置过长,被防火墙判为空闲连接断开。
  • 设备层:串口参数与分析仪不一致(常见9600、8位数据位、无校验、1位停止位);RS485地址冲突;模拟量量程与折算系数填反,导致数值超上限被判无效;设备本地时钟漂移,与平台时间差出几分钟,QN时间戳排到“过去”被当过期数据处理。
  • 平台层:数采仪MN编号在平台建档时多了空格或大小写不一致;数据入库后进入审核流程被挂起,前端显示为空;点位与排口对应关系未绑定。

为什么先查协议、再查网络

很多人第一反应是ping平台IP,通了就排除网络。但ICMP通不代表TCP业务通,专网环境下NAT表满、端口被策略拦截,ping照样回。反过来,如果日志里能看到3020请求进来,说明网络这一层根本不用查,问题必然在回包内容或平台侧。所以正确的顺序是:看日志有没有收到请求 → 看有没有回包 → 看回包CRC与QN → 看平台MN档案 → 最后才回头测网络。这个顺序本身就是省时间的知识,能把排查范围从“整条链路”缩到“一个字段”。

每一步的判断标准和动作

  • 现象:通信日志无任何平台请求记录。判断:链路或平台主动断开。动作:查专网拨号状态、心跳设置、平台侧连接数限制。
  • 现象:有3020请求、无回包。判断:设备未组包或组包异常退出。动作:查数据表是否有对应时段数据、Flag位是否置0、串口是否采到值。
  • 现象:有回包、平台仍无数据。判断:校验或编码问题。动作:抓包比对CRC计算方式与字节序,核对CN编码与上报数据类型是否一致,检查QN是否与前一次重复。
  • 现象:回包正常、平台侧显示无此点位。判断:MN档案不一致。动作:逐字符比对设备MN与平台建档MN,重点看空格、全半角、大小写。
  • 现象:间歇性丢数。判断:时钟漂移或网络闪断。动作:校时后观察补传是否生效,检查设备本地存储的补传机制是否开启。

三个最容易踩的坑

第一个坑:ping通了就认为网络没问题。专网NAT超时是很常见的隐性断链,设备状态页仍显示“已连接”,实际会话已经失效。判断依据应该是心跳回执和数据包收发计数,不是ping。

第二个坑:平台说没数据,第一反应是改设备参数。MN编号多一个空格、大小写不一致,平台就不会把数据挂到点位上,这种情况改多少遍波特率都没用。先核对档案,再动参数。

第三个坑:认为时钟差几分钟无所谓。HJ 212按QN时间戳组织数据,时钟漂移会让补传数据的时间落在错误区间,被判过期或重复。污染源在线自动监控数据采集传输仪上线前必须与平台校时,这条经常被跳过。

FAQ

  • 问:我这个情况到底要不要传?设备在跑,平台没数,算不算断传?算。只要平台侧对应时段无有效数据,监管端就会按缺失处理,建议先查协议回包再补传。
  • 问:设备显示在线,平台说离线,信谁的?信平台。设备端的“在线”多数只判断TCP连接是否建立,平台判断的是有没有按周期收到有效数据包,两者标准不一样。
  • 问:改了MN编号要重启吗?要。多数设备在建立连接时读取MN,改完不重启不会重新注册,看起来像没生效。
  • 问:补传的数据平台还认吗?认,但要保证QN不重复、时间戳落在真实采集时段,否则会被判重或判过期,补了等于没补。

污染源在线自动监控数据采集传输仪这类设备,硬件本身出问题的概率其实不高,绝大多数上传异常都能在协议字段和档案配置里找到答案。把日志看明白,比换设备快得多。