工业互联网网关软件分析与设计

一、 案例软件分析

一、总体目标

工业互联网是新一代信息技术与制造业深度融合形成的新兴业态和应用模式,其发展前景广阔。工业互联网网关是将各采集监测点的数据通过无线或有线传感网络进行数据汇集,进行统一有效的监管。在工业互联网体系架构中,感知层网络和工业互联网之间需要一个网关设备,实现工业互联网与传感层网络的互联互通。工业互联网网关旨在解决当前感知层网络设备的横向不关联,无法联动控制和统一管理的问题。网关以工业互联网为载体进行信息交换,把分散在各种工业现场的感知网络设备信息进行采集、存储、分析、管理,并能够对多种协议下的数据进行解析。

二、需求分析

如下图所示,网关软件需要实现的功能主要包括:

(1)串口收发:通过串口实现软件与设备的通信,传输相关数据。

(2)本地设置:用于设置串口号、定时周期、感知节点信息、访问权限、网关及网络相关参数等。

(3)本地数据存储:基于 Access 数据库编程技术,实现采集数据本地化存储。

(4)本地数据显示:将存储到数据库中的采集数据以图表形式展现出来。

(5)本地数据导出:采集的数据还可以 Excel 的格式输出。

(6)实时数据通信:通过 WebSocket 技术,实现本地与远端(云服务器) 之间的数据实时传送、显示与双向控制。

(7)远程网络通信: 搭建 TCP 服务器,通过 Socket 编程技术,实现采集数据的 远程传送,方便在本地与远端(云服务器)进行网络存储。

(8)实现多协议转换:采集器可能是支持多种通信协议的不同设备。

img

三、总体设计

下图中的数据采集器是一种嵌入式设备,用于采集工业现场环境的实时数据,其数据通过 RS485总线或其他总线传输至工控机;各数据采集器(节点)通过 RS485总线进行联网,通信数据封装一般采用 Modbus等工业通信协议;边缘计算设备采用基于工控机的网关软件进行集中处理,具体包括串口数据收发、本地设置、数据本地存储、数据本地显示、网络数据实时传输等功能;工控机和云平台直接通过 WebSocket 和 Socket 协议进行通信,其中,WebSocket 协议可为云平台提供双向实时数据传输,达到远程实时显示和远程控制的目的,Socket 协议则用于传送 RS485 采集过来的工业现场数据,并传送到云平台上去;在云平台上,需要部署 WebSocket 和 TCP 服务器,并提供实时显示、存储、监控及管理等 Web 应用功能。

img

工业互联网网关中集成通用的短距离通信协议,能覆盖大部分工业领域的感知层设备,为感知网络节点数据提供统一的封装,保证不同的协议能够抽象成统一的数据帧,通过上行通信接口上传至应用服务器端;应用服务器端数据,通过通用的工控协议、互联网协议将数据下发给工业物联网网关,网关通过协议解析,将数据帧拆解并重新组合成感知层网络能识别的数据帧,通过下行通信接口进行下发。

img

四、详细设计及实现部署

1、实时数据通信

网关软件实时数据通信采用了WebSocket技术。WebSocket 技术是 HTML5 标准下的一种新的应用层协议,实现了服务器和浏览器之间全双工通信。WebSocket 能够像 Socket 一样,在服务器和浏览器之间形成一个真正的“长连接”。 具体实现原理为:

(1)客户端发起连接请求;

(2)服务器根据规则接收客户端请求后,进行握手,握手成功后建立连接;

(3)连接成功建立后,和 Socket 通信类似,可以在客户端和服务器之间以帧序列的方式收发数据,无需发起新的连接请求,其中发送方以帧序列格式发送,接收方需要对帧序列进行解码;

(4)客户端发起断开连接或者网络中断时,连接才会中断。

img

由此可以看出,WebSocket 技术是一种真正的全双工通信协议,成功建立连接后,客户端和服务器之间的地位是完全对等的,其协议是基于 HTTP 协议,非常适合B/S 架构。因此,通过使用 WebSocket 技术,可以实现对远程服务器端的实时发送与控制。下面介绍具体实现过程。在连接前,需要首先搭建基于PHP的WebSocket服务器端,并通过Apache httpd服务器发布。网关软件端作为客户端,需要设置 WebSocket 服务器的相关信息,包括 IP 地址和端口号等。 其中服务器端连接程序包括:

(1)创建连接:$conn=socket_create(AF_INET, SOCK_STREAM, SOL_TCP);

(2) 绑定 ip 和端口号:socket_bind($conn, $address, $port);

(3) 监听:socket_listen($conn, 5)。

客户端主要程序包括:

