做了套边缘计算数据采集方案,想和你聊聊后续方向,也想听听大家的建议
https://github.com/anviod/edgex
在工厂和工业现场待久了,总能遇到一些让人头疼的事:车间里设备种类多,协议又杂,数据采集常常不稳定,要么延迟高,要么经常断。我做边缘计算的,这段时间一直在现场跟工程师一起调设备、查问题,也慢慢在想一件事:有没有可能做一套更“省心”的采集方案?
于是我们花了一些时间,做了这套南向采集优化方案。它没有太多复杂概念,核心就是把现场的问题一点点解决掉:
不管是 ModbusRTU/TCP、BACnet IP、OPC UA、S7,一套系统统一接入,不再拆分方案。
设备状态好的时候多采一点,网络不稳定的时候自动收敛请求,让系统自己“适应现场”。
某些点位如果经常异常,会自动降频处理,避免一直打无效请求。
同一链路上的设备做连续轮询,减少来回通信的开销。
数据先在边缘侧处理,减少上云压力,提高响应速度。
现场遇到的问题,其实都比较“土”:
网络抖动 → 自动调 timeout
数据太大 → 自动调整分包/传输单元
设备替换 → 自动继承配置原有网关
没用太多花哨的东西,就是把这些问题做成了“系统能力”。
另外在实现上,也尽量控制了运行成本:
整套程序是一个单独压缩包,解压即可运行,不依赖复杂环境。
在资源占用上做了比较严格的控制,128MB 可用内存环境可以运行,推荐 256MB 以上,在一些低配网关或者 ARM 设备上也能稳定跑。
整体设计偏轻量,但功能尽量做全,现场部署不需要再额外拼系统。
现在这套已经在几个现场跑了一段时间,反馈还可以:延迟降了,稳定性提升了,现场工程师也不用频繁盯着设备。
但做着做着,也发现一个问题:
现在这套系统还是“会采集”,但还不够“聪明”。
于是就有了第二阶段的规划:
👉 边缘计算南向采集通道优化与设备画像构建方案 V2
https://github.com/anviod/edgex/blob/main/%5BTODO%5D%E8%BE%B9%E7%BC%98%E8%AE%A1%E7%AE%97%E5%8D%97%E5%90%91%E9%87%87%E9%9B%86%E4%BC%98%E5%8C%96%E6%96%B9%E6%A1%882026%E7%AC%AC%E4%BA%8C%E5%AD%A3%E5%BA%A6.md
这一步不只是“优化采集”,而是想让系统具备一些“判断能力”:
比如:
系统不只是知道设备在线/离线,而是知道“这个设备最近是不是不稳定”。
不同设备会有自己的通信特征(响应时间、错误率、波动情况),系统可以自动识别。
采集策略不再是固定配置,而是可以根据设备状态动态调整。
多个设备之间的行为可以关联分析,而不是单点看问题。
简单说,就是希望系统能从“规则驱动”,慢慢走向“数据驱动”。
目前这块还在设计阶段,也有不少不确定的地方,比如:
设备画像应该做到什么粒度才有价值?
调度策略是完全自动,还是保留人工干预?
异常判断是简单规则,还是需要更复杂的模型?
系统复杂度上来之后,如何保证稳定性不下降?
这些都是接下来要解决的问题。
如果你也在做工业数据采集、边缘计算,或者现场踩过类似的坑,欢迎一起聊聊。
也欢迎提建议,或者一起把这套东西打磨得更实用一点。