可靠的工业数据流的传输方法与流程

文档序号:27758027发布日期:2021-12-03 22:52阅读:321来源:国知局
可靠的工业数据流的传输方法与流程

1.本发明涉及通信技术领域,尤其涉及一种可靠的工业数据流的传输方法。


背景技术:

2.随着工业制造的生产经营系统不断向数字化、信息化、智能化发展,需要工业网络技术具备良好的互通性、实时性、互操作性和可靠性,现场级工业网络的场景中主要由多种不同类型工业设备组成,工业数据流类型也是多种多样,为了实现智能制造,就必须要保证各现场级设备间的数据低时延高可靠的传输,以满足工业领域中大规模的复杂数据交互和传输过程的可靠性。
3.但是现有的数据传输系统为了适应不同的通讯协议,导致现场级的工业网络架构较为庞大,物理链路错综复杂,经由的中转设备较多,如果网络中的组件或物理链路发生故障会导致数据流丢失或损坏,破坏了数据流的完整度,大大降低了数据流传输的可靠性。
4.时间敏感网络(time

sensitive network,简称tsn)是面向工业智能化生产的一种具有确定传输时延,低抖动和极低数据丢失率的高可靠实时传输技术。然而,在工业控制的相关应用场景中需要保证网络提供低至几毫秒的传输时延和高可靠传输服务,传统以太网已经无法满足智能工业制造的需求,因此,tsn技术得到了广泛关注和应用,并且目前也出现了很多支持tsn技术的产品,如tsn芯片、tsn网关等。
5.因此,如果基于tsn网络实现简单、可靠的工业数据流传输方法是业界亟待解决的技术问题。


技术实现要素:

