异步数据通讯方法、介质、设备及异步数据通讯系统与流程

文档序号:21693172发布日期:2020-07-31 22:15阅读:159来源:国知局
异步数据通讯方法、介质、设备及异步数据通讯系统与流程

本发明属于异步数据通讯的技术领域,涉及一种异步数据通讯方法,特别是涉及一种异步数据通讯方法、介质、设备及异步数据通讯系统。



背景技术:

在工业测控系统中,数据通讯是整个系统的一个重要部分。数据通讯包括同步通讯和异步通讯。同步通讯是指发送方发出数据后,等接收方发回响应以后才发下一个数据包。异步通讯是指发送方发出数据后,不等接收方发回响应,接着发送下个数据包。其传统的工控应用模型采用同步通讯方式,具体是首先设备把请求发送给服务器,然后服务器接收并处理请求,最后服务器把响应消息再返回给设备。在整个过程中,发送请求、处理请求、返回响应这三个步骤不能同时进行,必须前一个步骤完成后才能进行下一步骤,这样一个通讯周期将花费较多的时间,而整个过程中设备大部分时间处于等待状态,实时性不强。

因此,如何提供一种异步数据通讯方法,以解决现有技术无法在减轻通讯总线压力的同时提高总线带宽的使用率,实已成为本领域技术人员亟待解决的技术问题。



技术实现要素:

鉴于以上所述现有技术的缺点,本发明的目的在于提供一种异步数据通讯方法、介质、设备及异步数据通讯系统,用于解决异步通讯中在减轻通讯总线压力的同时提高总线带宽使用率的问题。

为实现上述目的及其他相关目的,本发明提供一种异步数据通讯方法,应用于设备,至少一个所述设备与服务端通信连接;所述异步数据通讯方法包括:将实时获取的多个数据点信息发送至服务端;接收所述服务端针对发送成功的数据点信息返回的响应信息;通过所述响应信息中的数据点标识更新数据点状态存储表,根据所述数据点状态存储表中各数据点的信息发送状态筛选发送失败的数据点信息;其中,所述数据点状态存储表设于所述设备中;将所述发送失败的数据点信息重新发送至服务端,直至所有数据点信息均发送成功。

于本发明的一实施例中,将实时获取的多个数据点信息发送至服务端的步骤包括:将实时获取的多个数据点信息存储于本地的发送缓存队列中;所述数据点信息包括模拟量数据和数字量数据;按照预设时间间隔将所述发送缓存队列中的数据点信息发送至所述服务端。

于本发明的一实施例中,通过所述响应信息中的数据点标识更新数据点状态存储表,根据所述数据点状态存储表中各数据点的信息发送状态筛选发送失败的数据点信息的步骤包括:读取所述响应信息中的数据点标识;将所述数据点标识保存于数据点状态存储表中;查找所述数据点状态存储表中缺失的数据点标识;根据缺失的数据点标识确定发送失败的数据点信息。

于本发明的一实施例中,将所述发送失败的数据点信息重新发送至服务端,直至所有数据点信息均发送成功的步骤包括:将所述发送失败的数据点信息重新发送至服务端;判断是否接收到所述服务端针对重新发送的数据点信息返回的响应信息;若是,则判定所述数据点信息发送成功;若否,返回将所述发送失败的数据点信息重新发送至服务端的步骤,直至所有数据点信息均发送成功。

于本发明的一实施例中,所述异步数据通讯方法还包括:确定所述数据点信息对应的数据点的数目,将全部数据点均发送成功作为一个发送周期。

于本发明的一实施例中,当获取到所述数据点信息后,实时将所述数据点信息发送至服务端,且无需接收所述服务端的发送指令与响应信息后再进行发送;当接收到所述响应信息之后,实时对各数据点信息的发送状态进行更新。

本发明另一方面提供一种介质,其上存储有计算机程序,该计算机程序被处理器执行时实现所述的异步数据通讯方法。

本发明又一方面提供一种设备,包括:处理器及存储器;所述存储器用于存储计算机程序,所述处理器用于执行所述存储器存储的计算机程序,以使所述设备执行所述的异步数据通讯方法。

本发明最后一方面提供一种异步数据通讯系统,所述异步数据通讯系统包括:至少一个设备,所述设备与若干个数据点连接,用于将实时获取的多个数据点信息发送至服务端;接收所述服务端针对发送成功的数据点信息返回的响应信息;通过所述响应信息中的数据点标识更新数据点状态存储表,根据所述数据点状态存储表中各数据点的信息发送状态筛选发送失败的数据点信息;其中,所述数据点状态存储表设于所述设备中;将所述发送失败的数据点信息重新发送至服务端,直至所有数据点信息均发送成功;服务端,与所述设备通信连接,用于接收所述设备实时发送的数据点信息后返回响应信息,直至所有数据点信息均接收成功。

