36 个驱动模块:应对协议碎片化

在产线数据采集的工程实践中,最耗时的问题通常不是并发或存储,而是协议适配。

同一个车间里,温度传感器说着 Modbus RTU,PLC 是西门子 S7,电表跑着 DLT645,环保监测设备用 HJ 212(SL651 同源的水文规约家族),新采购的网关又是 MQTT。每接一类设备,就要重新学一套报文格式、一套连接管理、一套异常语义。这种碎片化在工业物联网领域已存在二十余年------各协议诞生于不同年代与行业,服务于不同的技术约束,难以彼此取代。

平台层的职责,是屏蔽协议差异对上层业务的影响。

36 个驱动模块是怎么分的

DC3 仓库里的 dc3-driver/ 目录下有 36 个驱动模块,按场景分五类:

  • 工业协议(17 个):Modbus TCP / Modbus RTU、OPC UA / OPC DA、Siemens S7、BACnet/IP、EtherNet/IP、Omron FINS、三菱 MELSEC、IEC 60870-5-104、IEC 61850、DNP3、DLMS、DLT645、KNX、M-Bus、SL651------从工厂自动化到电力楼宇,从抄表到水利。
  • IoT 协议(7 个):MQTT、CoAP、LwM2M、HTTP、BLE、Zigbee、LoRaWAN------云边协同与无线低功耗场景。
  • 数据桥接(5 个):MySQL、PostgreSQL、Oracle、SQL Server、Redis------很多"接入"其实是把别处已落库的数据搬进来,这一类专门干这个。
  • 基础通信(5 个):TCP/UDP、Serial、SNMP、CAN、Kafka------自定义协议的底座与网络管理场景。
  • 仿真调试(2 个):Virtual 与 Listening Virtual------不接真设备也能把整条链路跑通,是平台自测与新人上手的脚手架。

需要说明:36 个驱动的成熟度存在差异,它们均为独立部署的微服务------每个驱动是单独的进程,按需启停、按需扩容,不需要的驱动不参与部署,不占运行资源。

比 36 这个数字更重要的:统一建模

驱动多本身不是壁垒,真正的设计在模型层。DC3 用四个核心实体把所有协议"翻译"成同一种语言:

Driver(驱动)→ Device(设备)→ Profile(位号模板)→ Point(位号)

无论底层是 Modbus 的寄存器地址、OPC UA 的 NodeId 还是 S7 的 DB 块偏移,进到平台里都是同一个 Point 模型:有数据类型、有读写标志、有采集频率、有归属租户。上层数据中心、告警引擎、AI 工具面看到的从来不是"某品牌 PLC",而是一组语义统一的点位。

这就是"协议可以碎,接入模型不能碎"的含义。

Driver SDK:第 37 个驱动从哪来

协议世界永远比驱动仓库长得快,所以 DC3 提供了 Driver SDK 与配套的开发指南(docs.dc3.site 的 Driver Authoring 一章):驱动开发者只需要实现协议解析与点位映射,注册、心跳、调度、数据上行、租户隔离这些平台共性由 SDK 与运行时承担。写完打包成镜像,注册进平台就能被统一管理。

对社区贡献者而言,新驱动应来自真实工位的真实需求------这也是接入层保持开放结构的原因。

实事求是的边界

  • 驱动的成熟度有差异:Modbus、OPC UA、MQTT 这类高频协议经过的实战检验远多于小众协议,选型时建议先用 Virtual 驱动验证链路、再接真实设备;
  • SL651、DLT645 这类行业规约通常还伴随报文加密、私有扩展等现场适配工作量,SDK 解决的是工程结构问题,不能消除协议本身的复杂度;
  • 驱动清单以仓库 dc3-driver/ 目录为准,新驱动在持续增加。

仓库 :GitHub pnoker/iot-dc3 · Gitee pnoker/iot-dc3(GVP)

文档:docs.dc3.site(Driver Authoring Guide)· book.dc3.site · demo.dc3.site

相关推荐
2601_962885721 分钟前
quotes 字段全解:涨跌幅、振幅、换手率的口径与单位
java·前端·spring
前端精髓26 分钟前
调用openrouter的免费API模型
java·前端·javascript
步行cgn43 分钟前
Spring MVC 拦截器 Interceptor 详解:从执行流程到实战应用
java·spring·mvc
文丑颜不良啊1 小时前
LeetCode1381~1400题目解析
java·leetcode
开开心心_Every1 小时前
快速隐藏程序工具自定义快捷键一键切换
java·开发语言·前端·spring·智能手机·word·intellij-idea
萧瑟余晖2 小时前
Spring Batch核心模型与快速上手详解
java·spring·batch
缓慢更新2 小时前
AI 辅助生成单测:从接口定义到用例的流水线
java·服务器·前端·网络·数据库·人工智能
热文新讯2 小时前
迎进博·话疗愈:2026酒店“疗愈睡眠”闭门研讨会在沪举行
大数据·人工智能·物联网
LMT流氓兔4 小时前
第五单元——第十六课:给书店助手加上网页界面
java·开发语言·jvm·人工智能·oracle·langchain·1024程序员节
数字新视界4 小时前
机房动环监控系统助力数据中心高效能管理与安全保障
物联网·数据可视化·数据中心基础设施管理·dcim管理系统·数据中心dcim