MCU 雨量数据对接第三方运维软件‑日降雨量统计问题详解

场景:MCU 采集单元采集雨量传感器脉冲数据,和第三方运维平台对接,日降雨量统计时间基准不一致引发的数据分歧
现状:MCU 硬件底层默认:今日雨量统计周期:当日早 8:00 ~ 次日早 8:00(水文日);第三方运维软件希望按00:00‑24:00(自然日)统计今日雨量。
一、两种日雨量统计口径
1)水文行业习惯(MCU 硬件锁死,底层程序)
统计时段:每日 08:00 至 次日 08:00,水文日,也是雨量站传统统计口径
含义:早上 8 点清零 “今日雨量”,累计接下来 24 小时降雨量,到第二天早上 8 点清零。
MCU 固件逻辑:该清零逻辑写在采集硬件底层,不可远程修改,不能改成 0 点清零。
也就是图中我方回复:这个只有你们软件上编,我们这边程序是锁定,还有可以今日雨量就是早8点开始到次日8点
2)第三方运维软件业务需求(自然日)
统计时段:00:00‑24:00(午夜零点清零)自然日
诉求:数据库 “今日雨量” 需要从 0 点开始计算,方便平台报表、图表展示,方便后期数据统计分析。
矛盾点:硬件 MCU 不能修改清零时刻,不能把硬件清零时间改成 0 点,只能由第三方软件做二次处理。
二、两种可行对接解决方案
方案一:第三方软件侧做时间偏移处理(推荐,不改动 MCU 硬件)
MCU 硬件维持原有:8 点→次日 8 点硬件累计、硬件清零不变。
MCU 原样上传原始数据:上传累计雨量(总脉冲)、采样时刻时间戳,不上传 MCU 内部的 “今日雨量” 这个统计字段;
全部日雨量统计计算工作放到第三方运维软件数据库程序实现;
第三方软件根据原始带时间戳的雨量脉冲,软件内部自行按 00:00‑24:00 自然日重新统计、计算 “今日雨量”;
平台页面展示的今日雨量、日报表全部使用软件二次计算结果,不再读取 MCU 硬件内部 “今日雨量” 寄存器。
优点:不需要修改 MCU 固件,不改动现场设备,不影响原始采集存储,数据溯源可靠。
方案二:软件兼容两套统计口径,页面切换查看
平台同时保留两套统计结果
水文统计:8:00‑次日 8:00(读取 MCU 硬件自带今日雨量寄存器,用于水文上报)
自然日统计:00:00‑24:00(软件基于原始时序雨量重新计算,用于平台页面展示)
报表标注清楚统计时段,避免混淆。
不可以执行的方案:要求修改 MCU 硬件底层清零时间为 0 点。MCU 固件程序锁定,修改需要返厂重新烧录固件,现场无法远程调整;而且会破坏原有水文监测传统统计逻辑。
三、对接沟通要点(和第三方运维沟通话术)
MCU 采集单元硬件底层雨量统计清零时刻固定为每日早上 8 点(水文日,8 点‑次日 8 点),硬件程序锁定,现场无法修改清零时间。
MCU 可以完整上传带时间戳的原始雨量脉冲数据,原始时序数据完整无丢失。
如果平台业务需要 0 点起算的自然日 “今日雨量”,需要第三方运维软件数据库层面基于原始时序雨量做二次统计计算,软件端实现 00‑24 点统计输出。
两种统计口径可以并存:硬件寄存器输出水文日雨量用于水文上报;软件二次计算输出自然日雨量用于平台界面展示。
四、容易踩坑的问题说明
如果第三方软件直接读取 MCU 内部 “今日雨量” 寄存器,该数值永远是8 点到次日 8 点的累计雨量,不是 0‑24 点,直接拿来做自然日报表,每日 0‑8 点时段雨量会统计错误。
原始雨量脉冲 + 时间戳一定要完整上传保存,是做任意口径统计的基础,不要只上传 MCU 已经统计好的 “今日雨量”。
现场 MCU 本地存储也是按 8 点水文日做今日雨量清零,下载本地存储记录同样需要注意口径区分。
五、业务服务链路总结(对应截图业务)
我方 MCU 采集雨量传感器,硬件按照水文日(8 点‑次日 8 点)采集、存储雨量;
将带时间戳原始雨量数据通过通讯规约传输给到第三方运维;
我方告知第三方 MCU 硬件统计规则限制;
由第三方运维软件数据库程序做二次计算,输出符合平台展示要求的 0 点起算的日降雨量统计结果。
补充:雨量脉冲采集,MCU 只负责原始脉冲计数与存储;不同统计时间段的日雨量的加工统计,属于上层软件业务逻辑,不属于底层采集硬件功能。
(上述文字来源于AI看图摘要)