6.为了解决现有技术中采用不同通讯协议的设备基于不同通讯协议向上位的接收端设备发送数据时,网络构架复杂,且传输效率低、可靠性低的技术问题,本发明提出一种可靠的工业数据流的传输方法,包括:
7.在输入端设置第一tsn网关;
8.在接收端设置第二tsn网关;
9.所述第一tsn网关将输入端发送的普通数据帧封装为tsn数据帧;
10.所述第二tsn网关对接收到的由第一tsn网关发送的tsn数据帧进行验证,若验证失败,则请求第一tsn网关重传,直至tsn数据帧验证成功;
11.将验证成功的tsn数据帧还原为普通数据帧,并发送给对应的接收端。
12.进一步,所述第一tsn网关将输入端发送的普通数据帧封装为tsn数据帧具体包括:所述第一tsn网关先将基于不同通讯协议的不同格式的普通数据帧封装为统一格式的自定义数据帧,再将自定义数据帧封装为tsn数据帧。
13.进一步,所述自定义数据帧包括以下内容:
14.包头,用于记载与所述数据帧相对应的设备功能信息;
15.类型,用于记载产生所述数据帧的设备类型;
16.数据长度,用于记录数据帧的长度信息;
17.序号,用于记录数据帧的编号;
18.数据内容,用于记录数据帧的内容和配置信息;
19.校验位,采用预设校验算法对所述数据包中的其他位的数据进行校验。
20.进一步,所述包头包括所述接收tsn对tsn数据包的处理结果中的至少一个。
21.进一步,所述tsn数据帧将自定义数据帧作为其数据内容进行封装。
22.进一步,所述第一tsn网关通过两条或两条以上数据链路对tsn数据帧进行冗余传输。
23.进一步,所述第一tsn网关为每一个不重复的tsn数据帧生成连续的序列号,并为拥有唯一序列号的tsn数据帧创建冗余标签信息,并基于所述冗余标签信息对拥有唯一序列号的tsn数据帧进行复制,再通过多条数据链路发送;所述第二tsn网关将接收到的tsn数据帧进行冗余消除后,得到按所述序列的不重复的tsn数据帧。
24.进一步,所述第二tsn网关将当前接收到的tsn数据帧与上一次经过处理转换成普通数据帧传递给所述接收端的tsn数据帧的序列号及mac目的地址进行对比,若序列号和mac目的地址均一致,则判定当前接收到的tsn数据帧为重复的数据帧,并进行冗余消除,若序列号和/或mac目的地址不一致,则将当前接收到的tsn数据帧按序列转换成普通数据帧传递给所述接收端。
25.进一步,所述预设校验算法为crc验证法。
26.进一步,通过所述tsn数据帧的vlan标签标识每一个不重复的tsn数据帧及对该tsn数据帧进行复制得到的副本。
27.本发明与现有技术相比,具有如下优点:
28.其一,能够实现普通数据流在tsn网络中可靠地传输,很好地解决了异构网络资源统一调度的问题,实现现场产线之间,现场产线与各类工业信息系统之间的互联互通;
29.其二,本专利提出对tsn网关cpu内部设定自定义协议
‑‑
dtp协议,并且还基于ieee802.1cb标准的基本原理建立冗余传输机制,通过上述两种设计的协同处理可以很好地解决现场级工业场景下数据流在传输过程中的不可靠问题,有效提高了数据的完整度,降低了数据的丢失率;
30.其三,明显扩大了现场级工业物联网的数据传输类型,拓宽了现场级工业网络的涉入范围,提高了工业设备的连接性和互通性。
附图说明
31.下面结合实施例和附图对本发明进行详细说明,其中:
32.图1是本发明的数据传输示意图。
33.图2是本发明的整体结构示意图。
34.图3是本发明的数据冗余处理流程图。
35.图4是本发明的数据流的格式转换过程示意图。
具体实施方式
36.为了使本发明所要解决的技术问题、技术方案及有益效果更加清楚明白,以下结
合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
37.由此,本说明书中所指出的一个特征将用于说明本发明的一个实施方式的其中一个特征,而不是暗示本发明的每个实施方式必须具有所说明的特征。此外,应当注意的是本说明书描述了许多特征。尽管某些特征可以组合在一起以示出可能的系统设计,但是这些特征也可用于其他的未明确说明的组合。由此,除非另有说明,所说明的组合并非旨在限制。
38.下面结合附图以及实施例对本发明的原理进行详细说明。
39.如图1所示,本发明的可靠的工业数据流的传输方法,在输入端和接收端之间架设tsn网络来实现输入端和接收端的数据通信,将输入端的普通工业数据流转换为tsn数据流进行传输,来使得不具有时间敏感性的工业数据流具备时间敏感性,输入端的数据可以以低时延高可靠地方式发送给接收端。
40.输入端为产生工业数据流的发送端节点,接收端为接收数据流的接收端节点。图1具体展示的是普通流在工业物联网各层级的传递过程,左侧一列的流程图展示的是普通流经过tsn网关流入到tsn网络中的传输过程。右侧一列是数据流流经各个层级的传递流程图,在数据帧传递的过程中本发明对普通流流入到tsn网络中的传输过程进行了改善和优化。
41.如图2所示,本发明在输入端设置第一tsn网关,在接收端设置第二tsn网关,第一tsn网关将输入端发送的普通数据帧封装为tsn数据帧。第二tsn网关对接收到的由第一tsn网关发送的tsn数据帧进行验证,如果验证失败,则请求第一tsn网关重传,直至tsn数据帧验证成功,需要说明的是,第二tsn网关需要先将tsn数据帧还原为普通数据帧再进行验证,验证成功后再发送给对应的接收端。进一步,第一tsn网关与第二tsn网关之间通过至少两条数据链路对tsn数据帧进行冗余传递。第一tsn网关为支持frer功能可接入tsn网络的发送端设备,内部设定了自定义协议(dtp),支持tsn网络的冗余特性,可提供帧复制功能,使不具备时间敏感特性的工业数据流接入到具有frer功能的tsn网络中。图2的中间部分为冗余的数据链路设计,负责数据流在冗余的数据链路中的转发传输,可有效降低数据流的丢包率。第二tsn网关为支持frer功能可接收tsn数据帧的接收端设备,内部设定了自定义协议(dtp),支持tsn网络的冗余特性,可实现帧消除功能,可以根据数据帧中相应的冗余标签来识别相同的数据帧及复制帧,优先接收第一个到达的完整的数据帧,丢弃后续达到的冗余复制帧。
42.输入端设有多个,每个输入端所使用的通讯协议可能相同也可能不同,如果不相同,则各个输入端采用不同的通讯协议将不同格式的普通数据帧传递给第一tsn网关,第一tsn网关将基于不同通讯协议的不同格式的普通数据帧封装为统一格式的自定义数据帧,再将自定义数据帧封装为tsn数据帧。下表给出了自定义数据帧的一个具体实施例。
43.包头类型数据长度序号数据内容校验位4字节1字节1字节4字节4字节2字节0x55aa be ef0xxx0x040xxx xx xx xx0xxx xx xx xx0xxx xx
44.表格中的包头用来记载与数据帧相对应的设备功能信息,包头包括所述接收tsn对tsn数据包的处理结果中的至少一个。例如,0x00000000,表示mcu返回的错误码,mcu本次
接收的报文不足16字节。0x01010101,表示mcu返回的错误码,mcu本次接收的报文没通过crc校验。0x02020202,表示mcu返回的错误码,mcu本次接收到的报文已通过crc验证但不支持该包头。
45.类型用来记载产生数据帧的设备类型,具体指多种设备(0x01
‑‑
com(rs232/rs485/rs422),0x02
‑‑
can,0x03
‑‑
lan,0x04
‑‑
pci1,0x05
‑‑
pci2,...)。
46.数据长度用来记录数据帧的长度信息,其字节数是可变化的。
47.序号用来记录数据帧的编号,高16位表示第几次握手,低16位表示本次握手的第几轮尝试。
48.数据内容用来记录数据帧的内容和配置信息、包含:第几个、串口、can、pci总线的特征值。数据内容主要由数据长度来决定,其字节数也是随着数据长度而变化的,并不是固定的。
49.校验位用来采用预设校验算法对数据包中的其他位的数据进行校验,在一个实施例中,预设校验算法为crc算法,采用crc

