工业仪表通信数据丢包处理方法、系统、设备及存储介质与流程

文档序号:33643817发布日期:2023-03-29 02:54阅读:41来源:国知局
工业仪表通信数据丢包处理方法、系统、设备及存储介质与流程

1.本技术涉及通信技术领域,具体涉及一种工业仪表通信数据丢包处理方法、系统、电子设备以及计算机可读存储介质。


背景技术:

2.随着国内自动化应用环境的不断发展,仪器仪表行业面貌日新月异。仪器仪表行业是自动化领域的关键行业。近年来,自动控制技术和电气领域相关技术快速发展,以往的大型自动化装置已不能满足企业的生产需求,高安全高可靠特性的仪表深得企业信赖。高安全高可靠特性的仪表想要实现智能化自我健康在线状态监测、故障诊断和离线性能测试,需要通过远程上位机操控实现。通过计算机及其外围设备,检测工艺参数数值与状态,在各种设备与计算机之间,设备与设备之间,各个设备的不同功能单元之间相互遵照通信规约,利用通信传输技术传输数据信息,其中保证各个参数值与状态模块准确传达的关键因素在于工业设备通信数据传输的可靠性。
3.在工业仪表通信的传输层,由于工业现场环境的干扰导致工业仪表通信数据丢包,从而引起工业仪表通信数据传输不可靠,现有技术主要采用前向纠错和重发纠错的方法来解决丢包的问题,前向纠错单向传输且实时性好,但纠错能力有限,若要加强纠错能力,则冗余码占总发送码比值越大,从而降低了数据传输效率,且前向纠错所需的设备较为复杂,导致成本较高。


技术实现要素:

