“数采仪上显示连接成功,农业面源污染治理平台就是没数据,重启了也没用。”这是我们今年在面源项目上被问得最多的一句话。
先说结论:八成是 MN(设备唯一标识)没和平台点位绑上,或者 CP 数据段里的参数编码、数据段长度、CRC 校验落不了平台的解析模板。TCP 连上只说明三次握手成功,平台判报文无效后直接丢弃,数采仪没收到应答也照样显示“在线”。
故障按四层拆,别急着拆机器
面源点位分散在退水口、养殖场排污口、径流小区,前端仪表多、因子杂,任何一层不对都表现为“平台没数”。
- 平台层:点位未审核、MN 未绑定或绑错、ST 系统编码不一致、参数编码不在平台因子表内、单位 mg/L 与 μg/L 混用。
- 网络层:APN 专网未开通、DNS 解析不到平台域名、防火墙掐断空闲长连接、端口被限。
- 协议层:QN 请求编码重复被判重、CN 用错(实时数据 1014、分钟数据 2051、小时数据 2061、日数据 3020 各走各的通道)、Flag 标志位错、CP 段缺 && 包裹、数据段长度与实际字节不符、CRC 算错。
- 设备层:RS485 的 A/B 接反、波特率与从站地址不匹配、4–20 mA 未标定导致数值恒为 0 或满量程、供电不稳定时重启。
排查顺序:从平台往设备倒着走
顺序本身就是知识。先确认报文有没有到,再看到了为什么没入库,最后才回设备端找数据源。反过来做,最常见的结局是拆了一下午接线,其实农业面源污染治理平台侧压根没绑 MN。
- 先翻平台通讯日志与原始报文:有日志说明链路通,问题在协议或平台;一条没有,才往网络层走。
- 再 ping 加端口探测,抓包看有没有完整的 212 交互,发出去有没有回包。
- 然后逐字段比对 MN、ST、CN、Flag、数据段长度、CRC。
- 最后用串口工具直读仪表寄存器,看原始值对不对。
每一步的判断标准和处置动作
- 平台零日志 → 接入地址或链路错 → 核对 IP 与端口,检查 APN、DNS,把心跳周期压到 NAT 老化时间以内。
- 提示“无效 MN、设备未注册” → 绑定缺失 → 在平台补录点位并绑定 MN,注意大小写和位数。
- 有日志但校验失败 → 长度字段或 CRC 不符 → 按实际字节数填长度,CRC 用标准 CRC16,别拿累加和顶替。
- 解析成功却查不到数据 → 参数编码不在模板内 → 对照平台因子表;自定义量走 2000–2999 区间前先在平台登记。
- 数值恒为 0 或满量程 → 仪表侧 → 串口直读寄存器,重新标定 4–20 mA 对应关系。
三个容易误判的坑
- 把“连接成功”当成“通讯正常”。建链成功和报文被接受是两件事,平台丢弃时不回错误码,界面照旧显示在线。
- 补传时没改 Flag 标志位。平台对正常数据与补传数据的入库策略不同,补传位错了,历史数据会被当成重复包扔掉,看着就是“新的能上、老的补不上”。
- 只改参数名,不改顺序和单位。平台按模板位置解析 CP 段,顺序错会把总氮读成氨氮;单位没同步,数值差三个数量级后被判无效。
客户常问的四个问题
问:我这边显示连接成功,平台就是没数据,到底是不是平台的问题?
答:先看平台有没有收到报文的日志。有日志就是协议或模板问题,没有日志再查网络,别凭“连接成功”四个字下结论。
问:农业面源项目里流量计的数据一定要传吗?
答:看地方监管口径。面源点位多数考核水量加浓度,只传浓度不传流量算不出通量,容易被判数据不完整。建议把流量作为独立因子单独编码上传,别塞进已有参数里。
问:设备一到冬天就掉线,重启就好,是不是该换了?
答:先分清是掉电还是掉网。看日志里的重启记录和信号强度曲线,固定时段发生多半是供电或温差结露,不用急着换。
问:数据传上去了平台标超标,我们自己测不超标,听谁的?
答:先比对时间戳和取样方式。平台存的是上传时刻的瞬时值或统计值,实验室是采样值,口径不同。把 Flag、单位、统计周期核一遍,多数“超标”是口径问题,不是水质问题。