3. 现场数据采集与预处理

数采仪在现场承担的第一项实质工作,是把传感器或分析仪输出的原始信号,转换成平台能够理解、能够入库、能够参与统计的“有效数据”。这一步看似只是“读数和上传”,实际上包含五个彼此衔接的环节:按什么节奏采集、原始值如何换算成工程量、换算后的数据是否可信、不可信的数据如何标记、断网或异常时数据放在哪里。任何一个环节处理不当,都会让平台上的曲线“看起来有数、实际不可用”。

下面以一台典型的水质在线监测数采仪为例展开。该数采仪接入 COD 分析仪、氨氮分析仪、pH 计和超声波流量计,通过 RS-485/Modbus RTU 轮询仪表,再经 4G 上报至平台。示例中的寄存器地址、量程和阈值均为教学假设,实际工程应以仪表说明书和排污许可证要求为准。

一、采集频率:不是越快越好,而是与仪表节拍匹配

采集频率要区分三个不同概念:仪表测量周期、数采仪轮询周期、平台上报周期。三者不必相同,也不能随意设置。COD 分析仪采用间歇消解比色法,单次测量周期可能长达 30~60 分钟,若数采仪每 10 秒轮询一次,读到的只是同一个测量结果的重复值,既浪费总线带宽,也会让平台误以为数据更新很频繁。合理的做法是:轮询周期略小于仪表测量周期(例如仪表 30 分钟出一次结果,轮询设为 1 分钟),保证不漏掉新结果;上报周期按监管要求设置,常见为 1 分钟、5 分钟或 10 分钟均值上报。

对于 pH、流量这类连续输出型仪表,轮询可以更快,例如 5~10 秒一次,但上报前通常要做分钟均值或瞬时值抽样。需要特别注意的是,数据标记时间应使用仪表测量完成时刻或数采仪采集时刻,而不是上报时刻,否则断网补传后时间轴会整体错位。工程上一般约定:数采仪本地时间为准,并开启 NTP 对时,偏差超过 30 秒即记录一条对时异常事件。

二、量程换算:从寄存器整数到工程量

仪表通过 Modbus 送出的往往是整数寄存器值,需要按线性关系换算为工程量。通用公式为:

工程量 = 原始值 × 量程跨度 / (寄存器满量程 - 寄存器零点) + 工程量零点

示例:氨氮分析仪
  寄存器范围 0~4000,对应工程量 0~50 mg/L
  读到原始值 1260
  工程量 = 1260 × 50 / 4000 = 15.75 mg/L

实际配置中还要处理三种情况。第一,寄存器可能带符号或偏移,例如 pH 常以 0.01 为单位、偏移 0 对应 0.00,读到 735 即 7.35;温度类仪表可能用补码表示负值。第二,量程要与仪表实际设置一致,若现场把分析仪量程从 0~50 改为 0~20 mg/L 而数采仪未同步修改,所有换算结果都会偏大 2.5 倍,这是现场最常见的“数据整体漂移”原因之一。第三,换算系数应集中配置、可追溯,建议在数采仪参数表中记录仪表型号、寄存器地址、数据类型、量程上下限、单位和小数位,修改时留痕。

现场采集与预处理链路(示例:水质在线监测数采仪) COD 分析仪 30 min / 次 氨氮分析仪 0~4000 → 0~50 mg/L pH 计 0.01 单位 / 偏移 超声波流量计 瞬时 + 累计 数采仪采集 RS-485 / Modbus RTU 轮询周期 1 min NTP 对时 ±30 s 采集时刻打时间戳 原始值 + 状态字 CRC 校验 量程换算 原始值 → 工程量 量程/单位/小数位 有效性判断 超量程 / 恒值 / 跳变 仪表故障字 / 缺测 异常值标记 保留原值 + 标记码 不参与统计 / 可追溯 本地缓存 环形队列 / 断点续传 容量 ≥ 30 天 先进先出覆盖策略 平台上报 4G / HJ 212 或 MQTT 补传按时间顺序 断网重传 说明:图中寄存器范围、量程、轮询周期、缓存容量均为教学示例参数,实际以仪表说明书与监管要求为准。 关键原则:先换算、再判断、后标记;异常值保留原值不删除,缓存保证断网期间数据不丢失。