16标准,计算内容为整个协议包的前14字节,包含包头、类型、数据长度、序号、数据内容。采用crc

16/modbus模型算法进行校验位的计算,参数设定规则如下表所示,基于该参数进行设定,再通过循环冗余算法进行计算,由此设定可生成相应的crc校验码。
50.crc算法名称多项式公式宽度多项式初始值结果异或值输入反转输出反转crc

16/modbusx
16
+x
15
+x2+1160x8005ffff0000truetrue
51.具体的,首先第一tsn网关和第二tsn网关之间预先商定一个生成多项式g(x),即为crc

16/modbus模型中设定的多项式公式参数。然后第一tsn网关内部的自定义协议(dtp协议)基于crc

16/modbus模型算法[4]计算出数据流的crc校验码,并将该校验码附加dtp数据包的尾部,即自定义数据帧的校验位,以dtp数据包的形式继续向后传输。当第二tsn网关收到了带有dtp协议设定的校验码时,采用同样的校验算法对原始数据进行计算,利用之前与第一tsn网关预先商定好的生成多项式g(x)去除数据帧,看是否可以被除尽,如果余数为0,则说明数据校验正确,这一帧数据可以使用;如果不为0,说明传输过程中出现了差错,这一帧数据出错,请求第一tsn网关重发。
[0052]
在一个实施例中,在第一tsn网关与第二tsn网关之间设置至少两组交换机组,使每一组交换机组中的至少一个交换机形成第一tsn网关与第二tsn网关之间的一条数据链路。第一tsn网关为每一个不重复的tsn数据帧生成连续的序列号,并为拥有唯一序列号的tsn数据帧创建冗余标签信息,并基于冗余标签信息对拥有唯一序列号的tsn数据帧进行复制,再通过多条数据链路发送。第二tsn网关将接收到的tsn数据帧进行冗余消除后,再按所述序列将每一个不重复的数据帧进行处理,转换为普通数据帧传递给对应的接收端。第二tsn网关将当前接收到的tsn数据帧与上一次处理后传递给接收端的tsn数据帧的序列号及mac目的地址进行对比,若当前接收到的tsn的数据帧的序列号和mac目的地址与上一次处理后的tsn数据帧的序列号和mac目的地址均一致,则判定当前接收到的tsn数据帧为重复的tsn数据帧,并进行冗余消除,若序列号和/或mac目的地址不一致,则将当前接收到的tsn数据帧按序列进行处理,得到对应的普通数据帧并传递给对应的接收端。由于tsn数据帧在被消除冗余时,序列号会一同被消除,因而第二tsn网关在将tsn数据帧转换为普通数据帧并验证成功发送给接收端之前,需要将该tsn数据帧作为提交帧,记录提交帧对应的序列号
及mac目的地址,即第二tsn网关将上一次处理后传递给接收端的tsn数据帧的序列号及mac目的地址进行记录,每次得到一帧提交帧就需要更新一次记录,将之后接收的tsn数据帧与记录的提交帧的序列号及mac目的地址进行对比,如果一致,就进行消冗余,如果不一致,则说明当前的提交帧需要更新。
[0053]
如图3所示,在一个具体实施例中,首先数据流从第一tsn网关的工业设备接口(如can、rs485、rs232、ethercat等)输入,然后经过该第一tsn网关的cpu内部设定的自定义协议(dtp协议)进行初步处理,初步将数据流封装成dtp数据包格式,即将普通数据帧转换为自定义数据帧。接着将dtp数据包格式转换为tsn数据包,在本实施例中,自定义数据帧作为tsn数据帧的数据内容进行封装(图4所示)。再将tsn数据包进行帧复制处理,生成相同的tsn数据帧副本,并相应的打包整合成支持frer功能、符合tsn网络传输要求的tsn数据帧格式,之后通过建立的冗余链路将数据流及其冗余流可靠地传输至第二tsn网关,最后交给第二tsn网关进行帧消除处理,恢复出原本数据流的格式,通过外设接口传输至接收端的各个终端设备。tsn数据帧的mac目的地址和sequence number(序列号)可以唯一标识每一个tsn数据帧及其冗余帧,如果目的mac地址和序列号相同则表示该帧是冗余帧,那么接收上一帧,丢弃此时到达的数据帧,实现帧消除的过程;最后通过序列恢复算法恢复出源数据流的格式,将其输出到接收端设备。实现帧消除的过程是由一种序列恢复算法完成的。cb协议内部定义了两种恢复算法,本发明采用的是匹配恢复算法,设置在第二tsn网关的匹配恢复算法支持接收端从不同路径上收到的同一条流的帧的序列号差值最大为1的情况。算法只记录最近一次被提交帧的序列号,只要接收帧的序号不等于算法记录的序列号,就提交接收的帧。
[0054]
由于第一、第二tsn网关的switch端口支持frer功能,因而第一、第二tsn网关之间的tsn网络中具有冗余特性。第一tsn网关的switch端口负责数据流复制,生成冗余流。第二tsn网关的switch端口负责从冗余流中选取其中一个流,并将其向后传输,完成消除冗余流并恢复源数据流的功能。
[0055]
第一tsn网关和第二tsn网关均支持以下三个功能:序列生成、序列编码分裂和序列恢复,即switch端口包含序列生成器,序列编码分裂器以及序列恢复器。
[0056]
序列生成器:主要负责为每个tsn数据流生成连续的序列号参数(sequence number),利用设置的生成函数产生连续的序列号,用来表示不重复的tsn数据帧的发送顺序,超过最大值时重置为0。该序列号将会被放置在tsn数据帧的冗余标签中,用于后续的冗余传输。
[0057]
序列编码分裂器:主要负责创建r

