具体实施方式
以下通过特定的具体实施例来说明本发明所公开的实施方式,本领域技术人员可由本说明书所公开的内容了解本发明的优点与效果。本发明可通过其他不同的具体实施例加以施行或应用,本说明书中的各项细节也可基于不同观点与应用,在不悖离本发明的构思下进行各种修改与变更。另外,本发明的附图仅为简单示意说明,并非依实际尺寸的描绘。以下的实施方式将进一步详细说明本发明的相关技术内容,但所公开的内容并非用以限制本发明的保护范围。
图1是根据本发明实施例的环境与设备监控系统组网的示意图。如图1所示,所述环境与设备监控系统包括监控平台、监控网络、第一端PLC、第二端PLC、多个RIO站以及IO网络。第一端PLC和第二端PLC彼此通过监控网络相连并分别通过监控网络各自采用独立通道与监控平台连接,第一端PLC和第二端PLC分别通过IO网络与多个RIO站的每一个连接。所述环境与设备监控系统还包括IBP盘PLC,该IBP盘PLC接入监控网络和IO网络。
在图1中,第一端PLC和第二端PLC分别经监控网络通过独立冗余通道同监控平台进行通讯,监控平台同第一端PLC和第二端PLC均同时保持数据通讯,能够分别直接获取第一端PLC和第二端PLC数据,并分别直接向第一端PLC和第二端PLC发送控制信息。
如图1所示,第一端与第二端的RIO站经环网或双总线进行组网,第一端PLC和第二端PLC分别同所有RIO站连接,能够分别获取所有RIO站的数据,并分别直接向所有RIO站发送控制指令。该控制指令包括模拟量控制和开关量控制,用来控制RIO站。将所有RIO站从逻辑上划分为两部分,一部分划归第一端PLC,另一部分划归给第二端PLC。
另外,如图1所示,IBP盘PLC的一端接入监控网络,与第一端PLC和第二端PLC进行数据共享,传递IBP盘被激活信号;IBP盘PLC的另一端接入IO网,同所有RIO站连接,能够获取所有RIO数据,并在必要时直接对所有RIO进行控制;另外,IBP盘PLC经此IO网络进行数据共享,传递IBP盘被激活信号。
在本申请中,在IBP盘PLC未被激活的情况下,第一端PLC和第二端PLC的值班状态全站值班状态、本端值班状态和非值班状态。其中,在全站值班状态下,对所有RIO站开放控制权,发送控制指令;在本端值班状态下,仅第一端RIO站开放控制权,发送控制指令,闭锁向第二端RIO站的控制报文下发;在非值班状态下,仅对RIO站进行数据采集,闭锁控制指令下发,确保指令下发源头唯一。在IBP盘PLC被激活的情况下,IBP盘PLC通过IO网络直接对RIO站进行控制,发送控制指令;第一端PLC和第二端PLC经网络共享IBP盘被激活信号判断出IBP盘被激活后,切换至非值班状态。
接下来,根据图2所示的流程,描述在IBP盘PLC未被激活的情况下,第一端PLC和第二端PLC的值班状态的确定过程。在图1所示的实施例中,第一端PLC和第二端PLC是相互对应的两个设备,对于第一端PLC和第二端PLC中的任一者来说,确定自身的值班状态的过程或操作是相同或相应的。从而,只要了解第一端PLC和第二端PLC中的任一者确定自身的值班状态的过程,相应的就能够知道另一者的确定过程。在接下来的过程中,仅从第一端PLC的角度进行描述。因为第一端PLC和第二端PLC确定自身的值班状态的过程或操作是相同或相应的,在明确第一端PLC确定自身值班状态的过程后,就相应地知道第二端PLC确定自身值班状态的过程。
图2是根据本发明实施例的确定环境与设备监控系统中PLC的值班状态的方法的流程图。如图2所示,对于第一端PLC来说,该方法包括如下步骤:
步骤S201,检测与所述第二端PLC之间的所述监控网络和所述IO网络中任一网络的通讯状态。
在确定自身的值班状态之前,第一端PLC和第二端PLC需要获知对方PLC的故障等级,然后综合当前所述第一端PLC故障等级和所述第二端PLC状态进行综合判定,从而决定PLC值班方式。如果希望获取对方PLC的故障等级,首先要确保第一端PLC和第二端PLC之间的网络能够相互传递故障等级等信号,所以,第一端PLC会检测与第二端PLC之间的网络的通讯状态,如图1所示,第一端PLC与第二端PLC之间的网络包括监控网络和IO网络。只要监控网络和IO网络中任一网络的通讯状态正常,第一端PLC和第二端PLC就能获知对方的故障等级。在一个具体的实施例中,第一端PLC检测与第二端PLC之间的监控网络的通讯状态,如果通讯状态正常,则通过监控网络获知第二端PLC的故障等级,其中,检测网络通讯状态的方式有很多,例如,可以通过一端PLC发送心跳报文,另一端PLC接收并检测心跳报文的方式。在另一个具体的实施例中,第一端PLC检测与第二端PLC之间的IO网络的通讯状态,如果通讯状态正常,则通过IO网络获知第二端PLC的故障等级。在实际操作中,第一端PLC可以首先检测与第二端PLC之间的监控网络的通讯状态,如果监控网络通讯状态正常,则通过监控网络获知第二端PLC的故障等级,无需再通过IO网络获知第二端PLC的故障等级;如果监控网络通讯状态故障而IO网络通讯状态正常,则通过IO网络获知第二端PLC的故障等级;而如果监控网络和IO网络的通讯状态均故障,则第一端PLC和第二端PLC无法获知对方的故障等级。
步骤S202,在与所述第二端PLC之间的所述监控网络和所述IO网络中任一网络的通讯状态正常的情况下,获取所述第二端PLC的第二故障等级。
如上所述,第一端PLC与第二端PLC之间的监控网络和IO网络中任一网络的通讯状态正常,第一端PLC与第二端PLC就可以获知对方的故障等级。
根据本发明的一个实施例,在每个PLC中,生成故障等级的因素包括PLC与监控平台的通讯状态、PLC自检状态、IO网络状态、RIO站状态、RIO模块状态中的至少一者。其中,PLC与监控平台的通讯状态包括正常和故障状态;PLC自检状态包括PLC的CPU的自检状态,包括正常和故障状态;IO网络状态包括PLC与IO网络通讯的状态,包括正常和故障状态;RIO站状态是各个RIO站的状态,包括正常和故障状态;一个RIO站包括一个网络适配器和若干个RIO模块,RIO模块指的是各个RIO模块的状态,包括正常和故障状态。
为了便于将第一端PLC和第二端PLC的故障等级进行比较,根据本发明的一个实施例,将确定故障等级的因素进行量化,获得第一端PLC和第二端PLC的故障等级。如表1所示,用比特位对确定故障等级的因素进行量化。在表1中,PLC与监控平台的通讯状态占1位、IO网络状态占1位、PLC自检状态占1位。例如,“1”和“0”分别表示“故障状态”和“正常状态”,也可以用“1”和“0”分别表示“正常状态”和“故障状态”。另外,RIO站状态占4位和RIO模块占6位,分别表示RIO站和RIO模块的故障数目或正常的数量。
表1
根据本发明的一个优选实施例,上述确定故障等级的因素的故障优先级从高到低依次为PLC与监控平台的通讯状态、IO网络状态、PLC自检状态、RIO站状态和RIO模块状态。相应地,如表1所示,从左往右按位填写对应的比特值和位数。
需要注意的是,表1只是用于确定PLC的故障等级的一个具体实施例。确定故障等级的因素可以包括PLC与监控平台的通讯状态、IO网络状态、PLC自检状态、RIO站状态、RIO模块状态中的一个或多个,确定故障等级的因素还可以包括其他未举出的因素。确定故障等级的因素的故障优先级不限于上述的优先级排列方式,本领域技术人员可以根据实际需要确定所要用到的因素的故障优先级排列方式。另外,对于每个因素,进行量化的方式不限于比特位的方式,只要能够对因素进行量化,本领域技术人员可以想到的其他量化方式都属于本申请公开的范围。
第一端PLC和第二端PLC根据上述过程确定各自的故障等级后,将所确定的故障等级通过故障状态字(例如,FaultCode_A、FaultCode_B)进行存储。
在生成第一端PLC的故障等级后,还需获知第二端PLC的故障等级。在一个实施例中,所述获取所述第二端PLC的第二故障等级包括:通过所述监控网络获取所述第二端PLC的第二故障等级;以及/或者通过所述IO网络获取所述第二端PLC的第二故障等级。图3将会对该过程进行详细描述。
图3是根据本发明实施例的PLC值班状态判别流程示意图。在一个具体实施例中,第一端PLC和第二端PLC之间分别经监控网络和/或IO网络相互通过心跳报文交互进行数据共享通讯状态判断,即第一端PLC和第二端PLC之间分别通过心跳报文获取与对方之间的网络的通讯状态。如图3所示,在一个实施例中,第一端PLC和第二端PLC优先从监控网络共享故障等级;若发现监控网络共享通讯中断,则从IO网络共享故障等级。在另一个可选实施例中(未在图中示出),第一端PLC和第二端PLC优先从IO网络共享故障等级;若发现IO网络共享通讯中断,则从监控网络共享故障等级。
步骤S203,在与所述第二端PLC之间的所述监控网络和所述IO网络中任一网络的通讯状态正常的情况下,根据所述环境与设备监控系统的默认值班方式以及所述第一端PLC生成的第一故障等级和所述第二故障等级,确定所述第一端PLC的值班状态。
如图3所示,第一端PLC和第二端PLC之间分别经监控网络和/或IO网络获知对方PLC的故障等级。对于第一端PLC或第二端PLC的值班状态,除了考虑第一端PLC和第二端PLC各自的故障等级,还需要知道环境与设备监控系统的默认值班方式。
将第一端PLC或第二端PLC来说,环境与设备监控系统的默认值班方式包括(1)第一端PLC为全站值班状态以及第二端PLC为非值班状态和(2)第一端PLC以及第二端PLC均为本端值班状态。
在默认值班方式(1)的情况下,步骤S203具体包括:在所述第一故障等级低于所述第二故障等级的情况下,确定所述第一端PLC为全站值班状态;以及在所述第一故障等级高于等于所述第二故障等级的情况下,确定所述第一端PLC为非值班状态。
图4是根据本发明一个实施例的PLC值班状态判定逻辑示意图。在图4中,以故障等级中的比特位“1”和“0”分别表示“故障状态”和“正常状态”为例,来进行说明。如图4所示,在默认值班方式(1)的情况下,当第一端PLC的故障等级高于所述第二端PLC的故障等级时,第二端PLC切换为全站值班状态,第一端PLC切换为非值班态,此后若第一端的故障等级恢复至等于第二端的故障等级,值班状态不再切回,直至出现第二端的故障等级大于第一端的故障等级的情况。
在默认值班方式(2)的情况下,步骤S203具体包括:在所述第一故障等级低于所述第二故障等级的情况下,确定所述第一端PLC为全站值班状态;在所述第一故障等级等于所述第二故障等级的情况下,确定所述第一端PLC的本端值班状态;在所述第一故障等级高于所述第二故障等级的情况下,确定所述第一端PLC为非值班状态。
图5是根据本发明另一个实施例的PLC值班状态判定逻辑示意图。在图5中,以故障等级中的比特位“1”和“0”分别表示“故障状态”和“正常状态”为例,来进行说明。如图5所示,在默认值班方式(2)的情况下,当第一端的故障等级高于第二端的故障等级时,第二端PLC切换至全站值班状态,第一端PLC切换至非值班状态;此后若第一端故障等级恢复至等于第二端的故障等级,值班方式切回默认态;当第一端的故障等级低于第二端的故障等级时,第二端PLC切换至非值班状态,第一端PLC切换至全站值班状态。
监控平台同第一端PLC或第二端PLC建立通讯时采用多通道方式,通道按照数据来源进行划分,例如:通讯的是第一端PLC下第一端所有RIO数据的为通道1,通讯的是第一端PLC下第二端所有RIO数据的为通道2,通讯的是第二端PLC下第一端所有RIO数据的为通道3,通讯的是第二端PLC下第二端所有RIO数据的为通道4,以通道为单位切换激活同值班PLC通讯的有效数据作为画面显示和控制命令下发。针对上述图5所示的值班状态切换方式,默认情况下激活道1和通道4,值班方式切换后,激活通道3和通道4。
在确定所述第一端PLC的值班状态后,该确定环境与设备监控系统中PLC的值班状态的方法还包括:
在所述第一端PLC为全站值班状态的情况下,将所述第一端PLC向所述多个RIO站发送的第一控制指令同步至所述第二端PLC;以及在所述第一端PLC为非值班状态的情况下,接收所述第二端PLC向所述多个RIO站发送的第二控制指令。
根据一个具体实施例,全站值班状态PLC将所有控制指令经网络(例如,监控网络)周期性同步至非值班状态PLC,使两端PLC控制指令一致,作为系统冗余值班切换的必要条件,避免系统值班切换过程产生波动。也就是说,全站值班状态PLC会将自己产生的、向多个RIO发送控制指令发送给至非值班状态PLC,使得至非值班状态PLC获得全站值班状态PLC的控制指令,便于值班切换后,新的值班态PLC根据之前的控制指令决定之后的控制过程。相应地,作为非值班状态PLC,接收值班状态PLC向多个RIO站发送的第二控制指令。其中,遥控指令作为开关量,按照整形数据按位进行存储的方式传递,减少占用带宽,提高传送效率。
以上描述了第一端PLC能够获取第二端PLC的第二故障等级的情况下,确定第一端PLC的值班状态的过程。现在返回至图3,若出现第一端PLC和第二端PLC之间监控网络和IO网络均中断(即出现故障)的情况,第一端PLC和第二端PLC均无法获取对方的故障等级,则各自切换为本端值班状态。相应地,该确定环境与设备监控系统中PLC的值班状态的方法还包括:在与所述第二端PLC之间的所述监控网络和所述IO网络的通讯状态均故障的情况下,确定所述第一端PLC的值班状态为本端值班状态。
上文描述了在IBP盘PLC未被激活的情况下,确定第一端PLC的值班状态的过程。在IBP盘PLC被激活的情况下,IBP盘PLC具有最高优先级,IBP盘PLC通过IO网络直接对RIO站进行控制,发送控制指令;第一端PLC经网络共享IBP盘被激活信号判断出IBP盘激活后,切换至非值班状态。相应地,该确定环境与设备监控系统中PLC的值班状态的方法还包括:响应于所述IBP盘PLC的被激活信号,将所述第一端PLC确定为非值班状态。
IBP盘PLC在激活时,通过网络(例如,监控网络)与第一端PLC和第二端PLC进行数据共享,传递IBP盘被激活信号。第一端PLC和第二端PLC经根据该IBP盘被激活信号判断出IBP盘激活后,切换至非值班状态。
上文从第一端PLC的角度描述了第一段PLC确定自身值班状态的过程。因为第一端PLC和第二端PLC确定自身的值班状态的过程或操作是相同或相应的,在明确第一端PLC确定自身值班状态的过程后,就相应地知道第二端PLC确定自身值班状态的过程,因而不再赘述。
通过本发明的确定环境与设备监控系统中PLC的值班状态的方法,实现了第一端PLC和第二端PLC互为冗余的功能,并且在必要时IBP盘能够直接控制RIO站,避免了传统方案在遇到火灾等突发情况时,因主PLC失效而导致应急模式无法执行的问题。
本发明还提供一种确定环境与设备监控系统中PLC的值班状态的装置。接下来,根据图6所示的装置,描述在IBP盘PLC未被激活的情况下,第一端PLC和第二端PLC的值班状态的确定过程。在图1所示的实施例中,第一端PLC和第二端PLC是相互对应的两个设备,对于第一端PLC和第二端PLC中的任一者来说,确定自身的值班状态的过程或操作是相同或相应的。从而,只要了解第一端PLC和第二端PLC中的任一者确定自身的值班状态的过程,相应的就能够知道另一者的确定过程。在接下来的过程中,仅从第一端PLC的角度进行描述。因为第一端PLC和第二端PLC确定自身的值班状态的过程或操作是相同或相应的,在明确第一端PLC确定自身值班状态的过程后,就相应地知道第二端PLC确定自身值班状态的过程。
图6是根据本发明实施例的确定环境与设备监控系统中PLC的值班状态的装置的示意图。如图6所示,对于第一端PLC来说,该装置包括:
检测单元601,用于检测与所述第二端PLC之间的所述监控网络和所述IO网络中任一网络的通讯状态。
在确定自身的值班状态之前,第一端PLC和第二端PLC需要获知对方PLC的故障等级,然后综合当前所述第一端PLC故障等级和所述第二端PLC状态进行综合判定,从而决定PLC值班方式。如果希望获取对方PLC的故障等级,首先要确保第一端PLC和第二端PLC之间的网络能够相互传递故障等级等信号,所以,第一端PLC会检测与第二端PLC之间的网络的通讯状态,如图1所示,第一端PLC与第二端PLC之间的网络包括监控网络和IO网络。只要监控网络和IO网络中任一网络的通讯状态正常,第一端PLC和第二端PLC就能获知对方的故障等级。在一个具体的实施例中,第一端PLC检测与第二端PLC之间的监控网络的通讯状态,如果通讯状态正常,则通过监控网络获知第二端PLC的故障等级,其中,检测网络通讯状态的方式有很多,例如,可以通过一端PLC发送心跳报文,另一端PLC接收并检测心跳报文的方式。在另一个具体的实施例中,第一端PLC检测与第二端PLC之间的IO网络的通讯状态,如果通讯状态正常,则通过IO网络获知第二端PLC的故障等级。在实际操作中,第一端PLC可以首先检测与第二端PLC之间的监控网络的通讯状态,如果监控网络通讯状态正常,则通过监控网络获知第二端PLC的故障等级,无需再通过IO网络获知第二端PLC的故障等级;如果监控网络通讯状态故障而IO网络通讯状态正常,则通过IO网络获知第二端PLC的故障等级;而如果监控网络和IO网络的通讯状态均故障,则第一端PLC和第二端PLC无法获知对方的故障等级。
获取单元602,用于在与所述第二端PLC之间的所述监控网络和所述IO网络中任一网络的通讯状态正常的情况下,获取所述第二端PLC的第二故障等级。
如上所述,第一端PLC与第二端PLC之间的监控网络和IO网络中任一网络的通讯状态正常,第一端PLC与第二端PLC就可以获知对方的故障等级。
根据本发明的一个实施例,在每个PLC中,生成故障等级的因素包括PLC与监控平台的通讯状态、PLC自检状态、IO网络状态、RIO站状态、RIO模块状态中的至少一者。其中,PLC与监控平台的通讯状态包括正常和故障状态;PLC自检状态包括PLC的CPU的自检状态,包括正常和故障状态;IO网络状态包括PLC与IO网络通讯的状态,包括正常和故障状态;RIO站状态是各个RIO站的状态,包括正常和故障状态;一个RIO站包括一个网络适配器和若干个RIO模块,RIO模块指的是各个RIO模块的状态,包括正常和故障状态。
为了便于将第一端PLC和第二端PLC的故障等级进行比较,根据本发明的一个实施例,将确定故障等级的因素进行量化,获得第一端PLC和第二端PLC的故障等级。如表1所示,用比特位对确定故障等级的因素进行量化。在表1中,PLC与监控平台的通讯状态占1位、IO网络状态占1位、PLC自检状态占1位。例如,“1”和“0”分别表示“故障状态”和“正常状态”,也可以用“1”和“0”分别表示“正常状态”和“故障状态”。另外,RIO站状态占4位和RIO模块占6位,分别表示RIO站和RIO模块的故障数目或正常的数量。
根据本发明的一个优选实施例,上述确定故障等级的因素的故障优先级从高到低依次为PLC与监控平台的通讯状态、IO网络状态、PLC自检状态、RIO站状态和RIO模块状态。相应地,如表1所示,从左往右按位填写对应的比特值和位数。
需要注意的是,表1只是用于确定PLC的故障等级的一个具体实施例。确定故障等级的因素可以包括PLC与监控平台的通讯状态、IO网络状态、PLC自检状态、RIO站状态、RIO模块状态中的一个或多个,确定故障等级的因素还可以包括其他未举出的因素。确定故障等级的因素的故障优先级不限于上述的优先级排列方式,本领域技术人员可以根据实际需要确定所要用到的因素的故障优先级排列方式。另外,对于每个因素,进行量化的方式不限于比特位的方式,只要能够对因素进行量化,本领域技术人员可以想到的其他量化方式都属于本申请公开的范围。
第一端PLC和第二端PLC根据上述过程确定各自的故障等级后,将所确定的故障等级通过故障状态字(例如,FaultCode_A、FaultCode_B)进行存储。
在生成第一端PLC的故障等级后,还需获知第二端PLC的故障等级。在一个实施例中,所述获取单元602包括:第一获取子单元,用于通过所述监控网络获取所述第二端PLC的第二故障等级;以及/或者第二获取子单元,用于通过所述IO网络获取所述第二端PLC的第二故障等级。图3将会对该过程进行详细描述。
图3是根据本发明实施例的PLC值班状态判别流程示意图。在一个具体实施例中,第一端PLC和第二端PLC之间分别经监控网络和/或IO网络相互通过心跳报文交互进行数据共享通讯状态判断,即第一端PLC和第二端PLC之间分别通过心跳报文获取与对方之间的网络的通讯状态。如图3所示,在一个实施例中,第一端PLC和第二端PLC优先从监控网络共享故障等级;若发现监控网络共享通讯中断,则从IO网络共享故障等级。在另一个可选实施例中(未在图中示出),第一端PLC和第二端PLC优先从IO网络共享故障等级;若发现IO网络共享通讯中断,则从监控网络共享故障等级。
第一确定单元603,用于在与所述第二端PLC之间的所述监控网络和所述IO网络中任一网络的通讯状态正常的情况下,根据所述环境与设备监控系统的默认值班方式以及所述第一端PLC生成的第一故障等级和所述第二故障等级,确定所述第一端PLC的值班状态。
如图3所示,第一端PLC和第二端PLC之间分别经监控网络和/或IO网络获知对方PLC的故障等级。对于第一端PLC或第二端PLC的值班状态,除了考虑第一端PLC和第二端PLC各自的故障等级,还需要知道环境与设备监控系统的默认值班方式。
将第一端PLC或第二端PLC来说,环境与设备监控系统的默认值班方式包括(1)第一端PLC为全站值班状态以及第二端PLC为非值班状态和(2)第一端PLC以及第二端PLC均为本端值班状态。
在默认值班方式(1)的情况下,第一确定单元603具体包括:第一确定子单元,用于在所述第一故障等级低于所述第二故障等级的情况下,确定所述第一端PLC为全站值班状态;以及第二确定子单元,用于在所述第一故障等级高于等于所述第二故障等级的情况下,确定所述第一端PLC为非值班状态。
图4是根据本发明一个实施例的PLC值班状态判定逻辑示意图。在图4中,以故障等级中的比特位“1”和“0”分别表示“故障状态”和“正常状态”为例,来进行说明。如图4所示,在默认值班方式(1)的情况下,当第一端PLC的故障等级高于所述第二端PLC的故障等级时,第二端PLC切换为全站值班状态,第一端PLC切换为非值班态,此后若第一端的故障等级恢复至等于第二端的故障等级,值班状态不再切回,直至出现第二端的故障等级大于第一端的故障等级的情况。
在默认值班方式(2)的情况下,第一确定单元603具体包括:第三确定子单元,用于在所述第一故障等级低于所述第二故障等级的情况下,确定所述第一端PLC为全站值班状态;第四确定子单元,用于在所述第一故障等级等于所述第二故障等级的情况下,确定所述第一端PLC的本端值班状态;第五确定子单元,用于在所述第一故障等级高于所述第二故障等级的情况下,确定所述第一端PLC为非值班状态。
图5是根据本发明另一个实施例的PLC值班状态判定逻辑示意图。在图5中,以故障等级中的比特位“1”和“0”分别表示“故障状态”和“正常状态”为例,来进行说明。如图5所示,在默认值班方式(2)的情况下,当第一端的故障等级高于第二端的故障等级时,第二端PLC切换至全站值班状态,第一端PLC切换至非值班状态;此后若第一端故障等级恢复至等于第二端的故障等级,值班方式切回默认态;当第一端的故障等级低于第二端的故障等级时,第二端PLC切换至非值班状态,第一端PLC切换至全站值班状态。
监控平台同第一端PLC或第二端PLC建立通讯时采用多通道方式,通道按照数据来源进行划分,例如:通讯的是第一端PLC下第一端所有RIO数据的为通道1,通讯的是第一端PLC下第二端所有RIO数据的为通道2,通讯的是第二端PLC下第一端所有RIO数据的为通道3,通讯的是第二端PLC下第二端所有RIO数据的为通道4,以通道为单位切换激活同值班PLC通讯的有效数据作为画面显示和控制命令下发。针对上述图5所示的值班状态切换方式,默认情况下激活道1和通道4,值班方式切换后,激活通道3和通道4。
在确定所述第一端PLC的值班状态后,该确定环境与设备监控系统中PLC的值班状态的装置还包括:
发送单元,用于在所述第一端PLC为全站值班状态的情况下,将所述第一端PLC向所述多个RIO站发送的第一控制指令同步至所述第二端PLC;以及接收单元,用于在所述第一端PLC为非值班状态的情况下,接收所述第二端PLC向所述多个RIO站发送的第二控制指令。
根据一个具体实施例,全站值班状态PLC将所有控制指令经网络(例如,监控网络)周期性同步至非值班状态PLC,使两端PLC控制指令一致,作为系统冗余值班切换的必要条件,避免系统值班切换过程产生波动。也就是说,全站值班状态PLC会将自己产生的、向多个RIO发送控制指令发送给至非值班状态PLC,使得至非值班状态PLC获得全站值班状态PLC的控制指令,便于值班切换后,新的值班态PLC根据之前的控制指令决定之后的控制过程。相应地,作为非值班状态PLC,接收值班状态PLC向多个RIO站发送的第二控制指令。其中,遥控指令作为开关量,按照整形数据按位进行存储的方式传递,减少占用带宽,提高传送效率。
以上描述了第一端PLC能够获取第二端PLC的第二故障等级的情况下,确定第一端PLC的值班状态的过程。现在返回至图3,若出现第一端PLC和第二端PLC之间监控网络和IO网络均中断(即出现故障)的情况,第一端PLC和第二端PLC均无法获取对方的故障等级,则各自切换为本端值班状态。相应地,该确定环境与设备监控系统中PLC的值班状态的装置还包括:第二确定单元,用于在与所述第二端PLC之间的所述监控网络和所述IO网络的通讯状态均故障的情况下,确定所述第一端PLC的值班状态为本端值班状态。
上文描述了在IBP盘PLC未被激活的情况下,确定第一端PLC的值班状态的过程。在IBP盘PLC被激活的情况下,IBP盘PLC具有最高优先级,IBP盘PLC通过IO网络直接对RIO站进行控制,发送控制指令;第一端PLC经网络共享IBP盘被激活信号判断出IBP盘激活后,切换至非值班状态。相应地,该确定环境与设备监控系统中PLC的值班状态的装置还包括:第三确定单元,用于响应于所述IBP盘PLC的被激活信号,将所述第一端PLC确定为非值班状态。
IBP盘PLC在激活时,通过网络(例如,监控网络)与第一端PLC和第二端PLC进行数据共享,传递IBP盘被激活信号。第一端PLC和第二端PLC经根据该IBP盘被激活信号判断出IBP盘激活后,切换至非值班状态。
上文从第一端PLC的角度描述了第一段PLC确定自身值班状态的过程。因为第一端PLC和第二端PLC确定自身的值班状态的过程或操作是相同或相应的,在明确第一端PLC确定自身值班状态的过程后,就相应地知道第二端PLC确定自身值班状态的过程,因而不再赘述。
通过本发明的确定环境与设备监控系统中PLC的值班状态的装置,实现了第一端PLC和第二端PLC互为冗余的功能,并且在必要时IBP盘能够直接控制RIO站,避免了传统方案在遇到火灾等突发情况时,因主PLC失效而导致应急模式无法执行的问题。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。