于本发明的一实施例中,所述服务端接收到所述设备发送的数据点信息后,判断所述数据点信息是否为有效数据,若是,返回该数据点信息对应的响应消息;若否,将不返回响应信息。

如上所述,本发明的一种异步数据通讯方法、介质、设备及异步数据通讯系统,具有以下有益效果:

本发明通过在一个发送周期内,每次只针对前一次发送失败的数据点信息进行再次发送,不仅能够减轻通讯总线的压力,还能提高总线带宽的使用率。所述异步数据通讯方法在网络传输数据量特别巨大的情况下,其快速特性尤为明显。

附图说明

图1显示为本发明的异步数据通讯方法于一实施例中的原理流程图。

图2显示为本发明的异步数据通讯方法于一实施例中的数据发送流程图。

图3显示为本发明的异步数据通讯方法于一实施例中的数据筛选流程图。

图4显示为本发明的异步数据通讯方法于一实施例中的数据筛选示意图。

图5显示为本发明的异步数据通讯方法于一实施例中的数据重新发送流程图。

图6显示为本发明的设备于一实施例中的结构示意图。

图7显示为本发明的异步数据通讯系统于一实施例中的通讯连接示意图。

元件标号说明

6设备

61处理器

62存储器

63通信接口

64系统总线

s11~s14步骤

s111~s112步骤

s131~s134步骤

s141~s143步骤

具体实施方式

以下通过特定的具体实例说明本发明的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。需说明的是,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合。

需要说明的是,以下实施例中所提供的图示仅以示意方式说明本发明的基本构想,遂图式中仅显示与本发明中有关的组件而非按照实际实施时的组件数目、形状及尺寸绘制,其实际实施时各组件的型态、数量及比例可为一种随意的改变,且其组件布局型态也可能更为复杂。

本实施例采用异步通讯的方式连接设备和服务端。以异步数据通讯为基础,负责服务器上的服务程序和设备上的数据交换,它须具备较高的可靠性和通信效率,以便保证整个系统的正确运行。

以下将结合图1至图5详细阐述本实施例的一种异步数据通讯方法、介质、设备及异步数据通讯系统的原理及实施方式,使本领域技术人员不需要创造性劳动即可理解本实施例的一种异步数据通讯方法、介质、设备及异步数据通讯系统。

异步通讯是指发送方在发送数据前无需与接收方协调,发送方在任意时刻都可以发送数据,发送方的发送间歇可以等待任意长的时间,并且只要数据准备好,即可发送。接收方在数据到达时必须准备好接收数据。在异步通讯中,由于通讯双方收发数据没有规律,双方都可能随时发送数据,也必须随时接收对方发来的数据,所以双方必须监听总线上是否有数据送达。

在异步通讯中,发送方随时可以发送数据,但是如果接收方没有做好接收准备,那么数据将会丢失。并且,随着通讯技术的发展,网络规模增大及通讯数据量增长为网络大数据,更加要求数据能够快速、高效的进行传输,同时提高通讯系统中信道带宽的利用率。

请参阅图1,显示为本发明的异步数据通讯方法于一实施例中的原理流程图。所述异步数据通讯方法应用于设备,至少一个所述设备与服务端通信连接。如图1所示,所述异步数据通讯方法具体包括以下步骤:

s11,将实时获取的多个数据点信息发送至服务端。

请参阅图2,显示为本发明的异步数据通讯方法于一实施例中的数据发送流程图。如图2所示,s11包括:

s111,将实时获取的多个数据点信息存储于本地的发送缓存队列中;所述数据点信息包括模拟量数据和数字量数据。

具体地,若设备连接1000个数据点,则设备在接到数据点信息之后即时将该数据点信息存于发送缓存队列中进行发送。

s112,按照预设时间间隔将所述发送缓存队列中的数据点信息发送至所述服务端。

具体地,设预设时间间隔为1ms,则将发送缓存队列中的多个数据点信息按照1ms的间隔依次发送至服务端。

s12,接收所述服务端针对发送成功的数据点信息返回的响应信息。

具体地,若服务端接收到第100个数据点的信息后验证正确,则服务端发送针对第100个数据点的响应信息,该响应信息中包含第100个数据点的标识信息。

s13,通过所述响应信息中的数据点标识更新数据点状态存储表,根据所述数据点状态存储表中各数据点的信息发送状态筛选发送失败的数据点信息。其中,所述数据点状态存储表设于所述设备中。

