当前位置: 首页 > news >正文

.NET 8 跨平台高性能边缘采集网关

目录

前言

项目介绍

通道

插件

设备

变量

项目特点

可视化操作

脚本支持

自定义插件支持

性能

断线缓存

完整可商用的边缘网关

项目插件

采集插件

业务插件

项目展示

1、ThingsGateway 演示地址

2、登录页面

3、系统首页

4、网关管理

5、网关状态

6、网关日志

项目地址

最后


前言

在物联网(IoT)和工业自动化领域,边缘计算设备扮演着至关重要的角色。边缘采集网关作为连接物理世界与数字世界的桥梁,负责收集传感器数据并将数据传输到云端或本地数据中心进行处理。

本文将介绍一款基于 .NET 8 的跨平台高性能边缘采集网关的开源项目。希望通过这个项目能够帮助大家搭建和部署高效的边缘采集解决方案。

项目介绍

基于.NET 8 的跨平台高性能边缘采集网关,单机采集数据点位可达百万。

ThingsGateway 是C#开发的一款边缘采集网关,核心分为四大部分。

通道

通道,实际上相当于一个实际的通讯链路,比如一个串口,一个TCP连接等,在ThingsGateway中, 通道也会作为线程池中的一个任务,对于同一个通道中的不同设备,采集/业务方法是顺序进行的。

插件

ThingsGateway中的采集方法或者上传方法等都由插件完成,主程序只负责调度执行。 对于不同的采集协议或者业务需求,可以通过开发插件完成自定义的业务操作。

设备

建立设备,必须指定通道以及插件,也可以说设备其实是插件的配置。 同时对于采集设备、业务设备,会有些许差别。

采集设备:采集数据入网关/写入数据到现场

业务设备:上传数据到第三方/第三方RPC反写

变量

变量,用于配置采集设备的具体点位详情,以及对应业务设备中的配置项

项目特点

可视化操作

通过web浏览器配置,调试,验证整个流程

脚本支持

灵活的数据转换脚本以及数据上传自定义实体脚本,可适配各大云平台的物模型

自定义插件支持

通过开发插件完成自定义的业务操作。

性能

测试100w变量点位,500ms-1000ms全部采集完成,稳定连续采集占用CPU资源、内存资源低。

断线缓存

支持断线缓存,恢复后自动上传。

完整可商用的边缘网关

完善的配置权限,操作日志功能等,还有OPC、WebAPI、Mqtt、Kafka、时序库、变量报警等更多功能等待你发现。

项目插件

采集插件
插件名称备注
ModbusRtu/Tcp报文格式,支持串口/Tcp/Udp链路
SiemensS7西门子PLC S7系列
Dlt6452007支持串口/Tcp/Udp链路
OpcDaMaster64位编译
OpcUaMaster支持证书登录,扩展对象,Json读写
业务插件
插件名称备注
ModbusSlaveRtu/Tcp报文格式,支持串口/Tcp/Udp链路,支持Rpc反写
OpcUaServerOpcUa服务端,支持Rpc反写
MqttClientMqtt客户端,支持Rpc反写,脚本自定义上传内容
MqttServerMqtt服务端,支持WebSocket,支持Rpc反写,脚本自定义上传内容
KafkaProducer脚本自定义上传内容
RabbitMQProducer脚本自定义上传内容
SqlDB关系数据库存储,支持历史存储和实时数据更新
SqlHisAlarm报警历史数据关系数据库存储
TDengineDB时序数据库存储
QuestDB时序数据库存储

项目展示

1、ThingsGateway 演示地址

账户 : SuperAdmin

密码 : 111111

2、登录页面

3、系统首页

4、网关管理

5、网关状态

6、网关日志

项目地址

文档:kimdiego2098.github.io/

Gitee:kimdiego2098.github.io/

Github:github.com/kimdiego209…

Nuget:www.nuget.org/packages?q=…

最后

如果你觉得这篇文章对你有帮助,不妨点个赞支持一下!你的支持是我继续分享知识的动力。如果有任何疑问或需要进一步的帮助,欢迎随时留言。也可以加入微信公众号 [DotNet技术匠] 社区,与其他热爱技术的同行一起交流心得,共同成长!

相关文章:

  • leetcode日记(72)最大矩形
  • 一文彻底搞懂Transformer - 总体架构
  • 后端开发学习路线
  • 蜂鸣器(51单片机)
  • 苹果微信不小心卸载了怎么恢复聊天记录?4招轻松解决
  • GPT-5:未来已来,你准备好了吗
  • Midjourney应用-用AI帮你做广告视频(动物走秀视频制作)
  • 第七节 流编辑器sed(stream editor)(7.2)
  • 三十六、【人工智能】【机器学习】【监督学习】- Bagging算法模型
  • 解决NLP任务的Transformer为什么可以应用于计算机视觉?
  • 16. 数值的整数次方
  • 论文分享|MLLMs中多种模态(图像/视频/音频/语音)的tokenizer梳理
  • 【Java-一些常见键值对集合面试问题】
  • 学习笔记 韩顺平 零基础30天学会Java(2024.8.8)
  • 2024华为数通HCIP-datacom最新题库(H12-831变题更新⑨)
  • ➹使用webpack配置多页面应用(MPA)
  • Android开源项目规范总结
  • Docker 笔记(1):介绍、镜像、容器及其基本操作
  • HTTP中的ETag在移动客户端的应用
  • JS实现简单的MVC模式开发小游戏
  • 从0搭建SpringBoot的HelloWorld -- Java版本
  • 实战|智能家居行业移动应用性能分析
  • 腾讯大梁:DevOps最后一棒,有效构建海量运营的持续反馈能力
  • 微信支付JSAPI,实测!终极方案
  • 异常机制详解
  • 鱼骨图 - 如何绘制?
  • 终端用户监控:真实用户监控还是模拟监控?
  • PostgreSQL 快速给指定表每个字段创建索引 - 1
  • ​io --- 处理流的核心工具​
  • ​LeetCode解法汇总2583. 二叉树中的第 K 大层和
  • # 利刃出鞘_Tomcat 核心原理解析(二)
  • #android不同版本废弃api,新api。
  • #git 撤消对文件的更改
  • #WEB前端(HTML属性)
  • $(document).ready(function(){}), $().ready(function(){})和$(function(){})三者区别
  • $.ajax中的eval及dataType
  • (+4)2.2UML建模图
  • (¥1011)-(一千零一拾一元整)输出
  • (1)虚拟机的安装与使用,linux系统安装
  • (2022版)一套教程搞定k8s安装到实战 | RBAC
  • (6)【Python/机器学习/深度学习】Machine-Learning模型与算法应用—使用Adaboost建模及工作环境下的数据分析整理
  • (day18) leetcode 204.计数质数
  • (javascript)再说document.body.scrollTop的使用问题
  • (Windows环境)FFMPEG编译,包含编译x264以及x265
  • (一)Dubbo快速入门、介绍、使用
  • (转)chrome浏览器收藏夹(书签)的导出与导入
  • (转)LINQ之路
  • .DFS.
  • .NET 设计模式—适配器模式(Adapter Pattern)
  • .NET 直连SAP HANA数据库
  • .netcore 6.0/7.0项目迁移至.netcore 8.0 注意事项
  • .NET开源项目介绍及资源推荐:数据持久层
  • ?
  • @基于大模型的旅游路线推荐方案
  • [ HTML + CSS + Javascript ] 复盘尝试制作 2048 小游戏时遇到的问题