“数采仪显示连接成功,平台就是没数据。”这是华东某化工园区一位运维工程师上周说的原话。他守着一台氨氮自动监测仪和一台数据采集传输仪,两边指示灯都正常,平台上的氨氮曲线却平了四个多小时。
先给结论:这类现象八成不是“网断了”,而是数采仪要么没从氨氮自动监测仪取到有效数值,要么取到了、打包成 HJ 212-2017 报文后被判无效,最终在平台侧被丢弃或没有落到对应的因子通道上。正确的动手顺序是:本地值、报文、平台配置,从下往上捋。
四层原因,从下往上捋
设备层。氨氮自动监测仪和数采仪之间一般是 RS232/RS485 或 4–20mA。这一层出问题的典型表现是“数采仪上有数,但数不刷新”,常见原因有:仪表侧的输出通道没有使能、仪表量程与数采仪通道量程不一致,导致换算后成了恒值、485 地址或波特率被改过、仪表停留在校准或维护状态,输出保持上一时刻的模拟量。
协议层。数采仪把数据打包成 HJ 212-2017 报文,命令码 2011 是实时数据、2051 是分钟数据、2061 是小时数据,时间同步走 1011/1012。字段上 QN、ST、CN、PW、MN 任何一个对不上,平台就认不了;数据段的 flag 标记位(N 正常、C 校准、M 维护、T 超时)如果被置成非 N,不少平台会直接当无效数据不入库。CRC 校验不过的包,平台侧通常静默丢包,不给你回任何错误码。
网络层。4G 卡欠费、APN 设错、平台端口不通、防火墙只放行固定 IP。要注意 TCP 建链成功只说明三次握手通了,不代表应用层收得到应答。
平台层。设备没绑、MN 没录入、氨氮因子通道没配或配错、数据时间戳落在平台允许的时间窗之外。
排查顺序:为什么先看本地值
顺序本身就是效率。先看数采仪本地显示值,是因为这一步零成本,而且能把问题直接分成两类:本地有值且随水质变化,说明设备层通,问题在上传;本地没值或恒定,问题在仪表到数采仪这一段,根本不用碰网络。
- 第一步,看数采仪本地实时值是否刷新。显示恒值、0 值或“--”,先回头查仪表输出。
- 第二步,看数采仪通讯日志有没有平台侧应答。只有发送没有应答,走网络层。
- 第三步,有应答仍无数据,抓一条报文看 CN、MN、flag 和校验。
- 第四步,报文正常,再去平台对因子和通道。
每一步的判断标准和动作
- 现象:数采仪本地值为 0 或恒定。判断:设备层链路或仪表输出异常。动作:确认仪表输出通道使能、量程一致,核对 485 地址与波特率,确认仪表是否停在校准状态。
- 现象:日志有发送无应答。判断:网络层不通。动作:换卡验证,核对 APN 与目标 IP 端口,看是否被防火墙拦。
- 现象:有应答但数据不入库。判断:协议层或平台配置。动作:比对 MN 与平台登记是否一致,检查 CN 是否与平台请求匹配,看 flag 是否为 N,再核一遍 CRC 算法。
- 现象:报文完全正常、平台仍无曲线。判断:平台侧因子或通道配置。动作:在平台上找到该设备下氨氮对应的因子通道,确认数据落点。
三个容易误判的坑
- 看到“连接成功”就认为网络没问题。建链成功和应用层应答是两回事,校验失败的包平台照样丢。
- 仪表在维护或校准状态下,数采仪照常上传,但平台按无效数据丢弃,现场容易直接判成通讯故障。
- 换一张卡能通就认定是卡的问题,实际可能是原来那张卡的 IP 不在平台白名单,或者平台按 MN 绑定,跟卡无关。
常见问题
问:我这个情况到底要不要传?答:只要仪表在产污环节运行,数据就应该正常上传;校准、维护期间也要传,用 flag 标记说明状态即可,不能干脆断线。
问:数采仪上有数,平台上没有,是不是数采仪坏了?答:先别急着下结论,先看日志有没有应答。有应答不收数据,多半是 MN 或因子通道对不上。
问:换张卡就通了,一定是卡的问题吗?答:不一定。核对一下平台白名单和绑定方式,不然换了卡还会复发。
问:校准的时候平台显示无效,正常吗?答:如果报文 flag 是 C 或 M,平台当无效数据是正常逻辑,不是上传失败。