故障现象与结论
现场最常听到的一句是:“数采仪显示连接成功,农业面源污染治理平台就是没数据。”这里的“连接成功”通常只说明TCP链路或心跳能通,不等于业务报文被平台接收。第一判断:优先查平台协议表与设备组包是否一致,尤其是MN、PW、ST、因子编码、上报周期和CN命令码;其次看平台是否回应答。链路通、报文不通,是这类上传异常最常见的原因。
原因分层
按协议层、网络层、设备层、平台层拆开看,排查才不会来回绕。
- 协议层:按HJ 212类协议对接时,报文头含MN、PW、ST、CN、CP,包体CP=&&...&&,末尾带CRC校验;平台协议表若把实时数据定为1014、扩展因子放在2000–2999、状态交互用3020,现场却套旧模板,就会出现“链路成功、无有效数据”。
- 网络层:IP、端口、白名单、NAT、DNS、心跳间隔都要核对。TCP通但APN或VPN只放行心跳端口,业务端口被拦,也会显示连接成功。
- 设备层:MN写错、因子编码与平台不一致、上报周期设成0、CRC计算错、分包PNUM/PNO不匹配、时间戳超平台允许窗口。
- 平台层:设备未在农业面源污染治理平台完成注册或审核,因子未绑定,数据进了待审核池;或者平台只收主动上报,现场却等平台反控。
排查顺序为什么不能反
先协议后网络,先上行后下行,先单因子后全因子。因为链路通只能证明网络可达,不能证明平台认报文;先抓包看有没有完整CP和CRC,再决定是改设备模板还是查防火墙。若先换卡、重启设备,容易把配置问题拖成多日故障。
判断标准与处置动作
- 现象:抓包只有SYN/ACK和心跳,没有CP报文。判断:设备未触发上报或周期为0。动作:核对上报周期、实时数据触发方式,手动补发一次。
- 现象:有CP报文但平台无数据。判断:MN、因子编码、CN与平台协议表不一致,或CRC错。动作:按平台协议表逐字段比对,重算CRC后复测。
- 现象:平台有报文无入库。判断:设备未注册、因子未绑定或数据在待审核。动作:让平台侧查接入日志和设备台账,不要只盯现场。
- 现象:大包上传失败、小包成功。判断:分包PNUM/PNO或包长超限。动作:调整单包长度和分包序号,观察平台应答。
三个容易误判的坑
- 坑一:把“连接成功”当“上传成功”。TCP连接和业务入库是两件事,必须看平台接入日志和应答报文。
- 坑二:只改设备不改平台协议表。现场按旧版2000–2999因子表组包,平台已启用新因子编码,结果全被丢弃。
- 坑三:一上来就换模块或换卡。多数问题是MN、PW、ST、因子编码、CRC或上报周期,换硬件反而掩盖配置错误。
FAQ
- 问:我这个情况到底要不要传?答:只要接入农业面源污染治理平台并纳入监管点位,就按平台要求的因子和周期传;不确定时先看平台接入清单,不要凭感觉停传。
- 问:数采仪显示连接成功,平台就是没数据,先找谁?答:先让平台侧查接入日志有没有MN和CP报文,同时现场抓包;两边日志对不上,再查网络。
- 问:1014、2000–2999、3020这些命令码能直接照抄吗?答:不能。以对方平台协议表为准,命令码、因子编码、上报周期都要逐项确认。
- 问:CRC校验对了为什么还不入库?答:还要看设备注册、因子绑定、时间戳和平台审核状态,校验只是第一道门。