tag冗余标签信息,该标签包含tpid(标签协议标识)、reserved(保留字段)和sequence number(序列号)字段,总计6个字节。将生成的r

tag冗余标签信息插入到tsn数据帧中;同时复制出tsn数据帧副本
‑‑
冗余帧,例如其中一个tsn数据帧的vlan字段设置为a,冗余帧vlan设置为b,根据不同的vlan id发送至不同的冗余路径中,即不重复的tsn数据帧本身具有vlan字段,每一个不重复的tsn数据帧对应的冗余帧也带有vlan标识,因为它就是源帧的复制帧,所包含的字段信息不会做出改变。序列编码分裂器的功能主要包含分割和编解码。分割就是不加修改的将需要冗余传输的tsn帧复制多份,如复制两份,此时两帧的信息是一模一样。然后再进行下一步编解码,编解码就是利用r

tag机制将帧序列号参数插入到帧中,形成冗余标签。vlan修改是形成冗余标签后进
行vid标签的替换。在cb标准化过程中,需要对源帧和冗余帧的vlan重新设定替换成不同的值,如vid1和vid2。
[0058]
序列恢复器:主要在第二tsn网关的switch端口处进行帧消除处理,剥离出tsn数据帧的r

tag标签,恢复出数据流原本的格式。帧消除的具体过程为:接收到tsn数据帧后,首先获得该tsn数据帧r

tag冗余标签的序列号参数(sequence number参数)。然后将接收到的tsn数据帧与上一帧中的数据信息进行对比,根据当前接收到的tsn数据帧中的{目的mac地址,sequence number}来唯一标识相同的数据帧及其冗余帧,如果目的mac地址和序列号相同则表示该帧是冗余帧,那么丢弃此时到达的tsn数据帧,实现帧消除的过程;最后通过序列恢复算法恢复出源数据流的格式,将其输出到接收端设备。
[0059]
本发明通过冗余的数据链路可以防止网络拥塞造成数据丢失,并降低由于设备故障导致数据分组丢失的概率,增加给定数据分组的交付概率,本发明基于tsn网关建立了frer冗余传输机制,基于冗余路径转发的方式可进一步保证tsn网络的可靠性。在本发明的较优实施例中,冗余传输链路主要根据tsn工作组提出的802.1qca(路径控制和预留)协议构建了2条冗余路径,其中一条为冗余链路,由具有冗余机制的tsn网关和负责转发数据的switch组构成,当第一tsn网关的switch节点处理好tsn数据帧发出后,首先,根据tsn数据帧的vlan标签标识设置分别发送到不同的数据链路中;然后,通过2条冗余路径将tsn数据帧及其副本传输至第二tsn网关;最后,到达第二tsn网关的switch端口后实现源数据帧恢复过程,以防止接收端的设备重复接收数据流。本发明可以保证在设备或链路故障导致传输过程断掉的情况下,也能确保至少一个正确的数据帧可以到达接收的终端节点,减少丢包率,保证网络的可靠性。
[0060]
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1