具体地,若1000个数据点中的第80、996个数据点的数据发送失败,则筛选出第80、996个数据点,以将第80、996个数据点的数据点信息重新发送。

请参阅图3显示为本发明的异步数据通讯方法于一实施例中的数据筛选流程图。如图3所示,s13包括:

s131,读取所述响应信息中的数据点标识。

具体地,若第996个数据点的数据发送失败,则设备只接收到第996个数据点以外的响应信息。

s132,将所述数据点标识保存于数据点状态存储表中。

具体地,根据接收到第996个数据点以外的响应信息,在数据点状态存储表中将对应的数据点进行状态更新,以使发送成功的数据点与发送失败的数据点进行区分。

s133,查找所述数据点状态存储表中缺失的数据点标识。

具体地,当第996个数据点以外的其他数据点进行状态更新后,则未进行状态更新的第996个数据点的数据点标识存在缺失。

s134,根据缺失的数据点标识确定发送失败的数据点信息。

具体地,将第996个数据点确定为发送失败的数据点,即在上一次发送过程中,第996个数据点的数据点信息发送失败。

请参阅图4显示为本发明的异步数据通讯方法于一实施例中的数据筛选示意图。如图4所示,显示了1-1000个数据点信息的设备的发送缓存队列,设备将待发送的数据点信息由发送缓存队列发送至服务器(服务端),服务端在验证为有效数据后返回响应信息,设备的数据点状态存储表在接到响应信息后将对应的数据点位置进行状态更新,如图4中浅灰色表示该数据点的数据发送成功,深灰色表示该数据点的数据发送失败,如图4中的第2、22、972、987和995数据点处于数据发送失败的状态。

图4的实施例中,设备接有1000个数据点,可以获取1000个数据点数据,并存储在本地的发送缓存队列中。考虑到总线线路传输延迟和服务器的处理情况,设定设备中每个数据点数据按照1ms的时间间隔依次发送到服务器,由此,1s将发送1000个数据点数据(数据点信息)。服务器每接收一个数据点数据就存储在自身的接收缓冲队列中并处理,如果服务器判断接收的数据点数据正确将返回带有数据点标识信息的响应消息给设备;设备每接收一个响应消息后从中读取相应的数据点标识信息,并保存在数据点状态存储表中;如果设备没有接收到某个数据点的响应消息则在数据点状态存储表中不保存该数据点标识信息。数据流向如图4所示,当设备成功发送1000个数据点数据时,数据点状态存储表中就有1000个数据点的成功状态。

设备在第1个至第1000个数据点数据均发送完成后,首先判断数据点状态存储表是否完整。如果状态表中存满1000个数据点的标识信息则表示所有数据发送并接收成功,否则表示一部分数据点通讯失败。那么在接下来的第二次数据发送时,将不再从第1个数据点开始发送,而是对第一次发送未成功的数据点重新发送,并把服务器第二次返回的数据点标识继续保存在原来的点状态存储表中;如果数据点状态存储表仍然不完整,则继续对发送失败的数据点数据重新发送,将数据点的数据发送逻辑进行列表管理,如表1数据点的数据发送逻辑表。

表1数据点的数据发送逻辑表

由1000个数据点发送的具体实施例可知,采用本发明的异步数据通讯方法,设备的1000个数据点数据能够快速高效的进行传输。将1000个数据点数据全部正确发送作为一个完整发送周期,在这个周期中,每次只针对前次发送失败的数据点数据进行再次发送。若每个数据点数据按照1ms的时间间隔依次发送到服务器,这样1s将完成1000个数据点的数据发送。而现有技术的同步通讯,采用一问一答的方式,若同样将时间间隔设为1ms,则问一次需要1ms,答一次需要1ms,考虑通讯中间的延时,设为2ms,则完成一个数据点的数据发送需要4ms,对于1000个数据点完成数据发送大概需要4s,由此,本发明的异步数据通讯方法大大提高了数据传输效率,且在网络传输数据量特别巨大的情况下,其快速特性尤为明显。

s14,将所述发送失败的数据点信息重新发送至服务端,直至所有数据点信息均发送成功。

请参阅图5,显示为本发明的异步数据通讯方法于一实施例中的数据重新发送流程图。

如图5所示,s14包括:

s141,将所述发送失败的数据点信息重新发送至服务端。

具体地,若第996个数据点在上次发送过程中数据发送失败,则将第996个数据点的数据点信息重新发送至服务端。

s142,判断是否接收到所述服务端针对重新发送的数据点信息返回的响应信息。

s143,若是,则判定所述数据点信息发送成功;若否,返回将所述发送失败的数据点信息重新发送至服务端的步骤,直至所有数据点信息均发送成功。

