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

news/2024/9/20 23:37:16/文章来源:https://www.cnblogs.com/1312mn/p/18354468

前言

在物联网(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:%22ThingsGateway%22

最后

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

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/781641.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

EF Core 索引器属性(Indexer property)场景及应用

EF Core 索引器属性(Indexer property)场景及应用 简介 EF Core 中的索引器属性(Indexer Property)是指通过一个特殊的属性来访问实体类中的数据,而不必明确声明实体属性。这种属性在一些动态或未预定义的场景中非常有用,比如当实体的属性名在编译时并不确定,或者属性名…

EPIC Institute of Technology Round August 2024 (Div. 1 + Div. 2) 补题记录(A~D1,E)

A 容易发现答案为 \(\min(n,k)\min(m,k)\)。 #include<bits/stdc++.h> #define int long long #define pb push_back using namespace std; const int N=1000100; int a[N]; signed main(){int T;cin>>T;while(T--){int n,m,k;cin>>n>>m>>k;n=mi…

后端开发学习敏捷需求--干系人分析与识别

干系人分析与识别 5W1H 干系人分析与识别 1. 干系人是什么直接或者间接影响专题,以及被专题影响的人和组织,用户也是属于干系人,是产品直接或者间接的使用者又叫利益相关者,指积极参与专题或者在专题中其利益可能受积极或消极影响的个人或组织2. 为什么要分析和识别干系人找…

while循环的3个练习

static void Main(string[] arg){//while的3个练习Console.WriteLine("请输入班级人数:");int intNum = 0;while (!(int.TryParse(Console.ReadLine(), out intNum))){Console.WriteLine("班级人数输入有误, 请重新输入!");};int i = 0;int sum = 0;int sc…

地理编码之旅,一场地址与坐标的漫游

随着移动设备的普及和定位服务的发展,在使用导航和位置搜索时,用户期望应用提供的位置是准确无误的,同时用户也希望App可以根据位置提供个性化和本地化服务,比如,在社交媒体上分享位置信息或帮助家庭设备智能联网管理等。想要获取准确的位置,经纬度是确定每个地点位置的精…

结构开发笔记(三):solidworks软件(二):小试牛刀,绘制一个立方体

前言solidworks草图大师,基本的使用过程。  所有的零件基础都是从平面绘制开始,然后凸出来厚度。  本篇绘制一个简单的立方体,熟悉基本操作。 立方体绘制过程选取一个平面绘制一个立方形,然后拉伸即可。  绘制矩形的方式:  功能所见即所得。  其实用2021版本,还…

面经精选:数据库高频面试十问

我把粉丝们发给我的面经好好整理了一下,从里面挖出了十个被问得比较频繁的数据库面试题,可以收藏起来,在面试之前给它突击过一遍。1.InnoDB和MyISAM存储引擎的区别? MySQL 默认的存储引擎是 InnoDB,它采用 B+Tree 作为索引的数据结构。 在创建表时,InnoDB 存储引擎默认会…

Opentelemetry collector用法

Opentelemetry collector用法 目录Opentelemetry collector用法ServiceExtensionshealthcheckextensionPipelinesreceiverOTLP Receiverprometheus receiverfilelog receiverProcessor数据归属Importantmemory limiter processorbatch processorattributes processor &&…

记录JSch连接SFTP Exception:Algorithm negotiation fail问题解决

问题描述:关于正式环境访问外网连接不成功 1、首先检查是否开放防火墙(已确认开放),策略开放后,通过命令连接是否畅通: 通过telnet命令,可以得出,访问畅通。telnet 192.168.1.1 22 2、查看生产环境日志,观察生产环境访问外网服务器异常: 抛出异常,提示:算法协商失…

zkw线段树

zkw 线段树 - 非递归线段树实现方法介绍 非递归线段树实现方法,码量较短。 zkw 线段树的构造原理: 普通线段树采用堆存储,zkw线段树 本质上是满二叉树(若没有该区间则为空点) 但根据实际情况,原区间不一定构成满二叉树,据查询方式限制,空间开到最接近的 \(2^n\)(据性质…

张昆玮线段树

zkw 线段树 - 非递归线段树实现方法介绍 非递归线段树实现方法,码量较短。 zkw 线段树的构造原理: 普通线段树采用堆存储,zkw线段树 本质上是满二叉树(若没有该区间则为空点) 但根据实际情况,原区间不一定构成满二叉树,据查询方式限制,空间开到最接近的 \(2^n\)(据性质…

全红婵夺冠!数业智能心大陆告诉你原生家庭在背后发挥了怎样的力量

2024年巴黎,全红婵在十米跳台上的完美一跃, 再次定义了跳水艺术,水花消失术成为她的代名词!全红婵的辉煌成就,不仅点亮了自己,也照亮了家庭的未来。 而他的家人也非常珍视全红婵的成功。 其父亲坚定的表示:”我们不能消费女儿“。 “不能因为她拿了冠军,我连活都不干了。…