(1)static WebSocketClass socketManager; string jsonStr = JsonNewtonsoft.ToJSON(data);// 将多组数 据组成成 json 格式

(2)socketManager.Send(jsonStr); // 发送数据

(3)string str = socketManager.Recv(); // 等待服务器返回数据

在与 WebSocket 服务器建立连接后,客户端不仅能够把 采集到的多组数据以json格式封装发送到服务器,还能接收 到服务器发送回来的数据,进而对温度采集器实施控制、管 理,真正实现网页端大数据实时监测与监控功能。安全性方 面,在 HTTP 握手的时候,需要进行 HTTP 认证,以确保服务器与浏览器之间通信安全。此外,项目实施后,还要防范 XSS 漏洞攻击,在后续版本中,还将对数据进行加密处理, 防止明文传输带来安全漏洞。

2、远程网络通信

网关软件远程存储采用传统 Socket 技术中的 TCP 传输协议,是一种 C/S 架构,在具体实现过程中选用了异步 Socket 插件 SanNiuSignal。SanNiuSignal 是一个 dll 文件,具有简单易用、传输稳定等特点,非常方便建立基于 TCP 和 UDP 的数据传输,简化编程流程。经过测试,能够满足远程 数据传输功能。 具体实现过程包含服务器和客户端(网关软件)两部分。其中,服务器端,需要搭建 TCP 服务器,设置服务器端口,并点击启动监听按钮,监听客户端发起连接。客户端设置服务器 IP 地址和端口号,发起连接请求,服务器接 收请求后,客户端和服务器之间即可实现双向通信。客户端负责将采集到的数据以 json 格式封装,发送到服务器端,还会监听服务器发送过来的数据。服务器端不仅能够接收 数据、解析数据,并将数据存储到 MySQL 网络数据库中,还能够发送数据到客户端,并监测是否存在非法用户,确保数据的安全性。客户端主要代码包括:

(1) private ITxClient client = null; string ip_addr=textBox9.Text;// 读取服务器 IP 地址

(2) string ip_port= textBox10.Text;// 读取服务器端口号

(3) TxClient = TxStart.startClient(ip_addr, int.Parse(ip_port));

if (TxClient!=null)TxClient.sendMessage(jsonStr);// 发 送 json 数据包到服务器端

服务器端主要代码包括:

(1) Data4 data4 = JsonNewtonsoft.FromJSON(str); // 解析 json 内容

(2) int i=DataPackTool_MySQL.InsertData4(data4); // 存储数 据到 MySQL 数据库

3、串口收发及通信协议转换

本网关软件支持一路串口、多路节点的数据收发,在开始采集数据前,需要设置串口号、本机序列号、采样周期、节点地址批量添加等参数。网关软件和数据采集器之间是一种主从模式,网关软件为主,数据采集器为从,只要网关软件发送指令,数据采集器才会返回响应的数据。以Modbus 协议为例,协议分为发送指令和返回数据帧。其中发送指令包括传感器地址、功能码、寄存器起始地址、寄存器数量、CRC 校验,而返回的数据帧内容包括地址码、功能码、数据长度、数据以及 CRC 校验码。而功能码不仅包含读取数据,还包含修改地址、 修改串口通信比特率、设置用户标定零点、设置 scl3300 工 作模式、设置 scl3300 工作采样率等内容。知道这些协议数据包的组成后,我们定义了一种新的通信协议来构建数据包,将底层的modbus协议等解析出来的数据重新封装为一统一格式,再通过websocket、socket、mqtt等已有的通信协议传输至控制台软件或云平台。实现数据通过 MQTT 协议与云平台进行交互。协议参数配置模块负责工业协议数据的接入参数配置,数据解析模块负责对上行和下行的数据进行标准和格式的转换。

五、数据库设计

数据库设计:完整项目包含服务器端的 MySQL 数据库和边缘计算机网关软件端的 Access 数据库。网关软件为本地数据库,只包含两张表,分别是用户表(ID, myname, mypass),数据表(ID,sensorId,sensorName,first,second,third,forth,createtime),其具体表项定义分别如1和表2所示。其中,用户表用于登录验证用,数据表用于存储各节点采集的数据。

img

二、 再分析

工业互联网网关的主要功能是实现对工业感知层不同的异构设备进行管理监控,交互控制并将其接入互联网,从而实现对设备及工业数据的云监控、云设置,基本功能大致如下:

(1) 将感知层设备接入互联网,需要解决协议转换的问题;

(2) 对感知层设备进行管理控制,需要了解不同设备的控制命令并进行统一;

(3) 与互联网云平台进行通信,需使用MQTT、TCP等;

三、 再设计

