COD自动监测仪连上平台没数据,先查这四处

故障现象:COD自动监测仪显示已连上平台,平台就是没数据

“数采仪上显示连接成功,COD自动监测仪这边分钟数据也在跳,平台上COD一栏就是空白。”这是华东某化工园区运维工程师反馈的原话。现场第一反应通常是换4G卡、重启数采仪、检查天线,折腾一圈,问题还在。我的判断是:最可能的原因不在“网络通不通”,而在“报文选没选对、字段填没填对”。具体说,COD自动监测仪与数采仪之间的寄存器解析、因子编码、量程单位,或平台侧有效性规则,任何一个对不上,平台都会把这条数据当成无效数据丢掉。

先把结论放在前面:连接成功只代表TCP链路建立,不代表COD浓度被正确采集、正确组包、正确入库。排查时不要从换卡开始,而要从平台原始报文和数采仪上报日志往回倒。

“连上”和“传对”是两件事

HJ212类联网中,数采仪与平台建立连接、发心跳,平台能看到“在线”,这只是链路层。真正决定平台有没有COD数据的是数据报文里的几个硬字段:因子编码、数据时间、Rtd值、Flag标志位、单位与量程。COD在不少平台因子表中编码为011,但不同地区平台存在扩展编码,必须以对方因子表为准。只要因子编码写成别的项目,或者Rtd字段为空、写成“--”,平台就会显示无数据。再往下,如果数采仪从COD自动监测仪读到的寄存器值本身就是0或异常大数,组包再标准也没用。

现场判断时,先让平台导出最近一段时间的原始报文,搜索“011”和“Rtd”。如果报文里根本没有011,问题在组包或因子表;如果有011但Rtd为空,问题在数采仪采集仪表;如果Rtd有值但平台仍不展示,再看Flag、量程和平台审核规则。这个顺序能避免一上来就拆线、换卡。

原因分层:从协议层到平台层

协议层:报文里COD字段没落对

  • 因子编码不一致。平台按011接收COD,现场报文用了自定义编码或把COD写到其他因子位,平台不会自动认领。
  • Rtd、Avg、DataTime字段缺失。分钟数据、小时数据用到的字段不同,少一个DataTime或Flag写成无效,平台按规则剔除。
  • Flag标志位为N或超量程。仪表故障、校准、维护状态被标成无效,平台有数据也不展示。
  • CRC校验或包长度不对。报文到平台后校验失败,平台直接丢弃,数采仪本地却可能显示“发送成功”。
  • 命令码回包不匹配。平台下发1014或2000–2999参数查询时,现场机回包字段缺失,平台侧会认为该点位参数不完整,后续数据入到异常队列。

网络层:链路在线但报文到不了

  • 平台IP、端口填错,或域名解析到旧地址;TCP能连上但连的是测试环境。
  • 现场防火墙、NAT映射把长连接空闲断开,心跳1000间隔大于平台超时时间。
  • 4G信号看似满格,APN或专网卡没有数据权限,短报文能发、长报文超时。
  • 平台侧3020校时命令未回,时间偏差累积后数据时间戳超窗。

设备层:COD自动监测仪到数采仪这段没读对

  • RS485的A/B接反、波特率或校验位不一致,数采仪能“连上”但从机无响应。
  • Modbus寄存器地址偏移一位,读到的是状态字而不是浓度值。
  • 32位浮点高低字顺序反了,COD值变成极小或极大数,平台判超量程。
  • 仪表单位是g/L,数采仪按mg/L直接上报,数值差1000倍。
  • 采集周期大于上报周期,数采仪用上一次缓存值补包,平台收到重复时间戳。
  • COD自动监测仪处于校准或故障状态,状态字有报警,但数采仪仍按正常值硬填0。

平台层:数据到了但没入库

  • 排口未绑定COD因子,或因子未启用。
  • 平台量程配置小于现场实际量程,超过部分判无效。
  • 数据审核规则把连续零值、恒值、突变值剔除。
  • 时区或时间戳格式不一致,平台按未来时间拒收。
  • 分钟数据补传窗口已过,平台只保留小时数据,现场看分钟有、平台看小时无。

排查顺序:为什么先看平台日志,再动现场

顺序本身就是效率。平台显示无数据,先确认“报文到底有没有到平台”。如果平台原始报文里能看到COD字段为空,问题在组包或采集;如果平台根本收不到这条命令码,再查网络和设备。反过来,一上来换卡、重启,会把现场状态打乱,日志也丢了。建议按“平台原始报文—数采仪发送日志—数采仪与COD仪通讯—网络链路”倒着查。

每一步都要留证据:平台侧导出原始报文,数采仪侧导出发送日志,现场用调试工具读一次COD自动监测仪的原始寄存器。三份记录放在一起比对,因子编码、DataTime格式、Rtd数值、Flag状态、CRC校验结果都能对上,问题基本就锁定了。

每步的判断标准和处置动作

现象判断动作
平台在线,但原始报文无COD因子因子编码或组包配置错对照平台因子表改编码,重发一条测试报文,看平台是否入库
报文有COD字段,Rtd为0或“--”数采仪没读到仪表值查RS485接线、波特率、寄存器地址和数据类型
数采仪发送日志显示发送成功,平台无记录链路或平台接收问题抓包看TCP握手和回包,核对IP、端口、心跳1000
平台有数据但被标无效Flag、量程、审核规则核对Flag位、平台量程和仪表量程,检查3020校时后的时间戳
数据时有时无,间隔不固定网络闪断或采集周期错位看4G信号质量、心跳间隔、数采仪缓存补传策略

判断标准再补一条:平台原始报文和数采仪发送日志要逐字比对,重点看011因子、DataTime时间格式、Flag是否为N、CRC是否通过。不要只看“发送成功”四个字,发送成功只说明数采仪把包发出去了,不代表平台收了、更不代表平台认了。

三个容易误判的坑

第一个坑:看到“连接成功”就换卡。连接成功只说明TCP通了,COD数据可能卡在因子编码或寄存器解析。换卡不解决组包问题,还容易把原卡锁死。

第二个坑:把COD显示0当成仪表没测。现场仪表本地有数,数采仪读到0,多半是寄存器地址偏了或32位浮点字序反了。先读原始寄存器,再谈换算。

第三个坑:平台没数据就改量程。有人把平台量程改小,想让数据“进来”,结果实际浓度超平台量程,反而全被判无效。量程应与COD自动监测仪设置和验收资料一致,不能为了显示好看随意改。

FAQ

问:我这个情况到底要不要传?数采仪显示在线,平台没数据。
先传一条测试报文,确认平台原始报文里有没有COD因子。有因子没数值,查仪表到数采仪;没因子,查组包和平台因子表。不要先换卡。

问:COD自动监测仪本地有数,数采仪采集不到,先查什么?
先查RS485的A/B和波特率,再查寄存器地址、数据类型和字序。用Modbus调试工具直接读仪表,能读到正确值,再查数采仪配置。

问:平台数据一会儿有一会儿没有,是不是4G卡的问题?
不一定。看心跳1000是否按平台要求发送,数采仪缓存有没有补传,平台是否按时间戳去重。4G信号质量、APN和专网权限也要看,但别只盯卡。

问:要不要把COD量程改小,平台就能收到?
不建议。平台量程、仪表量程和验收资料要一致。改小后超量程数据会被判无效,还会影响后续统计。先解决采集和组包,再谈量程。