4. 计量数据采集与传输系统搭建

分项计量的价值最终取决于数据能否稳定、完整、可追溯地送达数据平台。仪表侧的电能表、水表、热量表、流量计往往来自不同厂家,接口形态各异:有的提供RS-485串口,有的提供以太网口,有的只有脉冲输出。采集与传输系统要做的,就是在这些异构仪表与统一的数据平台之间建立一条可靠的通道,并把"读什么、多久读一次、读上来怎么解释"这三件事定义清楚。

一、四种通信方式的定位差异

RS-485是物理层标准,只规定差分电气特性和多点总线结构,不规定报文格式。它用一对双绞线(A、B)挂接多台设备,典型半双工、两线制,总线两端需接120Ω终端电阻,屏蔽层单点接地。RS-485本身不定义地址,地址由上层协议赋予,因此它几乎总是与Modbus RTU、DL/T 645等协议配合使用。其优势是成本低、抗共模干扰能力强、布线简单,适合配电房内同一区域、几十米到上千米范围内的仪表组网;局限是轮询式共享总线,节点越多单点刷新越慢,且不具备自描述能力。

Modbus是应用层协议,有RTU(二进制、串口)和TCP(以太网)两种常见形态。它采用主从结构,主站发请求、从站应答,功能码03读保持寄存器、04读输入寄存器最常用于计量数据。Modbus的寄存器只有地址和数值,没有单位、量程、数据类型语义,必须依赖点表(寄存器映射表)来解释,这是工程实施中最容易出错的地方。BACnet面向楼宇自控,对象化建模能力强,模拟量输入对象自带单位、量程、状态标志,适合与BA系统集成,但协议栈较重,对小型计量项目而言配置成本偏高。LoRa属于低功耗广域无线技术,星型拓扑、网关汇聚,单网关可覆盖数公里,适合分散的室外水表、热量表或不便布线的场合,但速率低、实时性弱,且需关注占空比与网关容量。

选型的基本判断:同一配电房或机房内的密集仪表优先RS-485+Modbus RTU;跨楼栋、已有综合布线的走Modbus TCP或BACnet/IP;点位分散、布线困难的室外计量点考虑LoRa;需要与楼宇自控深度联动的,选BACnet。

二、从仪表到平台的采集拓扑

一个典型的分项计量采集拓扑分为四层:现场仪表层、现场总线层、采集网关层、平台层。以某办公楼为例:低压配电室内的12台多功能电力仪表以手拉手方式挂在一条RS-485总线上,地址设为1~12,波特率9600、8位数据位、无校验、1位停止位;各楼层的水表与热量表分别挂在另外两条RS-485总线上,由不同网关采集,避免与电力仪表混挂导致轮询周期被拉长。三台采集网关通过以太网接入局域网,以Modbus TCP方式向数据平台提供数据,或由网关主动以MQTT上报。室外绿化水表因距离远、无桥架,采用LoRa节点接入LoRa网关,再由网关转为以太网上送。

分项计量采集拓扑:仪表 → 总线 → 网关 → 平台 数据平台 点表解析 · 分项归集 · 负荷曲线 · 存储 网关A(电力) Modbus RTU 主站 → TCP/MQTT 网关B(水/热) Modbus RTU 主站 → TCP/MQTT LoRa 网关 无线汇聚 → 以太网上送 以太网 / MQTT RS-485 总线(9600,8,N,1) RS-485 总线(水表/热量表) LoRa 无线 电表地址1 电表地址2 电表地址12 水表地址1 热量表地址2 水表地址8 室外绿化水表LoRa 节点 两端 120Ω 终端电阻 采集参数要点 · 轮询周期:电力仪表 15 s,水/热量表 60 s;单条总线节点数 ≤ 32,超限则拆分总线或加中继 · 寄存器映射:功能码03读保持寄存器,32位浮点占2个寄存器,需确认字序(高字在前/低字在前) · 时间同步:网关每日对时,保证分项数据与总表在同一时间断面可比

三、采集参数配置的实际做法

配置工作从点表开始。以一台多功能电力仪表为例,需要读取三相电压、三相电流、有功功率、正向有功电能等。假设厂家手册给出:电压A相在寄存器0000H,数据类型为32位浮点、高字在前;正向有功电能在寄存器001EH,同样为32位浮点。Modbus RTU请求帧由从站地址、功能码、起始寄存器、寄存器数量、CRC16组成。读取地址为1的电表正向有功电能(起始001EH,读2个寄存器)的请求帧为:

01 03 00 1E 00 02 65 CD
从站地址 01 | 功能码 03 | 起始寄存器 001E | 寄存器数 0002 | CRC16 65CD

应答帧为 01 03 04 XX XX XX XX CRC,其中4个字节按高字在前拼成32位浮点。若现场读出的数值明显异常(如电能出现负值或量级差1000倍),首先怀疑字序或数据类型判断错误,可尝试交换两个寄存器的顺序,或改用32位无符号整数并按倍率换算。这类问题在调试中极为常见,点表中应明确记录"寄存器地址、数据类型、字序、倍率、单位"五项,缺一不可。

轮询策略需要与总线能力匹配。一条9600bps的RS-485总线,每帧请求加应答约20字节,理论上一秒可完成数十次短帧交互,但实际受从站响应延迟(典型20~100ms)制约。若一条总线挂12台电表、每台读4个数据块,单轮耗时可能达到3~5秒。因此电力仪表轮询周期设为15秒是合理的,而水表、热量表变化缓慢,60秒一次足够。切忌为追求"实时"把周期压到1秒,导致总线拥塞、丢帧率上升,反而使负荷曲线出现锯齿状缺口。

四、数据质量与常见故障判断

采集系统上线后,判断其是否健康不能只看"有没有数据",而要看数据是否连续、是否合理。可关注三类指标:通信成功率(成功应答帧数/请求帧数,正常应高于99%)、数据连续性(相邻两点时间间隔是否等于设定周期)、数值合理性(电能累计值单调不减、功率在量程内、水表流量非负)。当通信成功率下降时,按"先物理后协议"的顺序排查:检查A/B线是否接反、终端电阻是否只在两端、屏蔽层是否多点接地形成环流、总线是否与动力电缆同槽敷设;再检查从站地址是否冲突、波特率与校验位是否一致、轮询间隔是否小于从站处理能力。

常见误区:把不同波特率或不同校验方式的仪表挂在同一条RS-485总线上,表现为部分仪表始终无应答;或在总线中间节点加终端电阻,造成信号反射、偶发丢帧。终端电阻只应加在总线物理两端。

对于LoRa链路,还需关注信号强度与网关容量。节点上报周期不宜过密,室外水表每小时一次即可满足分项统计;若发现某节点数据断续,先查安装位置是否被金属井盖或建筑遮挡,再考虑加装中继或调整网关天线朝向。所有采集参数、点表与拓扑变更都应留档,因为分项计量的负荷曲线分析高度依赖数据口径的一致性——口径一变,历史曲线就失去可比性。