暂且将电脑作为网关,使用电脑进行开发。

1、设备数据的帧格式:起始字符、长度、控制域、链路用户数据、校验和、结束字符等。

img

长度 L 包括协议标识和用户数据长度,由 2 字节组成,如下图所示

img

控制域 C 表示报文传输方向和所提供的传输服务类型的信息,定义见下图:

img

传输方向位 DIR:DIR=0:表示此帧报文是由服务提供方发出的报文; DIR=1:表示此帧报文是由服务请求方发 出的报文。

启动标志位 PRM:PRM =1:表示此帧报文来自启动站;PRM =0:表示此帧报文来自从动站。

帧校验和:帧校验和是用户数据区所有字节的八位位组算术和,不考虑溢出位。

应用层(链路用户数据)格式定义见下图 :

img

帧序列域 SEQ 为 1 字节,用于描述帧之间的传输序列的变化规则,由于受报文长度限制,数据无 法在一帧内传输,需要分成多帧传输(每帧都应有数据单元标识,都可以作为独立的报文处理)。SEQ 定义如下图

img

2、设备和云平台交互流程:

img

3、云平台和设备交互流程:

img

4、在python中,我们可以定义一个数据类来解析该数据包,如下图所示:

img

将解析出来的数据进行封装后可以通过MQTT传输至云平台,同时我们可以在我们的网关软件中定义许多控制类来对感知层设备进行管理设置。

5、接收数据包校验python编程:

img

6、接收数据包数据解析python编程:

img

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

聚焦丨酷雷曼亮相文旅虚拟现实应用推广活动

图片来源:虚拟现实与元宇宙产业联盟XRMA 2024年3月21日,由文化和旅游部产业发展司主办的数字赋能文旅场景建设行动——文化和旅游虚拟现实应用推广交流活动在北京市石景山区首钢园举办。 酷雷曼市场总监刘方磊出席活动,并在活动现场展示酷雷…

【云呐】固定资产盘点报告表怎么填

报告表以表述清晰为主,避免繁琐,重要数据及问题使用表格形式展示。通过签字对报告负责认同度。内容应全面反映本次盘点,提供参考依据。一、标题 包含单位名称、报告期间等基本信息二、前言 概括本次盘点的目的和任务签署三、盘点范围与时间 明确盘点的固定资产项目和时…

【C语言】2048小游戏【附源码】

欢迎来到英杰社区https://bbs.csdn.net/topics/617804998 一、游戏描述: 2048是一款数字益智类游戏,玩家需要使用键盘控制数字方块的移动,合并相同数字的方块,最终达到数字方块上出现“2048”的目标。 每次移动操作,所…

C++心决之内联函数+auto关键字+指针空值

目录 7.内联函数 7.1 概念 7.2 特性 8. auto关键字(C11) 8.1 类型别名思考 8.2 auto简介 8.3 auto的使用细则 8.4 auto不能推导的场景 9. 基于范围的for循环(C11) 9.1 范围for的语法 9.2 范围for的使用条件 10. 指针空值nullptr(C11) 10.1 C98中的指针空值 7.内联…

RK3568驱动指南|第十四篇 单总线-第165章DS18B20驱动使用ioctl读取分辨率

瑞芯微RK3568芯片是一款定位中高端的通用型SOC,采用22nm制程工艺,搭载一颗四核Cortex-A55处理器和Mali G52 2EE 图形处理器。RK3568 支持4K 解码和 1080P 编码,支持SATA/PCIE/USB3.0 外围接口。RK3568内置独立NPU,可用于轻量级人工…

门户系统商城模块

商城系统:快递商品本地团购到店核销购物场景全覆盖,全新商销解决方案 商城系统是指一套用于构建和运营电商平台的软件系统,可以帮助企业快速搭建网上商城,实现商品销售、订单管理、客户服务等功能。 商城系统的功能:…

蓝桥杯-dfs搜索模板题(二)

蓝桥杯-dfs搜索模板题(二) P1683 入门P1596[USACO10OCT] Lake Counting S1114 棋盘 acwingP1025 [NOIP2001 提高组] 数的划分P1019 [NOIP2000 提高组] 单词接龙结语 P1683 入门 这道题没有回溯的必要,重复走也不计数。最开始的部分要补上。 …

UTAustin最新提出!无相机姿态40秒重建3DGS方法

作者:小柠檬 | 来源:3DCV 在公众号「3DCV」后台,回复「原论文」可获取论文pdf 添加微信:dddvision,备注:3D高斯,拉你入群。文末附行业细分群 详细内容请关注3DCV 3D视觉精品课程:…

lombok与idea版本不兼容问题解决

