基于.NET6的开源工业物联网网关
什么是工业物联网网关
工业物联网网关(IIoTGateway)是一种硬件设备或软件程序,作为本地设备(如PLC、扫码枪、机器人、数控机床、非标上位机等)与云端系统(如物联网平台、SCADA系统、MES系统等)之间的桥梁,在设备和云端之间流动的所有数据都通过IoT网关,如下图所示:

数据的流向
- 设备到云端的通信(数据采集)
- 云端到设备的通信(反向控制)
- 设备到设备的通信(M2M)
基于.NET6的开源工业物联网网关
- 受益于.NET在工控以及医疗等领域的长期积累,网上的确分散着很多通信相关的dll、源码和项目,但至今没有基于B/S架构的开源项目,这也是本项目的初衷。
- 依托.NET6开源、跨平台、高性能的特点,以及WTM 框架的低代码开发方式,快速搭建起网关应用。目前已完成遥测和属性的上传,反向控制正在开发中。

- 项目地址
- github:iotgateway
- gitee:iotgateway
- 项目文档:http://42.193.160.84/
- 在线体验:http://42.193.160.84:518/
开源网关具有以下特点
跨平台运行
- 既可以是windows,也可以是linux系统;
- 既可以是主机运行,也可以通过docker运行;
- 既可以是x86主机,也可以是arm32、arm64嵌入式开发板。


内置多种驱动
驱动可以看做公司的一种无形资产。目前提供Modbus完整协议、西门子全系列PLC、三菱QPLC、欧姆龙PLC、ABPLC、MTConnect数控机床等驱动。当然你也可以通过驱动Demo实现自己的驱动,也可以集成业内流行的IoTClient(码农一生)、HSL(胡工)等提供的驱动进行整合。

计算表达式
类似于js等脚本语言,C#也可以作为脚本进行动态编译执行,你可以随时修改表达式对数据进行二次计算,不只是倍率的计算哦。

MQTT服务
内置MQTT Server,可以通过订阅数据与你的业务系统进行集成,当然网关也可以作为MQTT客户端,将数据推送到你的MQTT服务中去。


OPCUA服务
内置OPCUA Server,你的工控系统可以很方便的获取数据。注意,项目中OPCUA相关功能仅用作学习及测试,若使用OPCUA协议请联系OPC基金会进行授权,产生一切纠纷与本项目无关。

数字孪生3D可视化
通过使用threejs搭建了数字孪生的demo,前端通过基于WebSocket的Mqtt协议订阅数据变化,实时获取数据更新,而不是通过WebAPI轮训。


在线组态
无缝集成在线组态项目,快速设计和部署你的可视化应用。