本实施例还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现所述异步数据通讯方法。

本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过计算机程序相关的硬件来完成。前述的计算机程序可以存储于一计算机可读存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:rom、ram、磁碟或者光盘等各种可以存储程序代码的介质。

本发明所述的异步数据通讯方法的保护范围不限于本实施例列举的步骤执行顺序,凡是根据本发明的原理所做的现有技术的步骤增减、步骤替换所实现的方案都包括在本发明的保护范围内。

请参阅图6,显示为本发明的设备于一实施例中的结构示意图。设备为工业测控系统中的数据获取与通讯设备,该设备与服务端通讯,且受服务端管控。将工业现场的机电设备作为数据点,设备实时获取多个数据点的信息,并发送至服务端,以便对工业现场的多个机电设备进行管控。如图6所示,本实施例提供一种设备6,所述设备6包括:处理器61、存储器62、通信接口63或/和系统总线64;存储器62和通信接口63通过系统总线64与处理器61连接并完成相互间的通信,存储器62用于存储计算机程序,通信接口63用于和其他设备进行通信,处理器61用于运行计算机程序,使所述设备执行所述异步数据通讯方法的各个步骤。

上述提到的系统总线64可以是外设部件互连标准(peripheralcomponentinterconnect,简称pci)总线或扩展工业标准结构(extendedindustrystandardarchitecture,简称eisa)总线等。该系统总线64可以分为地址总线、数据总线、控制总线等。通信接口用于实现数据库访问装置与其他设备(如客户端、读写库和只读库)之间的通信。存储器可能包含随机存取存储器(randomaccessmemory,简称ram),也可能还包括非易失性存储器(non-volatilememory),例如至少一个磁盘存储器。

上述的处理器61可以是通用处理器,包括中央处理器(centralprocessingunit,简称cpu)、网络处理器(networkprocessor,简称np)等;还可以是数字信号处理器(digitalsignalprocessing,简称dsp)、专用集成电路(alicationspecificintegratedcircuit,简称asic)、现场可编程门阵列(fieldprogrammablegatearray,简称fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。

请参阅图7,显示为本发明的异步数据通讯系统于一实施例中的通讯连接示意图。如图7所示,本发明所述的异步数据通讯系统包括:至少一个设备和服务端。

所述设备与若干个数据点连接,用于将实时获取的多个数据点信息发送至服务端;接收所述服务端针对发送成功的数据点信息返回的响应信息;通过所述响应信息中的数据点标识更新数据点状态存储表,根据所述数据点状态存储表中各数据点的信息发送状态筛选发送失败的数据点信息;其中,所述数据点状态存储表设于所述设备中;将所述发送失败的数据点信息重新发送至服务端,直至所有数据点信息均发送成功。

所述服务端与所述设备通信连接,用于接收所述设备实时发送的数据点信息后返回响应信息,直至所有数据点信息均接收成功。

在本实施例中,所述服务端接收到所述设备发送的数据点信息后,判断所述数据点信息是否为有效数据,若是,返回该数据点信息对应的响应消息;若否,将不返回响应信息。

具体地,所述异步数据通讯系统的工作过程为:

(1)设备获取所有数据点的数据量信息。假如设备自身连接1000个数据点(在实际通讯系统中可能存在更多的工作点),每个数据点可以为模拟量数据或者数字量数据,大小为几个或几十个字节,每个数据点都有自己的标识信息。

(2)设备将获取的数据点数据(数据点信息)发送给服务器。由于采用异步通讯的方式,因此只要获取到数据点数据就向服务器发送数据,不等待服务器返回响应消息。

(3)服务器接收到设备发送的数据点数据后返回每个数据点的响应消息,如果收到的数据点数据丢失或者数据校验出错将不返回响应信息。

综上所述,本发明所述异步数据通讯方法、介质、设备及异步数据通讯系统通过在一个发送周期内,每次只针对前一次发送失败的数据点信息进行再次发送,不仅能够减轻通讯总线的压力,还能提高总线带宽的使用率。所述异步数据通讯方法在网络传输数据量特别巨大的情况下,其快速特性尤为明显。本发明有效克服了现有技术中的种种缺点而具高度产业利用价值。

上述实施例仅例示性说明本发明的原理及其功效,而非用于限制本发明。任何熟悉此技术的人士皆可在不违背本发明的精神及范畴下,对上述实施例进行修饰或改变。因此,举凡所属技术领域中具有通常知识者在未脱离本发明所揭示的精神与技术思想下所完成的一切等效修饰或改变,仍应由本发明的权利要求所涵盖。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1