lombok与idea版本不兼容问题,可以选择更改lombok版本;也可以选择加配置来解决此问题 1、选择 setting->Build,Execution,Deployment->compiler 2、在 Shared build process VM options中加入如下配置,即可解决此问题 -Djps.track.ap.…

uniapp,文字超出几行显示省略号...,展开显示更多

效果图&#xff1a; 代码&#xff1a; <template><view class"text-container"><text class"text-content" click"showDetail">{{ text }}</text><text v-if"showMore" class"view-detail" cli…

Redis 全景图(2)---- 关于 Redis 的三“高”

前言 我们继续写第一篇文章没写完的。其实我也不想将我写的一篇 Redis 文章分成几篇中短文来写&#xff0c;但是没办法&#xff0c;我一次写个1万字&#xff0c;会限流&#xff0c;所以将就一下吧。 上篇文章我用了 Redis 的6大模块这个思路来描绘我脑子中的 Redis。其实这6大…

WPF-基础及进阶扩展合集(持续更新)

目录 一、基础 1、GridSplitter分割线 2、x:static访问资源文件 3、wpf触发器 4、添加xaml资源文件 5、Convert转换器 6、多路绑定与多路转换器 二、进阶扩展 1、HierarchicalDataTemplate 2、XmlDataProvider从外部文件获取源 3、TextBox在CellTemplate中的焦点问题…

这些策略助力打造多元化、公平和包容性招聘流程

多样性、公平和包容(DEI)是企业招聘员工的最佳策略。顾名思义&#xff0c;DEI描述了三个关键组成部分: “多元化”&#xff0c;这取决于吸引、招聘、雇佣和留住多元化的员工队伍; “公平”部分是指确保不歧视和平等就业机会; “包容”要求建立一个尊重、支持和包容的环境&am…

【学习】兼容性测试为何如此重要

兼容性测试是软件测试中非常重要的一环&#xff0c;旨在确保软件在不同的平台、浏览器、操作系统等环境下能够正常运行&#xff0c;并且不会出现兼容性问题。本文将介绍兼容性测试的概念、重要性、实施步骤及实践案例&#xff0c;帮助读者更好地理解兼容性测试在软件开发中的重…

【解决问题】排查linux手动删除文件,但是文件标记为deleted,资源未释放

背景&#xff1a; 生产环境我们把程序生成的数据文件手动删除后&#xff0c;但是空间并没有释放&#xff0c;导致硬盘被占用&#xff0c;不够用 问题排查&#xff1a; 1.查看占用文件状态 使用命令&#xff1a; lsof | grep deleted 查看 文件已经删除了&#xff0c;但是都是…

人事管理系统的设计与实现|Springboot+ Mysql+Java+ B/S结构(可运行源码+数据库+设计文档)请假加班招聘考勤

本项目包含可运行源码数据库LW&#xff0c;文末可获取本项目的所有资料。 推荐阅读300套最新项目持续更新中..... 最新ssmjava项目文档视频演示可运行源码分享 最新jspjava项目文档视频演示可运行源码分享 最新Spring Boot项目文档视频演示可运行源码分享 2024年56套包含ja…

idea编译一直失败处理

切换分支的时候&#xff0c;明明代码正常&#xff0c;但是编译的时候一直失败。。。。特别是多个项目的时候&#xff0c;经常失败。 配置 -Djps.track.ap.dependenciesfalse idea默认是增量编译&#xff0c;设置这个false之后就从头开始编译了。 设置之后&#xff0c;点击编译&…

Linux系统中安装一些常用的插件备用

Linux系统中安装一些常用的插件备用 1.安装wget yum -y install wget 2.安装vim yum -y install vim-enhanced 3.更换yum源为国内的阿里云源&#xff08;选择&#xff09; 1、备份CentOS-Base.repo mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.…

划重点!实物黄金和现货黄金的区别

有人说虽然现货黄金不是实物黄金&#xff0c;但却胜于实物黄金&#xff0c;我们认为如果从投资的便利性&#xff0c;以及潜的获利空间这两个主要的方面来说&#xff0c;上述的观点是相当正确的。但投资者在正式参与之前&#xff0c;最好还是认真了解一下实物黄金和现货黄金的主…

建立统一网络身份认证平台,赋能用户信息安全

“近年来&#xff0c;层出不穷的网络谣言、网络暴力事件以及网络水军、网络黑灰产犯罪屡禁不止、屡打不绝&#xff0c;其主要原因是网络实名制落实不到位。”全国人大代表、黑龙江省大庆市公安局网络警察分局副局长贾晓亮接受记者采访时表示&#xff0c;网络信息安全问题是我们…