为什么需要物联网网关
协议转换
面对不同年代、不同厂家、不同协议的设备多少会让人头疼,IoT网关会帮助你屏蔽协议的差异,转换为常用的物联网协议(如MQTT、HTTP等)输出到平台端,让你有更多时间专注于平台端的业务建设。
保证安全
所有物联网设备都有被外部影响和攻击的可能,但IoT网关在互联网和设备本身之间增加了另外一层,大幅度减少了连接到互联网的设备的数量,网关变成了第一道防线,进而防止外部各方对物联网设备进行未经授权的控制。
容易扩展
在工业现场的高度分散性的前提下,随着连接的设备数量不断增加,不同协议设备的持续接入,只能通过网关来管理和控制这些复杂的变化,而不是以往牵一发而动全身的痛苦的升级。
数据处理
数据预处理
如倍率、偏移量处理等,这有助于边缘计算的发展,因为他本身就是边缘智能的一种简单应用。
数据过滤
设备产生的海量数据中,全部发送到平台端肯定是不堪重负的,一方面传输、处理和存储都是有成本的;另一方面可能只有一部分是需要关注的,如变化的产量,就需要变化才上传,一直推送不变的值是没有意义的。
数据汇总和聚合
有些场景下不同设备或相同设备的不同变量是需要聚合计算后发送到平台端的,有些原始数据没有特别大的价值,当然这也可以分担一部分平台端的压力。
数据缓存
网络通信不是100%可靠的,断线时IoT网关既需要暂存数据,当网络恢复后发送至云端;又需要存储云端的控制策略,让控制流程及时执行。
基于.NET6的开源工业物联网网关的更多相关文章
- 基于Linux应用层的6LOWPAN物联网网关及实现方法
本发明涉及一种基于Linux应用层的6LOWPAN物联网网关及实现方法,所述物联网网关包括开发平台以及无线射频模块,其实现方法是:所述6LOWPAN物联网网关的以太网网口收到访问6LOWPAN无线传感 ...
- 工业物联网网关在线探测之TraceRoute
佰马工业物联网网关BMG500在线探测通常有Ping.DNS.TraceRoute三种技术方式,这三种方式的区别与联系是什么?本文着重介绍工业物联网网关在线探测的工作原理,以图文形式介绍无线网关在线探 ...
- 物联网网关开发:基于MQTT消息总线的设计过程(上)
道哥的第 021 篇原创 目录 一.前言 二.网关的作用 2.1 指令转发 2.2 外网通信 2.3 协议转换 2.4 设备管理 2.5 边沿计算(自动化控制) 三.网关内部进程之间的通信 3.1 网 ...
- 探索链路追踪在.NET6工业物联网项目的应用
ExploringIoTDistributedTracingNet6 如果觉得有用,请留言学到了. 已经会了的老哥,请留言就这? 可能遇到的问题 工业物联网项目自上而下一般分为ERP.Mes.SCAD ...
- 【重大更新】开源跨平台物联网通讯框架ServerSuperIO 2.0(SSIO)下载
更新具体细节参见:[更新设计]跨平台物联网通讯框架ServerSuperIO 2.0 ,功能.BUG.细节说明,以及升级思考过程! 声明:公司在建设工业大数据平台,SSIO正好能派上用场,所以抓紧时间 ...
- 如何实现PLC与THINGWORX工业物联网平台对接
物联网(Internet of Things),简称 IoT,对于制造商来说,是行业乃至世界范围内的一股变革浪潮.在我们设计和制造的产品中,将会不断嵌入各种软件.传感器和启用 IP 的连接功能.IDC ...
- 物联网学习笔记三:物联网网关协议比较:MQTT 和 Modbus
物联网学习笔记三:物联网网关协议比较:MQTT 和 Modbus 物联网 (IoT) 不只是新技术,还是与旧技术的集成,其关键在于通信.可用的通信方法各不相同,但是,各种不同的协议在将海量“事物”连接 ...
- 开源的物联网技术平台(Thingsboard)
1 总体说明 1.1 产品概述 1.1.1 Thingsboard作用 1.置备并控制设备. 2.采集设备数据并进行数据可视化. 3.分析设备数据,触发告警. 4.将数据传输到另一个系统. 5 ...
- 工业物联网或系统集成中应用消息队列(ActiveMQ,C#的demo)的场景全面分析
1.[连载]<C#通讯(串口和网络)框架的设计与实现> 2.[开源]C#跨平台物联网通讯框架ServerSuperIO(SSIO)介绍 2.应用SuperIO(SIO)和开源跨平台物联网框 ...
随机推荐
- RTSP可用网络流
推荐个音视频学习的网站 https://www.zzsin.com,里面有音视频学习资料和测试视频提供下载B站搜乔红 rtsp://wowzaec2demo.streamlock.net/vod/mp ...
- Java的源码执行(建议结合Javase语法学习来加深印象)
一.源码执行时的先后顺序: 父类的静态属性和静态块(按照声明顺序) 本类的静态属性和静态块(按照声明顺序) main方法 父类的成员属性和成员块(按照声明顺序) 父类构造器 本类成员属性和块(按照声明 ...
- C#二次开发BIMFACE系列61 File Management文件管理服务接口二次开发及实战详解
系列目录 [已更新最新开发文章,点击查看详细] 在我的博客<C#二次开发BIMFACE系列61 File Management文件管理服务接口二次开发及实战详解>最后列出了 Fil ...
- 组合式应用新利器?SaaS新时代事件网格如何解决集成标准化问题
摘要:组合式应用需要面临的一个难题是如何解决各个应用之间的集成标准问题,比如应用可能仅支持HTTP.TCP等协议中的一种,而缺乏统一的通讯标准就给业务落地该架构带来了困难.下面介绍事件网格(Event ...
- mosquitto服务器的安装以及mqtt.fx软件的使用
一.MQTT描述 MQTT 全称为 Message Queuing Telemetry Transport(消息队列遥测传输)是一种基于发布/订阅范式的"轻量级"消息协议,由 IB ...
- JavaScript函数中的arguments对象
ECMAScript标准中,每个函数都有一个特殊的内置对象arguments.arguments对象是一个类Array对象(object),用以保存函数接收到的实参副本. 一.内置特性 说它是一个内置 ...
- 0基础学习docker
进入docker容器命令 docker exec -it 容器id bash 获取镜像 # 1.获取镜像,镜像托管仓库 docker search centos # 查询centos镜像 docker ...
- 『现学现忘』Git对象 — 15、blob对象介绍
目录 (一)Git对象的存放目录 (二)Git中对象类型 (三)blob对象 1.blob对象说明 (1)blob对象定义 (2)blob对象说明 (3)blob对象存储的方式 (4)查看blob对象 ...
- Halo 开源项目学习(七):缓存机制
基本介绍 我们知道,频繁操作数据库会降低服务器的系统性能,因此通常需要将频繁访问.更新的数据存入到缓存.Halo 项目也引入了缓存机制,且设置了多种实现方式,如自定义缓存.Redis.LevelDB ...
- Linux-I/O模型详解
I/O介绍 I/O通常有内存IO.网络I/O.磁盘I/O等,但我们通常说的是网络I/O以及磁盘I/O.网络I/O:本质是socket读取 每次I/O请求,都会有两个阶段组成: 第一步:等待数据,即数据 ...