三、数据有效性判断:先看“能不能用”,再看“准不准”

有效性判断解决的是“这条数据是否具备参与统计和上报的资格”。工程上通常按由粗到细的顺序检查:

  • 通信与仪表状态:Modbus 无响应、CRC 错误、仪表返回故障字(如光路异常、试剂不足、测量超时),直接判为无效,标记为“仪表故障”或“通信中断”。
  • 缺测判断:在应到时刻未收到新测量结果,记为缺测,而不是沿用上一次的值。沿用旧值会造成“恒值”假象,是数据审核中的典型问题。
  • 量程与物理边界:换算后超出仪表量程上限或低于下限,判为超量程;pH 超出 0~14、流量为负(除非明确允许反向流)等,判为越界。
  • 变化率与恒值:相邻两次测量变化超过设定阈值(如 COD 一分钟内跳变超过量程的 30%),或连续多个周期数值完全不变且仪表本应变化,需标记为“疑似异常”,交由平台复核。

需要强调,有效性判断的结论应写入数据标记字段,而不是直接丢弃数据。原始测量值、换算值、标记码、判断依据应一并保留,这样平台侧既能按“仅统计有效数据”出报表,也能在复核时还原现场到底发生了什么。

四、异常值标记:保留原值,用标记码表达语义

标记码建议采用可扩展的枚举,并与上报协议字段对应。一个可直接参考的示例如下:

标记码含义典型触发条件是否参与统计
N正常通信正常、在量程内、无故障字是
M缺测应到时刻未收到新结果否
F仪表故障故障字置位、测量超时否
C通信中断轮询无响应、CRC 连续错误否
O超量程换算值高于上限或低于下限否
S疑似异常变化率超阈值、长时间恒值待复核
T维护/校准人工置维护状态否

标记的价值在于“可解释”。平台看到一条 O 标记的数据,知道是超量程而非仪表损坏;看到 S 标记,知道需要人工复核而不是直接采信。若把异常值简单删掉,平台只会看到数据缺口,反而增加排查成本。

五、本地缓存机制:断网期间的数据不能丢

现场 4G 信号波动、平台维护、SIM 卡欠费都会造成上报中断。数采仪必须具备本地缓存能力,核心要求有三点:写得住、找得回、传得对。写得住指采集到的数据先落本地存储再尝试上报,避免“上报失败即丢失”;找得回指按时间顺序建立索引,补传时从最早未确认的记录开始;传得对指补传数据保留原始采集时间戳和标记码,不能把补传时刻当作数据时刻。

缓存容量应按“最大可能断网时长 × 数据量”估算。例如 4 个参数、每分钟 1 条记录、每条约 200 字节,一天约 1.1 MB,按 30 天设计约 35 MB,选用带掉电保护的 Flash 或工业级 SD 卡即可满足。缓存满时建议采用先进先出覆盖最旧未确认数据,并同时产生一条“缓存溢出”事件上报,提示运维人员尽快恢复链路,而不是静默丢弃。

补传时建议采用“确认后删除”机制:平台返回接收成功应答后,数采仪才将该批记录标记为已上传;未收到应答的记录保留在缓存中,下次继续重传。这样即使补传过程中再次断网,也不会出现“删了但没传成功”的数据空洞。
常见误区:把“上报周期”当作“采集周期”,导致仪表两次测量之间的中间状态被重复上报;或在量程变更后只改平台显示、不改数采仪换算参数,造成整条曲线系统性偏移。变更量程、单位、寄存器地址后,应同步核对数采仪参数表,并用标准信号或标准液做一次比对确认。

把上述五个环节串起来看,现场数据采集与预处理的本质是:用与仪表节拍匹配的频率拿到原始值,用与仪表设置一致的参数换算成工程量,用明确的规则判断其可用性,用标记码保留异常语义,用本地缓存兜住链路中断。这五步做扎实,平台上的数据才有资格进入统计、报警和执法依据环节;任何一步偷懒,后续的联网上传都只是把不可靠的数据搬运得更远。