本申请涉及自动化领域,更具体地说,涉及一种控制系统。
背景技术:
在工业自动化领域中,为了提高系统的可靠性,一些系统中的关键元件(或子系统)通常采用工作、备用热备份的冗余配置方式,这种冗余配置方式称为热备冗余配置。热备冗余配置中,两个单元都处于运行状态,同时进行数据采集、数据处理和/或数据计算;其中一个单元处于为工作状态,另一个单元处于备用状态,只有处于工作状态的单元才进行数据输出。当工作状态的单元出现故障时,系统进行工作/备用状态的切换,将出现故障的处于工作状态的单元切换为备用状态,将故障等级较低的备用状态的单元切换为工作状态。即同一时刻,热备冗余配置中的两个单元(前级单元),只有一个单元发送数据至后级单元。这种工作方式,需要两个前级单元之间进行数据实时交互,实现方式复杂;在切换时,容易造成数据的短暂丢失;以及在切换功能失效时,造成双工作或双备份的情况,从而造成后级单元无法处理数据的问题。因此,现有技术中,控制系统的工作方法复杂,且系统的可靠性较低。
技术实现要素:
有鉴于此,本申请提出一种控制系统,欲实现简化控制系统的工作方法,以及提高控制系统可靠性的目的。
为了实现上述目的,现提出的方案如下:
一种控制系统,包括:一个后级单元和多个前级单元,其中,
多个所述前级单元,用于同时将各自数据发送至所述后级单元,所述数据包含相应的所述前级单元的故障等级;
所述后级单元,用于选择故障等级最低的所述前级单元发送的数据进行处理。
优选的,每个所述前级单元包括:一个通道模块,所述通道模块包括一个CPU,以及与所述CPU连接的外围电路,其中,
所述CPU用于将所述通道模块的故障等级作为所述前级单元的故障等级,并将包含所述前级单元的故障等级的数据发送至所述后级单元。
优选的,所述CPU,用于在所述通道模块无故障时,确定所述通道模块的故障等级为0,在所述通道模块有故障时,确定所述通道模块的故障等级为1。
优选的,每个所述前级单元包括:多个通道模块,其中,
每个所述通道模块包括一个CPU,以及与所述CPU连接的外围电路,其中,
每个所述CPU用于将所有所述通道模块的故障等级相加,得到所述前级单元的故障等级,并将包含所述前级单元的故障等级的数据发送至所述后级单元。
优选的,每个所述CPU,用于在包括所述CPU的所述通道模块与所有其它所述通道模块通信正常,且包括所述CPU的所述通道模块无故障时,确定包括所述CPU的所述通道模块的故障等级为0;在包括所述CPU的所述通道模块与所有其它所述通道模块通信失败时,确定包括所述CPU的所述通道模块的故障等级为1,以及确定其它相应通道模块的故障等级为1;在包括所述CPU的所述通道模块有故障时,确定包括所述CPU的所述通道模块的故障等级为1。
一种控制系统,包括:多个后级单元和多个前级单元,其中,
多个所述前级单元,用于同时将各自数据分别发送至每个所述后级单元,所述数据包含相应的所述前级单元的故障等级;
每个所述后级单元,用于选择故障等级最低的所述前级单元发送的数据进行处理。
优选的,每个所述前级单元包括:一个通道模块,所述通道模块包括一个CPU,以及与所述CPU连接的外围电路,其中,
所述CPU用于将所述通道模块的故障等级作为所述前级单元的故障等级,并将包含所述前级单元的故障等级的数据发送至所述后级单元。
优选的,所述CPU,用于在所述通道模块无故障时,确定所述通道模块的故障等级为0,在所述通道模块有故障时,确定所述通道模块的故障等级为1。
优选的,每个所述前级单元包括:多个通道模块,其中,
每个所述通道模块包括一个CPU,以及与所述CPU连接的外围电路,其中,
每个所述CPU用于将所有所述通道模块的故障等级相加,得到所述前级单元的故障等级,并将包含所述前级单元的故障等级的数据发送至所述后级单元。
优选的,每个所述CPU,用于在包括所述CPU的所述通道模块与所有其它所述通道模块通信正常,且包括所处CPU的所述通道模块无故障时,确定包括所述CPU的所述通道模块的故障等级为0;在包括所述CPU的所述通道模块与所有其它所述通道模块通信失败时,确定包括所述CPU的所述通道模块的故障等级为1,以及确定其它相应通道模块的故障等级为1;在包括所述CPU的所述通道模块有故障时,确定包括所述CPU的所述通道模块的故障等级为1。
与现有技术相比,本申请的技术方案具有以下优点:
上述技术方案提供的控制系统,包括多个前级单元,多个前级单元不分工作备用,同时将各自数据发送至后级单元,后级单元,选择故障等级最低的前级单元发送的数据进行处理。由于各个前级单元不分工作备用,全部正常工作,各个前级单元之间不需要相互协调全部向后级单元发送数据,因此,实现方法简单;且不存在前级单元之间切换的过程,因此不存在数据短暂丢失,以及双工作或双备份的情况,进而提高了控制系统的可靠性。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本实施例提供的一种控制系统的结构示意图;
图2为本实施例提供的前级单元为单重化设计的一种控制系统的结构示意图;
图3为本实施例提供的前级单元为多重化设计的一种控制系统的结构示意图;
图4为本实施例提供的以第一通道模块为例确定通道模块的故障等级的方法流程图;
图5为本实施例提供的以第一通道模块为例确定前级单元的故障等级的方法流程图;
图6为本实施例提供的另一种控制系统的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请实施例提供了一种控制系统,请参阅图1,示出了该系统的结构示意图,该系统包括:多个前级单元11和一个后级单元12,其中,
多个所述前级单元11,用于同时将各自数据发送至所述后级单元12,所述数据包含相应的所述前级单元的故障等级。为便于方案描述,我们分别定义各个所述前级单元11为第一前级单元11、第二前级单元11、……,第N前级单元11,第一前级单元11发送的数据包含第一前级单元11的故障等级,第二前级单元11发送的数据包含第二前级单元11的故障等级,……,第N前级单元11发送的数据包含N前级单元11的故障等级。
所述后级单元12,用于选择故障等级最低的所述前级单元发送的数据进行处理。
后级单元12同时接收多个前级单元11的数据,并通过故障等级信息选择性使用。
仅有两个前级单元11的情况。进行初始化:后级单元12选择第一前级单元11发送的数据进行处理;数据选择过程:后级单元12接收到两个前级单元11的数据后,获得每个前级单元11的故障等级。如果两个前级单元11的故障等级相等或第二前级单元11的故障等级大于第一前级单元的故障等级,则保持初始化时的设置;如果第一前级单元11的故障等级大于第二前级单元11的故障等级,则后级单元12选择第二前级单元11的数据进行处理。
超过两个前级单元11的情况。进行初始化:后级单元12选择第一前级单元11发送的数据进行处理;数据选择过程:后级单元12接收到所有前级单元11的数据后,获得每个前级单元11的故障等级。如果存在一个等级最低的前级单元11,且该等级最低的前级单元11不是第一前级单元11,则后继单元12选择该等级最低的前级单元11的数据进行处理;如果存在多个等级最低的前级单元11,且这些等级最低的前级单元11不包括第一前级单元11,则后继单元12选择这些等级最低的前级单元11其中一个的数据进行处理;如果存在一个等级最低的前级单元11,且该等级最低的前级单元11是第一前级单元11,或者,存在多个等级最低的前级单元11,且这些等级最低的前级单元11包括第一前级单元11,则保持初始化时的选择。
本实施例提供的控制系统,包括多个前级单元11和一个后级单元12,即前级单元11采用冗余设计,多个前级单元11不分工作备用,同时将各自数据发送至后级单元11;后级单元11,选择故障等级最低的前级单元11发送的数据进行处理。由于各个前级单元11不分工作备用,全部正常工作,各个前级单元11之间不需要相互协调全部向后级单元12发送数据,因此,实现方法简单;且不存在前级单元之间切换的过程,因此不存在数据短暂丢失,以及双工作或双备份的情况,进而提高了控制系统的可靠性。
本实施例还提供了一种单重化的前级单元,参见图2所示,每个所述前级单元11包括:一个通道模块111,所述通道模块包括一个CPU,以及与所述CPU连接的外围电路,其中,
所述CPU用于将所述通道模块111的故障等级作为所述前级单元11的故障等级,并将包含所述前级单元11的故障等级的数据发送至所述后级单元12。
具体的,所述CPU,用于在所述通道模块111无故障时,确定所述通道模块111的故障等级为0,在所述通道模块111有故障时,确定所述通道模块111的故障等级为1。
当通道模块111包括的CPU和外围电路都正常时,说明通道模块111无故障;当通道模块111包括的CPU存在故障或外围电路存在故障时,都说明通道模块111有故障。
本实施例还提供了一种多重化的前级单元,参见图3所示,每个所述前级单元11包括:多个通道模块111,其中,
每个所述通道模块11包括一个CPU,以及与所述CPU连接的外围电路。为便于方案描述,我们分别定义各个所述通道模块111为第一通道模块111、第二通道模块111、……,第N通道模块111。
每个所述CPU用于将所有所述通道模块111的故障等级相加,得到所述前级单元11的故障等级,并将包含所述前级单元11的故障等级的数据发送至所述后级单元12。
具体的,每个所述CPU,用于在包括所述CPU的所述通道模块111与所有其它所述通道模块111通信正常,且包括所述CPU的所述通道模块111无故障时,确定包括所述CPU的所述通道模块111的故障等级为0;在包括所述CPU的所述通道模块111与所有其它所述通道模块111通信失败时,确定包括所述CPU的所述通道模块111的故障等级为1,以及确定其它相应通道模块111的故障等级为1;在包括所述CPU的所述通道模块111有故障时,确定包括所述CPU的所述通道模块111的故障等级为1。
下面三重化的前级单元为例,来对多重化前级单元11的故障等级的获取过程进行说明:
图4为以第一通道模块为例确定通道模块的故障等级的方法流程图。第一通道模块包括的CPU依据图4示出的方法来确定第一通道模块的故障等级。
步骤S11:判断与第二通道模块和第三通道模块的通信是否正常,若是,则执行步骤S12,若否,则执行步骤S14;
步骤S12:判断第一通道模块是否正常,若是,则执行步骤S13,若否,则执行步骤S14。
步骤S13:确定第一通道模块的故障等级为零;
步骤S14:确定第一通道模块的故障等级为1;
步骤S15:将第一通道模块的故障等级分别发送第二通道模块和第三通道模块。
图5为以第一通道模块为例确定前级单元的故障等级的方法流程图。第一通道模块包括的CPU依据图5示出的方法来确定包含第一通道模块的前级单元的故障等级。
步骤S21:初始化前级单元的故障等级为零;
步骤S22:判断是否接收到第二通道模块的故障等级,若是,则执行步骤S23,若否,则执行步骤S24;
步骤S23:前级单元的故障等级=前级单元的故障等级+第二通道模块的故障等级;
步骤S24:前级单元的故障等级=前级单元的故障等级+1;
步骤S25:判断是否接收到第三通道模块的故障等级,若是,则执行步骤S26,若否,则执行步骤S27;
步骤S26:前级单元的故障等级=前级单元的故障等级+第三通道模块的故障等级;
步骤S27:前级单元的故障等级=前级单元的故障等级+1;
步骤S28:前级单元的故障等级=前级单元的故障等级+第一通道模块的故障等级。
若三个通道模块均无故障,且三个通道模块之间通信正常时,各个通道模块计算前级单元的故障等级如下:
第一通道模块:第一通道模块的故障等级为0,获得的第二通道模块的故障等级为0,获得的第三通道模块的故障等级为0,因此,将三个通道模块的故障等级相加,得到前级单元的故障等级为0。
同理,第二通道模块和第三通道模块得到的前级单元的故障等级也分别为0。
若第一通道模块有故障,第二通道模块和第三通道模块正常,且三个通道模块之间通信正常时,各个通道模块计算前级单元的故障等级如下:
第一通道模块:第一通道模块的故障等级为1,获得的第二通道模块的故障等级为0,获得的第三通道模块的故障等级为0,因此,将三个通道模块的故障等级相加,得到前级单元的故障等级为1。
第二通道模块:获得的第一通道模块的故障等级为1,第二通道模块的故障等级为0,获得的第三通道模块的故障等级为0,因此,将三个通道模块的故障等级相加,得到前级单元的故障等级为1。
同理,第三通道模块得到的前级单元的故障等级也为1。
若第一通道模块正常,第二通道模块和第三通道模块有故障,且三个通道模块之间通信正常时,各个通道模块计算前级单元的故障等级如下:
第一通道模块:第一通道模块的故障等级为0,获得的第二通道模块的故障等级为1,获得的第三通道模块的故障等级为1,因此,将三个通道模块的故障等级相加,得到前级单元的故障等级为2。
第二通道模块:获得的第一通道模块的故障等级为0,第二通道模块的故障等级为1,获得的第三通道模块的故障等级为1,因此,将三个通道模块的故障等级相加,得到前级单元的故障等级为2。
同理,第三通道模块得到的前级单元的故障等级也为2。
若第一通道模块有故障,第二通道模块和第三通道模块正常,且第一通道模块与第二通道模块、第三通道模块均通讯失败,第二通道模块与三个通道模块之间通信正常时,各个通道模块计算前级单元的故障等级如下:
第一通道模块:第一通道模块的故障等级为1;无法获得第二通道模块的故障等级,确定第二通道模块的故障等级为1;无法获得第三通道模块的故障等级,确定第三通道模块的故障等级为1,因此,将三个通道模块的故障等级相加,得到前级单元的故障等级为3。
第二通道模块:无法获得第一通道模块的故障等级,确定第一通道模块的为1;第二通道模块的故障等级为1;无法获得第三通道模块的故障等级,确定第三通道模块的故障等级为1,因此,将三个通道模块的故障等级相加,得到前级单元的故障等级为3。
同理,第三通道模块得到的前级单元的故障等级也为3。
若三个通道模块均无故障,且第一通道模块与第二通道模块、第三通道模块的通讯正常,第二通道模块与三个通道模块之间通信失败时,各个通道模块计算前级单元的故障等级如下:
第一通道模块:第一通道模块的故障等级为0;获得的第二通道模块的故障等级为1;获得的第三通道模块的故障等级为1,因此,将三个通道模块的故障等级相加,得到前级单元的故障等级为2。
第二通道模块:获得的第一通道模块的故障等级为0;第二通道模块的故障等级为1;无法获得第三通道模块的故障等级,确定第三通道模块的故障等级为1,因此,将三个通道模块的故障等级相加,得到前级单元的故障等级为2。
同理,第三通道模块得到的前级单元的故障等级也为2。
多重化系统中,前级单元中的各个通道模块确定的前级单元的故障等级相等,因此可以保障后级单元选择同一前级单元的数据。
本申请实施例还提供了另一种控制系统,请参阅图6,示出了该系统的结构示意图,该系统包括:多个前级单元11和多个后级单元12,其中,
多个所述前级单元11,用于同时将各自数据分别发送至每个所述后级单元,所述数据包含相应的所述前级单元的故障等级;
每个所述后级单元12,用于选择故障等级最低的所述前级单元发送的数据进行处理。
本实施例提供的控制系统,包括多个前级单元11和多个后级单元12,即前级单元11和后继单元12均采用冗余设计,多个前级单元11不分工作备用,同时将各自数据发送至后级单元12,后级单元12,选择故障等级最低的前级单元11发送的数据进行处理。由于各个前级单元11不分工作备用,全部正常工作,各个前级单元11之间不需要相互协调全部向后级单元12发送数据,因此,实现方法简单;且不存在前级单元11之间切换的过程,因此不存在数据短暂丢失,以及双工作或双备份的情况,进而提高了控制系统的可靠性。
需要说明的是,前级单元和后级单元是从数据发送和接收的角度描述的,即一个单元在接收数据时是后级单元,在发送数据时是前级单元,换句话说,一个单元既可以作为前级单元,也可以作为后级单元。
在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。