重金属在线监测仪显示联网正常,平台却是零值曲线

“重金属在线监测仪面板上显示联网正常,数值也在跳,平台打开却是一条零线。”这是华东一家印染厂运维工程师上周发来的原话。先说结论:这类故障九成不是网络断了,而是数采仪采到的本身就是一个“合法的零值”——仪表处在维护或校准状态输出保持值、量程与单位映射错位,或者报文里的参数编码和MN号跟平台对不上被直接丢弃。真正的断网表现通常是“一条数据都没有、恢复后集中补传”,很少是一条平稳的零线。

一、先分清是“没传上去”,还是“传上去是零”

这一步先不看平台,只看数采仪本地。打开实时数据页,核对三个东西:当前值、单位、状态位。

  • 本地是0.000,平台也是0.000——问题在仪表到数采仪这一段,跟网络无关。
  • 本地有值,发送队列里堆着报文——问题在网络层或平台应答。
  • 本地有值、队列是空的、平台还是零——大概率是参数编码或MN号配错,报文发出去了,但平台按“未知设备”或“未知因子”丢弃了。

二、四个层面分别查什么

  • 设备层:RS485的A、B线是否接反,波特率与站号是否一致,Modbus功能码用03还是04有没有选错,32位浮点的高低字顺序是否颠倒。用4–20mA输出的场合,重点看通道量程:仪表0–1mg/L对应4–20mA,数采仪按0–10mg/L解析,数值就整体差十倍。
  • 协议层:HJ 212报文里QN(请求编码)、ST、CN、PW、MN、Flag、CP六个字段,任何一个不对都可能被平台静默丢弃。CN在2000–2999区段是现场机主动上报,2011是实时数据、2012是分钟数据、2013是小时数据;3011、3020用于应答上位机提取历史数据。平台下发的1014类指令报文,现场机必须回对应应答,不回就会被判离线。
  • 网络层:能ping通不代表能传数据。看心跳间隔是否大于运营商NAT老化时间、看平台端口是否只在白名单内开放、看4G卡是不是定向卡。数据段末尾CRC16校验错一个字节,平台照样丢包,而在数采仪侧只表现为重发次数增加。
  • 平台层:先看平台接收日志里有没有这个MN的连接记录。没有记录,是链路或MN的问题;有记录但数值为零,是CP段里-Rtd字段本身就是0,或者参数编码挂到了别的因子名下——总铅、总镉、六价铬各有编码,配错一位就串项。

三、为什么按这个顺序查

由内到外、由源头到出口:先确认数据源对不对,再确认发出去没有,最后确认对方收没收到。顺序反了最容易白熬一夜——仪表输出本身就是零值,你把防火墙、端口、DNS全查一遍也不会有结果。

四、每一步的判断标准和动作

  • 现象:数采仪本地显示0.000,仪表屏幕有读数。判断:采集通道或量程配置错。动作:比对仪表输出方式与数采仪通道类型,量程、单位、小数点位数三项逐一核对。
  • 现象:本地有值,待发队列持续增长。判断:TCP连上了但应用层没过。动作:抓一包报文,核对MN与平台登记是否完全一致(含大小写)、PW是否正确、Flag是否为应答位。
  • 现象:报文正常发出,平台无任何记录。判断:链路或端口白名单。动作:换一台能正常上传的现场设备做对照,或让平台侧查该时段是否有连接建立记录。
  • 现象:平台有记录、数值为零。判断:CP段内容问题。动作:核对DataTime时间戳是否超前或滞后、-Rtd与-Flag是否成对出现、参数编码是否对应正确的因子。
  • 现象:偶发丢数,重发次数偏高。判断:心跳或校验。动作:把心跳间隔压到平台要求的值以内,检查CRC16校验段与##后的数据段长度是否自洽。

五、三个最容易踩的坑

  • 看到“连接成功”就当网络没问题。TCP建链只说明三次握手成功,应用层的MN、PW不对,平台照样一个字节都不入库。
  • 看到零值就去改平台解析。平台解析规则上线后很少变动,零值九成来自现场:仪表在维护或校准状态时会输出保持值或固定值,数采仪照单全收。
  • 重启后恢复正常就结案。重启往往只是把缓存里的数据补传了一次,真实原因(心跳超时、量程错位)还在,过几天照旧复发。

六、FAQ

  • 问:我这个情况到底要不要传?仪表在校准的时候,平台那边一条零线,会不会被认定超标?
    答:校准、维护期间的数据要标记为维护状态上传,不要直接断电或拔线。断电在平台侧就是“设备离线”,性质比标记维护更麻烦。
  • 问:数采仪显示连接成功,平台就是没数据,是不是平台的问题?
    答:先看平台接收日志里有没有这个MN的连接记录。有连接没数据,多半是报文被丢弃;连连接记录都没有,先查网络和端口。
  • 问:我换了张4G卡就能传了,还用管别的吗?
    答:要管。换卡能通通常说明是定向卡或白名单问题,量程、参数编码这些隐患还在,下次换表、换通道还会再犯。
  • 问:仪表厂家说数据没问题,数采仪这边说没收到,我该信谁?
    答:都别信口头结论,看两个东西——仪表4–20mA或485输出端的实测值,和数采仪采集通道的原始码值。两边一对,责任自然清楚。