CN116841241A - 工业控制系统、控制方法以及计算机可读存储介质 - Google Patents
工业控制系统、控制方法以及计算机可读存储介质 Download PDFInfo
- Publication number
- CN116841241A CN116841241A CN202311121768.XA CN202311121768A CN116841241A CN 116841241 A CN116841241 A CN 116841241A CN 202311121768 A CN202311121768 A CN 202311121768A CN 116841241 A CN116841241 A CN 116841241A
- Authority
- CN
- China
- Prior art keywords
- controller
- communication bus
- module
- communication
- control system
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 23
- 238000004891 communication Methods 0.000 claims abstract description 251
- 230000004044 response Effects 0.000 claims abstract description 93
- 239000000872 buffer Substances 0.000 claims description 30
- 230000002159 abnormal effect Effects 0.000 claims description 12
- 230000005540 biological transmission Effects 0.000 claims description 8
- 238000004590 computer program Methods 0.000 claims description 4
- 238000011084 recovery Methods 0.000 claims description 4
- 230000003139 buffering effect Effects 0.000 claims description 3
- 238000010586 diagram Methods 0.000 description 6
- 230000006870 function Effects 0.000 description 5
- 230000008569 process Effects 0.000 description 5
- 230000014509 gene expression Effects 0.000 description 4
- 230000005012 migration Effects 0.000 description 4
- 238000013508 migration Methods 0.000 description 4
- 238000013461 design Methods 0.000 description 3
- 238000001514 detection method Methods 0.000 description 3
- 230000005856 abnormality Effects 0.000 description 2
- 230000002547 anomalous effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/04—Programme control other than numerical control, i.e. in sequence controllers or logic controllers
- G05B19/042—Programme control other than numerical control, i.e. in sequence controllers or logic controllers using digital processors
- G05B19/0423—Input/output
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/20—Pc systems
- G05B2219/25—Pc structure of the system
- G05B2219/25257—Microcontroller
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Automation & Control Theory (AREA)
- Hardware Redundancy (AREA)
Abstract
本公开提供了一种工业控制系统、控制方法以及计算机可读存储介质。该工业控制系统包括控制器和多个I/O模块,其中每个I/O模块通过多条通信总线与所述控制器相连,其中所述控制器被配置为:对于所述多个I/O模块中的每个I/O模块,所述控制器周期性地向所述I/O模块发送心跳报文,所述心跳报文包括所述控制器与所述I/O模块进行通信的通信总线的标识符;基于所述I/O模块的响应确定所述通信总线是否负荷过载;以及响应于确定所述通信总线负荷过载,将所述控制器与所述I/O模块之间的通信切换到所述多条通信总线中的另一通信总线。
Description
技术领域
本公开涉及工业控制领域,更具体而言,涉及一种工业控制系统、用于该工业控制系统的控制方法以及计算机可读存储介质。
背景技术
在工业控制系统中,控制器(如PLC(可编程逻辑控制器Programmable LogicController)控制器)需要挂载多个I/O(输入/输出)模块以相应地控制多个工业设备,因此控制器与I/O模块之间的总线通信模式是决定整个工业控制系统的重要性能点。
在设计工业控制系统的总线通信模式时,负载均衡和网络冗余是两个需要重要的需求,然而,在当前的工业控制系统中,对每个需求设计单独的方案,而无法通过单个方案同时实现负载均衡和网络冗余。
发明内容
针对上述问题,本公开提供了一种工业控制系统及其控制方法,其能够通过单个方案同时实现工业控制系统的负载均衡和网络冗余。
在本公开的一方面,提供一种工业控制系统。该工业控制系统包括控制器和多个I/O模块,其中每个I/O模块通过多条通信总线与所述控制器相连,其中所述控制器被配置为:对于所述多个I/O模块中的每个I/O模块,所述控制器周期性地向所述I/O模块发送心跳报文,所述心跳报文包括所述控制器与所述I/O模块进行通信的通信总线的标识符;基于所述I/O模块的响应确定所述通信总线是否负荷过载;以及响应于确定所述通信总线负荷过载,将所述控制器与所述I/O模块之间的通信切换到所述多条通信总线中的另一通信总线。
在一些实施例中,所述控制器被配置为:确定是否接收到响应报文;在确定接收到所述响应报文时,确定所述响应报文与所述心跳报文之间的时间间隔是否大于预定时间阈值;响应于确定所述响应报文与所述心跳报文之间的时间间隔大于所述预定时间阈值,确定所述响应报文与所述心跳报文之间的时间间隔大于所述预定时间阈值的次数;以及响应于所述响应报文与所述心跳报文之间的时间间隔大于所述预定时间阈值的次数大于预定次数,确定所述通信总线负荷过载。
在一些实施例中,所述控制器被配置为:确定是否接收到响应报文;在确定接收到所述响应报文时,确定所述响应报文中是否包含指示所述通信总线异常的信息和/或所述另一通信总线的标识符;以及响应于确定所述响应报文中包含指示所述通信总线异常的信息和/或所述另一通信总线的标识符,确定所述通信总线负荷过载。
在一些实施例中,所述控制器还被配置为:在确定未接收到所述响应报文时,确定所述通信总线负荷过载。
在一些实施例中,所述控制器被配置为:向所述I/O模块发送另一心跳报文,所述另一心跳报文包括所述另一通信总线的标识符;基于所述I/O模块的另一响应确定所述另一通信总线是否检测正常;以及响应于确定所述另一通信总线检测正常,将所述控制器与所述I/O模块之间的通信切换到所述另一通信总线。
在一些实施例中,所述控制器被配置为:确定是否接收到另一响应报文;在确定接收到所述另一响应报文时,确定所述另一响应报文中是否包含所述另一通信总线的标识符;以及响应于确定所述另一响应报文中包含所述另一通信总线的标识符,确定所述另一通信总线检测正常。
在一些实施例中,所述控制器还被配置为:在将所述控制器与所述I/O模块之间的通信切换到所述另一通信总线之后,对所述通信总线进行通道恢复。
在一些实施例中,所述控制器周期性地向所述I/O模块发送心跳报文包括:在确定接收到来自所述I/O模块的业务数据时,确定所述业务数据的接收时刻与下一心跳报文的发送时刻之间的时间差;以及响应于确定所述时间差小于预定时间阈值,跳过下一心跳报文的发送。
在一些实施例中,所述控制器还包括多个缓冲区,用于缓存每个I/O模块在每条通信总线上的有效性标识符。
在一些实施例中,所述控制器还被配置为:确定所述多个缓冲区中指示有效的有效性标识符的数量是否相同;在确定所述多个缓冲区中指示有效的有效性标识符的数量明显不同时,执行通信总线切换以使得各个通信总线负载均衡;以及修改各个缓冲区中与执行了通信总线切换的I/O模块对应的有效性标识符。
在一些实施例中,所述控制器还被配置为:配置每条通信总线以用于基本上相同数量的I/O模块与所述控制器之间的通信。
在一些实施例中,所述多条通信总线包括多条CAN总线、多条BLVDS总线或者多条RS485总线,所述控制器包括可编程逻辑控制器PLC。
在一些实施例中,所述多条通信总线包括2条通信总线。
根据本公开的另一个方面,提供了一种用于工业控制系统的控制方法。所述工业控制系统包括控制器和多个I/O模块,其中每个I/O模块通过多条通信总线与所述控制器相连。所述方法包括:对于所述多个I/O模块中的每个I/O模块,所述控制器周期性地向所述I/O模块发送心跳报文,所述心跳报文包括所述控制器与所述I/O模块进行通信的通信总线的标识符;基于所述I/O模块的响应确定所述通信总线是否负荷过载;以及响应于确定所述通信总线负荷过载,将所述控制器与所述I/O模块之间的通信切换到所述多条通信总线中的另一通信总线。
根据本公开的再一个方面,提供了一种计算机可读存储介质,其上存储有计算机程序代码,所述计算机程序代码在被运行时执行如上所述的方法。
提供本发明内容是为了以简化的形式介绍将在以下具体实施方式中进一步描述的一些概念。本发明内容不旨在标识所要求保护的主题的关键特征或基本特征,也不旨在用于限制所要求保护的主题的范围。
附图说明
通过参考附图阅读下文的详细描述,本公开的上述以及其他目的、结构和特征将更加清楚。在附图中,以示例性而非限制性的方式示出了本公开的若干实施例。为了清楚起见,附图中的各个部分没有按比例绘制。
图1示出了根据本公开一些实施例的工业控制系统的示意图。
图2示出了根据本公开实施例的用于工业控制系统的控制方法的示例性流程图。
图3示出了根据本公开一些实施例的对另一通信总线进行检测的过程的示意性流程图。
图4示出了根据本公开实施例的缓冲区的示意图。
具体实施方式
下面将参照附图更详细地描述本公开的实施例。虽然附图中显示了本公开的某些实施例,然而应当理解的是,本公开可以通过各种形式来实现,而且不应该被解释为限于这里阐述的实施例,相反提供这些实施例是为了更加透彻和完整地理解本公开。应当理解的是,本公开的附图及实施例仅用于示例性作用,并非用于限制本公开的保护范围。在一些或所有情形中可以明显的是,可以不采用以下所述具体设计细节而实施以下所述的任何实施例。在其他一些情形中,以框图形式示出广泛已知的结构和装置以使得容易描述一个或多个实施例。
在本公开的实施例的描述中,表述“包括”及其类似用语应当理解为开放性包含,即“包括但不限于”。表述“基于”应当理解为“至少部分地基于”。表述“一个实施例”或“该实施例”应当理解为“至少一个实施例”。表述“第一”、“第二”等等可以指代不同的或相同的对象。下文还可能包括其他明确的和隐含的定义。
负载均衡在不同的领域有不同的概念,其基本概念是将任务通过某种策略分配到多个实体上去,实现负载在不同实体间的平衡,以避免某个或某些实体的负载过重。在传统的工业控制系统中,控制器与I/O模块间的负载均衡机制是通过检测自身的负载信息,进行逻辑判断和负载抉择。例如,PLC控制器检测自身的负载信息,根据其本地负载信息列表来判断当前使用的通信总线是否是最重过载的总线。其中,PLC控制器中的本地负载信息列表是基于PLC控制器自身的负载信息和其他I/O模块所通告的负载信息维持的。PLC控制器判断当前网络是最重过载总线时,PLC控制器利用自身的负载均衡策略,向目标模块发送负载迁移请求。I/O模块接收该负载迁移请求并执行迁移响应,在确定许可迁移时,I/O模块将自身的负载迁移至目标总线上。
在这种负载均衡方案中,由于PLC控制器需要维护大量自身和其他I/O模块的负载信息,导致其内部业务压力较大,控制逻辑执行性能损耗较大,并且网络负载均衡只能由PLC控制器发起,并且由I/O模块执行切换,方式单一。此外,当网络负载过大,而切换流程还未执行完毕时,可能导致总线上一定时间内的数据丢失。
冗余在通信工程中是指出于系统安全和可靠性等方面的考虑,人为地对一些关键部件或功能进行重复的配置。当系统发生故障时,比如某一设备发生损坏,冗余配置的部件可以作为备援,及时介入并承担故障部件的工作,由此减少系统的故障时间。在传统的工业控制系统中,PLC控制器采用双CAN(控制器局域网,Controller Area Network)总线的冗余配置,在响应超时时,重启CAN总线控制器重新发送,如果重新发送仍不成功以致发送超时,则切换至另一总线以重新发送;如果另一总线不可用则两个总线均停用。
在这种冗余配置方案中,CAN控制器重启会耗时,启动后再尝试重新发送可能造成部分数据丢失,并且CAN总线两端的设备大部分以主从响应为主,通常由控制器进行控制,切换方式单一。
针对上述问题,本公开提出了一种通过在控制器和I/O模块之间增设消息交互来同时实现工业控制网络的负载均衡和网络冗余的方案。
图1示出了根据本公开一些实施例的工业控制系统100的示意图。如图1中所示,工业控制系统100可以包括一个控制器110和多个I/O模块120(例如图1中示出了I/O模块120-1、I/O模块120-2、I/O模块120-3……I/O模块120-n)。其中,控制器110可以通过多条通信总线(或称为多个通信通道)分别与每个I/O模块120相连。这里,每条通信总线可以实现为一条CAN总线、一条BLVDS(Bus Low Voltage Differential Signal,总线型低压差分信号)总线或者一条RS485总线。此外,控制器110可以实现为可编程逻辑控制器(PLC)。在图1中所示的示例中示出了两条通信总线,即第一通信总线132和第二通信总线134,用于实现下文所述的负载均衡和网络冗余功能,但是本领域技术人员可以理解,本公开并不局限于此,在本公开的教导下,工业控制系统100可以包含更多数量的通信总线。
此外,在工业控制系统100中,每个I/O模块120可以进一步与一个或多个工业设备(图中未示出)相连以对相连接的工业设备进行控制。
对于图1所示的工业控制系统,可以配置以使得每条通信总线用于基本上相同数量的I/O模块120与控制器110之间的通信。例如,可以按照通信总线的数量将多个I/O模块120等分为多个组,并且每个组的I/O模块120通过特定于该组的一条通信总线与控制器110进行通信。例如,在如图1所示的包含两条通信总线132和134的情况下,可以配置编号为奇数的I/O模块120(如I/O模块120-1、I/O模块120-3……)通过第一通信总线132与控制器110通信,编号为偶数的I/O模块120(如I/O模块120-2……)通过第二通信总线134与控制器110通信,或者反之。在工业控制系统100包含三条通信总线的情况下(图中未示出),可以按照I/O模块120的编号依次使得相应的I/O模块120通过第一通信总线、第二通信总线、第三通信总线与控制器110通信。以此类推。
通过这种方式,在控制器110与每个I/O模块120通过多条通信总线相连的情况下,可以配置每条通信总线用于基本上相同数量的I/O模块120与控制器110之间的通信,从而使得通信总线的使用尽可能均匀,以实现整个通信网络的负载均衡。该配置可以在系统初始化时执行,也可以由控制器110动态执行,如下所述。
此外,为了满足通信性能的要求,控制器110在向每个I/O模块120发送数据时,需要在该数据中携带关于所使用的通信信道的标识符。例如,如图1中所示,假设I/O模块120-1被配置为通过第一通信总线132与控制器110进行通信,则控制器110可以在向I/O模块120-1发送数据时,在相应的数据报文中添加第一通信总线132的标识符。相应地,每个I/O模块120可以通过对接收到的数据报文进行过滤以确保仅接收其中包含与其对应的通信总线的标识符的数据报文。例如,如图1中所示,I/O模块120-1仅接收标识符指示第一通信总线132的数据报文,丢弃来自其他标识符的通信总线的数据报文不作处理。可选地或者进一步地,例如在广播的情况下,控制器110还可以在向I/O模块120-1发送数据时,在相应的数据报文中添加I/O模块120-1的地址信息。相应地,每个I/O模块120可以通过对接收到的数据报文进行过滤以确保仅接收其中包含其地址信息的数据报文。
通过上述配置,理论上每条通信总线用于相同数量的I/O模块120与控制器110之间的通信,从而实现了负载均衡。然而,在实际情况下,I/O模块120的类型不同,其与控制器110交互的信息量不同,或者由于特定应用场景的需求,这种静态配置可能会造成实际上的负载不均衡。
针对上述问题,本公开进一步提供了一种控制方法,其利用心跳报文检测当前通信总线的状态并且在确定当前通信总线的状态异常时将通信迁移至另一通信总线,从而实现动态负载均衡和网络冗余。
图2示出了根据本公开实施例的用于工业控制系统100的控制方法200的示例性流程图。控制方法200可以在控制器110和任一I/O模块120之间执行,并且假设每条通信总线用于基本上相同数量的I/O模块120的通信。在图2中,以I/O模块120-1为例并且假设在正常状态下控制器110和I/O模块120-1通过第一通信总线132进行通信。
如图2中所示,在方框210,控制器110周期性地向I/O模块120-1发送心跳报文。心跳信号,如PLC心跳信号,是控制器向外部发送的一种定期报文信号,用于表明控制器处于正常工作状态。心跳信号没有发出通常表明控制器可能处于故障状态或受到外界干扰无法正常工作。
在本文所述的方案中,控制器110发送的心跳报文还包括控制器110与I/O模块120-1进行通信的通信总线的标识符。例如,在控制器110与I/O模块120-1之间通过第一通信总线132进行通信的情况下,控制器110向I/O模块120-1发送的心跳报文的有效数据段还包括第一通信总线132的标识符。
在一些实施例中,如果控制器110,例如在两次心跳报文的发送时刻之间,接收到来自I/O模块120-1的业务数据,则可以确定该业务数据的接收时刻与下一心跳报文的发送时刻之间的时间差,并且在该时间差小于预定时间阈值(例如心跳报文的发送周期的1/2)时,跳过下一心跳报文的发送。在这种情况下,控制器110可以根据是否从I/O模块120-1接收到业务数据来判断当前通信总线状态正常,从而可以略过某些心跳报文的发送。
在方框220,I/O模块120-1接收该心跳报文,并且根据该心跳报文中指示的通信总线的标识符对第一通信总线132进行检测。
在一些情况下,I/O模块120-1检测到第一通信总线132正常,则其可以向控制器110发送响应报文以指示第一通信总线132正常。例如,其可以在响应报文中包含第一通信总线132的标识符。
在另一些情况下,I/O模块120-1检测到第一通信总线132异常。由于每个I/O模块120与控制器110之间都通过多条通信总线相连,因此除了第一通信总线132之外的其他通信总线可以作为I/O模块120-1和控制器110之间的网络冗余。在这种情况下,取决于响应报文的有效数据段的设计,响应报文可以包含指示第一通信总线132异常的信息和/或多条通信总线中的另一通信总线的标识符,从而控制器110可以基于响应报文的不同执行不同的操作。例如,在如图1所示的两条通信总线的情况下,假设I/O模块120-1检测到第一通信总线132异常,其可以在响应报文中包含第二通信总线134的标识符以向控制器110指示第一通信总线132异常。
在方框230,I/O模块120-1可以向控制器110返回上述响应报文。在一些情况下,I/O模块120-1可能不向控制器110返回任何响应。例如,如果由于第一通信总线132负荷过载而使得I/O模块120-1没有接收到心跳报文,则I/O模块120-1不能向控制器110返回任何响应。
在方框240,控制器110可以基于I/O模块120-1的响应确定该第一通信总线132是否负荷过载。
在一些实施方式中,控制器110可以确定是否接收到响应报文,并且在确定接收到响应报文时,确定该响应报文与该心跳报文之间的时间间隔是否大于预定时间阈值。如果控制器110确定接收到的响应报文与发出心跳报文之间的时间间隔大于预定时间阈值,则可以确定第一通信总线132负荷过载。在一些实施例中,为了避免由于仅一次超时就进行切换所带来的系统不稳定,可以设置预定次数,以仅在响应报文与心跳报文之间的时间间隔大于该预定时间阈值的次数大于该预定次数时,才确定第一通信总线132负荷过载。具体地,如果控制器110确定接收到的响应报文与发出心跳报文之间的时间间隔大于预定时间阈值,可以进一步确定响应报文与心跳报文之间的时间间隔大于该预定时间阈值的次数,并且在该次数大于该预定次数时,确定第一通信总线132负荷过载。
这里,预定时间阈值可以由控制器110基于心跳周期和/或控制器110与I/O模块120-1之间的正常往复时长而预先确定。在这种实施方式中,虽然控制器110接收到了来自I/O模块120-1的响应报文,但是该响应报文的接收时间明显大于正常状态,因此可以判断控制器110和I/O模块120-1之间网络负荷过大以至于出现了通信延迟。预定次数也可以根据系统需求进行设置,例如可以设置为1-3次。
在另一些实施例中,控制器110在确定接收到响应报文时,可以确定该响应报文中包含的标识符是第一通信总线132的标识符还是另一通信总线(如第二通信总线134)的标识符。如果控制器110确定响应报文中包含的标识符是另一通信总线的标识符,则可以确定第一通信总线132负荷过载。如前所述,在方框220,I/O模块120-1可以在检测到第一通信总线132异常时,在响应报文中包含指示第一通信总线132异常的信息和/或另一通信总线的标识符。在这种情况下,控制器110可以根据响应报文中的信息确定第一通信总线132负荷过载。
在另一些实施例中,控制器110可能没有从I/O模块120-1接收到响应报文,例如在上述预定时间阈值内没有接收到响应报文,则控制器110也可以确定第一通信总线132负荷过载。
继续图2,如果在方框240,控制器110确定第一通信总线132负荷过载,则在方框250,控制器110可以将控制器110与I/O模块120-1之间的通信切换到第一通信总线132之外的另一通信总线。例如,在如图1所示的第一通信总线132和第二通信总线134的情况下,控制器110可以切换到第二通信总线134。
在一些实施例中,在方框250,控制器110可以先对另一通信总线进行检测来确定是否可以切换到该另一通信总线。图3示出了根据本公开一些实施例的对另一通信总线进行检测的过程(方框250)的示意性流程图。
如图3中所示,在方框251,控制器110可以通过另一通信总线(例如第二通信总线134)向I/O模块120-1发送另一心跳报文。该心跳报文包括该另一通信总线(例如第二通信总线134)的标识符。在一些实施例中,在方框251之前,控制器110还可以对另一通信总线(例如第二通信总线134)执行物理层检测(如CAN链路检测)并且在物理层检测正常时才发送另一心跳报文。
与图2中所示的方框220和230类似,在方框252和253,I/O模块120-1可以检测该另一心跳报文所指示的另一通信总线(如第二通信总线134)是否正常并且向控制器110发送另一响应报文(或者在另一通信总线异常的情况下可能不发送响应报文)。
此外,在方框252中,如果I/O模块120-1确定另一通信总线异常,还可以发出异常报警以通知用户进行通道恢复。例如,I/O模块120-1可以通过信号灯或者提示音来通知用户该I/O模块120-1的两条通信总线都处于异常状态,从而用户可以采取相应的重启或其他恢复操作。
在方框254,控制器110可以基于I/O模块120-1的另一响应确定该另一通信总线是否检测正常。
具体地,控制器110可以确定是否接收到另一响应报文,并且在确定接收到另一响应报文时,确定该另一响应报文中是否包含另一通信总线的标识符。如果确定该另一响应报文中包含该另一通信总线的标识符,则控制器110可以确定该另一通信总线检测正常。
如果确定另一通信总线检测正常,则在方框255,控制器110将其与I/O模块120-1之间的通信切换到该另一通信总线(如第二通信总线134)。
此外,虽然图2中未示出,但是在控制器110将其与I/O模块120-1的通信切换到另一通信总线之后,还可以对前一通信总线(如第一通信总线132)进行通道恢复,例如重启第一通信总线132。通过这种方式,负荷过载的通信总线可以被重置以再次作为新的通信总线的备份,有助于提高下一次切换的效率,并且有些故障可能会由于该重启操作而被自恢复。
通过上述方式,在控制器110能够自动检测其与I/O模块120的当前通信总线是否负荷过载,并且在负荷过载的情况下自动切换到另一通信总线以实现网络冗余。
此外,在控制器110与I/O模块120之间的多条通信总线都正常的情况下,还可以通过上述方式实现多条通信总线之间的负载均衡。
具体地,在一些实施例中,还可以在控制器110中缓存每个I/O模块120在每条通信总线上的有效性标识符。
如图1中所示,在控制器110中可以设置多个缓冲区112,用于缓存每个I/O模块120在每条通信总线上的有效性标识符。例如,每个缓冲区112可以对应于一条通信总线,每个缓冲区的一个比特用于指示一个I/O模块120在该通信总线上是否有效。
图4示出了根据本公开实施例的缓冲区112的示意图。例如,假设缓冲区112-1对应于第一通信总线132,其每个比特用于指示每个I/O模块120(I/O模块120-1、I/O模块120-2、I/O模块120-3……I/O模块120-n)在第一通信总线132上是否有效,缓冲区112-2对应于第二通信总线134,其每个比特用于指示每个I/O模块120(I/O模块120-1、I/O模块120-2、I/O模块120-3……I/O模块120-n)在第二通信总线134上是否有效。图4示意性地使用比特1指示有效,比特0指示无效。
这里,缓冲区112中的有效性标识符可以由控制器110通过多种方式来设置。
在一些实施方式中,在控制器110通过一条通信总线从一个I/O模块120接收到数据(如业务数据或响应报文)时,其将对应的通信总线的有效性标识符设置为有效,并且将其他通信总线的有效性标识符设置为无效。例如,假设控制器110通过第一通信总线132从I/O模块120-1接收到数据,则其可以将对应于第一通信总线132的缓冲区112-1中与I/O模块120-1对应的比特设置为1并且将对应于另一通信总线(即第二通信总线134)的缓冲区112-2中与I/O模块120-1对应的比特设置为0。出于降低网络负荷的考虑,I/O模块120不会通过多条通信总线都向控制器110发送数据,因此可以采用这种设置方式。
在另一些实施例中,可以在如图2所示的控制方法200的执行过程中对缓冲区112进行设置。例如,在方框240中确定当前通信总线负荷过载时,可以将过载的通信总线的有效性标识符设置为无效,并且将另一通信总线的有效性标识符设置为有效。例如,假设控制器110在方框240确定其与I/O模块120-1当前用于通信的第一通信总线132负荷过载,则其可以将对应于第一通信总线132的缓冲区112-1中与I/O模块120-1对应的比特设置为0并且将对应于另一通信总线(即第二通信总线134)的缓冲区112-2中与I/O模块120-1对应的比特设置为1。
在控制器110中缓存有每个I/O模块120在每条通信总线上的有效性标识符的情况下,还可以通过不同方式选择控制器110和I/O模块120之间的通信总线以实现各个通信总线的负载均衡。
在一些实施例中,控制器110可以基于缓冲区112中的有效性标识符的数量确定是否需要进行动态负载均衡。具体地,在均衡情况下,各个缓冲区112中指示有效的有效性标识符的数量基本上相同,因此如果控制器110确定各个缓冲区112中指示有效的有效性标识符的数量明显不同,控制器110可以主动进行通信总线的切换以使得各个通信总线负载均衡。在对通信总线进行切换之后,控制器110可以修改各个缓冲区112中与执行了切换的I/O模块120对应的有效性标识符以使得各个缓冲区112中指示有效的有效性标识符的数量基本上相同。例如,如图4中所示,在控制器110确定对应于第一通信总线132的缓冲区112-1的指示有效的有效性标识符(如比特为1)明显多于指示无效的有效性标识符(如比特为0)时,其可以对于其中的部分I/O模块120发起切换过程,将通信总线从第一通信总线132切换至第二通信总线134。
在另一些实施例中,例如在上述方框220中,I/O模块120在检测到当前通信总线异常时,其通过在响应报文中包含另一通信总线的标识符来向控制器110指示切换至另一通信总线。在这种情况下,由I/O模块120主动选择要使用的通信总线,而由控制器110被动监测该变更并将该变更缓存至缓冲区112中。例如,假设在上述方框220中,I/O模块120-1检测到当前的第一通信总线132异常,并且在针对控制器110的心跳报文的响应报文中包含了第二通信总线134的标识符,则控制器110在接收到该响应报文时,可以根据该响应报文将用于第二通信总线134的缓冲区112-2中对应于I/O模块120-1的有效性标识符设置为有效(例如设置为1),并且将用于第一通信总线132的缓冲区112-1中对应于I/O模块120-1的有效性标识符设置为无效(例如设置为0)。
利用本公开的上述方案,能够在实现控制网络负荷均衡的同时,实现控制网络的冗余功能。此外,在一些实施例中,在通信正常情况下,此网络负荷均衡方法更加自动化,无需考虑模块因素、现场因素和人为因素等,也无需维护控制器和I/O模块的负载信息,内部逻辑实现更加简捷高效。在针对网络冗余部分的方案中,执行通信总线主动切换的角色更加多样,从而使得能够及时响应异常情况来进行切换,效率更高,稳定性更强。
本公开可以实现为方法、装置、系统和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于执行本公开的各个方面的计算机可读程序指令。
在一个或多个示例性设计中,可以用硬件、软件、固件或它们的任意组合来实现本公开所述的功能。例如,如果用软件来实现,则可以将所述功能作为一个或多个指令或代码存储在计算机可读介质上,或者作为计算机可读介质上的一个或多个指令或代码来传输。
此外,本公开提供了各种示例实施例,如所描述的以及如附图所示。然而,本公开不限于本文所描述和说明的实施例,而是可以延伸到其他实施例,如本领域技术人员已经知道或将会知道的。说明书中对“一个实施例”、“该实施例”、“这些实施例”或“一些实施例”的引用意指所描述的特定特征、结构或特性被包括在至少一个实施例中,并且这些短语在说明书中各个地方的出现不必全部指代相同的实施例。
最后,虽然已经以专用于结构特征和/或方法动作的语言描述了各个实施例,但是应当理解,在所附表示中限定的主题不一定限于所描述的具体特征或动作。相反,具体特征和动作被公开作为实现所要求保护的主题的示例形式。
Claims (15)
1.一种工业控制系统,包括:
控制器和多个I/O模块,其中每个I/O模块通过多条通信总线与所述控制器相连,其中所述控制器被配置为:
对于所述多个I/O模块中的每个I/O模块,所述控制器周期性地向所述I/O模块发送心跳报文,所述心跳报文包括所述控制器与所述I/O模块进行通信的通信总线的标识符;
基于所述I/O模块的响应确定所述通信总线是否负荷过载;以及
响应于确定所述通信总线负荷过载,将所述控制器与所述I/O模块之间的通信切换到所述多条通信总线中的另一通信总线。
2.根据权利要求1所述的工业控制系统,其中所述控制器被配置为:
确定是否接收到响应报文;
在确定接收到所述响应报文时,确定所述响应报文与所述心跳报文之间的时间间隔是否大于预定时间阈值;
响应于确定所述响应报文与所述心跳报文之间的时间间隔大于所述预定时间阈值,确定所述响应报文与所述心跳报文之间的时间间隔大于所述预定时间阈值的次数;以及
响应于所述响应报文与所述心跳报文之间的时间间隔大于所述预定时间阈值的次数大于预定次数,确定所述通信总线负荷过载。
3.根据权利要求1所述的工业控制系统,其中所述控制器被配置为:
确定是否接收到响应报文;
在确定接收到所述响应报文时,确定所述响应报文中是否包含指示所述通信总线异常的信息和/或所述另一通信总线的标识符;以及
响应于确定所述响应报文中包含指示所述通信总线异常的信息和/或所述另一通信总线的标识符,确定所述通信总线负荷过载。
4.根据权利要求2或3所述的工业控制系统,其中所述控制器还被配置为:
在确定未接收到所述响应报文时,确定所述通信总线负荷过载。
5.根据权利要求1所述的工业控制系统,其中所述控制器被配置为:
向所述I/O模块发送另一心跳报文,所述另一心跳报文包括所述另一通信总线的标识符;
基于所述I/O模块的另一响应确定所述另一通信总线是否检测正常;以及
响应于确定所述另一通信总线检测正常,将所述控制器与所述I/O模块之间的通信切换到所述另一通信总线。
6.根据权利要求5所述的工业控制系统,其中所述控制器被配置为:
确定是否接收到另一响应报文;
在确定接收到所述另一响应报文时,确定所述另一响应报文中是否包含所述另一通信总线的标识符;以及
响应于确定所述另一响应报文中包含所述另一通信总线的标识符,确定所述另一通信总线检测正常。
7.根据权利要求1所述的工业控制系统,所述控制器还被配置为:
在将所述控制器与所述I/O模块之间的通信切换到所述另一通信总线之后,对所述通信总线进行通道恢复。
8. 根据权利要求1所述的工业控制系统,其中所述控制器周期性地向所述I/O模块发送心跳报文包括:
在接收到来自所述I/O模块的业务数据时,确定所述业务数据的接收时刻与下一心跳报文的发送时刻之间的时间差;以及
响应于确定所述时间差小于预定时间阈值,跳过下一心跳报文的发送。
9.根据权利要求1所述的工业控制系统,所述控制器还包括多个缓冲区,用于缓存每个I/O模块在每条通信总线上的有效性标识符。
10.根据权利要求9所述的工业控制系统,其中所述控制器还被配置为:
确定所述多个缓冲区中指示有效的有效性标识符的数量是否相同;
在确定所述多个缓冲区中指示有效的有效性标识符的数量明显不同时,执行通信总线切换以使得各个通信总线负载均衡;以及
修改各个缓冲区中与执行了通信总线切换的I/O模块对应的有效性标识符。
11.根据权利要求1所述的工业控制系统,所述控制器还被配置为:
配置每条通信总线以用于基本上相同数量的I/O模块与所述控制器之间的通信。
12.根据权利要求1所述的工业控制系统,其中所述多条通信总线包括多条CAN总线、多条BLVDS总线或者多条RS485总线,所述控制器包括可编程逻辑控制器PLC。
13.根据权利要求12所述的工业控制系统,其中所述多条通信总线包括2条通信总线。
14.一种用于工业控制系统的控制方法,其中所述工业控制系统包括控制器和多个I/O模块,其中每个I/O模块通过多条通信总线与所述控制器相连,所述方法包括:
对于所述多个I/O模块中的每个I/O模块,所述控制器周期性地向所述I/O模块发送心跳报文,所述心跳报文包括所述控制器与所述I/O模块进行通信的通信总线的标识符;
基于所述I/O模块的响应确定所述通信总线是否负荷过载;以及
响应于确定所述通信总线负荷过载,将所述控制器与所述I/O模块之间的通信切换到所述多条通信总线中的另一通信总线。
15.一种计算机可读存储介质,其上存储有计算机程序代码,所述计算机程序代码在被运行时执行如权利要求14所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311121768.XA CN116841241A (zh) | 2023-09-01 | 2023-09-01 | 工业控制系统、控制方法以及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311121768.XA CN116841241A (zh) | 2023-09-01 | 2023-09-01 | 工业控制系统、控制方法以及计算机可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116841241A true CN116841241A (zh) | 2023-10-03 |
Family
ID=88160289
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311121768.XA Pending CN116841241A (zh) | 2023-09-01 | 2023-09-01 | 工业控制系统、控制方法以及计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116841241A (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110161538A1 (en) * | 2009-12-31 | 2011-06-30 | Schneider Electric USA, Inc. | Method and System for Implementing Redundant Network Interface Modules in a Distributed I/O System |
CN102611598A (zh) * | 2012-01-31 | 2012-07-25 | 长沙中联消防机械有限公司 | 控制器局域网络总线冗余系统及冗余切换的方法和装置 |
CN103941633A (zh) * | 2014-04-29 | 2014-07-23 | 北京依雷特科技有限公司 | 可编程控制器冗余控制方法和系统 |
CN110119111A (zh) * | 2019-02-26 | 2019-08-13 | 北京龙鼎源科技股份有限公司 | 通信方法及装置、存储介质、电子装置 |
CN114594672A (zh) * | 2022-03-07 | 2022-06-07 | 珠海格力电器股份有限公司 | 控制系统及其控制方法、计算机可读存储介质 |
CN115776687A (zh) * | 2022-11-22 | 2023-03-10 | 成都交大光芒科技股份有限公司 | 电力远动终端总线通信负载均衡算法、设备及存储介质 |
-
2023
- 2023-09-01 CN CN202311121768.XA patent/CN116841241A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110161538A1 (en) * | 2009-12-31 | 2011-06-30 | Schneider Electric USA, Inc. | Method and System for Implementing Redundant Network Interface Modules in a Distributed I/O System |
CN102611598A (zh) * | 2012-01-31 | 2012-07-25 | 长沙中联消防机械有限公司 | 控制器局域网络总线冗余系统及冗余切换的方法和装置 |
CN103941633A (zh) * | 2014-04-29 | 2014-07-23 | 北京依雷特科技有限公司 | 可编程控制器冗余控制方法和系统 |
CN110119111A (zh) * | 2019-02-26 | 2019-08-13 | 北京龙鼎源科技股份有限公司 | 通信方法及装置、存储介质、电子装置 |
CN114594672A (zh) * | 2022-03-07 | 2022-06-07 | 珠海格力电器股份有限公司 | 控制系统及其控制方法、计算机可读存储介质 |
CN115776687A (zh) * | 2022-11-22 | 2023-03-10 | 成都交大光芒科技股份有限公司 | 电力远动终端总线通信负载均衡算法、设备及存储介质 |
Non-Patent Citations (1)
Title |
---|
苏虎平;沈三民;刘文怡;叶勇;: "基于冗余CAN总线的实时通信系统设计", 自动化与仪表, no. 01 * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1997034B (zh) | 一种对链路聚合组进行保护的方法和系统 | |
EP2224341B1 (en) | Node system, server switching method, server device, and data transfer method | |
CN103019889A (zh) | 分布式文件系统及其故障处理方法 | |
CN102916825A (zh) | 一种双机热备系统的管理设备、管理方法及双机热备系统 | |
CN103001799A (zh) | 基于链状网络的冗余实现方法及节点 | |
CN103678031A (zh) | 二乘二取二冗余系统及方法 | |
CN104468217A (zh) | 一种1394网络管理者故障下的网络重建方法 | |
JPH0951332A (ja) | 通信網自動回復システム | |
CN113254205A (zh) | 负载均衡系统、方法、装置、电子设备及存储介质 | |
CN105790902B (zh) | 冗余网卡切换的实现方法和系统 | |
US10205630B2 (en) | Fault tolerance method for distributed stream processing system | |
CN102571311B (zh) | 主备切换的通讯系统和通讯方法 | |
CN102487332B (zh) | 故障处理方法、装置和系统 | |
CN116841241A (zh) | 工业控制系统、控制方法以及计算机可读存储介质 | |
CN102271049B (zh) | 通信设备状态设置方法、装置和系统 | |
JPH06348527A (ja) | 多重要素処理システム | |
CN107977289B (zh) | 一种热备份计算机中多模冗余总线容错架构及其控制方法 | |
JP3910967B2 (ja) | 2重化システム及び多重化制御方法 | |
CN105718325B (zh) | 基于虚拟机集群的回滚方法及系统和服务器 | |
JPH08185330A (ja) | 冗長コンピュータシステム切り替え方法 | |
CN113794595A (zh) | 一种基于工业互联网的IoT设备高可用方法 | |
CN103716186A (zh) | 具有网络故障容错能力的人工话务系统及其方法 | |
CN111698136A (zh) | 一种高可靠plc的数据传输方法及数据传输系统 | |
CN214959613U (zh) | 一种负载均衡设备 | |
CN113194425B (zh) | LoRa通信方法、系统和计算机可读存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |