基于.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,一经查实,立即删除!

相关文章

CityEngine生成不等间距桥墩

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

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元!

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

CityEngine如何生成隧道

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

Flask 应用的文件结构

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

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

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

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

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

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

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

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

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

利用 .NET Core 中的数据保护组件实现限时 Token

前言在业务开发时,我们常常需要生成有过期时间的 Token 凭证。比如重置密码,即使被其他人获取到链接,超过指定时间也无法操作,以保证安全性:常用的实现方式,可以使用缓存或数据库存储 Token 的过期时间。今…

CityEngine Web Scene如何在IIS下部署

CityEngine2012新增了发布Web场景的功能,可以通过本地的Web Scene Viewer打开,也可以发布到ArcGIS Online云端进行共享。如下图: 注:3ws场景包制作方法:选中模型->File->Export->Export Models…->CityE…

WPF 使用DrawingVisual绘制高性能曲线图

一、前言项目中涉及到了心率监测,而且数据量达到了百万级别,通过WPF实现大数据曲线图时,尝试过最基础的Canvas来实现,但是性能堪忧,而且全部画出来也不实际。同时也尝试过找第三方的开源库,但是因为曲线图涉…

数据结构(Java)——迭代器和列表的实例

感谢Java软件结构与数据结构 John Lewis Joseph chase 著 金名译 0. 迭代器关键概念(补充理解) 【1】迭代器是一个对象,它提供了一种依次访问集合中每个元素的方式。 【2】经常把集合定义为Iterable的,说明需要时可以提供一个迭代…

地理信息科学前沿-[热词]

1. LBS Location Based Service:基于位置的服务,它是通过电信移动运营商的无线电通讯网络(如GSM网、CDMA网)或外部定位方式(如GPS)获取移动终端用户的位置信息(地理坐标,或大地坐标)&#xff0c…

《vSphere性能设计:性能密集场景下CPU、内存、存储及网络的最佳设计实践》一1.2.2 内存...

本节书摘来华章计算机《vSphere性能设计:性能密集场景下CPU、内存、存储及网络的最佳设计实践》一书中的第1章 ,第1.2.2节,[美] 克里斯托弗库塞克(Christopher Kusek) 著 吕南德特施皮斯(Rynardt Spies&a…

如何检查服务已在依赖注入容器中注册

前言依赖关系注入(DI),是一种在类及其依赖项之间实现控制反转(IoC)的技术。在ASP.NET Core中,依赖关系注入是“一等公民”,被大量使用。但是有时,我们仅仅只需要知道服务是否在依赖注入容器中已注册。比如,不注册使用分…

iOS9 Storyboard unwind segue反回传递事件时机详细步骤

当返回上一个界面且需要上一个界面做某事时,用unwind segue实现起来比delegate简单许多,甚至有时不适合用delegate来实现,那么我们就用unwind segue吧,而且像1->2->3这样的跳转,3视图可以通过unwind segue方便的返回到1、2任…

ios俩个APP之间跳转、传值

两个APP之间的跳转是通过[[UIApplication sharedApplication] openURL:url]这种方式来实现的。 1.首先设置第一个APP的url地址 2.接着设置第二个APP的url地址 3.需要跳转的时候 NSString *urlString [NSString stringWithFormat:"AppJumpSecond://%",textField.tex…

.Net Core手撸一个基于Token的权限认证

说明权限认证是确定用户身份的过程。可确定用户是否有访问资源的权力今天给大家分享一下类似JWT这种基于token的鉴权机制基于token的鉴权机制,它不需要在服务端去保留用户的认证信息或者会话信息。这就意味着基于token认证机制的应用,不需要去考虑用户在哪一台服务器…

Mybatis-Generator(MBG)教程与Idea的MBG插件

简介 Mybatis Generator(MBG),下面我们统称为MBG,是一个Mybatis和iBatis的代码生成器。他可以内省数据库的表(或多个表)然后生成可以用来访问(多个)表的基础对象。这样减少了项目新建时各种配置对象&#x…