一种通信方法、装置及存储介质与流程

文档序号:18639161发布日期:2019-09-11 22:45阅读:169来源:国知局
一种通信方法、装置及存储介质与流程

本发明涉及通信技术领域,尤其是涉及一种通信方法、装置及存储介质。



背景技术:

在通信技术领域中,为提高数据传输的可靠性,通常会对通信系统中起关键性作用的设备进行冗余设计。

例如,请参见图1,为一通信系统的构成示意图,该通信系统由运行管理平台的管理设备、主网关、备网关以及1~n台终端构成,管理设备与主网关之间,以及主网关与备网关管之间都是通过tcp/ip协议进行通信,主网关与终端1、备网关与终端1、以及终端1~终端n中相邻两个终端之间通过modbus协议进行通信。

当主网关故障后,可由备网关采集各终端的信息并报给管理设备。但,若终端之间的链路故障(例如连接终端2和3之间的链路断开),则将使主网关或备网关都无法采集到故障链路(包含终端3)之后的所有终端(即终端3~终端n)的信息,从而降低了整个通信系统进行数据传输的可靠性。

鉴于此,在串行链路发生故障时,如何提高通信系统数据传输的可靠性,成为一个亟待解决的技术问题。



技术实现要素:

本发明提供一种通信方法、装置及存储介质,用以解决现有技术中存在的在串行链路发生故障时,通信系统数据传输的可靠性较低的技术问题。

第一方面,为解决上述技术问题,本发明实施例提供的一种通信方法,应用于通信系统中的主网关设备,所述通信系统还包括管理设备、与所述主网关设备连接的备网关设备、n个终端设备,所述主网关设备和所述备网关设备以及所述n个终端设备组成一串行网络,所述主网关设备和所述备网关设备分别设置于所述串行网络的首尾两端,该方法的技术方案如下:

采集所述n个终端设备的数据,获得第一数据集;

判断所述第一数据集中是否包括所述n个终端设备中每个终端设备的数据;若为否,基于所述第一数据集中各数据携带的终端标识,确定所有未采集到数据的终端设备,获得第一终端子集;

从所述备网关设备发送的第二数据集中,获取第二终端子集中所有终端设备的数据,获得第三数据集;所述第二终端子集中的终端设备为所述备网关设备采集到数据的所述第一终端子集中的终端设备,所述第二数据集包括所述第一终端子集中至少一个终端设备的数据;

将所述第一数据集和所述第三数据集通过所述主网关设备发送到所述管理设备,使所述管理设备对所述n个终端设备进行数据监控。

通过将通信系统中的主网关设备和备网关设备以及n个终端设备组成一串行网络,并将主网关设备和备网关设备分别设置于串行网络的首尾两端,让主网关设备采集n个终端设备的数据,获得第一数据集;并判断第一数据集中是否包括n个终端设备中每个终端设备的数据;若为否,基于第一数据集中各数据携带的终端标识,确定所有未采集到数据的终端设备,获得第一终端子集;从备网关设备发送的第二数据集中,获取第二终端子集中所有终端设备的数据,获得第三数据集;第二终端子集中的终端设备为备网关设备采集到数据的第一终端子集中的终端设备,第二数据集包括第一终端子集中至少一个终端设备的数据;将第一数据集和第三数据集通过主网关设备发送到管理设备,使管理设备对n个终端设备进行数据监控。当串行网络中的链路发生故障时,主网关设备能从备网关设备发送的第二数据集中获得故障点之后的终端设备的数据,从而能够有效的提高通信系统数据传输的可靠性。

可选地,所述方法还包括:

所述主网关设备向所述备网关设备发送配置信息,所述配置信息用于指示所述备网关设备在指定时间内对所述n个终端设备进行数据采集;或,

所述主网关设备在获得所述第一终端子集后,向所述备网关设备发送第一消息,所述第一消息用于指示所述备网关设备对所述第一终端子集中的终端设备进行数据采集。

可选地,采集所述n个终端设备的数据,获得第一数据集,包括:

对所述n个终端设备逐一轮询,每轮询到一个终端设备,采集对应终端设备的数据,在轮询完所述第n个终端设备后,获得所述第一数据集。

可选地,向所述备网关设备发送第一消息,包括:

若所述第一终端子集中终端设备的总数量大于1,且若所述第一终端子集中的终端设备的位置连续,则向所述备网关设备发送所述第一信息;

若所述第一终端子集中终端设备的总数量大于1,且所述第一终端子集中的终端设备的位置不连续,则确定所述第一终端子集中的终端设备发生了故障,将所述第一终端子集中的终端设备上报给所述管理设备。

