工业网关的通信方法、装置、工业网关及目标平台与流程
未命名
09-22
阅读:52
评论:0
1.本发明涉及通信技术领域,尤其是指一种工业网关的通信方法、装置、工业网关及目标平台。
背景技术:
2.工业网关与传统的家庭网关等网关相比,特点显著,主要包括:
3.1、下挂设备类型多样,有ip设备和非ip设备。
4.2、数据上行通道明确,也就是访问的地址相对固定。
5.以一个典型的工业场景下的网关应用为例,在这个典型场景下,ip设备和非ip设备都通过网关接入同一个平台,并与平台建立多个tcp连接。网关负责将平台对于下挂子设备的寻址,子设备注册、子设备拓扑建立、更新,以及数据协议的转换,子设备与平台的交互均通过网关上行。但大部分子设备接入的的设备是单独注册的,但是消息是网关转发的,网关作为子设备对接平台的统一出入口,不对多个子设备的数据聚合和拆分,即每条消息只携带一个子设备的数据,通过连接的五元组(源地址、源端口、协议、目的地址、目的端口)来标识一个设备与平台的通信连接。
6.现有的对于下挂子设备的管理第一部分需要进行子设备的寻址,常用的方法是对于所有的下挂设备,网关根据感知到的下挂设备类型、mac地址、接入外设口等等信息建立一个地址映射表,每个设备在该表中有一个唯一标识,该唯一标识需要附加在设备与平台的通信消息中。对于现有的常用的北向tcp+mqtt的接入协议来说,大部分采用将这个唯一号与tcp连接的四元组中的源端口绑定,将该端口号建立的连接信息交由对应的协议栈进行处理,最终转发给下挂的子设备。
7.同时,现有的网关和下挂数据的接入大部分平台厂家都提供了物模型接入能力,即按照固定的格式将需要上行的设备数据进行打包后封装在上行的mqtt payload中。这个固定格式由平台定义,网关在与平台通信时会按照这个格式要求进行数据打包。
8.对于这种方案,每个下挂子设备都需要维持一个单独的tcp连接,对网络资源和设备资源、平台资源都存在较大的要求。例如为了维护tcp连接,网关不仅需要与南向的下挂子设备进行连接状态确认,还需要定期与平台进行tcp连接保活,当下挂子设备数量太多的时候,对于网关的计算、网络带宽都带来了较大的挑战。
技术实现要素:
9.本发明实施例的目的在于提供一种工业网关的通信方法、装置、工业网关及目标平台,以解决现有技术中每个下挂子设备都需要工业网关维持一个单独的tcp连接,对网络资源和设备资源、平台资源均较浪费的问题。
10.为了解决上述问题,本发明提供一种工业网关的通信方法,包括:
11.工业网关对接入目标平台的多个下挂子设备采用第一tcp连接进行通信;其中,所述下挂子设备的唯一内网标识与所述第一tcp连接的tcp子流绑定;或者,所述下挂子设备
的唯一内网标识与所述第一tcp连接的应用层功能绑定。
12.其中,在所述下挂子设备的唯一内网标识与所述第一tcp连接的tcp子流绑定的情况下,工业网关对接入目标平台的多个下挂子设备采用第一tcp连接进行通信之前,所述方法还包括:
13.所述工业网关接收所述目标平台发送的与所述第一tcp连接对应的第一设备映射表,所述第一设备映射表包括:所述工业网关的下挂子设备的唯一内网标识与下挂子设备信息的映射关系;
14.所述工业网关根据所述第一设备映射表,更新本地存储的与所述第一tcp连接对应的第二设备映射表,所述第二设备映射表包括:所述下挂子设备的唯一内网标识与下挂子设备的解析协议的映射关系。
15.其中,工业网关对接入目标平台的多个下挂子设备采用第一tcp连接进行通信,包括:
16.所述工业网关接收下挂子设备发送的第一数据包;
17.所述工业网关根据所述第一数据包对应的解析协议,从所述第二设备映射表中查找与所述第一数据包的解析协议对应的所述下挂子设备的唯一内网标识;
18.所述工业网关将所述下挂子设备的唯一内网标识写入所述第一数据包的tcp包头生成第二数据包,并通过所述第一tcp连接将所述第二数据包发送至所述目标平台。
19.其中,工业网关对接入目标平台的多个下挂子设备采用第一tcp连接进行通信,包括:
20.所述工业网关接收所述目标平台发送的第三数据包;所述第三数据包的tcp包头携带所述下挂子设备的唯一内网标识;
21.所述工业网关解析所述第三数据包的tcp包头,并从所述第二设备映射表中查找与所述下挂子设备的唯一内网标识对应的解析协议;
22.所述工业网关将所述第三数据包的有效载荷发送至所述解析协议对应的下挂子设备。
23.其中,所述工业网关接收所述目标平台发送的第一设备映射表之前,所述方法还包括:
24.所述工业网关接收所述目标平台发送的拓扑更新请求消息;
25.所述工业网关根据所述拓扑更新请求消息,确定本地存储的第二设备映射表中的在线下挂子设备是否同意下线;
26.在接收到同意下线的指示后,所述工业网关从所述第二设备映射表中删除同意下线的下挂子设备的信息;
27.所述工业网关将更新后的第二设备映射表发送给所述目标平台,以由所述目标平台根据更新后的第二设备映射表更新所述目标平台本地存储的第一设备映射表。
28.其中,所述工业网关接收所述目标平台发送的第一设备映射表之前,所述方法还包括:
29.所述工业网关接收所述目标平台发送的拓扑更新请求消息;
30.所述工业网关根据所述拓扑更新请求消息,确定本地存储的第二映射表中的在线下挂子设备是否同意下线;
31.在没有在线下挂子设备同意下线的情况下,所述工业网关与所述目标平台之间建立第二tcp连接;其中,所述工业网关建立与所述第二tcp连接对应的第三设备映射表,所述目标平台建立与所述第二tcp连接对应的第四设备映射表。
32.其中,在所述下挂子设备的唯一内网标识与所述第一tcp连接的应用层功能绑定的情况下,所述工业网关对接入目标平台的多个下挂子设备采用第一tcp连接进行通信之前,所述方法还包括:
33.所述工业网关接收下挂设备发送的应用层注册消息的有效载荷;所述应用层注册消息的有效载荷包括:下挂子设备的设备标识以及下挂子设备所属产品的产品标识;
34.所述工业网关向目标平台发送网关注册消息,所述网关注册消息包括所述应用层注册消息的有效载荷以及所述工业网关的标识;以由所述目标平台建立工业网关与下挂设备的拓扑结构。
35.其中,所述方法还包括:
36.所述工业网关周期性检测下挂子设备发送的心跳报文;
37.若超时未检测到下挂子设备的心跳报文,所述工业网关向目标平台发送子设备离线消息,以由所述目标平台根据所述子设备离线消息删除所述拓扑结构中对应的下挂子设备。
38.其中,所述方法还包括:
39.所述工业网关建立与所述第一tcp连接对应的第五设备映射表,所述第五设备映射表包括:所述工业网关的下挂子设备的唯一内网标识与下挂子设备通信信息的映射关系;
40.其中,所述下挂子设备通信信息包括:下挂子设备的设备标识、下挂子设备所属产品的产品标识、下挂子设备所属产品的产品注册码、外设端口号、应用层功能的命令标识中的至少一项。
41.其中,所述工业网关对接入目标平台的多个下挂子设备采用第一tcp连接进行通信,包括:
42.所述工业网关接收目标平台通过所述第一tcp连接发送的目标指令;
43.所述工业网关解析所述目标指令,根据所述目标指令对应的应用层功能以及所述第五设备映射表,确定对应的下挂子设备;
44.所述工业网关向确定的所述下挂子设备发送所述目标指令的有效载荷。
45.本发明实施例还提供一种工业网关的通信方法,包括:
46.目标平台通过与工业网关之间的第一tcp连接,与接入所述目标平台的多个下挂子设备进行通信;
47.其中,所述下挂子设备的唯一内网标识与所述第一tcp连接的tcp子流绑定;或者,所述下挂子设备的唯一内网标识与所述第一tcp连接的应用层功能绑定。
48.其中,在所述下挂子设备的唯一内网标识与所述第一tcp连接的tcp子流绑定的情况下,目标平台通过与工业网关之间的第一tcp连接,与接入所述目标平台的多个下挂子设备进行通信之前,所述方法还包括:
49.目标平台为下挂子设备分配唯一内网标识,并更新与所述第一tcp连接对应的第一设备映射表,所述第一设备映射表包括:所述工业网关的下挂子设备的唯一内网标识与
下挂子设备信息的映射关系;
50.目标平台向所述工业网关发送所述第一设备映射表,以由所述工业网关根据所述第一设备映射表更新工业网关本地存储的与所述第一tcp连接对应的第二设备映射表,所述第二设备映射表包括:所述下挂子设备的唯一内网标识与下挂子设备的解析协议的映射关系。
51.其中,所述目标平台通过与工业网关之间的第一tcp连接,与接入所述目标平台的多个下挂子设备进行通信,包括:
52.所述目标平台接收工业网关通过第一tcp连接发送的第二数据包,所述第二数据包的tcp包头携带下挂子设备的唯一内网标识;
53.所述目标平台解析所述第二数据包的tcp包头,并从所述第一设备映射表中查找与所述下挂子设备的唯一内网标识对应的应用;
54.所述目标平台将所述第二数据包的有效载荷发送至对应的应用。
55.其中,所述目标平台通过与工业网关之间的第一tcp连接,与接入所述目标平台的多个下挂子设备进行通信,包括:
56.所述目标平台接收应用发送的第四数据包;
57.所述目标平台根据所述第四数据包对应的应用,从所述第一设备映射表中查找与所述应用对应的下挂子设备的唯一内网标识;
58.所述目标平台将所述下挂子设备的唯一内网标识写入所述第四数据包的tcp包头生成第三数据包,并通过所述第一tcp连接将所述第三数据包发送至所述工业网关。
59.其中,在所述下挂子设备的唯一内网标识与所述第一tcp连接的应用层功能绑定的情况下,目标平台通过与工业网关之间的第一tcp连接,与接入所述目标平台的多个下挂子设备进行通信之前,所述方法还包括:
60.所述目标平台接收所述工业网关发送的网关注册消息,所述网关注册消息包括下挂子设备发送的应用层注册消息的有效载荷以及所述工业网关的标识;
61.所述目标平台根据所述网关注册消息,建立工业网关与下挂设备的拓扑结构。
62.其中,所述方法还包括:
63.目标平台接收工业网关在超时未检测到下挂子设备的心跳报文的情况下发送的子设备离线消息;
64.所述目标平台根据所述子设备离线消息,删除所述拓扑结构中对应的下挂子设备。
65.本发明实施例还提供一种工业网关的通信装置,应用于工业网关,包括:
66.第一通信模块,用于对接入目标平台的多个下挂子设备采用第一tcp连接进行通信;其中,所述下挂子设备的唯一内网标识与所述第一tcp连接的tcp子流绑定;或者,所述下挂子设备的唯一内网标识与所述第一tcp连接的应用层功能绑定。
67.本发明实施例还提供一种工业网关,包括处理器和收发器,所述收发器在处理器的控制下接收和发送数据,所述处理器用于执行以下操作:
68.对接入目标平台的多个下挂子设备采用第一tcp连接进行通信;其中,所述下挂子设备的唯一内网标识与所述第一tcp连接的tcp子流绑定;或者,所述下挂子设备的唯一内网标识与所述第一tcp连接的应用层功能绑定。
69.本发明实施例还提供一种工业网关的通信装置,应用于目标平台,包括:
70.第二通信模块,用于通过与工业网关之间的第一tcp连接,与接入所述目标平台的多个下挂子设备进行通信;
71.其中,所述下挂子设备的唯一内网标识与所述第一tcp连接的tcp子流绑定;或者,所述下挂子设备的唯一内网标识与所述第一tcp连接的应用层功能绑定。
72.本发明实施例还提供一种目标平台,包括处理器和收发器,所述收发器在处理器的控制下接收和发送数据,所述处理器用于执行以下操作:
73.通过与工业网关之间的第一tcp连接,与接入所述目标平台的多个下挂子设备进行通信;
74.其中,所述下挂子设备的唯一内网标识与所述第一tcp连接的tcp子流绑定;或者,所述下挂子设备的唯一内网标识与所述第一tcp连接的应用层功能绑定。
75.本发明实施例还提供一种通信设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的程序,所述处理器执行所述程序时实现如上述的工业网关的通信方法。
76.本发明实施例还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如上所述的工业网关的通信方法中的步骤。
77.本发明的上述技术方案至少具有如下有益效果:
78.本发明实施例的工业网关的通信方法、装置、工业网关及目标平台中,对于多个接入同一目标平台的下挂子设备,采用一个tcp连接来进行承载;对于工业网关的下挂子设备不再区分ip设备或者非ip设备,也不再依靠tcp的四元组或五元组绑定通信链路,从而减少tcp链路数量,降低链路维护资源消耗。
附图说明
79.图1表示本发明实施例提供的工业网关的通信方法的步骤示意图之一;
80.图2表示本发明实施例提供的工业网关的通信方法中tcp数据包的示例图;
81.图3表示本发明实施例提供的工业网关的通信方法的原理示意图之一;
82.图4表示本发明实施例提供的工业网关的通信方法中拓扑更新示例图;
83.图5表示本发明实施例提供的示例一的交互流程图;
84.图6表示本发明实施例提供的工业网关的通信方法的原理示意图之二;
85.图7表示本发明实施例提供的示例二的交互流程图;
86.图8表示本发明实施例提供的工业网关的通信方法的步骤示意图之二;
87.图9表示本发明实施例提供的工业网关的通信装置的结构示意图之一;
88.图10表示本发明实施例提供的工业网关的结构示意图;
89.图11表示本发明实施例提供的工业网关的通信装置的结构示意图之二;
90.图12表示本发明实施例提供的目标平台的结构示意图。
具体实施方式
91.为使本发明要解决的技术问题、技术方案和优点更加清楚,下面将结合附图及具体实施例进行详细描述。
92.如图1所示,本发明实施例提供一种工业网关的通信方法,包括:
93.步骤101,工业网关对接入目标平台的多个下挂子设备采用第一tcp连接进行通信;其中,所述下挂子设备的唯一内网标识与所述第一tcp连接的tcp子流绑定;或者,所述下挂子设备的唯一内网标识与所述第一tcp连接的应用层功能绑定。
94.本发明实施例中,所述下挂子设备的唯一内网标识与所述第一tcp连接的tcp子流绑定,能够实现单个tcp连接传输多个子设备的聚合信息。
95.作为一个可选实施例,在tcp连接的五元组数据之外,扩展tcp的头信息,加入对下挂子设备的唯一内网标识来与一个tcp的子流进行绑定;例如,如图2所示,利用tcp包头的“保留”字段承载下挂子设备的唯一内网标识,从而来进行tcp子流的区分。
96.tcp包头保留字段有6位,理论最多可以匹配2^6不超过64个下挂子设备的映射,其中默认值000000不使用。也就是000000时不采用此方案。111111时表明是网关自有的信息,由网关协议自己解析。所以针对同一个tcp连接的网关下挂子设备数量同一时刻应不多于62个。
97.在本技术的至少一个实施例中,如图3所示,在所述下挂子设备的唯一内网标识与所述第一tcp连接的tcp子流绑定的情况下,工业网关对接入目标平台的多个下挂子设备采用第一tcp连接进行通信之前,所述方法还包括:
98.所述工业网关接收所述目标平台发送的与所述第一tcp连接对应的第一设备映射表,所述第一设备映射表包括:所述工业网关的下挂子设备的唯一内网标识与下挂子设备信息的映射关系;
99.所述工业网关根据所述第一设备映射表,更新本地存储的与所述第一tcp连接对应的第二设备映射表,所述第二设备映射表包括:所述下挂子设备的唯一内网标识与下挂子设备的解析协议的映射关系。
100.作为一个可选实施例,工业网关对接入目标平台的多个下挂子设备采用第一tcp连接进行通信,包括:
101.所述工业网关接收下挂子设备发送的第一数据包;
102.所述工业网关根据所述第一数据包对应的解析协议,从所述第二设备映射表中查找与所述第一数据包的解析协议对应的所述下挂子设备的唯一内网标识;
103.所述工业网关将所述下挂子设备的唯一内网标识写入所述第一数据包的tcp包头生成第二数据包,并通过所述第一tcp连接将所述第二数据包发送至所述目标平台。
104.换言之,在与平台交互时,工业网关不再解析下挂设备的所有信息,只需要获取设备的映射关系(即设备与解析协议的映射关系),然后通过第二设备映射表,将设备的唯一内网标识(funcid)写入tcp包头的保留字段,并将下挂设备的其他信息放在数据包的有效载荷(payload)部分,然后将数据包发给平台。
105.对于平台来说,第一设备映射表与第一tcp连接的五元组进行绑定。在收到对应五元组发来的信息时,对保留字段的funcid进行解析,并从第一设备映射表中找到对应的应用,然后将收到的tcp协议数据包中的payload信息交给对应的应用(app)进行解析。
106.作为另一个可选实施例,工业网关对接入目标平台的多个下挂子设备采用第一tcp连接进行通信,包括:
107.所述工业网关接收所述目标平台发送的第三数据包;所述第三数据包的tcp包头
携带所述下挂子设备的唯一内网标识;
108.所述工业网关解析所述第三数据包的tcp包头,并从所述第二设备映射表中查找与所述下挂子设备的唯一内网标识对应的解析协议;
109.所述工业网关将所述第三数据包的有效载荷发送至所述解析协议对应的下挂子设备。
110.换言之,平台下发不同应用过来的需要给网关下挂子设备的消息时,同时从平台侧的第一设备映射表中找到对应设备的funcid,并将该funcid加入数据包的tcp包头,将对应的数据放入payload后打包发给网关。网关接收到平台下发的消息时,解析出tcp包头中的funcid,同时从第二设备映射表中获取对应的解析协议和子设备,将tcp的数据包payload一起转发给对应的解析协议和子设备。
111.本发明实施例对于多个不同的设备对于同一平台的接入,采用一个tcp连接来进行承载,在tcp连接的五元组数据之外,扩展tcp的头信息,加入对下挂设备的内网标识来与一个tcp的子流进行绑定,从而实现单个tcp连接传输多个子设备的聚合信息。且网关和子设备共用同一条tcp连接,在网关侧对于下挂设备数据只解析接入设备的标识,不再解析其他的应用数据;对于平台下发的子设备信息,只解析tcp包头,不再解析payload数据的方法。具体方法是对于工业网关的下挂子设备不再区分ip设备或者非ip设备,不再依靠tcp的五元组绑定通信链路,从而减少tcp链路数量,降低链路维护资源消耗。
112.由于针对同一个tcp连接的网关下挂子设备数量同一时刻应不多于62个,且平台向用户提供网关子设备注册机制,用户可以查询到待绑定的工业网关;在平台接收到用户创建下挂设备的请求时,平台需要先判断待绑定的工业网关当前的下挂子设备数量,在不超过62个情况下,为下挂子设备分配唯一内网标识,并更新与所述第一tcp连接对应的第一设备映射表;在超过62个情况下,切换进入下挂子设备的拓扑更新流程。
113.作为一个可选实施例,拓扑更新流程包括:所述工业网关接收所述目标平台发送的第一设备映射表之前,所述方法还包括:
114.所述工业网关接收所述目标平台发送的拓扑更新请求消息;
115.所述工业网关根据所述拓扑更新请求消息,确定本地存储的第二设备映射表中的在线下挂子设备是否同意下线;
116.在接收到同意下线的指示后,所述工业网关从所述第二设备映射表中删除同意下线的下挂子设备的信息;
117.所述工业网关将更新后的第二设备映射表发送给所述目标平台,以由所述目标平台根据更新后的第二设备映射表更新所述目标平台本地存储的第一设备映射表。
118.如图4所示,拓扑更新流程包括:
119.步骤1,子设备绑定时,同一个五元组对应的设备映射表里子设备数量大于62个;
120.步骤2,平台下发拓扑更新请求;
121.步骤3,网关轮询当前设备映射表,查找到对应的在线设备;
122.步骤4,网关询问是否有在线子设备当前无业务需求,协商下线;
123.步骤5,子设备发送同意下线数据包;
124.步骤6,网关完成子设备下线,更新设备映射表;
125.步骤7,网关同步更新后的设备映射表给平台;
126.步骤8,平台更新本地存储的设备映射表。更新后的设备映射表中子设备数量小于62个。
127.或者,作为另一个可选实施例,所述工业网关接收所述目标平台发送的第一设备映射表之前,所述方法还包括:
128.所述工业网关接收所述目标平台发送的拓扑更新请求消息;
129.所述工业网关根据所述拓扑更新请求消息,确定本地存储的第二映射表中的在线下挂子设备是否同意下线;
130.在没有在线下挂子设备同意下线的情况下,所述工业网关与所述目标平台之间建立第二tcp连接;其中,所述工业网关建立与所述第二tcp连接对应的第三设备映射表,所述目标平台建立与所述第二tcp连接对应的第四设备映射表。
131.换言之,如果没有找到下线的子设备,则由工业网关新建一个tcp连接,采用新的五元组来进行tcp链接的绑定,因为工业网关只有一个公网ip,此时更新五元组的源端口号即可。同时建立新的设备映射表与新的第二tcp连接绑定。后续新的子设备绑定请求则进入新的tcp连接进行。
132.示例一,如图5所示的工业网关通信方法包括:
133.步骤1,平台向用户提供网关子设备注册机制。用户可以查询到待绑定的网关设备。
134.步骤2,平台查询当前网关已绑定设备,如果已超过62个设备,切换进入下挂子设备的拓扑更新流程,与网关协调是否更新当前的拓扑,移除非工作状态的下挂子设备。如当前绑定设备数量不超过62个,则为设备生成当前未占用的funcid号码(唯一内网标识),并记录到平台的设备唯一映射表。
135.步骤3,平台通过对网关的配置接口下发该设备映射表,解析协议等。设备映射表信息包含设备的funcid与设备信息的一一对应关系。
136.步骤4,网关根据平台的设备映射表更新当前设备映射表,与子设备接入信息如解析协议、接口等进行关联。
137.步骤5,子设备与网关建立连接,网关建立下挂设备与设备映射表的关系。
138.步骤6,网关需要转发下挂子设备的消息时,将设备映射表里的funcid加入tcp包头的的保留字节。
139.步骤7,平台接收到该消息后,从tcp包头中解析出funcid,并找到对应的网关的设备映射表,将对应的数据包发给相应的app进行处理。
140.步骤8,平台下发不同应用过来的需要给网关子设备的消息时,同时从设备映射表中找到对应设备的funcid,并将该funcid加入tcp的数据包包头,将对应的数据放入payload后打包发给网关。
141.步骤9,网关接收到平台下发的消息时,解析出tcp包头中的funcid,同时从设备映射表中获取对应的解析协议和子设备,将这些信息包括tcp的数据包payload一起转发给对应的解析协议和子设备。
142.综上,本发明实施例通过对网关下挂子设备采用统一的tcp连接进行通信,减少对于当前网关需要维护多个tcp连接需要的设备计算资源和网络资源通信资源,适用于工业网关下挂子设备的目标平台往往是同一个的场景;且本方案降低网关网络数据包处理要
求,对于网关与平台的交互数据,不再需要解析tcp的数据包payload部分,只需要解析数据包头,然后将相应的数据包转发给对应的协议栈或者子设备处理即可。
143.在本发明的至少一个可选实施例中对于多个不同的设备对于同一平台的接入,采用一个tcp连接来进行承载,在网关上实现对于多路下挂设备数据上下行封装和解析。具体方法是对于工业网关的下挂子设备不再区分ip设备或者非ip设备,也不再依靠tcp的四元组绑定通信链路,而采用应用层进行统一管理,从而减少tcp链路数量,降低链路维护资源消耗。例如,如图6所示为工业网关的示例图。对于接入的子设备生成网关唯一的标识(即唯一内网标识),并记录到设备映射表。对于子设备对于同一平台的接入请求,如果目标端口一致,则只需要维护一条tcp连接。将子设备的映射关系添加到mqtt的payload中。例如在实施过程中将该子设备的映射关系记录在现有数据模型的固定功能点中。即在所述下挂子设备的唯一内网标识与所述第一tcp连接的应用层功能(如mqtt协议栈)绑定的情况下,所述工业网关对接入目标平台的多个下挂子设备采用第一tcp连接进行通信之前,所述方法还包括:
144.所述工业网关接收下挂设备发送的应用层注册消息的有效载荷;所述应用层注册消息的有效载荷包括:下挂子设备的设备标识以及下挂子设备所属产品的产品标识;
145.所述工业网关向目标平台发送网关注册消息,所述网关注册消息包括所述应用层注册消息的有效载荷以及所述工业网关的标识;以由所述目标平台建立工业网关与下挂设备的拓扑结构。
146.本发明实施例中,子设备上线之前,平台为子设备注册身份,建立子设备与网关的拓扑结构;子设备上线时,物联网平台会根据拓扑结构进行子设备身份校验,以确定子设备是否具备使用网关通道的能力。因为子设备通过网关通道与物联网平台建立通信,则子设备身份校验过程中的请求topic或响应topic均为网关设备的topic。topic中的变量${pid}和${device-name}需替换为网关设备对应信息。网关上行的payload请求数据格式的消息体中,参数productid和devicename的值是子设备的对应信息。
147.例如,请求topic的参数如表1所示:
[0148][0149]
表1其中,params参数如表2所示:
[0150]
参数类型说明devicenamestring子设备的设备名称。productidstring子设备所属产品的productid。
[0151]
表2响应topic的参数如表3所示:
[0152][0153]
表3其中,data参数如表4所示:
[0154]
参数类型说明devicenamestring子设备的设备名称。productidstring子设备所属产品的productid。
[0155]
表4
[0156]
本发明实施例中,网关和子设备的拓扑结构需要根据设备在平台的注册上线情况动态更新。子设备的注册由其自身主动发起,将设备信息传递给网关,由网关代替子设备封装注册消息,并添加自身的网关id号,进行平台的注册,并将注册结果传递给子设备。例如,平台得到设备id以及网关id号后,即可根据注册结果建立拓扑结构。如下图,网关上行的子设备注册消息包括了设备的productid和devid,同时在payload中加入了网关id的标识,以帮助平台建立拓扑结构。
[0157]
作为本技术的一个可选实施例,所述方法还包括:
[0158]
所述工业网关周期性检测下挂子设备发送的心跳报文;
[0159]
若超时未检测到下挂子设备的心跳报文,所述工业网关向目标平台发送子设备离线消息,以由所述目标平台根据所述子设备离线消息删除所述拓扑结构中对应的下挂子设备。
[0160]
目前的mqtt版本不支持子设备的ping包保活,本发明实施例在应用层建立子设备在线保活机制,即需要子设备周期性的发送报文到网关,网关进行检测,如果超时未收到子设备心跳报文,则publish子设备离线消息报文到平台,通知平台删除该子设备。
[0161]
因为子设备通过网关通道与物联网平台建立通信,离线消息体携带注册时子设备的标识信息,也就是productid和devicename的值是子设备的对应信息,从而指示平台删除该子设备。
[0162]
作为一个可选实施例,所述方法还包括:
[0163]
所述工业网关建立与所述第一tcp连接对应的第五设备映射表,所述第五设备映射表包括:所述工业网关的下挂子设备的唯一内网标识与下挂子设备通信信息的映射关系;
[0164]
其中,所述下挂子设备通信信息包括:下挂子设备的设备标识(deviceid)、下挂子设备所属产品的产品标识(productid)、下挂子设备所属产品的产品注册码(productkey)、外设端口号(ifacid)、应用层功能的命令标识(cmdid)中的至少一项。
[0165]
本发明实施例中,工业网关需要解决子设备的寻址、mqtt topic的cmdid匹配以及
产品id以及注册码的映射问题,需要在与子设备的通信过程中,解析相关数据,并建立数组存储几个数值间的映射关系,因此网关维护一个第五设备映射表,实现将下挂子设备的唯一内网标识与通信信息的映射关系。
[0166]
作为另一个可选实施例,所述工业网关对接入目标平台的多个下挂子设备采用第一tcp连接进行通信,包括:
[0167]
所述工业网关接收目标平台通过所述第一tcp连接发送的目标指令;
[0168]
所述工业网关解析所述目标指令,根据所述目标指令对应的应用层功能以及所述第五设备映射表,确定对应的下挂子设备;
[0169]
所述工业网关向确定的所述下挂子设备发送所述目标指令的有效载荷。
[0170]
本发明通过对网关下挂子设备采用统一的tcp连接进行通信,减少对于当前网关需要维护多个tcp连接需要的设备计算资源和网络资源通信资源,适用于工业网关下挂子设备的目标平台往往是同一个的场景。对于非ip下挂子设备采用统一tcp连接的方法也降低多个子设备tcp连接保活的压力,更好的维护下挂子设备的在线离线及频繁切换数据源的流程。
[0171]
本发明实施例中,子设备的注册及数据收发流程中,子设备只提供payload,由工业网关代替进行和平台的通信;进一步的,在一条tcp连接中,利用不同的topic,网关类型的设备可以批量上报属性和事件,也可以代其子设备批量上报属性和事件。
[0172]
示例二,如图7所示的工业网关通信方法包括:
[0173]
步骤0,工业网关创建tcp连接;
[0174]
步骤1,工业网关登录引导机;
[0175]
步骤2,工业网关发送网关注册消息;
[0176]
步骤3,平台返回接入机地址;
[0177]
步骤4,网关登录接入机;
[0178]
步骤5,网关订阅下行topic;
[0179]
步骤6,子设备发送mqtt注册消息payload;
[0180]
步骤7,网关重复步骤1-4,设备注册及登录;
[0181]
步骤8,工业网关向子设备返回注册成功消息(否则返回注册失败);
[0182]
步骤9,子设备发送主动上报报文payload;
[0183]
步骤10,工业网关对payload进行mqtt协议封装发送;
[0184]
步骤11,平台下发指令;
[0185]
步骤12,工业网关解析指令,并向子设备透传指令的payload。
[0186]
综上,本发明实施例对于多个不同的设备对于同一平台的接入,采用一个tcp连接来进行承载,在网关上实现对于多路下挂设备数据上下行封装和解析;即采用tcp+mqtt应用层功能点来代替tcp四元组唯一标识通信链路,从而减少tcp链路数量,降低链路维护资源消耗。
[0187]
如图8所示,本发明实施例还提供一种工业网关的通信方法,包括:
[0188]
步骤801,目标平台通过与工业网关之间的第一tcp连接,与接入所述目标平台的多个下挂子设备进行通信;
[0189]
其中,所述下挂子设备的唯一内网标识与所述第一tcp连接的tcp子流绑定;或者,
所述下挂子设备的唯一内网标识与所述第一tcp连接的应用层功能绑定。
[0190]
本发明实施例中,所述下挂子设备的唯一内网标识与所述第一tcp连接的tcp子流绑定,能够实现单个tcp连接传输多个子设备的聚合信息。
[0191]
作为一个可选实施例,在tcp连接的五元组数据之外,扩展tcp的头信息,加入对下挂子设备的唯一内网标识来与一个tcp的子流进行绑定;例如,如图2所示,利用tcp包头的“保留”字段承载下挂子设备的唯一内网标识,从而来进行tcp子流的区分。
[0192]
tcp包头保留字段有6位,理论最多可以匹配2^6不超过64个下挂子设备的映射,其中默认值000000不使用。也就是000000时不采用此方案。111111时表明是网关自有的信息,由网关协议自己解析。所以针对同一个tcp连接的网关下挂子设备数量同一时刻应不多于62个。
[0193]
在本技术的至少一个实施例中,如图3所示,在所述下挂子设备的唯一内网标识与所述第一tcp连接的tcp子流绑定的情况下,目标平台通过与工业网关之间的第一tcp连接,与接入所述目标平台的多个下挂子设备进行通信之前,所述方法还包括:
[0194]
目标平台为下挂子设备分配唯一内网标识,并更新与所述第一tcp连接对应的第一设备映射表,所述第一设备映射表包括:所述工业网关的下挂子设备的唯一内网标识与下挂子设备信息的映射关系;
[0195]
目标平台向所述工业网关发送所述第一设备映射表,以由所述工业网关根据所述第一设备映射表更新工业网关本地存储的与所述第一tcp连接对应的第二设备映射表,所述第二设备映射表包括:所述下挂子设备的唯一内网标识与下挂子设备的解析协议的映射关系。
[0196]
作为一个可选实施例,所述目标平台通过与工业网关之间的第一tcp连接,与接入所述目标平台的多个下挂子设备进行通信,包括:
[0197]
所述目标平台接收工业网关通过第一tcp连接发送的第二数据包,所述第二数据包的tcp包头携带下挂子设备的唯一内网标识;
[0198]
所述目标平台解析所述第二数据包的tcp包头,并从所述第一设备映射表中查找与所述下挂子设备的唯一内网标识对应的应用;
[0199]
所述目标平台将所述第二数据包的有效载荷发送至对应的应用。
[0200]
换言之,在与平台交互时,工业网关不再解析下挂设备的所有信息,只需要获取设备的映射关系(即设备与解析协议的映射关系),然后通过第二设备映射表,将设备的唯一内网标识(funcid)写入tcp包头的保留字段,并将下挂设备的其他信息放在数据包的有效载荷(payload)部分,然后将数据包发给平台。
[0201]
对于平台来说,第一设备映射表与第一tcp连接的五元组进行绑定。在收到对应五元组发来的信息时,对保留字段的funcid进行解析,并从第一设备映射表中找到对应的应用,然后将收到的tcp协议数据包中的payload信息交给对应的应用(app)进行解析。
[0202]
作为另一个可选实施例,所述目标平台通过与工业网关之间的第一tcp连接,与接入所述目标平台的多个下挂子设备进行通信,包括:
[0203]
所述目标平台接收应用发送的第四数据包;
[0204]
所述目标平台根据所述第四数据包对应的应用,从所述第一设备映射表中查找与所述应用对应的下挂子设备的唯一内网标识;
[0205]
所述目标平台将所述下挂子设备的唯一内网标识写入所述第四数据包的tcp包头生成第三数据包,并通过所述第一tcp连接将所述第三数据包发送至所述工业网关。
[0206]
换言之,平台下发不同应用过来的需要给网关下挂子设备的消息时,同时从平台侧的第一设备映射表中找到对应设备的funcid,并将该funcid加入数据包的tcp包头,将对应的数据放入payload后打包发给网关。网关接收到平台下发的消息时,解析出tcp包头中的funcid,同时从第二设备映射表中获取对应的解析协议和子设备,将tcp的数据包payload一起转发给对应的解析协议和子设备。
[0207]
本发明实施例对于多个不同的设备对于同一平台的接入,采用一个tcp连接来进行承载,在tcp连接的五元组数据之外,扩展tcp的头信息,加入对下挂设备的内网标识来与一个tcp的子流进行绑定,从而实现单个tcp连接传输多个子设备的聚合信息。且网关和子设备共用同一条tcp连接,在网关侧对于下挂设备数据只解析接入设备的标识,不再解析其他的应用数据;对于平台下发的子设备信息,只解析tcp包头,不再解析payload数据的方法。具体方法是对于工业网关的下挂子设备不再区分ip设备或者非ip设备,不再依靠tcp的五元组绑定通信链路,从而减少tcp链路数量,降低链路维护资源消耗。
[0208]
在本发明的至少一个可选实施例中对于多个不同的设备对于同一平台的接入,采用一个tcp连接来进行承载,在网关上实现对于多路下挂设备数据上下行封装和解析。具体方法是对于工业网关的下挂子设备不再区分ip设备或者非ip设备,也不再依靠tcp的四元组绑定通信链路,而采用应用层进行统一管理,从而减少tcp链路数量,降低链路维护资源消耗。例如,如图6所示为工业网关的示例图。对于接入的子设备生成网关唯一的标识(即唯一内网标识),并记录到设备映射表。对于子设备对于同一平台的接入请求,如果目标端口一致,则只需要维护一条tcp连接。将子设备的映射关系添加到mqtt的payload中。例如在实施过程中将该子设备的映射关系记录在现有数据模型的固定功能点中。即在所述下挂子设备的唯一内网标识与所述第一tcp连接的应用层功能绑定的情况下,目标平台通过与工业网关之间的第一tcp连接,与接入所述目标平台的多个下挂子设备进行通信之前,所述方法还包括:
[0209]
所述目标平台接收所述工业网关发送的网关注册消息,所述网关注册消息包括下挂子设备发送的应用层注册消息的有效载荷以及所述工业网关的标识;
[0210]
所述目标平台根据所述网关注册消息,建立工业网关与下挂设备的拓扑结构。
[0211]
本发明实施例中,子设备上线之前,平台为子设备注册身份,建立子设备与网关的拓扑结构;子设备上线时,物联网平台会根据拓扑结构进行子设备身份校验,以确定子设备是否具备使用网关通道的能力。因为子设备通过网关通道与物联网平台建立通信,则子设备身份校验过程中的请求topic或响应topic均为网关设备的topic。topic中的变量${pid}和${device-name}需替换为网关设备对应信息。网关上行的payload请求数据格式的消息体中,参数productid和devicename的值是子设备的对应信息。
[0212]
本发明实施例中,网关和子设备的拓扑结构需要根据设备在平台的注册上线情况动态更新。子设备的注册由其自身主动发起,将设备信息传递给网关,由网关代替子设备封装注册消息,并添加自身的网关id号,进行平台的注册,并将注册结果传递给子设备。例如,平台得到设备id以及网关id号后,即可根据注册结果建立拓扑结构。如下图,网关上行的子设备注册消息包括了设备的productid和devid,同时在payload中加入了网关id的标识,以
帮助平台建立拓扑结构。
[0213]
作为本技术的一个可选实施例,所述方法还包括:
[0214]
目标平台接收工业网关在超时未检测到下挂子设备的心跳报文的情况下发送的子设备离线消息;
[0215]
所述目标平台根据所述子设备离线消息,删除所述拓扑结构中对应的下挂子设备。
[0216]
目前的mqtt版本不支持子设备的ping包保活,本发明实施例在应用层建立子设备在线保活机制,即需要子设备周期性的发送报文到网关,网关进行检测,如果超时未收到子设备心跳报文,则publish子设备离线消息报文到平台,通知平台删除该子设备。
[0217]
因为子设备通过网关通道与物联网平台建立通信,离线消息体携带注册时子设备的标识信息,也就是productid和devicename的值是子设备的对应信息,从而指示平台删除该子设备。
[0218]
本发明实施例中,对于多个接入同一目标平台的下挂子设备,采用一个tcp连接来进行承载;对于工业网关的下挂子设备不再区分ip设备或者非ip设备,也不再依靠tcp的四元组或五元组绑定通信链路,从而减少tcp链路数量,降低链路维护资源消耗。
[0219]
如图9所示,本发明实施例还提供一种工业网关的通信装置,应用于工业网关,包括:
[0220]
第一通信模块901,用于对接入目标平台的多个下挂子设备采用第一tcp连接进行通信;其中,所述下挂子设备的唯一内网标识与所述第一tcp连接的tcp子流绑定;或者,所述下挂子设备的唯一内网标识与所述第一tcp连接的应用层功能绑定。
[0221]
作为一个可选实施例,在所述下挂子设备的唯一内网标识与所述第一tcp连接的tcp子流绑定的情况下,所述装置还包括:
[0222]
第一接收模块,用于接收所述目标平台发送的与所述第一tcp连接对应的第一设备映射表,所述第一设备映射表包括:所述工业网关的下挂子设备的唯一内网标识与下挂子设备信息的映射关系;
[0223]
第一更新模块,用于根据所述第一设备映射表,更新本地存储的与所述第一tcp连接对应的第二设备映射表,所述第二设备映射表包括:所述下挂子设备的唯一内网标识与下挂子设备的解析协议的映射关系。
[0224]
作为一个可选实施例,所述第一通信模块包括:
[0225]
第一接收子模块,用于接收下挂子设备发送的第一数据包;
[0226]
第一查找子模块,用于根据所述第一数据包对应的解析协议,从所述第二设备映射表中查找与所述第一数据包的解析协议对应的所述下挂子设备的唯一内网标识;
[0227]
第一发送子模块,用于将所述下挂子设备的唯一内网标识写入所述第一数据包的tcp包头生成第二数据包,并通过所述第一tcp连接将所述第二数据包发送至所述目标平台。
[0228]
作为一个可选实施例,所述第一通信模块包括:
[0229]
第二接收子模块,用于接收所述目标平台发送的第三数据包;所述第三数据包的tcp包头携带所述下挂子设备的唯一内网标识;
[0230]
第二查找子模块,用于解析所述第三数据包的tcp包头,并从所述第二设备映射表
中查找与所述下挂子设备的唯一内网标识对应的解析协议;
[0231]
第二发送子模块,用于将所述第三数据包的有效载荷发送至所述解析协议对应的下挂子设备。
[0232]
作为一个可选实施例,所述装置还包括:
[0233]
第二接收模块,用于接收所述目标平台发送的拓扑更新请求消息;
[0234]
第一确定模块,用于根据所述拓扑更新请求消息,确定本地存储的第二设备映射表中的在线下挂子设备是否同意下线;
[0235]
删除模块,用于在接收到同意下线的指示后,从所述第二设备映射表中删除同意下线的下挂子设备的信息;
[0236]
同步模块,用于将更新后的第二设备映射表发送给所述目标平台,以由所述目标平台根据更新后的第二设备映射表更新所述目标平台本地存储的第一设备映射表。
[0237]
作为一个可选实施例,所述装置还包括:
[0238]
第三接收模块,用于接收所述目标平台发送的拓扑更新请求消息;
[0239]
第二确定模块,用于根据所述拓扑更新请求消息,确定本地存储的第二映射表中的在线下挂子设备是否同意下线;
[0240]
建立模块,用于在没有在线下挂子设备同意下线的情况下,与所述目标平台之间建立第二tcp连接;其中,所述工业网关建立与所述第二tcp连接对应的第三设备映射表,所述目标平台建立与所述第二tcp连接对应的第四设备映射表。
[0241]
作为一个可选实施例,在所述下挂子设备的唯一内网标识与所述第一tcp连接的应用层功能绑定的情况下,所述装置还包括:
[0242]
第四接收模块,用于接收下挂设备发送的应用层注册消息的有效载荷;所述应用层注册消息的有效载荷包括:下挂子设备的设备标识以及下挂子设备所属产品的产品标识;
[0243]
第四发送模块,用于向目标平台发送网关注册消息,所述网关注册消息包括所述应用层注册消息的有效载荷以及所述工业网关的标识;以由所述目标平台建立工业网关与下挂设备的拓扑结构。
[0244]
作为一个可选实施例,所述装置还包括:
[0245]
检测模块,用于周期性检测下挂子设备发送的心跳报文;
[0246]
第五发送模块,用于若超时未检测到下挂子设备的心跳报文,所述工业网关向目标平台发送子设备离线消息,以由所述目标平台根据所述子设备离线消息删除所述拓扑结构中对应的下挂子设备。
[0247]
作为一个可选实施例,所述装置还包括:
[0248]
映射建立模块,用于建立与所述第一tcp连接对应的第五设备映射表,所述第五设备映射表包括:所述工业网关的下挂子设备的唯一内网标识与下挂子设备通信信息的映射关系;
[0249]
其中,所述下挂子设备通信信息包括:下挂子设备的设备标识、下挂子设备所属产品的产品标识、下挂子设备所属产品的产品注册码、外设端口号、应用层功能的命令标识中的至少一项。
[0250]
作为一个可选实施例,所述第一通信模块包括:
[0251]
第三接收子模块,用于接收目标平台通过所述第一tcp连接发送的目标指令;
[0252]
第三查找子模块,用于解析所述目标指令,根据所述目标指令对应的应用层功能以及所述第五设备映射表,确定对应的下挂子设备;
[0253]
第三发送子模块,用于向确定的所述下挂子设备发送所述目标指令的有效载荷。
[0254]
本发明实施例中,对于多个接入同一目标平台的下挂子设备,采用一个tcp连接来进行承载;对于工业网关的下挂子设备不再区分ip设备或者非ip设备,也不再依靠tcp的四元组或五元组绑定通信链路,从而减少tcp链路数量,降低链路维护资源消耗。
[0255]
需要说明的是,本发明实施例提供的工业网关的通信装置是能够执行上述工业网关的通信方法的装置,则上述工业网关的通信方法的所有实施例均适用于该装置,且均能达到相同或相似的有益效果。
[0256]
如图10所示,本发明实施例还提供一种工业网关,包括处理器100和收发器110,所述收发器110在处理器100的控制下接收和发送数据,所述处理器100用于执行以下操作:
[0257]
对接入目标平台的多个下挂子设备采用第一tcp连接进行通信;其中,所述下挂子设备的唯一内网标识与所述第一tcp连接的tcp子流绑定;或者,所述下挂子设备的唯一内网标识与所述第一tcp连接的应用层功能绑定。
[0258]
作为一个可选实施例,在所述下挂子设备的唯一内网标识与所述第一tcp连接的tcp子流绑定的情况下,所述处理器还用于执行以下操作:
[0259]
接收所述目标平台发送的与所述第一tcp连接对应的第一设备映射表,所述第一设备映射表包括:所述工业网关的下挂子设备的唯一内网标识与下挂子设备信息的映射关系;
[0260]
根据所述第一设备映射表,更新本地存储的与所述第一tcp连接对应的第二设备映射表,所述第二设备映射表包括:所述下挂子设备的唯一内网标识与下挂子设备的解析协议的映射关系。
[0261]
作为一个可选实施例,所述处理器还用于执行以下操作:
[0262]
接收下挂子设备发送的第一数据包;
[0263]
根据所述第一数据包对应的解析协议,从所述第二设备映射表中查找与所述第一数据包的解析协议对应的所述下挂子设备的唯一内网标识;
[0264]
将所述下挂子设备的唯一内网标识写入所述第一数据包的tcp包头生成第二数据包,并通过所述第一tcp连接将所述第二数据包发送至所述目标平台。
[0265]
作为一个可选实施例,所述处理器还用于执行以下操作:
[0266]
接收所述目标平台发送的第三数据包;所述第三数据包的tcp包头携带所述下挂子设备的唯一内网标识;
[0267]
解析所述第三数据包的tcp包头,并从所述第二设备映射表中查找与所述下挂子设备的唯一内网标识对应的解析协议;
[0268]
将所述第三数据包的有效载荷发送至所述解析协议对应的下挂子设备。
[0269]
作为一个可选实施例,所述处理器还用于执行以下操作:
[0270]
接收所述目标平台发送的拓扑更新请求消息;
[0271]
根据所述拓扑更新请求消息,确定本地存储的第二设备映射表中的在线下挂子设备是否同意下线;
[0272]
在接收到同意下线的指示后,从所述第二设备映射表中删除同意下线的下挂子设备的信息;
[0273]
将更新后的第二设备映射表发送给所述目标平台,以由所述目标平台根据更新后的第二设备映射表更新所述目标平台本地存储的第一设备映射表。
[0274]
作为一个可选实施例,所述处理器还用于执行以下操作:
[0275]
接收所述目标平台发送的拓扑更新请求消息;
[0276]
根据所述拓扑更新请求消息,确定本地存储的第二映射表中的在线下挂子设备是否同意下线;
[0277]
在没有在线下挂子设备同意下线的情况下,与所述目标平台之间建立第二tcp连接;其中,所述工业网关建立与所述第二tcp连接对应的第三设备映射表,所述目标平台建立与所述第二tcp连接对应的第四设备映射表。
[0278]
作为一个可选实施例,在所述下挂子设备的唯一内网标识与所述第一tcp连接的应用层功能绑定的情况下,所述处理器还用于执行以下操作:
[0279]
接收下挂设备发送的应用层注册消息的有效载荷;所述应用层注册消息的有效载荷包括:下挂子设备的设备标识以及下挂子设备所属产品的产品标识;
[0280]
向目标平台发送网关注册消息,所述网关注册消息包括所述应用层注册消息的有效载荷以及所述工业网关的标识;以由所述目标平台建立工业网关与下挂设备的拓扑结构。
[0281]
作为一个可选实施例,所述处理器还用于执行以下操作:
[0282]
周期性检测下挂子设备发送的心跳报文;
[0283]
若超时未检测到下挂子设备的心跳报文,向目标平台发送子设备离线消息,以由所述目标平台根据所述子设备离线消息删除所述拓扑结构中对应的下挂子设备。
[0284]
作为一个可选实施例,所述处理器还用于执行以下操作:
[0285]
建立与所述第一tcp连接对应的第五设备映射表,所述第五设备映射表包括:所述工业网关的下挂子设备的唯一内网标识与下挂子设备通信信息的映射关系;
[0286]
其中,所述下挂子设备通信信息包括:下挂子设备的设备标识、下挂子设备所属产品的产品标识、下挂子设备所属产品的产品注册码、外设端口号、应用层功能的命令标识中的至少一项。
[0287]
作为一个可选实施例,所述处理器还用于执行以下操作:
[0288]
接收目标平台通过所述第一tcp连接发送的目标指令;
[0289]
解析所述目标指令,根据所述目标指令对应的应用层功能以及所述第五设备映射表,确定对应的下挂子设备;
[0290]
向确定的所述下挂子设备发送所述目标指令的有效载荷。
[0291]
本发明实施例中,对于多个接入同一目标平台的下挂子设备,采用一个tcp连接来进行承载;对于工业网关的下挂子设备不再区分ip设备或者非ip设备,也不再依靠tcp的四元组或五元组绑定通信链路,从而减少tcp链路数量,降低链路维护资源消耗。
[0292]
需要说明的是,本发明实施例提供的工业网关是能够执行上述工业网关的通信方法的工业网关,则上述工业网关的通信方法的所有实施例均适用于该工业网关,且均能达到相同或相似的有益效果。
[0293]
如图11所示,本发明实施例还提供一种工业网关的通信装置,应用于目标平台,包括:
[0294]
第二通信模块1101,用于通过与工业网关之间的第一tcp连接,与接入所述目标平台的多个下挂子设备进行通信;
[0295]
其中,所述下挂子设备的唯一内网标识与所述第一tcp连接的tcp子流绑定;或者,所述下挂子设备的唯一内网标识与所述第一tcp连接的应用层功能绑定。
[0296]
作为一个可选实施例,在所述下挂子设备的唯一内网标识与所述第一tcp连接的tcp子流绑定的情况下,所述装置还包括:
[0297]
第三更新模块,用于为下挂子设备分配唯一内网标识,并更新与所述第一tcp连接对应的第一设备映射表,所述第一设备映射表包括:所述工业网关的下挂子设备的唯一内网标识与下挂子设备信息的映射关系;
[0298]
第一同步模块,用于向所述工业网关发送所述第一设备映射表,以由所述工业网关根据所述第一设备映射表更新工业网关本地存储的与所述第一tcp连接对应的第二设备映射表,所述第二设备映射表包括:所述下挂子设备的唯一内网标识与下挂子设备的解析协议的映射关系。
[0299]
作为一个可选实施例,所述第二通信模块包括:
[0300]
第四接收子模块,用于接收工业网关通过第一tcp连接发送的第二数据包,所述第二数据包的tcp包头携带下挂子设备的唯一内网标识;
[0301]
第四查找子模块,用于解析所述第二数据包的tcp包头,并从所述第一设备映射表中查找与所述下挂子设备的唯一内网标识对应的应用;
[0302]
第四发送子模块,用于将所述第二数据包的有效载荷发送至对应的应用。
[0303]
作为一个可选实施例,所述第二通信模块包括:
[0304]
第五接收子模块,用于接收应用发送的第四数据包;
[0305]
第五查找子模块,用于根据所述第四数据包对应的应用,从所述第一设备映射表中查找与所述应用对应的下挂子设备的唯一内网标识;
[0306]
第五发送子模块,用于将所述下挂子设备的唯一内网标识写入所述第四数据包的tcp包头生成第三数据包,并通过所述第一tcp连接将所述第三数据包发送至所述工业网关。
[0307]
作为一个可选实施例,在所述下挂子设备的唯一内网标识与所述第一tcp连接的应用层功能绑定的情况下,所述装置还包括:
[0308]
第八接收模块,用于接收所述工业网关发送的网关注册消息,所述网关注册消息包括下挂子设备发送的应用层注册消息的有效载荷以及所述工业网关的标识;
[0309]
拓扑建立模块,用于根据所述网关注册消息,建立工业网关与下挂设备的拓扑结构。
[0310]
作为一个可选实施例,所述装置还包括:
[0311]
第九接收模块,用于接收工业网关在超时未检测到下挂子设备的心跳报文的情况下发送的子设备离线消息;
[0312]
设备删除模块,用于根据所述子设备离线消息,删除所述拓扑结构中对应的下挂子设备。
[0313]
本发明实施例中,对于多个接入同一目标平台的下挂子设备,采用一个tcp连接来进行承载;对于工业网关的下挂子设备不再区分ip设备或者非ip设备,也不再依靠tcp的四元组或五元组绑定通信链路,从而减少tcp链路数量,降低链路维护资源消耗。
[0314]
需要说明的是,本发明实施例提供的工业网关的通信装置是能够执行上述工业网关的通信方法的装置,则上述工业网关的通信方法的所有实施例均适用于该装置,且均能达到相同或相似的有益效果。
[0315]
如图12所示,本发明实施例还提供一种目标平台,包括处理器1200和收发器1210,所述收发器1210在处理器1200的控制下接收和发送数据,所述处理器1200用于执行以下操作:
[0316]
通过与工业网关之间的第一tcp连接,与接入所述目标平台的多个下挂子设备进行通信;
[0317]
其中,所述下挂子设备的唯一内网标识与所述第一tcp连接的tcp子流绑定;或者,所述下挂子设备的唯一内网标识与所述第一tcp连接的应用层功能绑定。
[0318]
作为一个可选实施例,在所述下挂子设备的唯一内网标识与所述第一tcp连接的tcp子流绑定的情况下,所述处理器还用于执行以下操作:
[0319]
为下挂子设备分配唯一内网标识,并更新与所述第一tcp连接对应的第一设备映射表,所述第一设备映射表包括:所述工业网关的下挂子设备的唯一内网标识与下挂子设备信息的映射关系;
[0320]
向所述工业网关发送所述第一设备映射表,以由所述工业网关根据所述第一设备映射表更新工业网关本地存储的与所述第一tcp连接对应的第二设备映射表,所述第二设备映射表包括:所述下挂子设备的唯一内网标识与下挂子设备的解析协议的映射关系。
[0321]
作为一个可选实施例,所述处理器还用于执行以下操作:
[0322]
接收工业网关通过第一tcp连接发送的第二数据包,所述第二数据包的tcp包头携带下挂子设备的唯一内网标识;
[0323]
解析所述第二数据包的tcp包头,并从所述第一设备映射表中查找与所述下挂子设备的唯一内网标识对应的应用;
[0324]
将所述第二数据包的有效载荷发送至对应的应用。
[0325]
作为一个可选实施例,所述处理器还用于执行以下操作:
[0326]
接收应用发送的第四数据包;
[0327]
根据所述第四数据包对应的应用,从所述第一设备映射表中查找与所述应用对应的下挂子设备的唯一内网标识;
[0328]
将所述下挂子设备的唯一内网标识写入所述第四数据包的tcp包头生成第三数据包,并通过所述第一tcp连接将所述第三数据包发送至所述工业网关。
[0329]
作为一个可选实施例,在所述下挂子设备的唯一内网标识与所述第一tcp连接的应用层功能绑定的情况下,所述处理器还用于执行以下操作:
[0330]
接收所述工业网关发送的网关注册消息,所述网关注册消息包括下挂子设备发送的应用层注册消息的有效载荷以及所述工业网关的标识;
[0331]
根据所述网关注册消息,建立工业网关与下挂设备的拓扑结构。
[0332]
作为一个可选实施例,所述处理器还用于执行以下操作:
[0333]
接收工业网关在超时未检测到下挂子设备的心跳报文的情况下发送的子设备离线消息;
[0334]
根据所述子设备离线消息,删除所述拓扑结构中对应的下挂子设备。
[0335]
本发明实施例中,对于多个接入同一目标平台的下挂子设备,采用一个tcp连接来进行承载;对于工业网关的下挂子设备不再区分ip设备或者非ip设备,也不再依靠tcp的四元组或五元组绑定通信链路,从而减少tcp链路数量,降低链路维护资源消耗。
[0336]
需要说明的是,本发明实施例提供的目标平台的通信装置是能够执行上述工业网关的通信方法的目标平台,则上述工业网关的通信方法的所有实施例均适用于该目标平台,且均能达到相同或相似的有益效果。
[0337]
本发明实施例还提供一种通信设备,该通信设备为工业网关或目标平台,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述程序时实现如上所述的工业网关的通信方法实施例中的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
[0338]
本发明实施例还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如上所述的工业网关的通信方法实施例中的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。其中,所述的计算机可读存储介质,如只读存储器(read-only memory,简称rom)、随机存取存储器(random access memory,简称ram)、磁碟或者光盘等。
[0339]
本领域内的技术人员应明白,本技术的实施例可提供为方法、系统或计算机程序产品。因此,本技术可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本技术可采用在一个或多个其中包含有计算机可用程序代码的计算机可读存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。
[0340]
本技术是参照根据本技术实施例的方法、设备(系统)和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其它可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其它可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或一个方框或多个方框中指定的功能的装置。
[0341]
这些计算机程序指令也可存储在能引导计算机或其它可编程数据处理设备以特定方式工作的计算机可读存储介质中,使得存储在该计算机可读存储介质中的指令产生包括指令装置的纸制品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
[0342]
这些计算机程序指令也可装载到计算机或其它可编程数据处理设备上,使得计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他科编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
[0343]
以上所述是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明所述原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
技术特征:
1.一种工业网关的通信方法,其特征在于,包括:工业网关对接入目标平台的多个下挂子设备采用第一tcp连接进行通信;其中,所述下挂子设备的唯一内网标识与所述第一tcp连接的tcp子流绑定;或者,所述下挂子设备的唯一内网标识与所述第一tcp连接的应用层功能绑定。2.根据权利要求1所述的方法,其特征在于,在所述下挂子设备的唯一内网标识与所述第一tcp连接的tcp子流绑定的情况下,工业网关对接入目标平台的多个下挂子设备采用第一tcp连接进行通信之前,所述方法还包括:所述工业网关接收所述目标平台发送的与所述第一tcp连接对应的第一设备映射表,所述第一设备映射表包括:所述工业网关的下挂子设备的唯一内网标识与下挂子设备信息的映射关系;所述工业网关根据所述第一设备映射表,更新本地存储的与所述第一tcp连接对应的第二设备映射表,所述第二设备映射表包括:所述下挂子设备的唯一内网标识与下挂子设备的解析协议的映射关系。3.根据权利要求2所述的方法,其特征在于,工业网关对接入目标平台的多个下挂子设备采用第一tcp连接进行通信,包括:所述工业网关接收下挂子设备发送的第一数据包;所述工业网关根据所述第一数据包对应的解析协议,从所述第二设备映射表中查找与所述第一数据包的解析协议对应的所述下挂子设备的唯一内网标识;所述工业网关将所述下挂子设备的唯一内网标识写入所述第一数据包的tcp包头生成第二数据包,并通过所述第一tcp连接将所述第二数据包发送至所述目标平台。4.根据权利要求2所述的方法,其特征在于,工业网关对接入目标平台的多个下挂子设备采用第一tcp连接进行通信,包括:所述工业网关接收所述目标平台发送的第三数据包;所述第三数据包的tcp包头携带所述下挂子设备的唯一内网标识;所述工业网关解析所述第三数据包的tcp包头,并从所述第二设备映射表中查找与所述下挂子设备的唯一内网标识对应的解析协议;所述工业网关将所述第三数据包的有效载荷发送至所述解析协议对应的下挂子设备。5.根据权利要求2所述的方法,其特征在于,所述工业网关接收所述目标平台发送的第一设备映射表之前,所述方法还包括:所述工业网关接收所述目标平台发送的拓扑更新请求消息;所述工业网关根据所述拓扑更新请求消息,确定本地存储的第二设备映射表中的在线下挂子设备是否同意下线;在接收到同意下线的指示后,所述工业网关从所述第二设备映射表中删除同意下线的下挂子设备的信息;所述工业网关将更新后的第二设备映射表发送给所述目标平台,以由所述目标平台根据更新后的第二设备映射表更新所述目标平台本地存储的第一设备映射表。6.根据权利要求2所述的方法,其特征在于,所述工业网关接收所述目标平台发送的第一设备映射表之前,所述方法还包括:所述工业网关接收所述目标平台发送的拓扑更新请求消息;
所述工业网关根据所述拓扑更新请求消息,确定本地存储的第二映射表中的在线下挂子设备是否同意下线;在没有在线下挂子设备同意下线的情况下,所述工业网关与所述目标平台之间建立第二tcp连接;其中,所述工业网关建立与所述第二tcp连接对应的第三设备映射表,所述目标平台建立与所述第二tcp连接对应的第四设备映射表。7.根据权利要求1所述的方法,其特征在于,在所述下挂子设备的唯一内网标识与所述第一tcp连接的应用层功能绑定的情况下,所述工业网关对接入目标平台的多个下挂子设备采用第一tcp连接进行通信之前,所述方法还包括:所述工业网关接收下挂设备发送的应用层注册消息的有效载荷;所述应用层注册消息的有效载荷包括:下挂子设备的设备标识以及下挂子设备所属产品的产品标识;所述工业网关向目标平台发送网关注册消息,所述网关注册消息包括所述应用层注册消息的有效载荷以及所述工业网关的标识;以由所述目标平台建立工业网关与下挂设备的拓扑结构。8.根据权利要求7所述的方法,其特征在于,所述方法还包括:所述工业网关周期性检测下挂子设备发送的心跳报文;若超时未检测到下挂子设备的心跳报文,所述工业网关向目标平台发送子设备离线消息,以由所述目标平台根据所述子设备离线消息删除所述拓扑结构中对应的下挂子设备。9.根据权利要求7或8所述的方法,其特征在于,所述方法还包括:所述工业网关建立与所述第一tcp连接对应的第五设备映射表,所述第五设备映射表包括:所述工业网关的下挂子设备的唯一内网标识与下挂子设备通信信息的映射关系;其中,所述下挂子设备通信信息包括:下挂子设备的设备标识、下挂子设备所属产品的产品标识、下挂子设备所属产品的产品注册码、外设端口号、应用层功能的命令标识中的至少一项。10.根据权利要求9所述的方法,其特征在于,所述工业网关对接入目标平台的多个下挂子设备采用第一tcp连接进行通信,包括:所述工业网关接收目标平台通过所述第一tcp连接发送的目标指令;所述工业网关解析所述目标指令,根据所述目标指令对应的应用层功能以及所述第五设备映射表,确定对应的下挂子设备;所述工业网关向确定的所述下挂子设备发送所述目标指令的有效载荷。11.一种工业网关的通信方法,其特征在于,包括:目标平台通过与工业网关之间的第一tcp连接,与接入所述目标平台的多个下挂子设备进行通信;其中,所述下挂子设备的唯一内网标识与所述第一tcp连接的tcp子流绑定;或者,所述下挂子设备的唯一内网标识与所述第一tcp连接的应用层功能绑定。12.根据权利要求11所述的方法,其特征在于,在所述下挂子设备的唯一内网标识与所述第一tcp连接的tcp子流绑定的情况下,目标平台通过与工业网关之间的第一tcp连接,与接入所述目标平台的多个下挂子设备进行通信之前,所述方法还包括:目标平台为下挂子设备分配唯一内网标识,并更新与所述第一tcp连接对应的第一设备映射表,所述第一设备映射表包括:所述工业网关的下挂子设备的唯一内网标识与下挂
子设备信息的映射关系;目标平台向所述工业网关发送所述第一设备映射表,以由所述工业网关根据所述第一设备映射表更新工业网关本地存储的与所述第一tcp连接对应的第二设备映射表,所述第二设备映射表包括:所述下挂子设备的唯一内网标识与下挂子设备的解析协议的映射关系。13.根据权利要求12所述的方法,其特征在于,所述目标平台通过与工业网关之间的第一tcp连接,与接入所述目标平台的多个下挂子设备进行通信,包括:所述目标平台接收工业网关通过第一tcp连接发送的第二数据包,所述第二数据包的tcp包头携带下挂子设备的唯一内网标识;所述目标平台解析所述第二数据包的tcp包头,并从所述第一设备映射表中查找与所述下挂子设备的唯一内网标识对应的应用;所述目标平台将所述第二数据包的有效载荷发送至对应的应用。14.根据权利要求12所述的方法,其特征在于,所述目标平台通过与工业网关之间的第一tcp连接,与接入所述目标平台的多个下挂子设备进行通信,包括:所述目标平台接收应用发送的第四数据包;所述目标平台根据所述第四数据包对应的应用,从所述第一设备映射表中查找与所述应用对应的下挂子设备的唯一内网标识;所述目标平台将所述下挂子设备的唯一内网标识写入所述第四数据包的tcp包头生成第三数据包,并通过所述第一tcp连接将所述第三数据包发送至所述工业网关。15.根据权利要求11所述的方法,其特征在于,在所述下挂子设备的唯一内网标识与所述第一tcp连接的应用层功能绑定的情况下,目标平台通过与工业网关之间的第一tcp连接,与接入所述目标平台的多个下挂子设备进行通信之前,所述方法还包括:所述目标平台接收所述工业网关发送的网关注册消息,所述网关注册消息包括下挂子设备发送的应用层注册消息的有效载荷以及所述工业网关的标识;所述目标平台根据所述网关注册消息,建立工业网关与下挂设备的拓扑结构。16.根据权利要求15所述的方法,其特征在于,所述方法还包括:目标平台接收工业网关在超时未检测到下挂子设备的心跳报文的情况下发送的子设备离线消息;所述目标平台根据所述子设备离线消息,删除所述拓扑结构中对应的下挂子设备。17.一种工业网关的通信装置,应用于工业网关,其特征在于,包括:第一通信模块,用于对接入目标平台的多个下挂子设备采用第一tcp连接进行通信;其中,所述下挂子设备的唯一内网标识与所述第一tcp连接的tcp子流绑定;或者,所述下挂子设备的唯一内网标识与所述第一tcp连接的应用层功能绑定。18.一种工业网关,包括处理器和收发器,所述收发器在处理器的控制下接收和发送数据,其特征在于,所述处理器用于执行以下操作:对接入目标平台的多个下挂子设备采用第一tcp连接进行通信;其中,所述下挂子设备的唯一内网标识与所述第一tcp连接的tcp子流绑定;或者,所述下挂子设备的唯一内网标识与所述第一tcp连接的应用层功能绑定。19.一种工业网关的通信装置,应用于目标平台,其特征在于,包括:
第二通信模块,用于通过与工业网关之间的第一tcp连接,与接入所述目标平台的多个下挂子设备进行通信;其中,所述下挂子设备的唯一内网标识与所述第一tcp连接的tcp子流绑定;或者,所述下挂子设备的唯一内网标识与所述第一tcp连接的应用层功能绑定。20.一种目标平台,包括处理器和收发器,所述收发器在处理器的控制下接收和发送数据,其特征在于,所述处理器用于执行以下操作:通过与工业网关之间的第一tcp连接,与接入所述目标平台的多个下挂子设备进行通信;其中,所述下挂子设备的唯一内网标识与所述第一tcp连接的tcp子流绑定;或者,所述下挂子设备的唯一内网标识与所述第一tcp连接的应用层功能绑定。21.一种通信设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的程序;其特征在于,所述处理器执行所述程序时实现如权利要求1-10任一项所述的工业网关的通信方法,或者所述处理器执行所述程序时实现如权利要求11-16任一项所述的工业网关的通信方法。22.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-10任一项所述的工业网关的通信方法中的步骤,或者该程序被处理器执行时实现如权利要求11-16任一项所述的工业网关的通信方法。
技术总结
本发明提供一种工业网关的通信方法、装置、工业网关及目标平台,该通信方法包括:工业网关对接入目标平台的多个下挂子设备采用第一TCP连接进行通信;其中,所述下挂子设备的唯一内网标识与所述第一TCP连接的TCP子流绑定;或者,所述下挂子设备的唯一内网标识与所述第一TCP连接的应用层功能绑定;本发明实施例对于多个接入同一目标平台的下挂子设备,采用一个TCP连接来进行承载;对于工业网关的下挂子设备不再区分IP设备或者非IP设备,也不再依靠TCP的四元组或五元组绑定通信链路,从而减少TCP链路数量,降低链路维护资源消耗。降低链路维护资源消耗。降低链路维护资源消耗。
技术研发人员:龙容
受保护的技术使用者:中国移动通信集团有限公司
技术研发日:2022.03.11
技术公布日:2023/9/20
版权声明
本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
航空之家 https://www.aerohome.com.cn/
航空商城 https://mall.aerohome.com.cn/
航空资讯 https://news.aerohome.com.cn/