4.鉴于以上所述现有技术的缺点,本技术提供一种工业仪表通信数据丢包处理方法,以解决上述技术问题。
5.本技术提供的工业仪表通信数据丢包处理方法包括:将缓存中当前工业仪表通信数据帧通过预设传输路径传输给数据接收模块,所述当前工业仪表通信数据帧包括多个初始数据包;若所述当前工业仪表通信数据帧传输失败,获取当前接收数据帧以及所述当前接收数据帧的纠错冗余数,所述当前接收数据帧为所述当前工业仪表通信数据帧通过所述预设传输路径传输后被所述数据接收模块接收到的数据帧,所述当前接收数据帧包括多个接收数据包,所述接收数据包为所述初始数据包通过所述预设传输路径传输后被所述数据接收模块接收到的数据包;若所述纠错冗余数小于或等于预设纠错冗余阈值,对所述当前接收数据帧进行纠错分析,以确定异常数据包标识,所述异常数据包标识为所述当前接收数据帧与所述当前工业仪表通信数据帧不同的初始数据包的初始数据包标识;重新将缓存中所述异常数据包标识对应的初始数据包通过所述预设传输路径传输给所述数据接收模块,直至所述数据接收模块成功接收到所有的初始数据包。
6.于本技术的一实施例中,对所述当前接收数据帧进行纠错分析,以确定异常数据包标识,包括:对所述当前接收数据帧进行哈希计算,得到包括各所述接收数据包的接收哈希值的接收哈希值集合;从所述当前接收数据帧中提取初始哈希值集合,所述初始哈希值
集合包括各所述初始数据包的初始哈希值;将所述接收哈希值集合与所述初始哈希值集合进行比对,确定差异哈希值,并将所述差异哈希值对应的初始数据包的初始数据包标识作为异常数据包标识。
7.于本技术的一实施例中,确定异常数据包标识之后,所述工业仪表通信数据丢包处理方法包括:基于所述异常数据包标识生成包括所述异常数据包标识的错误提示信息,并反馈;从反馈的所述错误提示信息中提取所述异常数据包标识,以重新将缓存中所述异常数据包标识对应的初始数据包通过所述预设传输路径传输给所述数据接收模块。
8.于本技术的一实施例中,重新将缓存中所述异常数据包标识对应的初始数据包通过所述预设传输路径传输给所述数据接收模块之后,所述工业仪表通信数据丢包处理方法包括:获取目标数据包,所述目标数据包为所述异常数据包标识对应的初始数据包通过所述预设传输路径重新传输后被所述数据接收模块接收到的数据包;将所述目标数据包根据所述异常数据包标识插入到所述当前接收数据帧中,得到新的当前接收数据帧,以对所述新的当前接收数据帧进行校验;若校验成功,则确定所述数据接收模块成功接收到所有的初始数据包;若校验失败,则重新确定新的异常数据包标识,以重新将缓存中所述新的异常数据包标识对应的初始数据包通过所述预设传输路径传输给所述数据接收模块,直至所述数据接收模块成功接收到所有的初始数据包。
9.于本技术的一实施例中,所述工业仪表通信数据丢包处理方法还包括:若所述纠错冗余数大于预设纠错冗余阈值,则将缓存中的所述当前工业仪表通信数据帧进行更新,重新将更新后的当前工业仪表通信数据帧通过所述预设传输路径传输给所述数据接收模块。
10.于本技术的一实施例中,重新将缓存中所述异常数据包标识对应的初始数据包通过所述预设传输路径传输给所述数据接收模块,包括:获取重发次数,若所述重发次数小于预设重发阈值,则重新将缓存中所述异常数据包标识对应的初始数据包通过所述预设传输路径传输给所述数据接收模块。
11.于本技术的一实施例中,将缓存中的所述当前工业仪表通信数据帧进行更新,包括:重新握手连接以确定连接状态,并将重发次数清零;若连接状态为连接成功,则将缓存中的所述当前工业仪表通信数据帧进行更新,得到更新后的当前工业仪表通信数据帧;若连接状态为连接失败,则统计连接失败次数,当所述连接失败次数小于或等于预设阈值时,重新握手连接。
12.于本技术的一实施例中,还提供一种工业仪表通信数据丢包处理系统,所述工业仪表通信数据丢包处理系统包括:传输模块,用于将缓存中当前工业仪表通信数据帧通过预设传输路径传输给数据接收模块,所述当前工业仪表通信数据帧包括多个初始数据包;获取模块,用于若所述当前工业仪表通信数据帧传输失败,获取当前接收数据帧以及所述当前接收数据帧的纠错冗余数,所述当前接收数据帧为所述当前工业仪表通信数据帧通过所述预设传输路径传输后被所述数据接收模块接收到的数据帧,所述当前接收数据帧包括多个接收数据包,所述接收数据包为所述初始数据包通过所述预设传输路径传输后被所述数据接收模块接收到的数据包;纠错分析模块,用于若所述纠错冗余数小于或等于预设纠错冗余阈值,对所述当前接收数据帧进行纠错分析,以确定异常数据包标识,所述异常数据包标识为所述当前接收数据帧与所述当前工业仪表通信数据帧不同的初始数据包的初始
数据包标识;数据包重发模块,用于重新将缓存中所述异常数据包标识对应的初始数据包通过所述预设传输路径传输给所述数据接收模块,直至所述数据接收模块成功接收到所有的初始数据包。
13.于本技术的一实施例中,还提供一种电子设备,所述电子设备包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述电子设备实现如上所述的工业仪表通信数据丢包处理方法。
14.于本技术的一实施例中,还提供一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序被计算机的处理器执行时,使计算机执行如上所述的工业仪表通信数据丢包处理方法。
15.本技术的有益效果:本技术中的一种工业仪表通信数据丢包处理方法,在当前工业仪表通信数据帧传输失败时,通过当前接收数据帧的纠错冗余数与预设纠错冗余阈值进行比较,若纠错冗余数小于或等于预设纠错冗余阈值,则对当前接收数据帧进行纠错分析,确定异常数据包标识,以重新传输异常数据包标识对应的初始数据包,直至数据接收模块成功接收到所有的初始数据包,能够在工业仪表通信过程中数据传输的出现丢包时进行查错与补包,且进行处理的计算量小、占用内存空间少,可有效提高工业仪表设备数据通信时的快速性、实时性与稳定性。
16.应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本技术。
附图说明
17.此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本技术的实施例,并与说明书一起用于解释本技术的原理。显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术者来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:
18.图1是本技术的一示例性实施例示出的工业仪表通信数据丢包处理方法的实施环境示意图;
19.图2是本技术的一示例性实施例示出的工业仪表通信数据丢包处理方法的流程图;
20.图3是本技术的一示例性实施例示出的工业仪表数据接收流程示意图;
21.图4是本技术的一示例性实施例示出的工业仪表数据发送流程示意图;
22.图5是本技术的一示例性实施例示出的工业仪表数据通信流程示意图;
23.图6是本技术的一示例性实施例示出的工业仪表通信数据丢包处理系统的框图;
24.图7示出了适于用来实现本技术实施例的电子设备的计算机系统的结构示意图。
具体实施方式
25.以下将参照附图和优选实施例来说明本技术的实施方式,本领域技术人员可由本说明书中所揭露的内容轻易地了解本技术的其他优点与功效。本技术还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本技术的精神下进行各种修饰或改变。应当理解,优选实施例仅为了说明本技术,
而不是为了限制本技术的保护范围。
26.需要说明的是,以下实施例中所提供的图示仅以示意方式说明本技术的基本构想,遂图式中仅显示与本技术中有关的组件而非按照实际实施时的组件数目、形状及尺寸绘制,其实际实施时各组件的型态、数量及比例可为一种随意的改变,且其组件布局型态也可能更为复杂。
27.需要说明的是,本技术中,“第一”、“第二”等仅为对相似对象的区分,并非是对相似对象的顺序限定或先后次序限定。所描述的“包括”、“具有”等变形,表示该词语的主语所涵盖的范围除该词语所示出的示例外,并不排他。
28.可以理解的是,在本技术中记载的各种数字编号、步序编号等标号为描述方便进行的区分,并不用来限制本技术的范围。本技术标号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定。
29.在下文描述中,探讨了大量细节,以提供对本技术实施例的更透彻的解释,然而,对本领域技术人员来说,可以在没有这些具体细节的情况下实施本技术的实施例是显而易见的,在其他实施例中,以方框图的形式而不是以细节的形式来示出公知的结构和设备,以避免使本技术的实施例难以理解。
30.首先需要说明的是,阀门定位器和电动执行结构是仪器仪表行业中十分重要的过程控制仪表,可精确控制生产过程中的管道阀门的位置,解决生产过程中各类流量的自动化控制问题。相关报告显示,国内企业目前使用的高功能安全性、高故障诊断可靠性的阀门定位器和电动执行机构等高端仪表均来自于国外的知名企业,其相关产品具有高精度控制、远程总线通信、强抗电磁干扰能力等特性。同时,阀门定位器和电动执行机构等高端仪表实现了智能化自我健康在线状态监测、故障诊断和离线性能测试,提前预警并提供阀门最佳维护方案供用户选择,向用户提供阀门最佳的维护保养方案。国内同系列产品在技术和性能上与国外产品相比略有差距,且当前国内新建、扩建的大型项目所需的高端智能阀门定位器和高端智能变频电动执行机构均为国外著名公司所垄断,因此,在这样的领域背景下,开发具有先进性能和高智能化水平的高端在线诊断智能阀门定位器、高端智能变频电动执行机构,对于打破国外技术垄断,提高国产智能阀门定位器、电动执行机构的竞争力,具有极为重要的现实意义。
31.本技术的实施例分别提出一种工业仪表通信数据丢包处理方法、一种工业仪表通信数据丢包处理系统、一种电子设备、一种计算机可读存储介质以及一种计算机程序产品,以下将对这些实施例进行详细描述。
32.请参照图1,图1是本技术的一示例性实施例示出的工业仪表通信数据丢包处理方法的实施环境示意图。如图1所示,实施环境可以包括发送端101和接收端102。其中,发送端101可以是工业仪表设备(仪表)、总线设备、计算机设备等中的至少一种,接收端102可以是工业仪表设备、总线设备、计算机设备等中的至少一种,且发送端101与接收端102都配置了uart串口(universal asynchronous receiver/transmitter,通用异步接收器/发送器)。发送端101将当前工业仪表通信原始数据帧拷贝到其配置的uart串口中,以使该uart串口的缓存中暂存当前工业仪表通信数据帧,当前工业仪表通信数据帧包括多个初始数据包、帧校验码、命令码、数据长度码、起始地址等中至少之一。需要明白的是,若拷贝成功,则当前工业仪表通信原始数据帧与当前工业仪表通信数据帧是相同的;若拷贝失败,则当前工
业仪表通信原始数据帧与当前工业仪表通信数据帧是不同的。发送端101的uart串口将缓存中当前工业仪表通信数据帧通过预设传输路径传输到接收端102的uart串口,以使接收端102接收到当前接收数据帧,并对工业仪表通信数据丢包进行处理,接收端102配置了数据接收模块。
33.示意性的,若当前工业仪表通信数据帧传输失败,接收端102获取其数据接收模块接收到的当前接收数据帧以及当前接收数据帧的纠错冗余数,若纠错冗余数小于或等于预设纠错冗余阈值,对当前接收数据帧进行纠错分析,确定异常数据包标识,以使发送端101的uart串口将缓存中异常数据包标识对应的初始数据包通过预设传输路径重新传输给接收端102的数据接收模块,直至该数据接收模块成功接收到所有的初始数据包。需要说明的是,本技术实施例所提供的工业仪表通信数据丢包处理方法一般由发送端101和接收端102具体执行。
34.请参阅图2,图2是本技术的一示例性实施例示出的工业仪表通信数据丢包处理方法的流程图。该方法可以应用于图1所示的实施环境,并由该实施环境中的发送端101和接收端102具体执行。应理解的是,该方法也可以适用于其它的示例性实施环境,并由其它实施环境中的设备具体执行,本实施例不对该方法所适用的实施环境进行限制。
35.如图2所示,在一示例性的实施例中,工业仪表通信数据丢包处理方法至少包括步骤s210至步骤s240,详细介绍如下:
36.步骤s210,将缓存中当前工业仪表通信数据帧通过预设传输路径传输给数据接收模块,当前工业仪表通信数据帧包括多个初始数据包。
37.在本技术的一个实施例中,首先将当前工业仪表通信原始数据帧拷贝到发送端uart串口中,以使发送端uart串口的缓存中暂存包括多个初始数据包的当前工业仪表通信数据帧并等待传输。发送端uart串口通过预设传输路径将缓存中当前工业仪表通信数据帧传输给数据接收模块。示意性的,预设传输路径可以是一条,也可以是多条,可以此处不进行限制。
38.步骤s220,若当前工业仪表通信数据帧传输失败,获取当前接收数据帧以及当前接收数据帧的纠错冗余数,当前接收数据帧为当前工业仪表通信数据帧通过预设传输路径传输后被数据接收模块接收到的数据帧,当前接收数据帧包括多个接收数据包,接收数据包为初始数据包通过预设传输路径传输后被数据接收模块接收到的数据包。
39.在本技术的一个实施例中,将包括多个初始数据包的当前工业仪表通信数据帧通过预设传输路径传输给数据接收模块,以使数据接收模块接收到包括多个接收数据包的当前接收数据帧,其中,接收数据包为初始数据包通过预设传输路径传输后被数据接收模块接收到的数据包。在数据接收模块接收到当前接收数据帧时,当前接收数据帧的帧尾中存放有帧校验码,通过帧校验码对当前接收数据帧进行循环冗余校验。若校验成功,则表示当前工业仪表通信数据帧传输成功,此时反馈响应帧,从而进行下一个工业仪表通信数据帧的传输。若校验失败,则表示该工业仪表通信数据帧传输失败,获取数据接收模块接收到的当前接收数据帧以及当前接收数据帧的纠错冗余数以进行丢包处理。
40.应当明白的是,由于当前工业仪表通信原始数据帧的帧尾存放了帧校验码,因此当前工业仪表通信数据帧和当前接收数据帧的帧尾也相应存放了帧校验码。
41.应当明白的是,纠错冗余数可以通过对当前接收数据帧进行预处理获得,包括对
当前接收数据帧进行计算,得到当前接收数据帧的总包个数,根据总包个数处理得到纠错冗余数。
42.步骤s230,若纠错冗余数小于或等于预设纠错冗余阈值,对当前接收数据帧进行纠错分析,以确定异常数据包标识,异常数据包标识为当前接收数据帧与当前工业仪表通信数据帧不同的初始数据包的初始数据包标识。
43.在本技术的一个实施例中,若纠错冗余数小于或等于预设纠错冗余阈值,对当前接收数据帧进行纠错分析,从而确定异常数据包标识。应该明白的是,异常数据包标识为当前接收数据帧与当前工业仪表通信数据帧不同的初始数据包的初始数据包标识。示意性的,初始数据包标识可以是初始数据包位置信息。示意性的,预设纠错冗余阈值可以是2,或者2的倍数,或者本领域技术人员设定的其他数值。
44.在本技术的一个实施例中,步骤s230包括如下步骤:
45.步骤s2301,对当前接收数据帧进行哈希计算,得到包括各接收数据包的接收哈希值的接收哈希值集合。
46.在本技术的一个实施例中,对当前接收数据帧的各接收数据包进行哈希计算,得到多个接收数据包的接收哈希值,基于多个接收数据包的接收哈希值生成接收哈希值集合。
47.步骤s2302,从当前接收数据帧中提取初始哈希值集合,初始哈希值集合包括各初始数据包的初始哈希值。
48.在本技术的一个实施例中,可以在将当前工业仪表通信原始数据帧缓存到发送端uart串口前,通过对当前工业仪表通信原始数据帧的初始数据包进行哈希计算得到多个初始数据包的初始哈希值,基于多个初始数据包的初始哈希值生成初始哈希值集合,并将初始哈希值集合存放在当前工业仪表通信原始数据帧中,以使当前工业仪表通信数据帧和当前接收数据帧中也存放了初始哈希值集合。因此,可以从当前数据帧中提取包括各初始数据包的初始哈希值的初始哈希值集合。
49.步骤s2303,将接收哈希值集合与初始哈希值集合进行比对,确定差异哈希值,并将差异哈希值对应的初始数据包的初始数据包标识作为异常数据包标识。
50.在本技术的一个实施例中,将接收哈希值集合中的各接收数据包的接收哈希值与初始哈希值集合中的各初始数据包的初始哈希值一一对应并进行异或运算,得到多个运算结果,若运算结果等于预设差异阈值,则表示该运算结果对应的接收数据包异常,将该运算结果对应的初始哈希值确定为差异哈希值,以将差异哈希值对应的初始数据包的初始数据包标识作为异常数据包标识。示意性的,预设差异阈值为1。应当明白的是,将接收哈希值集合与初始哈希值集合进行比对的目的是筛选出接收哈希值与初始哈希值不同的异常数据包,其比对方法可以是进行异或运算,也可以是本领域技术人员采用的其他比对方法,此处不进行限制。
51.在本技术的一个实施例中,在步骤s230之后,包括以下步骤:
52.步骤s231,基于异常数据包标识生成包括异常数据包标识的错误提示信息,并反馈。
53.在本技术的一个实施例中,在确定异常数据包标识之后,基于异常数据包标识生成错误提示帧(错误提示信息),并将错误提示帧反馈给发送端,以使发送端uart串口重新
传输初始数据包,其中,错误提示帧中包括了异常数据包标识。
54.步骤s232,从反馈的错误提示信息中提取异常数据包标识,以重新将缓存中异常数据包标识对应的初始数据包通过预设传输路径传输给数据接收模块。
55.在本技术的一个实施例中,发送端在接收到反馈回来的错误提示信息后,从错误提示信息中提取异常数据包标识,以使发送端uart串口将缓存中与异常数据包标识对应的初始数据包通过预设传输路径重新传输给数据接收模块。
56.步骤s240,重新将缓存中异常数据包标识对应的初始数据包通过预设传输路径传输给数据接收模块,直至数据接收模块成功接收到所有的初始数据包。
57.在本技术的一个实施例中,根据异常数据包标识确定在当前工业仪表数据帧中需要重传的初始数据包,将需要重传的初始数据包通过预设传输路径重新传输给数据接收模块,直至数据接收模块成功接收到所有的初始数据包。其中,初始数据包标识与异常数据包标识相同的初始数据包为需要重传的初始数据包。示意性的,位置信息与异常数据包位置信息相同的初始数据包为需要重传的初始数据包。
58.在本技术的一个实施例中,重新将缓存中异常数据包标识对应的初始数据包通过预设传输路径传输给数据接收模块,包括:获取重发次数,若重发次数小于预设重发阈值,则重新将缓存中异常数据包标识对应的初始数据包通过预设传输路径传输给数据接收模块。
59.在该实施例中,为了避免因特殊情况而进行反复重传操作导致死循环,例如缓存中的初始数据包本身存在异常,可以获取重发次数,将重发次数与预设重发阈值进行比较。若重发次数小于预设重发阈值,则重新将缓存中异常数据包标识对应的初始数据包通过预设传输路径传输给数据接收模块;若重发次数等于预设重发阈值,则将缓存中的当前工业仪表通信数据帧进行更新,重新将更新后的当前工业仪表通信数据帧通过预设传输路径传输给数据接收模块。示意性的,预设重发阈值可以是20,或者是小于20的某个整数,或者是本领域技术人员设定的其他数值。需要说明的是,可以通过监听重新传输异常数据包标识对应的初始数据包的过程并记录重发次数,当每重传一次异常数据包标识对应的初始数据包,重发次数加一,在发送端与接收端每次握手连接后,重发次数清零;重新更新缓存中的当前工业仪表通信数据帧的目的是为了避免当前工业仪表通信数据帧本身存在问题。
60.在本技术的一个实施例中,重新将缓存中异常数据包标识对应的初始数据包通过预设传输路径传输给数据接收模块之后,工业仪表通信数据丢包处理方法包括以下步骤:
61.步骤s241,获取目标数据包,目标数据包为异常数据包标识对应的初始数据包通过预设传输路径重新传输后被数据接收模块接收到的数据包。
62.在本技术的一个实施例中,在发送端uart串口通过预设传输路径重新传输异常数据包标识对应的初始数据包后,数据接收模块相应接收到目标数据包,获取该目标数据包以进行处理。
63.步骤s242,将目标数据包根据异常数据包标识插入到当前接收数据帧中,得到新的当前接收数据帧,以对新的当前接收数据帧进行校验。
64.在本技术的一个实施例中,根据异常数据包标识(异常数据包位置信息)将目标数据包插入到当前接收数据帧相应的位置中并将异常数据包剔除,得到新的当前接收数据帧,将新的当前接收数据帧的数据包作为新接收数据包,以通过帧校验码对新的当前接收
数据进行循环冗余校验。
65.步骤s243,若校验成功,则确定数据接收模块成功接收到所有的初始数据包。
66.在本技术的一个实施例中,若校验成功,则确定数据接收模块成功接收到所有的初始数据包,此时反馈响应帧到发送端,以示接收成功,从而进行下一工业仪表通信数据帧的传输。
67.步骤s244,若校验失败,则重新确定新的异常数据包标识,以重新将缓存中新的异常数据包标识对应的初始数据包通过预设传输路径传输给数据接收模块,直至数据接收模块成功接收到所有的初始数据包。
68.在本技术的一个实施例中,若校验失败,则将对目标数据包进行哈希计算,得到目标数据包的目标哈希值,基于目标数据包的位置信息匹配位置信息相同的初始数据包的初始哈希值。将目标哈希值与匹配到的初始哈希值进行异或运算,若存在差异哈希值,则根据该差异哈希值对应的初始数据包的初始数据包标识作为新的异常数据包标识,以重新将缓存中新的异常数据包标识对应的初始数据包通过预设传输路径传输给数据接收模块,直至数据接收模块成功接收到所有的初始数据包。
69.在本技术的另一个实施例中,工业仪表通信数据丢包处理方法还包括:若纠错冗余数大于预设纠错冗余阈值,则将缓存中的当前工业仪表通信数据帧进行更新,重新将更新后的当前工业仪表通信数据帧通过预设传输路径传输给数据接收模块。
70.在该实施例中,由于纠错冗余位有限,若纠错冗余数大于预设纠错冗余阈值,此时错误提示帧无法存放所有的异常数据包标识,同时为了避免发送端uart串口的缓存中暂存的当前工业仪表通信数据帧本身存在问题,例如初始数据包存在问题或者帧校验码存在问题,因此需要将当前工业仪表通信数据帧进行更新,重新将更新后的当前工业仪表通信数据帧通过预设传输路径传输给数据接收模块。
71.在本技术的另一个实施例中,将缓存中的当前工业仪表通信数据帧进行更新,包括以下步骤:
72.步骤s251,重新握手连接以确定连接状态,并将重发次数清零。
73.在本技术的一个实施例中,将发送端与接收端重新握手连接,确定是否连接成功,并将重发次数清零。其中,重新握手连接与重发次数清零不限制先后顺序。
74.步骤s252,若连接状态为连接成功,则将缓存中的当前工业仪表通信数据帧进行更新,得到更新后的当前工业仪表通信数据帧。
75.在本技术的一个实施例中,若连接成功,则发送端将当前工业仪表通信原始数据帧重新拷贝给发送端uart串口,以替换发送端uart串口的缓存中原来的当前工业仪表通信数据帧,得到更新后的当前工业仪表通信数据帧。
76.步骤s253,若连接状态为连接失败,则统计连接失败次数,当连接失败次数小于或等于预设阈值时,重新握手连接。
77.在本技术的一个实施例中,为了避免因特殊原因如总线故障而进行反复握手连接导致死循环,可以设置预设阈值。若连接失败,则统计连接失败次数,并将连接失败次数与预设阈值进行比较。当连接失败次数小于或等于预设阈值时,则重新握手连接;当连接失败次数大于预设阈值时,则提示无法连接,并结束数据传输。示意性的,预设阈值可以是10,或者是大于10的整数,或者本领域技术人员设定的其他数值。
78.请参阅图3,图3是本技术的一示例性实施例示出的工业仪表数据接收流程示意图。
79.如图3所示,接收端uart串口初始化,确定接收端uart串口的接收器是否空闲,若接收端uart串口的接收器处于忙碌状态,则继续等待,若接收端uart串口的接收器处于空闲状态,则接收端uart串口的接收器开始接收数据并暂存到fifo(first in first out,先进先出)数据缓存中,当达到trigger level(触发等级),则触发中断,driver(驱动层)读取数据,并拷贝到接收端应用层,以使接收端接收当前接收数据帧,接收端应用层返回响应帧到发送端,以示接收成功。
80.请参阅图4,图4是本技术的一示例性实施例示出的工业仪表数据发送流程示意图。
81.如图4所示,发送端uart串口初始化,确定发送端uart串口的发送器是否空闲,若发送端uart串口的发送器处于忙碌状态,则继续等待,若发送端uart串口的发送器处于空闲状态,则将发送端应用层的数据拷贝到driver,再由driver拷贝到fifo数据缓存器,若完成拷贝则触发中断,开始发送fifo缓存中的数据,即发送端uart串口的发送器将缓存中的当前工业仪表通信数据帧发出。
82.请参阅图5,图5是本技术的一示例性实施例示出的工业仪表数据通信流程示意图。
83.如图5所示,以仪表为发送端、总线设备为接收端为例,仪表上电初始化,总线设备初始化,并握手连接,判断连接是否异常。若连接异常(失败),则记录连接失败次数,当连接失败次数超过最大连接失败次数(预设阈值)则弹出窗口提示无法连接,当连接失败次数没有超过预设阈值则重新握手连接。若连接正常(成功),则仪表开始发送数据。
84.在仪表发送数据时,仪表将当前工业仪表通信原始数据帧拷贝到其配置的uart串口中,以使该uart串口的缓存中暂存当前工业仪表通信数据帧;该uart串口将缓存中当前工业仪表通信数据帧通过预设传输路径传输给总线设备,以使总线设备中的数据接收模块接收到当前接收数据帧,并将当前接收数据帧进行校验。若校验成功,则表示总线设备接收数据成功,此时触发中断,仪表开始进行下一工业仪表通信数据帧的发送。若校验失败,则表示总线设备接收数据失败,此时获取当前接收数据帧的纠错冗余数,并将纠错冗余数与最大冗余次数(预设纠错冗余阈值)进行比较。若纠错冗余数未超过最大冗余次数,则对当前接收数据帧进行纠错分析得到异常数据包标识,基于异常数据包标识生成错误提示帧,对错误提示帧进行解析并启动重发机制,以重新发送数据,即重新通过预设传输路径传输异常数据包标识对应的初始数据包直至总线设备接收数据成功。若纠错冗余数超过最大冗余次数,则弹出超出最大冗余次数窗口提示无法传输数据,以重新握手连接并重新发送当前工业仪表通信数据帧。
85.应当明白的是,当总线设备为发送端、仪表为接收端的工业仪表数据通信流程与仪表为发送端、总线设备为接收端的工业仪表数据通信流程是一致的,此处不再赘述。
86.请参阅图6,图6是本技术的一示例性实施例示出的工业仪表通信数据丢包处理系统的框图。该系统可以应用于图1所示的实施环境,并由该实施环境中的发送端101和接收端102具体执行。该系统也可以适用于其它的示例性实施环境,并由其它实施环境中的设备具体执行,本实施例不对该系统所适用的实施环境进行限制。
87.如图6所示,该示例性的工业仪表通信数据丢包处理系统包括:
88.传输模块610,用于将缓存中当前工业仪表通信数据帧通过预设传输路径传输给数据接收模块,当前工业仪表通信数据帧包括多个初始数据包;获取模块620,用于若当前工业仪表通信数据帧传输失败,获取当前接收数据帧以及当前接收数据帧的纠错冗余数,当前接收数据帧为当前工业仪表通信数据帧通过预设传输路径传输后被数据接收模块接收到的数据帧,当前接收数据帧包括多个接收数据包,接收数据包为初始数据包通过预设传输路径传输后被数据接收模块接收到的数据包;纠错分析模块630,用于若纠错冗余数小于或等于预设纠错冗余阈值,对当前接收数据帧进行纠错分析,以确定异常数据包标识,异常数据包标识为当前接收数据帧与当前工业仪表通信数据帧不同的初始数据包的初始数据包标识;数据包重发模块640,用于重新将缓存中异常数据包标识对应的初始数据包通过预设传输路径传输给数据接收模块,直至数据接收模块成功接收到所有的初始数据包。
89.需要说明的是,上述实施例所提供的工业仪表通信数据丢包处理系统与上述实施例所提供的工业仪表通信数据丢包处理方法属于同一构思,其中各个模块和单元执行操作的具体方式已经在方法实施例中进行了详细描述,此处不再赘述。上述实施例所提供的工业仪表通信数据丢包处理系统在实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将系统的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能,本处也不对此进行限制。
90.本技术的实施例还提供了一种电子设备,包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述电子设备实现上述各个实施例中提供的工业仪表通信数据丢包处理方法。
91.图7示出了适于用来实现本技术实施例的电子设备的计算机系统的结构示意图。需要说明的是,图7示出的电子设备的计算机系统700仅是一个示例,不应对本技术实施例的功能和使用范围带来任何限制。
92.如图7所示,计算机系统700包括中央处理单元(central processing unit,cpu)701,其可以根据存储在只读存储器(read-only memory,rom)702中的程序或者从储存部分708加载到随机访问存储器(random access memory,ram)703中的程序而执行各种适当的动作和处理,例如执行上述实施例中所述的方法。在ram 703中,还存储有系统操作所需的各种程序和数据。cpu 701、rom 702以及ram 703通过总线704彼此相连。输入/输出(input/output,i/o)接口705也连接至总线704。
93.以下部件连接至i/o接口705:包括键盘、鼠标等的输入部分706;包括诸如阴极射线管(cathode ray tube,crt)、液晶显示器(liquid crystal display,lcd)等以及扬声器等的输出部分707;包括硬盘等的储存部分708;以及包括诸如lan(local area network,局域网)卡、调制解调器等的网络接口卡的通信部分709。通信部分709经由诸如因特网的网络执行通信处理。驱动器710也根据需要连接至i/o接口705。可拆卸介质711,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器710上,以便于从其上读出的计算机程序根据需要被安装入储存部分708。
94.特别地,根据本技术的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本技术的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的计算机程序。在这样的
实施例中,该计算机程序可以通过通信部分709从网络上被下载和安装,和/或从可拆卸介质711被安装。在该计算机程序被中央处理单元(cpu)701执行时,执行本技术的系统中限定的各种功能。
95.需要说明的是,本技术实施例所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(erasable programmable read only memory,eprom)、闪存、光纤、便携式紧凑磁盘只读存储器(compact disc read-only memory,cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本技术中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的计算机程序。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的计算机程序可以用任何适当的介质传输,包括但不限于:无线、有线等等,或者上述的任意合适的组合。
96.附图中的流程图和框图,图示了按照本技术各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。其中,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
97.描述于本技术实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现,所描述的单元也可以设置在处理器中。其中,这些单元的名称在某种情况下并不构成对该单元本身的限定。
98.本技术的另一方面还提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被计算机的处理器执行时,使计算机执行如前所述的工业仪表通信数据丢包处理方法。该计算机可读存储介质可以是上述实施例中描述的电子设备中所包含的,也可以是单独存在,而未装配入该电子设备中。
99.本技术的另一方面还提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述各个实施例中提供的工业仪表通信数据丢包处理方法。
100.上述实施例仅示例性说明本技术的原理及其功效,而非用于限制本技术。任何熟悉此技术的人士皆可在不违背本技术的精神及范畴下,对上述实施例进行修饰或改变。因
此,但凡所属技术领域中具有通常知识者在未脱离本技术所揭示的精神与技术思想下所完成的一切等效修饰或改变,仍应由本技术的权利要求所涵盖。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1