可选地,向所述备网关设备发送第一消息,包括:

若所述第一终端子集中终端设备的总数量为1,且未采集到数据的终端设备为与备网关设备连接的第n个终端设备,则向所述备网关设备发送所述第一信息;

若所述第一终端子集中终端设备的总数量为1,且未采集到数据的终端设备不是与所述备网关设备连接的第n个终端设备,则确定未采集到数据的终端设备发生了故障,并将发生了故障的设备上报给所述管理设备。

可选地,获取第二终端子集中所有终端设备的数据之前,包括:

判断所述第二数据集中是否包含所述第一终端子集中的至少一个终端设备的数据;

若为是,将包含于所述第一终端子集中的所以终端设备构建为所述第二终端子集;同时将包含于所述第一终端子集但不包含于所述第二终端子集的终端设备,确定发生了故障的终端设备;

将所述发生了故障的终端设备上报给所述管理设备。

第二方面,本发明实施例提供了一种通信方法,应用于通信系统中的备网关设备,所述通信系统还包括管理设备、与所述备网关设备连接的主网关设备、n个终端设备,所述主网关设备和所述备网关设备以及所述n个终端设备组成一串行网络,所述主网关设备和所述备网关设备分别设置于所述串行网络的首尾两端,该方法包括:

采集指定终端设备集的数据,获得第二数据集;所述指定终端设备集为所述n个终端设备,或根据所述主网关设备发送的第一信息中要求进行数据采集的终端设备;

将所述第二数据集发送给所述主网关设备。

可选地,采集指定终端设备集的数据,获得第二数据集,包括:

对所述指定终端设备集中的终端设备逐一轮询,每轮询到一个终端设备,采集对应终端设备的数据,在轮询完所述指定终端设备集中的所有终端设备后,获得所述第二数据集。

第三方面,本发明实施例还提供一种通信装置,包括:

至少一个处理器,以及

与所述至少一个处理器连接的存储器;

其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述至少一个处理器通过执行所述存储器存储的指令,执行如上述第一方面或第二方面所述的方法。

第四方面,本发明实施例还提供一种计算机可读存储介质,包括:

所述计算机可读存储介质存储有计算机指令,当所述计算机指令在计算机上运行时,使得计算机执行如上述第一方面或第二方面所述的方法。

通过本发明实施例的上述一个或多个实施例中的技术方案,本发明实施例至少具有如下技术效果:

在本发明提供的实施例中,通过将通信系统中的主网关设备和备网关设备以及n个终端设备组成一串行网络,并将主网关设备和备网关设备分别设置于串行网络的首尾两端,让主网关设备采集n个终端设备的数据,获得第一数据集;并判断第一数据集中是否包括n个终端设备中每个终端设备的数据;若为否,基于第一数据集中各数据携带的终端标识,确定所有未采集到数据的终端设备,获得第一终端子集;从备网关设备发送的第二数据集中,获取第二终端子集中所有终端设备的数据,获得第三数据集;第二终端子集中的终端设备为备网关设备采集到数据的第一终端子集中的终端设备,第二数据集包括第一终端子集中至少一个终端设备的数据;将第一数据集和第三数据集通过主网关设备发送到管理设备,使管理设备对n个终端设备进行数据监控。当串行网络中的链路发生故障时,主网关设备能从备网关设备发送的第二数据集中获得故障点之后的终端设备的数据,从而能够有效的提高通信系统数据传输的可靠性。

附图说明

图1为现有技术中通信系统的构成示意图;

图2本发明实施例提供的一种通信系统的连接示意图;

图3为本发明实施例提供的通信系统中主网关设备使用的通信方法的流程图;

图4为本发明实施例提供的通信系统中备网关设备使用的通信方法的流程图。

具体实施方式

本发明实施列提供一种通信方法、装置及存储介质,以解决现有技术中存在的在串行链路发生故障时,通信系统数据传输的可靠性较低的技术问题。

本申请实施例中的技术方案为解决上述的技术问题,总体思路如下:

提供一种通信方法,应用于通信系统中的主网关设备,该通信系统还包括管理设备、备网关设备、n个终端设备以及交换机,交换机连接在管理设备与主网关设备和备网关设备之间,主网关设备和备网关设备以及n个终端设备组成一串行网络,主网关设备和备网关设备分别设置于串行网络的首尾两端,该方法包括:采集n个终端设备的数据,获得第一数据集;判断第一数据集中是否包括n个终端设备中每个终端设备的数据;若为否,基于第一数据集中各数据携带的终端标识,确定所有未采集到数据的终端设备,获得第一终端子集;从备网关设备发送的第二数据集中,获取第二终端子集中所有终端设备的数据,获得第三数据集;第二终端子集中的终端设备为备网关设备采集到数据的第一终端子集中的终端设备,第二数据集包括第一终端子集中至少一个终端设备的数据;将第一数据集和第三数据集通过主网关设备发送到管理设备,使管理设备对n个终端设备进行数据监控。

