基于.NET6的开源工业物联网网关

什么是工业物联网网关

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

数据的流向

  1. 设备云端的通信(数据采集)

  2. 云端设备的通信(反向控制)

  3. 设备设备的通信(M2M)

基于.NET6的开源工业物联网网关

  1. 受益于.NET在工控以及医疗等领域的长期积累,网上的确分散着很多通信相关的dll、源码和项目,但至今没有基于B/S架构的开源项目,这也是本项目的初衷。

  2. 依托.NET6开源、跨平台、高性能的特点,以及WTM 框架的低代码开发方式,快速搭建起网关应用。目前已完成遥测和属性的上传,反向控制正在开发中。

c8538579620bbd4541a214bd7171d5ff.png

  1. 项目地址

  • github:iotgateway: https://github.com/iioter/iotgateway/ 

  • gitee:iotgateway: https://gitee.com/iioter/iotgateway/

  • 项目文档:http://42.193.160.84/

  • 在线体验:http://42.193.160.84:518/

开源网关具有以下特点

  • 跨平台运行

  1. 既可以是windows,也可以是linux系统;

  2. 既可以是主机运行,也可以通过docker运行;

  3. 既可以是x86主机,也可以是arm32、arm64嵌入式开发板。
    ca3871d97754567bfd4276d00ea7ff61.png
    0b68fde2dee4fe8db8d35af0bf2e473c.png

  • 内置多种驱动

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

  • 计算表达式

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

  • MQTT服务

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

03e21a925cdf068d4220baddd36d8ddb.png

  • OPCUA服务

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

  • 数字孪生3D可视化

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

29b7ce90e2cf6cd5e12f86a7b7d8d09e.gif

056d3e02e00ea6c3c8f16d502258e7c9.gif

  • 在线组态

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

2f4499160320c19526316fd5fa91d61d.png

为什么需要物联网网关

  • 协议转换

面对不同年代、不同厂家、不同协议的设备多少会让人头疼,IoT网关会帮助你屏蔽协议的差异,转换为常用的物联网协议(如MQTT、HTTP等)输出到平台端,让你有更多时间专注于平台端的业务建设。

  • 保证安全

所有物联网设备都有被外部影响和攻击的可能,但IoT网关在互联网和设备本身之间增加了另外一层,大幅度减少了连接到互联网的设备的数量,网关变成了第一道防线,进而防止外部各方对物联网设备进行未经授权的控制。

  • 容易扩展

在工业现场的高度分散性的前提下,随着连接的设备数量不断增加,不同协议设备的持续接入,只能通过网关来管理和控制这些复杂的变化,而不是以往牵一发而动全身的痛苦的升级。

  • 数据处理

  1. 数据预处理

倍率偏移量处理等,这有助于边缘计算的发展,因为他本身就是边缘智能的一种简单应用。

  1. 数据过滤

设备产生的海量数据中,全部发送到平台端肯定是不堪重负的,一方面传输、处理和存储都是有成本的;另一方面可能只有一部分是需要关注的,如变化的产量,就需要变化才上传,一直推送不变的值是没有意义的。

  1. 数据汇总和聚合

有些场景下不同设备或相同设备的不同变量是需要聚合计算后发送到平台端的,有些原始数据没有特别大的价值,当然这也可以分担一部分平台端的压力

  1. 数据缓存

网络通信不是100%可靠的,断线时IoT网关既需要暂存数据,当网络恢复后发送至云端;又需要存储云端的控制策略,让控制流程及时执行。

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

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

相关文章

php之简单使用数据库

1.数据库连接 1.1用windows命令行链接数据库服务器 几个DOS命令 在DOS环境下命令后面没有分号,在MySQL环境下,命令后面有分号 进入盘符: 语法:盘符: 进入盘符下的某个文件夹 语法:cd 路径 上级目录&#xf…

CityEngine生成不等间距桥墩

在CityEngine中建立高架桥时自动生成的桥墩属于几乎等距的桥墩,对于不等距的桥墩该如何处理?另外,等距桥墩会有产生很多问题,比如:桥墩会压盖在下方路面上。 解决思路:获取桥墩点位数据,之后使用…

linux之vim操作快速跳到下一个空格和上一个空格命令

1、问题 vim里面如何再文本里面快速跳到下一个空格和上一个空格 2、操作 w是在文本里面快速跳到下一个空格 b是在文本里面快速跳到上一个空格

有哪些小游戏的java代码_求一个Java小游戏代码(鼠标点击类小游戏)最好代码里面不要有中文...

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼}else{black_count0;}if(chess[i][j]2){white_count;if(white_count5){JOptionPane.showMessageDialog(this,"白棋胜利");Clear_chess();return;}}else{white_count0;}}}for(int i0;i<11;i)//竖向到五个子赢棋{for(in…

SmartFoxServer资料

http://blog.sina.com.cn/s/blog_6bc2090c0100pgkx.html http://www.cnblogs.com/winson-w/p/3555106.html http://www.smartfoxserver.com/ http://asfox.blogbus.com/c1617676 http://www.cnblogs.com/sevenyuan/archive/2009/12/04/1616853.html

keepalived 报错 Popt libraries is required

2019独角兽企业重金招聘Python工程师标准>>> …… checking for SSL_CTX_new in -lssl... yes checking for poptGetContext in -lpopt... no configure: error: Popt libraries is required 解决办法 yum install popt-devel -y 转载于:https://my.oschina.net/col…

