前言
在物联网(IoT)和工业自动化领域,边缘计算设备扮演着至关重要的角色。边缘采集网关作为连接物理世界与数字世界的桥梁,负责收集传感器数据并将数据传输到云端或本地数据中心进行处理。
本文将介绍一款基于 .NET 8 的跨平台高性能边缘采集网关的开源项目。希望通过这个项目能够帮助大家搭建和部署高效的边缘采集解决方案。
项目介绍
基于.NET 8 的跨平台高性能边缘采集网关,单机采集数据点位可达百万。
ThingsGateway 是C#开发的一款边缘采集网关,核心分为四大部分。
- 通道
通道,实际上相当于一个实际的通讯链路,比如一个串口,一个TCP连接等,在ThingsGateway 中, 通道也会作为线程池中的一个任务,对于同一个通道中的不同设备,采集/业务方法是顺序进行的。
- 插件
ThingsGateway中的采集方法或者上传方法等都由插件完成,主程序只负责调度执行。 对于不同的采集协议或者业务需求,可以通过开发插件完成自定义的业务操作。
- 设备
建立设备,必须指定通道以及插件,也可以说设备其实是插件的配置。 同时对于采集设备、业务设备,会有些许差别。
采集设备:采集数据入网关/写入数据到现场
业务设备:上传数据到第三方/第三方RPC反写
- 变量
变量,用于配置采集设备的具体点位详情,以及对应业务设备中的配置项
项目特点
- 可视化操作
通过web浏览器配置,调试,验证整个流程
- 脚本支持
灵活的数据转换脚本以及数据上传自定义实体脚本,可适配各大云平台的物模型
- 自定义插件支持
通过开发插件完成自定义的业务操作。
- 性能
测试100w变量点位,500ms-1000ms全部采集完成,稳定连续采集占用CPU资源、内存资源低。
- 断线缓存
支持断线缓存,恢复后自动上传。
- 完整可商用的边缘网关
完善的配置权限,操作日志功能等,还有OPC、WebAPI、Mqtt、Kafka、时序库、变量报警等更多功能等待你发现。
项目插件
- 采集插件
插件名称 | 备注 |
---|---|
Modbus | Rtu/Tcp报文格式,支持串口/Tcp/Udp链路 |
SiemensS7 | 西门子PLC S7系列 |
Dlt6452007 | 支持串口/Tcp/Udp链路 |
OpcDaMaster | 64位编译 |
OpcUaMaster | 支持证书登录,扩展对象,Json读写 |
- 业务插件
插件名称 | 备注 |
---|---|
ModbusSlave | Rtu/Tcp报文格式,支持串口/Tcp/Udp链路,支持Rpc反写 |
OpcUaServer | OpcUa服务端,支持Rpc反写 |
MqttClient | Mqtt客户端,支持Rpc反写,脚本自定义上传内容 |
MqttServer | Mqtt服务端,支持WebSocket,支持Rpc反写,脚本自定义上传内容 |
KafkaProducer | 脚本自定义上传内容 |
RabbitMQProducer | 脚本自定义上传内容 |
SqlDB | 关系数据库存储,支持历史存储和实时数据更新 |
SqlHisAlarm | 报警历史数据关系数据库存储 |
TDengineDB | 时序数据库存储 |
QuestDB | 时序数据库存储 |
项目展示
1、ThingsGateway 演示地址
账户 : SuperAdmin
密码 : 111111
2、登录页面
3、系统首页
4、网关管理
5、网关状态
6、网关日志
项目地址
- 文档:https://kimdiego2098.github.io/
- Gitee:https://kimdiego2098.github.io/
- Github:https://github.com/kimdiego2098/ThingsGateway
- Nuget:https://www.nuget.org/packages?q=Tags:"ThingsGateway"
最后
如果你觉得这篇文章对你有帮助,不妨点个赞支持一下!你的支持是我继续分享知识的动力。如果有任何疑问或需要进一步的帮助,欢迎随时留言。也可以加入微信公众号 [DotNet技术匠] 社区,与其他热爱技术的同行一起交流心得,共同成长!