由于在上述方案中,通过将通信系统中的主网关设备和备网关设备以及n个终端设备组成一串行网络,并将主网关设备和备网关设备分别设置于串行网络的首尾两端,让主网关设备采集n个终端设备的数据,获得第一数据集;并判断第一数据集中是否包括n个终端设备中每个终端设备的数据;若为否,基于第一数据集中各数据携带的终端标识,确定所有未采集到数据的终端设备,获得第一终端子集;从备网关设备发送的第二数据集中,获取第二终端子集中所有终端设备的数据,获得第三数据集;第二终端子集中的终端设备为备网关设备采集到数据的第一终端子集中的终端设备,第二数据集包括第一终端子集中至少一个终端设备的数据;将第一数据集和第三数据集通过主网关设备发送到管理设备,使管理设备对n个终端设备进行数据监控。当串行网络中的链路发生故障时,主网关设备能从备网关设备发送的第二数据集中获得故障点之后的终端设备的数据,从而能够有效的提高通信系统数据传输的可靠性。

为了更好的理解上述技术方案,下面通过附图以及具体实施例对本发明技术方案做详细的说明,应当理解本发明实施例以及实施例中的具体特征是对本发明技术方案的详细的说明,而不是对本发明技术方案的限定,在不冲突的情况下,本发明实施例以及实施例中的技术特征可以相互组合。

本发明实施例提供一种通信方法,应用于通信系统中的主网关设备,请参考图2和图3,图2为本发明实施例提供的通信系统的连接示意图,图3为本发明实施例提供的通信系统中主网关设备使用的通信方法的流程图。

该通信系统还包括管理设备、与主网关设备连接的备网关设备、n个终端设备,主网关设备和备网关设备可以通过交换机进行网络连接,再由交换机与管理设备进行网络连接,除此之外,主网关设备和备网关设备以及n个终端设备还组成一串行网络(在图2中以主网关设备的a、b端到备网关设备的a、b所示的链路示出),主网关设备和备网关设备分别设置于串行网络的首尾两端。该方法的处理过程如下:

步骤301:采集n个终端设备的数据,获得第一数据集。

主网关设备和备网关设备为兼具数据采集功能、串行通信功能(如采用modbus协议进行通信)和网络通信(如tcp/ip通信)功能的设备,它们通过串行方式与终端设备连接,进行串行通信来对终端设备进行数据采集,并将采集到的数据通过网络通信传输给管理设备,使管理设备能对终端设备进行数据监控。

在该通信系统中,通常是主网关设备处于工作状态,即对n个终端设备进行数据采集,备网关设备通常处于待机状态,在主网关设备发生故障或主网关设备通知备网关设备工作时才进入工作状态。

主网关设备采集n个终端设备的数据具体可以通过以下方式实现:

对n个终端设备逐一轮询,每轮询到一个终端设备,采集对应终端设备的数据,在轮询完第n个终端设备后,获得第一数据集。

例如,n=8,则主网关设备通过串行通信,从第一个终端设备开始访问,访问成功后对第一个终端设备进行数据采集;在访问完第一个终端设备后,再访问第二个终端设备,访问成功后对第二个终端设备进行数据采集,依次类推,直到访问完第8个终端设备,并在访问成功后采集第8个终端设备的数据。

需要理解的是,主网关设备访问终端设备可能成功,也可能不成功,例如终端设备发生故障时,主网关设备将不能成功的访问发生故障的终端设备,或者当串行网络中的链路发生故障(如第3个终端设备和第4个终端设备之间的链路断了),则主网关设备不能访问故障点之后的终端设备(即第4个~第8个终端设备)。在对主网关设备进行串行通信配置时,通常设置了主网关设备从第一个终端设备到第n个终端设备进行访问,并设置了访问每个终端设备的耗时时长,当达到耗时时长后,若还没访问成功,则对下一个终端设备进行访问,具体主网关设备访问终端设备是否成功是通过主网关设备是否接收到终端设备的应答信息确定的。

在获得第一数据集之后,便可执行步骤302。

步骤302:判断第一数据集中是否包括n个终端设备中每个终端设备的数据;若为否,基于第一数据集中各数据携带的终端标识,确定所有未采集到数据的终端设备,获得第一终端子集。