芒果TV会员,月卡最低9.9元,年卡最低128元!

全国首部湘商题材电视剧《一代洪商》&#xff0c;将于3月27日在央视八套&#xff08;电视剧频道&#xff09;播出&#xff0c;芒果TV将线上播出。该剧由王少华编剧&#xff0c;路奇担纲导演&#xff0c;孟凡耀担任总制片人&#xff0c;张丰毅、李立群、张睿、张含韵等人主演&am…

Android studio之迁移定制出现Installation failed with message Failed to finalize session

1、问题 把之前能运行的android studio项目换了个目录&#xff0c;但是运行出现这个错误 Installation failed with message Failed to finalize session 2、解决办法 点击android studio然后点击Build, 然后点击Clean Project

CityEngine如何生成隧道

在我们的生活中&#xff0c;大家经常乘坐汽车、动车等交通工具&#xff0c;会经过如隧道这样的路段&#xff0c;也许大家在经过隧道的时候会有一种疑惑&#xff0c;这隧道是如何修建的&#xff1f;对于我们GISer来讲&#xff0c;可能会考虑如何将其数字化&#xff0c;是以二维的…

idea java8_太赞了,Intellij IDEA 竟然把 Java8 的数据流问题这么完美的解决掉了!...

使用 IntelliJ IDEA 来帮忙构建你自己的实时模板连接分组Java8在2014年三月发布&#xff0c;距离现在(2015年三月五号)快有一年了。我们打算将Pondus的所有生产服务器升级到这一新版本。从那时起&#xff0c;我们将大部分代码库迁移到lambda表达式、数据流和新的日期API上。我们…

免费的编程中文书籍索引

http://siberiawolf.com/free_programming/index.html转载于:https://www.cnblogs.com/zangdalei/p/4967758.html

Flask 应用的文件结构

2019独角兽企业重金招聘Python工程师标准>>> 作为微框架&#xff0c;即便只有一个文件也可以编写基于 Flask 的 Web 应用。然而对于许多现实世界中的应用&#xff0c;拥有数十个以上的视图&#xff08;view&#xff09;是非常正常的&#xff0c;这时候&#xff0c;F…

SSH连接linux时,长时间不操作就断开的解决方案

转载地址&#xff1a;http://www.cnblogs.com/jifeng/archive/2011/06/25/2090118.html修改/etc/ssh/sshd_config文件&#xff0c;找到 ClientAliveInterval 0和ClientAliveCountMax 3并将注释符号&#xff08;"#"&#xff09;去掉,将ClientAliveInterval对应的0改成…

Xamarin效果第十二篇之控制祖传PLC

在前面使用DllImport去调用了公司祖传的PLC;坑也被坑了一下,但是总感觉还是基于祖传的Dll木有一点意思;毕竟就是一个数据的监控和开关量的控制;要是直接能用我的屌丝机控制一下就可以好好开(Z)心(B);毕竟前面咱也是玩过一点点Xamarin的,那就再次拾起来去玩耍一下吧;来看看最终咱…

linux之hexdump命令

1、命令解释 hexdump命令看任何文件的十六进制编码&#xff0c;一般看“二进制”文件。 2、参数意思 -n length 只格式化输入文件的前length个字节。 -C 输出规范的十六进制和ASCII码。 -b 单字节八进制显示。 -c 单字节字符显示。 -d 双字节十进制显示。 -o 双字节八进制显示…

CityEngine下如何更好的实现影像与地形叠加

问题&#xff1a;在利用CityEngine导入影像和地形时&#xff0c;会出现影像或地形不显示的问题。 分析&#xff1a;这主要是由影像、地形的尺寸大小和像素深度两个因素导致的。 解决&#xff1a; 1.调整尺寸 首先看一下影像和地形的大小。我们知道CityEngine并不是一个展示平台…

java script创建对象_javascript笔记:深入分析javascript里对象的创建

大家知道在java里面类可以具有静态属性和方法&#xff0c;无需实例化该类的对象&#xff0c;就可以访问这些属性和方法&#xff0c;但是javascript里面是不是只有通过对象初始化方式才会模拟出这样的特点了&#xff1f;其实不然&#xff0c;在编程语言里&#xff0c;类的方法和…

java虚拟机学习-JVM调优总结-新一代的垃圾回收算法(11)

java虚拟机学习-深入理解JVM(1)java虚拟机学习-慢慢琢磨JVM(2)java虚拟机学习-慢慢琢磨JVM(2-1)ClassLoader的工作机制java虚拟机学习-JVM内存管理&#xff1a;深入Java内存区域与OOM(3)java虚拟机学习-JVM内存管理&#xff1a;深入垃圾收集器与内存分配策略(4)java虚拟机学习-…

一分钟了解Android横竖屏 mdpi hdpi xhdpi xxhdpi xxxhdpi

DPI:每英寸像素数 简单的屏幕分辨率计算方法&#xff1a; DisplayMetrics metrics this.getResources().getDisplayMetrics(); float density metrics.density; int dpi metrics.densityDpi; int heightPixels metrics.heightPixels; int widthPixels metrics.widthPixels…

Eclipse在ubuntu平台不显示顶部菜单栏

1、问题 ubuntu上的eclipse用着用着特么就不显示顶部状态栏了 2、解决办法 sudo /etc/profile export UBUNTU_MENUPROXY0 reboot