由于主网关设备在对n个终端设备金数据采集时,可能由于终端设备自身的故障或链路发生故障,而使主网关设备无法采集到n个终端设备中的部分终端设备的数据,这时就需要通过备网关设备对终端设备进行数据采集,主网关设备可以通过以下两种方式让备网关设备进行数据:

第一种方式,主网关设备可以在采集n个终端设备的数据之前或之后,向备网关设备发送配置信息,该配置信息用于指示备网关设备在指定时间内对n个终端设备进行数据采集。

例如,主网关设备向备网关设备发送配置信息,该配置信息中指示备网关设备在指定时间为3分钟内对n个终端设备进行数据采集。备网关设备根据配置信息对n个终端设备进行数据采集,具体备网关设备对n个终端设备进行数据采集的方式与主网关设备相同,在此不再赘述。

第二种方式,主网关设备还可以在获得第一终端子集之后,向备网关设备发送第一消息,该第一消息用于指示备网关设备对第一终端子集中的所有终端设备进行数据采集。

若第一终端子集中终端设备的总数量大于1,且第一终端子集中的终端设备的位置连续,则主网关设备向备网关设备发送第一信息,使备网关设备对第一终端子集中的所有终端设备进数据采集。

可选地,主网关设备向备网关设备发送第一信息,包括:

若第一终端子集中终端设备的总数量大于1,且第一终端子集中的终端设备的位置不连续,则确定第一终端子集中的终端设备发生了故障,将第一终端子集中的终端设备上报给管理设备,使管理设备对用户进行示警及时排除故障。

例如,假设n=8,第一数据集包括第一个终端设备到第六个终端设备的数据。

主网关设备判断出第一数据集中只包括6个终端设备的数据,并且根据第一数据集中各数据携带的终端标识,确定未采集到第七个和第八个终端设备的数据,进而将第七个终端设备和第八个终端设备组成的集合作为第一终端子集。

主网关设备判断出第一终端子集中终端设备的总数量大于1,且第一终端子集中的终端设备的位置是连续的,此时主网关设备向备网关设备发送第一信息,让备网关设备对第一终端子集中的所有终端设备进行数据采集。具体判断第一终端子集中的终端设备的位置是否连续,可以通过判断第一终端子集中的终端设备的编号是否连续来确定。

假设上述第一数据集包括第一个终端设备到第三个终端设备,以及第五个终端设备、第六个终端设备、第八个终端设备的数据。则第一终端子集包括第四个终端设备和第七个终端设备,主网关设备可以判断出第一终端子集中终端设备的总数量大于1,但第一终端子集中的终端设备的位置为非连续的,此时主网关设备确定第一终端子集中的终端设备发生了故障,并将第一终端子集中的终端设备上报给管理设备,使管理设备向用户示警,排除第一终端子集中的终端设备的故障。

需要说明的是,若备网关设备被配置为对n个终端设备进行数据采集,那么主网关设备便不需再向备网关设备发送第一信息。在本发明提供的实施例中,备网关设备所采集的终端设备的数据组成的集合为第二数据集。

可选地,主网关设备向备网关设备发送第一信息,包括:

若第一终端子集中终端设备的总数量为1,且未采集到数据的终端设备为与备网关设备连接的第n个终端设备,则向备网关设备发送第一信息。

若第一终端子集中终端设备的总数量为1,且未采集到数据的终端设备不是与备网关设备连接的第n个终端设备,则确定未采集到数据的终端设备发生了故障,并将发生了故障的设备上报给管理设备。

例如,n=8,第一数据集包括第一个终端设备到第七个终端设备的数据。

主网关设备确定第一终端子集由第八个终端设备组成,主网关设备判断出第一终端子集中终端设备的总数量为1,且第一终端子集中的终端设备为与备网关设备连接的第八个终端设备,此时主网关设备向备网关设备发送第一信息,指示备网关设备采集第八个终端设备的数据。

又如,n=8,第一数据集包括第一个终端设备到第三个终端设备,以及第五个到第八个终端设备的数据。

主网关设备确定第一终端子集只有第四个终端设备组成,则判断出第一终端子集中终端设备的总数量为1,且第一终端子集中的终端设备不是与备网关设备连接的第八个终端设备,此时主网关设备确定第四个终端设备发生了故障,将第四个终端设备上报给管理设备。

在获得第一终端子集之后,便可执行步骤303。

步骤303:从备网关设备发送的第二数据集中,获取第二终端子集中所有终端设备的数据,获得第三数据集;第二终端子集中的终端设备为备网关设备采集到数据的第一终端子集中的终端设备,第二数据集包括第一终端子集中至少一个终端设备的数据。

获取第二终端子集中所有终端设备的数据之前,由于不管备网关设备是被配置为采集n个终端设备的数据,还是根据第一信息采集第一终端子集中的终端设备的数据,备网关设备都可能只采集到第一终端子集中的部分终端设备的数据,甚至采集不到一个第一终端子集中的终端设备的数据。

此时,主网关设备需要判断第二数据集中是否包含第一终端子集中的至少一个终端设备的数据;若为是,将包含于第一终端子集中的所有终端设备构建为第二终端子集;同时将包含于第一终端子集但不包含于第二终端子集的终端设备,确定发生了故障的终端设备;将发生了故障的终端设备上报给管理设备。

例如,假设n=8,第一终端子集由第5~8个终端设备组成,第二数据集由第6~8个终端设备的数据组成。

主网关设备根据第6~8个终端设备的数据中携带的设备标识,判断出第二数据集中包含第一终端子集中的至少一个终端设备的数据,此时将第6~8个终端设备构建为第二终端子集,并获得第二终端子集(即第6~8个终端设备)的数据组成的第三数据集。同时主网关设备根据第一终端子集与第二终端子集,确定第5个终端设备发生了故障,将第5个终端设备上报给管理设备,使管理设备对用户进行示警,使用户及时排除第5个终端设备的故障。

在获得第三数据集之后,便可执行步骤304。

步骤304:将第一数据集和第三数据集通过网关设备发送到管理设备,使管理设备对n个终端设备进行数据监控。

在对通信系统中主网关设备的通信过程进行介绍之后,下面将对备网关设备的通信过程进行介绍。

请参见图4,为本发明实施例提高的通信系统中备网关设备使用的通信方法的流程图。

基于同一发明构思,本发明一实施例中提供一种通信方法,应用于通信系统中的备网关设备,通信系统还包括管理设备、与备网关设备连接的主网关设备、n个终端设备,主网关设备和备网关设备可以通过交换机进行网络连接,再由交换机与管理设备进行网络连接,除此之外,主网关设备和备网关设备以及n个终端设备还组成一串行网络,主网关设备和备网关设备分别设置于串行网络的首尾两端,该方法包括:

步骤401:采集指定终端设备集的数据,获得第二数据集;指定终端设备集为n个终端设备,或根据主网关设备发送的第一信息中要求进行数据采集的终端设备。

具体的,采集指定终端设备集的数据,获得第二数据集,包括:

对指定终端设备集中的终端设备逐一轮询,每轮询到一个终端设备,采集对应终端设备的数据,在轮询完指定终端设备集中的所有终端设备后,获得第二数据集。

由于备网关设备采集指定终端设备的数据的过程,与前述主网关设备采集n个终端设备的过程类似,故在此不再赘述。

在获得第二数据集后,便可执行步骤402。

步骤402:将第二数据集发送给主网关设备。

由于在主网关设备的实施例中已经对备网关设备的通信过程进行了详细的描述,故在此不再赘述。

基于同一发明构思,本发明实施例中提供了一种用于通信装置,包括:至少一个处理器,以及

与所述至少一个处理器连接的存储器;

其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述至少一个处理器通过执行所述存储器存储的指令,执行如上所述的主网关设备或备网关设备的通信方法。

基于同一发明构思,本发明实施例还提一种计算机可读存储介质,包括:

所述计算机可读存储介质存储有计算机指令,当所述计算机指令在计算机上运行时,使得计算机执行如上所述的主网关设备或备网关设备的通信方法。

在本发明提供的实施例中,通过将通信系统中的主网关设备和备网关设备以及n个终端设备组成一串行网络,并将主网关设备和备网关设备分别设置于串行网络的首尾两端,让主网关设备采集n个终端设备的数据,获得第一数据集;并判断第一数据集中是否包括n个终端设备中每个终端设备的数据;若为否,基于第一数据集中各数据携带的终端标识,确定所有未采集到数据的终端设备,获得第一终端子集;从备网关设备发送的第二数据集中,获取第二终端子集中所有终端设备的数据,获得第三数据集;第二终端子集中的终端设备为备网关设备采集到数据的第一终端子集中的终端设备,第二数据集包括第一终端子集中至少一个终端设备的数据;将第一数据集和第三数据集通过主网关设备发送到管理设备,使管理设备对n个终端设备进行数据监控。当串行网络中的链路发生故障时,主网关设备能从备网关设备发送的第二数据集中获得故障点之后的终端设备的数据,从而能够有效的提高通信系统数据传输的可靠性。

本领域内的技术人员应明白,本发明实施例可提供为方法、系统、或计算机程序产品。因此,本发明实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

本发明实施例是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

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