CN108804109B - 基于多路功能等价模块冗余仲裁的工业部署和控制方法 - Google Patents
基于多路功能等价模块冗余仲裁的工业部署和控制方法 Download PDFInfo
- Publication number
- CN108804109B CN108804109B CN201810582570.4A CN201810582570A CN108804109B CN 108804109 B CN108804109 B CN 108804109B CN 201810582570 A CN201810582570 A CN 201810582570A CN 108804109 B CN108804109 B CN 108804109B
- Authority
- CN
- China
- Prior art keywords
- modules
- runtime
- module
- logic configuration
- submodule
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/61—Installation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/48—Indexing scheme relating to G06F9/48
- G06F2209/481—Exception handling
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Hardware Redundancy (AREA)
Abstract
本公开涉及一种基于多路功能等价模块冗余仲裁的工业部署和控制方法,应用于安全部署的上位机和下位机中;在上位机中部署逻辑组态模块管理器和多个逻辑组态模块;在下位机中部署运行时模块管理器和多个运行时模块;在运行时模块管理器中部署仲裁子模块;逻辑组态模块管理器被配置为管理和控制多个逻辑组态模块;运行时模块管理器被配置为管理和控制多个运行时模块;仲裁子模块被配置为对多个运行时模块的输出结果进行冗余仲裁,得到仲裁结果。本公开中上位机和下位机通过采用相互独立生成逻辑程序、相互独立执行任务、同步运行周期、模块仲裁冗余结果的控制方式,有效地防止系统级失效,提高了系统安全等级,节省了经济成本。
Description
技术领域
本公开涉及工业自动化控制领域,尤其涉及一种基于多路功能等价模块冗余仲裁的工业安全部署和控制方法。
背景技术
工业自动化控制系统,尤其是分散控制系统中通常包含以下几个重要组成部分:
上位机:采用高性能的计算器或服务器,通常用来部署人机交互控制模块、逻辑组态模块等,用以监控工业自动化控制系统正常运行。
下位机:通用或为完成特种功能的硬件设备,内置多个板卡插件,通常包括处理器板卡、输入输出板卡、通讯插件等。
逻辑组态模块:部署在上位机中,包含变量组态、逻辑组态、硬件组态、任务组态、在线监视和控制等功能。
运行时模块:部署在下位机的处理器插件中,可以包括如下功能:负责解析和加载二进制可执行程序以及调度、执行可执行程序等。
相关技术中,对于工业自动化控制系统的安全防护上依然存在不足:例如,完全不考虑从逻辑组态模块生成可执行程序,到运行时模块执行可执行程序的过程中有可能出现的可执行程序遭篡改、运行异常等系统失效问题;或者,采用完全冗余的硬件体系架构,系统内部署多个冗余上位机,下位机内部署多个处理器插件和专用的逻辑仲裁板卡,硬件成本高昂,不利于在中小型应用现场进行推广使用。
发明内容
有鉴于此,本公开提出了一种多路功能等价模块冗余仲裁的工业安全部署和控制方法,尽量避免系统级失效,且降低硬件成本,以利于在中小型应用现场推广使用。
根据本公开的一方面,提供了一种基于多路功能等价模块冗余仲裁的工业安全部署和控制方法,应用于安全部署的上位机和下位机中;在所述上位机中部署逻辑组态模块管理器和多个逻辑组态模块;在所述下位机中部署运行时模块管理器和多个运行时模块;在所述运行时模块管理器中部署仲裁子模块;其中,所述多个逻辑组态模块功能等价;所述逻辑组态模块管理器被配置为管理和控制所述多个逻辑组态模块,以使多个逻辑组态模块根据上位机发送的第一指令生成可执行程序,所述逻辑组态模块管理器将所述可执行程序发送给下位机;所述运行时模块管理器被配置为管理和控制所述多个运行时模块执行所述可执行程序生成输出结果;所述仲裁子模块被配置为对所述多个运行时模块的输出结果进行冗余仲裁,得到仲裁结果。
在一种可能的实现方式中,在所述逻辑组态模块管理器中部署:第一通信子模块,被配置为与所述下位机进行通信;第一同步子模块,被配置为对所述多个逻辑组态模块的操作过程进行同步控制;第一调度控制子模块,被配置为启动、控制所述多个逻辑组态模块,并调用第一通信子模块和第一同步子模块协同完成上位机发送的第一指令。
在一种可能的实现方式中,在所述运行时模块管理器中部署:第二通信子模块,被配置为与所述第一通信子模块进行通信;第二同步子模块,被配置为对所述多个运行时模块的操作过程进行同步控制;第二调度控制子模块,被配置为启动、控制所述多个运行时模块,并调用第二通信子模块和第二同步子模块协同完成上位机发送的第二指令;驱动管理子模块,被配置为迁移所述多个运行时模块运行时所需的输入及输出数据。
在一种可能的实现方式中,所述多个逻辑组态模块运行在彼此独立的虚拟机内;所述上位机作为主机与多个虚拟机形成内部局域网。
在一种可能的实现方式中,所述多个运行时模块彼此独立运行。
在一种可能的实现方式中,所述上位机生成可执行程序,并将所述可执行程序下装到下位机;所述下位机接收所述可执行程序,并根据所述可执行程序的个数启动相应数量的运行时模块执行所述可执行程序获得输出结果,对所述输出结果进行仲裁得到仲裁结果,其中,每个运行时模块执行一个可执行程序。
在一种可能的实现方式中,所述上位机生成可执行程序,并将所述可执行程序下装到下位机,包括:所述逻辑组态模块管理器向所述第一调度控制子模块下发编译指令;所述第一调度控制子模块调用所述多个逻辑组态模块分别根据所述编译指令进行编译操作,以生成所述可执行程序;所述第一调度控制子模块调用所述第一同步子模块以控制所述多个逻辑组态模块的所述编译操作同步完成;所述第一调度控制子模块调用所述第一通信子模块生成下装报文,并下发给所述下位机,所述下装报文携带有所述可执行程序。
在一种可能的实现方式中,所述上位机生成可执行程序,并将所述可执行程序下装到下位机,还包括:所述多个逻辑组态模块在完成所述编译操作后,向所述逻辑组态模块管理器发送第一应答报文;在至少一个逻辑组态模块的编译操作过程中出现异常的情况下,所述逻辑组态模块启动异常处理;和/或在下装可执行程序的过程中出现异常或产生超时的情况下,所述逻辑组态模块管理器启动异常处理。
在一种可能的实现方式中,所述下位机接收所述可执行程序,并根据所述可执行程序的个数启动相应数量的运行时模块执行所述可执行程序获得输出结果,对所述输出结果进行仲裁得到仲裁结果,包括:所述第二调度控制子模块调用所述第二通信子模块接收来自所述第一通信子模块的下装报文;所述第二调度控制子模块根据所述下装报文中包含的可执行程序个数,启动相应数量的运行时模块执行所述可执行程序获得输出结果;所述第二调度控制子模块调用所述第二同步子模块以控制所述运行时模块在预定时间内完成执行所述可执行程序获得输出结果;所述运行时模块管理器调用驱动管理子模块采集所述运行时模块的输出结果,并调用所述仲裁子模块对所述输出结果进行仲裁得到仲裁结果。
在一种可能的实现方式中,所述执行所述可执行程序获得输出结果,包括:运行时模块解析所述可执行程序,提取代码段和数据段信息分别存储至各自的运行空间的代码区和数据区,并完成代码重定位;提取任务信息,并根据任务信息创建任务进程。
在一种可能的实现方式中,在运行时模块的执行过程超时或出现异常的情况下,所述第二同步子模块启动异常处理。
在一种可能的实现方式中,所述上位机对所述安全部署的上位机和下位机的运行状态进行监测。
在一种可能的实现方式中,所述上位机对所述安全部署的上位机和下位机的运行状态进行监测,包括:所述逻辑组态模块管理器调用所述第一调度控制子模块查询获取所述多个逻辑组态模块的运行状态;所述逻辑组态模块管理器通过所述运行时模块管理器代理查询获取所述多个运行时模块的运行状态;所述逻辑组态模块管理器调用所述第一调度控制子模块对所述多个逻辑组态模块的运行状态和所述多个运行时模块的运行状态进行分析,以确定是否存在运行状态的异常;在所述多个逻辑组态模块或所述多个运行时模块中的任意一个模块的运行状态异常时,所述逻辑组态模块管理器启动异常处理。
在一种可能的实现方式中,所述逻辑组态模块管理器通过所述运行时模块管理器代理查询获取所述多个运行时模块的运行状态,包括:所述逻辑组态模块管理器调用所述第一通信子模块向所述第二通信子模块发送请求报文,以获取所述多个运行时模块的运行状态;所述运行时模块管理器通过所述第二通信子模块接收到所述请求报文后,调用所述第二调度控制子模块查询获取所述多个运行时模块的运行状态;所述第二调度控制子模块将获取的所述多个运行时模块的运行状态发送给所述第二通信子模块;所述第二通信子模块根据所述多个运行时模块的运行状态生成第二应答报文,并发送给所述第一通信子模块;所述逻辑组态模块管理器通过所述第一通信子模块接收所述第二应答报文,解析所述第二应答报文以获取所述多个运行时模块的运行状态。
根据本公开的多路功能等价模块冗余仲裁的工业安全部署和控制方法,上位机和下位机通过采用相互独立生成逻辑程序、相互独立执行任务、同步运行周期、模块仲裁冗余结果的控制方式,可以有效地防止系统级失效,提高系统安全等级,节省经济成本。
根据下面参考附图对示例性实施例的详细说明,本公开的其它特征及方面将变得清楚。
附图说明
包含在说明书中并且构成说明书的一部分的附图与说明书一起示出了本公开的示例性实施例、特征和方面,并且用于解释本公开的原理。
图1示出根据本公开一实施例的基于多路功能等价模块冗余仲裁的工业安全部署和控制方法的应用框图。
图2示出根据本公开一实施例的基于多路功能等价模块冗余仲裁的工业安全部署和控制方法的应用框图。
图3示出根据本公开一实施例的上位机生成可执行程序并将所述可执行程序下装到下位机的流程图。
图4示出根据本公开一实施例的所述下位机执行可执行程序的流程图。
图5示出根据本公开一实施例的下位机利用中断程序执行可行程序的流程图。
图6示出根据本公开一实施例的下位机利用中断程序执行可行程序的流程图。
图7示出根据本公开一实施例的上位机对所述安全部署的上位机和下位机的运行状态进行监测的流程图。
具体实施方式
以下将参考附图详细说明本公开的各种示例性实施例、特征和方面。附图中相同的附图标记表示功能相同或相似的元件。尽管在附图中示出了实施例的各种方面,但是除非特别指出,不必按比例绘制附图。
在这里专用的词“示例性”意为“用作例子、实施例或说明性”。这里作为“示例性”所说明的任何实施例不必解释为优于或好于其它实施例。
另外,为了更好的说明本公开,在下文的具体实施方式中给出了众多的具体细节。本领域技术人员应当理解,没有某些具体细节,本公开同样可以实施。在一些实例中,对于本领域技术人员熟知的方法、手段、元件和电路未作详细描述,以便于凸显本公开的主旨。
图1示出根据本公开一实施例的基于多路功能等价模块冗余仲裁的工业安全部署和控制方法的应用框图。
如图1所示,一种基于多路功能等价模块冗余仲裁的工业安全部署和控制方法,应用于安全部署的上位机100和下位机200中,所述上位机100和所述下位机200之间可以进行通信。
如图1所示,在所述上位机100中可以部署逻辑组态模块管理器120和多个逻辑组态模块,例如,逻辑组态模块111、逻辑组态模块112、逻辑组态模块113;在所述下位机200中可以部署运行时模块管理器220和多个运行时模块,例如,运行时模块211、运行时模块212、运行时模块213;在所述运行时模块管理器220中可以部署仲裁子模块224。
其中,所述多个逻辑组态模块功能等价,从而使其具有多路功能等价的模块。如上所述,逻辑组态模块可以包括变量组态、逻辑组态、硬件组态、任务组态、在线监视和控制等功能,其中,变量组态、任务组态信息保持一致可以使多个逻辑组态模块功能等价。需要说明的是,变量组态和任务组态信息保持一致,但多个逻辑组态模块可以使用不同的算法。
其中,所述逻辑组态模块管理器120被配置为管理和控制所述多个逻辑组态模块,以使多个逻辑组态模块根据上位机100发送的第一指令生成可执行程序,所述逻辑组态模块管理器120将所述可执行程序发送给下位机200,例如,对多个逻辑组态模块执行上位机100发送的第一指令的过程进行同步控制等,上位机100发送的第一指令可以是编译指令,多个逻辑组态模块可以根据第一指令进行编译操作生成可执行程序;所述运行时模块管理器220被配置为管理和控制所述多个运行时模块执行所述可执行程序生成输出结果,例如,对多个运行时模块执行上位机发送的可执行程序的过程进行同步控制等。
其中,所述仲裁子模块224可以被配置为对所述多个运行时模块的输出结果进行冗余仲裁,得到仲裁结果。
需要说明的是,这里是以三路功能等价模块为例,而设置了三个逻辑组态模块。本领域技术人员应能理解,逻辑组态模块的数量不限于此,完全可以根据实际应用场景的需要来选择合适的逻辑组态模块数量。
通过在上位机中设置多个逻辑组态模块,并由逻辑组态模块管理器管理和控制多个逻辑组态模块生成可执行程序,逻辑组态模块管理器将所述可执行程序发送给下位机,下位机中的运行时模块管理器管理和控制多个运行时模块执行可执行程序生成输出结果,下位机中的仲裁子模块对多个运行时模块的输出结果进行冗余仲裁,得到仲裁结果。
这样,由上位机中的多个逻辑组态模块相互独立运行生成可执行程序、下位机中的多个运行时模块相互独立运行执行可执行程序,多个运行时模块可以保证各自输出的结果不被篡改,仲裁子模块对多个运行时模块的输出结果进行冗余仲裁,得到仲裁结果,能够尽量避免系统级失效,提高了系统安全等级,且降低硬件成本,经济高效,有利于在中小型应用现场推广使用。
在一种可能的实现方式中,在所述上位机中,所述多个逻辑组态模块可以运行在彼此独立的虚拟机内,所述上位机作为主机与多个虚拟机形成内部局域网。
其中,多个逻辑组态模块运行在彼此独立的虚拟机内,可以保证所述多个逻辑组态模块运行空间相互独立。
其中,各个虚拟机可以以桥接(bridged)方式配置网络,使上位机作为主机和各个虚拟机形成内部局域网。本公开对内部局域网的构成方式不作具体限定。
在一种可能的实现方式中,在所述下位机中,所述多个运行时模块彼此独立运行。举例而言,所述多个运行时模块可以运行在彼此独立的进程,用来解析、加载可执行程序到指定的内存空间。
图2示出根据本公开一实施例的基于多路功能等价模块冗余仲裁的工业安全部署和控制方法的应用框图。
在一种可能的实现方式中,如图2所示,在所述逻辑组态模块管理器120中可以部署:第一通信子模块121、第一调度控制子模块122和第一同步子模块123。
其中,第一通信子模块121,可以被配置为与下位机100进行通信。例如,对于下行方向(即从上位机到下位机),第一通信子模块121可以完成控制命令、可执行程序以及信息数据的封装和下发;对于上行方向(即从下位机到上位机),第一通信子模块121可以完成将应答报文和数据信息的身份校验、解包,并分发给对应的逻辑组态模块。本公开对此不作穷尽式展开。
第一通信子模块121可以采用相关技术手段实现,例如,有线通信技术或无线通信技术,本公开对此不作限定。
其中,第一同步子模块123,被配置为对所述多个逻辑组态模块的操作过程进行同步控制。举例而言,可以对所述多个逻辑组态模块的编译过程进行同步控制;还可以对所述多个逻辑组态模块的监控、运行、向下位机发送控制命令等操作进行同步控制。所述操作不限于前述示例,本公开对此不作具体限定。
第一同步子模块123可以采用相关技术手段实现,例如,采用状态命令周期查询方式进行同步控制。周期地由第一同步子模块123向多个逻辑组态模块发送状态查询命令,逻辑组态模块接收到上述命令后将自身状态(正常/异常)信息返回给所述第一同步子模块123。如果所述第一同步子模块123在规定超时时间内未接收到逻辑组态模块的反馈信息,则向其重发状态查询命令;如果超出重发次数仍未收到逻辑组态模块的反馈信息,则启动异常处理,例如,发出异常告警信息,将产生的告警信息以日志形式进行存储等。本公开对此不作限定。
其中,第一调度控制子模块122,可以被配置为启动、控制所述多个逻辑组态模块,并调用第一通信子模块121和第一同步子模块123协同完成上位机100发送的第一指令。举例而言,所述第一指令可以是上位机100向逻辑组模块管理器下发的编译指令,所述第一调度控制子模块122可以调用第一同步子模块123,使所述多个逻辑组态模块在预设时间内同时完成编译过程。
其中,预设时间可以是预先设置的固定长度的时间段,也可以是下位机根据具体情况调整其长度的时间段,本公开对确定预设时间的方式不作限定。
第一调度控制子模块122可以采用相关技术手段实现,例如,第一调度控制子模块122接收到用户操作指令后采用直接调用其它子模块(第一通信子模块121和第一同步子模块123)对外公开接口或消息命令远程调用的方式完成某种业务功能的调度控制。本公开对此不作限定。
在一种可能的实现方式中,如图2所示,在所述运行时模块管理器220中还可以部署:第二通信子模块221、第二同步子模块223、第二调度控制子模块222和驱动管理子模块225。
其中,第二通信子模块221,可以被配置为与所述第一通信子模块121进行通信。例如,对于下行方向(即从上位机到下位机),第二通信子模块221可以完成对控制命令的身份校验、解包,并分发给对应的运行时模块;对于上行方向(即从下位机到上位机),第二通信子模块221可以完成应答保温和数据信息的信息数据的封装和上传。本公开对此不作穷尽式展开。
第二通信子模块221可以采用与第一通信子模块121相同的方式实现,两者之间采用同样的通信协议进行通信。
其中,第二同步子模块223,可以被配置为对所述多个运行时模块的操作过程进行同步控制。例如,可以对所述多个运行时模块执行可执行程序的过程进行同步控制,或者对运行时模块执行上位机下发的控制命令的过程进行同步控制。所述操作不限于前述示例,本公开对此不作具体限定。
在一种可能的实现方式中,第二同步子模块223被配置为控制多个运行时模块在预设时间内执行完上位机发送的可执行程序,预设时间可以是预先设置的固定长度的时间段,也可以是下位机根据具体情况调整其长度的时间段,本公开对确定预设时间的方式不作限定。
第二同步子模块223可以采用相关技术手段实现,例如,采用状态命令周期查询方式进行同步控制(详见第一同步子模块123的相关描述,此处不再赘述)。本公开对此不作限定。
其中,第二调度控制子模块222,可以被配置为启动、控制所述多个运行时模块,并调用第二通信子模块221和第二同步子模块223协同完成上位机100发送的第二指令。举例而言,第二指令可以是可执行程序指令,所述第一调度控制子模块122调用第一同步子模块123,使所述多个逻辑组态模块同步执行所述可执行程序。
其中,驱动管理子模块225,可以被配置为迁移所述多个运行时模块运行时所需的输入及输出数据。举例而言,运行时模块管理器220可以调用其内部的驱动管理子模块225提供的驱动接口采集各个运行时模块的运行空间输出区的内容,也可以调用驱动管理子模块225将仲裁结果输出到指定的内存空间。
为了更清楚的说明本公开的基于多路功能等价模块冗余仲裁的工业安全部署和控制方法,下面作进一步详细描述。
在一种可能的实现方式中,所述上位机100可以生成可执行程序,并将所述可执行程序下装到下位机200,其中,所述可执行程序可以包括任务信息。所述下位机100可以接收所述可执行程序,并根据所述可执行程序的个数启动相应数量的运行时模块执行所述可执行程序获得输出结果,对所述输出结果进行仲裁得到仲裁结果,其中,每个运行时模块可以执行一个可执行程序。
图3示出根据本公开一实施例的上位机生成可执行程序并将所述可执行程序下装到下位机的流程图。
在一种可能的实现方式中,如图3所示,所述上位机100生成可执行程序,并将所述可执行程序下装到下位机200,可以包括:
步骤S11,所述逻辑组态模块管理器120向所述第一调度控制子模块122下发编译指令(Compile)。
可选的,在执行该步骤之前,逻辑组态模块管理器120可以检测上位机是否处于就绪状态,即保证上位机中部署的多个逻辑组态模块实例完成了逻辑算法组态,满足各个实例中变量组态信息和任务组态信息完全一致的条件,且上述逻辑算法经过调试,功能正常。
步骤S12,所述第一调度控制子模块122调用所述多个逻辑组态模块分别根据所述编译指令进行编译操作,以生成所述可执行程序。
步骤S13,所述第一调度控制子模块122调用所述第一同步子模块123以控制所述多个逻辑组态模块的所述编译操作同步完成。
可选的,逻辑组态模块管理器120和多个逻辑组态模块之间可以采用两次握手机制进行通讯。逻辑组态模块管理器120可以下发编译指令(Compile),多个逻辑组态模块分别执行编译指令以生成包含任务信息的可执行程序;所述多个逻辑组态模块在完成上述编译指令后,向所述逻辑组态模块管理器120发送第一应答报文(ACK,Acknowledgement,即确认字符)。
可选的,在至少一个逻辑组态模块的编译操作过程中出现异常,或者,编译操作过程超过预设时间的情况下,所述逻辑组态模块启动异常处理,例如,发出异常告警信息,将产生的告警信息以日志形式进行存储等。此时,可重新进行逻辑算法组态,进行功能调试,多个逻辑组态模块就绪后重复上述过程。
步骤S14,所述第一调度控制子模块122调用所述第一通信子模块121生成下装(Download)报文,并下发给所述下位机200,所述下装报文携带有所述可执行程序。
可选的,所述第一通信子模块121可以按照通讯协议向下位机下发上述下装报文。下位机中运行时模块管理器中的第二通信子模块负责接收上述下装报文,并返回对应的应答(ACK)报文。如果下装报文过长,则可以进行分包发送,相应地,下位机中运行时模块管理中的第二通信子模块针对每一包返回应答报文。
可选的,在下装可执行程序的过程中出现异常或产生超时的情况下,所述逻辑组态模块管理器启动异常处理,例如,可由逻辑组态模块管理器发出异常告警信息,终止当前流程并记录日志等。
图4示出根据本公开一实施例的所述下位机100执行可执行程序的流程图。
图5、图6示出根据本公开一示例的所述下位机利用中断程序执行可执行程序的流程图。
在一种可能的实现方式中,如图4所示,所述下位机100接收所述可执行程序,并根据所述可执行程序的个数启动相应数量的运行时模块执行所述可执行程序获得输出结果,对所述输出结果进行仲裁得到仲裁结果,可以包括:
步骤S21,所述第二调度控制子模块222调用所述第二通信子模块221接收来自所述第一通信子模块121的下装报文。
可选的,如图5所示,在此之前,第二调度控制子模块222调用第二通信子模块221接收来自上位机的通信请求,完成身份校验。第二通信子模块221接收来自所述第一通信子模块的下装报文,进行报文解析获得可执行程序。
步骤S22,所述第二调度控制子模块222根据所述下装报文中包含的可执行程序个数,启动相应数量的运行时模块执行所述可执行程序获得输出结果。
可选的,执行所述可执行程序获得输出结果,可以包括:运行时模块解析所述可执行程序,提取代码段和数据段信息分别存储至各自的运行空间的代码区和数据区,并完成代码重定位;提取任务信息,并根据任务信息创建任务进程。运行时模块通过各自创建的任务进程,可以执行可执行程序获得各自的输出结果。
可选的,如图5所示,在此之前,运行时模块管理器220判断多个运行时模块是否正常启动。如果不能正常启动,则运行时模块管理器220启动异常处理。
步骤S23,所述第二调度控制子模块222调用所述第二同步子模块223以控制所述运行时模块在预定时间内完成执行所述可执行程序获得输出结果。
可选的,第二调度控制子模块222可以利用中断程序调用第二同步子模块223来使多个运行时模块完成可执行程序的执行。如图5所示,在完成重定位、任务进程的创建后,定时或条件触发中断程序;如图6所示,在中断开始后,控制所述运行时模块执行所述可执行程序。
可选的,在多个运行时模块的任务周期同步的子流程中,运行时模块管理器和运行时模块之间可采用两次握手机制,运行时模块管理器可以通过第二调用控制子模块与多个运行时模块交互多个运行时模块是否就绪(Ready)的状态。例如,如图6中标注1的框图所示,第二调用控制子模块可以向各个运行时模块发送是否就绪(Ready)的同步指令,各个运行时模块完成上述同步指令后,分别向运行时模块管理器发送应答(ACK)报文。可选的,在上述流程执行过程中出现异常的情况下,如某个运行时模块在预定时间内未返回应答报文,运行时模块管理器再发送一次同步指令;如果第二次仍然出现异常,则运行时模块管理器可以启动异常处理,例如,发出异常告警信息、终止所有运行时模块的进程,并记录日志等。
可选的,在多个运行时模块执行可执行程序的子流程中,运行时模块管理器和运行时模块之间可采用两次握手机制,运行时模块管理器可以通过第二调度控制模块与多个运行时模块交互多个运行时模块的执行状态。例如,如图6中标注2的框图所示,运行时模块管理器通过第二调用控制子模块向多个运行时模块发送执行命令(如单周期执行同步命令、触发式执行命令等),多个运行时模块完成上述指令后向运行时模块管理器返回是否成功的应答指令。上述过程由第二同步子模块保证时序控制,如果上述过程超时或存在异常,则运行时模块管理器中的第二同步子模块启动异常处理,发出异常告警信息、根据异常等级(对于不同的异常可以设置不同的等级)执行不同的处理机制,并将上述过程记录日志等。
可选的,各个运行时模块自身具有自诊断功能,用以保证执行过程中运行正常,且输出结果不被篡改。
步骤S24,所述运行时模块管理器调用驱动管理子模块225采集所述运行时模块的输出结果,并调用所述仲裁子模块224对所述输出结果进行仲裁,得到仲裁结果。
可选的,运行时模块管理器可以调用驱动管理子模块采集各个运行时模块的运行空间输出区的内容获得多个运行时模块的输出结果;运行时模块管理器可以调用仲裁子模块针对上述多个运行时模块的输出结果进行仲裁,得到仲裁结果作为最终输出结果;运行时模块管理器可以再次调用驱动管理子模块将最终结果输出到指定的内存空间。在一种可能的实现方式中,以三路为例,在三路冗余输出结果仲裁的机制中,三路冗余表决适应方案可采用“3-2-1-0”方案。其中,“3”可以表示三路输出结果都有效,采用完整的3取2表决方案,即在3路有效输出值中取2个相等的数值作为最终输出值;“2”表示仅有两路输出结果有效,此时采用预先设定的安全缺省值替代无效的那一路数据进行3取2表决;“1”表示仅有一路输出结果有效,那么该路输出结果作为唯一有效路作为最终输出结果,不再进行表决。“0”表示3路全部无效,不进行任何比较,输出默认安全缺省值为最终输出结果。
在仲裁过程中,须保证每次参与判断的内存长度和数据类型一致,其中判定数据类型一致的规则为:定点数据类型须完全一致,浮点类型误差小于指定误差值精度。实际运行过程中,除“3”这种情况之外,其余均处于异常运行状态。当连续运行于异常状态,由运行时模块管理器发出异常告警信息并记录日志。如果所有运行时模块实例连续多次处于异常状态,则可以说明已经失效。
可选的,如图6中标注3的框图所示,如果仲裁判断过程发生异常时,则运行时模块管理器启动异常处理。
可选的,如图6所示,运行时模块管理器220可以判断包括仲裁处理在内的整个流程是否发生超时。如果发生超时,则运行时模块管理器启动异常处理。
图7示出根据本公开一实施例的上位机对所述安全部署的上位机和下位机的运行状态进行监测的流程图。
在一种可能的实现方式中,所述上位机还可以对所述安全部署的上位机和下位机的运行状态进行监测。
在一种可能的实现方式中,如图7所示,所述上位机100对所述安全部署的上位机和下位机的运行状态进行监测,可以包括:
步骤S31,所述逻辑组态模块管理器120调用所述第一调度控制子模块122查询获取所述多个逻辑组态模块的运行状态。
可选的,逻辑组态模块管理器120调用其内部的第一通信子模块121向多个逻辑组态模块发送心跳信号(Check State)指令,所述多个逻辑组态模块接到上述指令后,返回各自的运行状态应答(ACK)报文。需要说明的是,本公开对获取多个逻辑组态模块的运行状态的方式不做具体限定。
如果上述过程存在超时异常,则逻辑组态模块管理器启动异常处理,生成告警信息,并以日志形式进行告警信息。
步骤S32,所述逻辑组态模块管理器120通过所述运行时模块管理器220代理查询获取所述多个运行时模块的运行状态。
可选的,所述逻辑组态模块管理器220调用所述第一通信子模块向所述第二通信子模块221发送请求报文,例如,心跳信号(Check State)指令报文,以获取所述多个运行时模块的运行状态;运行时模块管理器220通过第二通信子模块221接收到所述请求报文后,运行时模块管理器220调用所述第二调度控制子模块222查询获取多个运行时模块的运行状态;第二调度控制子模块222将获取的多个运行时模块的运行状态发送给第二通信子模块221;第二通信子模块221根据多个运行时模块211、212、213的运行状态生成第二应答报文,并发送给第一通信子模块121;逻辑组态模块管理器120通过第一通信子模块121接收第二应答报文,解析第二应答报文以获取多个运行时模块211、212、213的运行状态。
步骤S33,所述逻辑组态模块管理器120调用所述第一调度控制子模块122对所述多个逻辑组态模块的运行状态和所述多个运行时模块的运行状态进行分析,以确定是否存在运行状态的异常。
步骤S34,在所述多个逻辑组态模块或所述多个运行时模块中的任意一个模块的运行状态异常时,所述逻辑组态模块管理器120启动异常处理,例如,产生告警信息以日志形式进行存储。
上述内容示例了如何获取多个逻辑组态模块111、112、113的运行状态,需要说明的是,本公开对此不做具体限定。
通过实时对多个逻辑组态模块、多个运行时模块的监控,有利于及时发现系统失效问题,降低系统维护成本,提高系统安全性。
以上已经描述了本公开的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。
Claims (11)
1.一种基于多路功能等价模块冗余仲裁的工业安全部署和控制方法,应用于安全部署的上位机和下位机中,其特征在于:
在所述上位机中部署逻辑组态模块管理器和多个逻辑组态模块;
在所述下位机中部署运行时模块管理器和多个运行时模块;
在所述运行时模块管理器中部署仲裁子模块;
其中,所述多个逻辑组态模块功能等价,所述多个逻辑组态模块使用不同的算法;
其中,所述逻辑组态模块管理器被配置为管理和控制所述多个逻辑组态模块,以使多个逻辑组态模块根据上位机发送的第一指令生成可执行程序,所述逻辑组态模块管理器将所述可执行程序发送给下位机;
所述运行时模块管理器被配置为管理和控制所述多个运行时模块执行所述可执行程序生成输出结果;
所述仲裁子模块被配置为对所述多个运行时模块的输出结果进行冗余仲裁,得到仲裁结果;
在所述逻辑组态模块管理器中部署:
第一通信子模块,被配置为与所述下位机进行通信;
第一同步子模块,被配置为对所述多个逻辑组态模块的操作过程进行同步控制;
第一调度控制子模块,被配置为启动、控制所述多个逻辑组态模块,并调用第一通信子模块和第一同步子模块协同完成上位机发送的第一指令,
其中,所述上位机对所述安全部署的上位机和下位机的运行状态进行监测,包括:
所述逻辑组态模块管理器调用所述第一调度控制子模块查询获取所述多个逻辑组态模块的运行状态;
所述逻辑组态模块管理器通过所述运行时模块管理器代理查询获取所述多个运行时模块的运行状态;
所述逻辑组态模块管理器调用所述第一调度控制子模块对所述多个逻辑组态模块的运行状态和所述多个运行时模块的运行状态进行分析,以确定是否存在运行状态的异常;
在所述多个逻辑组态模块或所述多个运行时模块中的任意一个模块的运行状态异常时,所述逻辑组态模块管理器启动异常处理。
2.根据权利要求1所述的工业安全部署和控制方法,其特征在于:在所述运行时模块管理器中还部署:
第二通信子模块,被配置为与所述第一通信子模块进行通信;
第二同步子模块,被配置为对所述多个运行时模块的操作过程进行同步控制;
第二调度控制子模块,被配置为启动、控制所述多个运行时模块,并调用第二通信子模块和第二同步子模块协同完成上位机发送的第二指令;
驱动管理子模块,被配置为迁移所述多个运行时模块运行时所需的输入及输出数据。
3.根据权利要求1所述的工业安全部署和控制方法,其特征在于:
所述多个逻辑组态模块运行在彼此独立的虚拟机内;
所述上位机作为主机与多个虚拟机形成内部局域网。
4.根据权利要求2所述的工业安全部署和控制方法,其特征在于:
所述多个运行时模块彼此独立运行。
5.根据权利要求4所述的工业安全部署和控制方法,其特征在于:
所述上位机生成可执行程序,并将所述可执行程序下装到下位机;
所述下位机接收所述可执行程序,并根据所述可执行程序的个数启动相应数量的运行时模块执行所述可执行程序获得输出结果,对所述输出结果进行仲裁得到仲裁结果,其中,每个运行时模块执行一个可执行程序。
6.根据权利要求5所述的工业安全部署和控制方法,其特征在于,所述上位机生成可执行程序,并将所述可执行程序下装到下位机,包括:
所述逻辑组态模块管理器向所述第一调度控制子模块下发编译指令;
所述第一调度控制子模块调用所述多个逻辑组态模块分别根据所述编译指令进行编译操作,以生成所述可执行程序;
所述第一调度控制子模块调用所述第一同步子模块以控制所述多个逻辑组态模块的所述编译操作同步完成;
所述第一调度控制子模块调用所述第一通信子模块生成下装报文,并下发给所述下位机,所述下装报文携带有所述可执行程序。
7.根据权利要求6所述的工业安全部署和控制方法,其特征在于,所述上位机生成可执行程序,并将所述可执行程序下装到下位机,还包括:
所述多个逻辑组态模块在完成所述编译操作后,向所述逻辑组态模块管理器发送第一应答报文;
在至少一个逻辑组态模块的编译操作过程中出现异常的情况下,所述逻辑组态模块启动异常处理;和/或
在下装可执行程序的过程中出现异常或产生超时的情况下,所述逻辑组态模块管理器启动异常处理。
8.根据权利要求5所述的工业安全部署和控制方法,其特征在于:所述下位机接收所述可执行程序,并根据所述可执行程序的个数启动相应数量的运行时模块执行所述可执行程序获得输出结果,对所述输出结果进行仲裁得到仲裁结果,包括:
所述第二调度控制子模块调用所述第二通信子模块接收来自所述第一通信子模块的下装报文;
所述第二调度控制子模块根据所述下装报文中包含的可执行程序个数,启动相应数量的运行时模块执行所述可执行程序获得输出结果;
所述第二调度控制子模块调用所述第二同步子模块以控制所述运行时模块在预定时间内完成执行所述可执行程序获得输出结果;
所述运行时模块管理器调用驱动管理子模块采集所述运行时模块的输出结果,并调用所述仲裁子模块对所述输出结果进行仲裁得到仲裁结果。
9.根据权利要求8所述的工业安全部署和控制方法,其特征在于:所述执行所述可执行程序获得输出结果,包括:
运行时模块解析所述可执行程序,提取代码段和数据段信息分别存储至各自的运行空间的代码区和数据区,并完成代码重定位;
提取任务信息,并根据任务信息创建任务进程。
10.根据权利要求8所述的工业安全部署和控制方法,其特征在于:
在运行时模块的执行过程超时或出现异常的情况下,所述第二同步子模块启动异常处理。
11.根据权利要求2所述的工业安全部署和控制方法,其特征在于:所述逻辑组态模块管理器通过所述运行时模块管理器代理查询获取所述多个运行时模块的运行状态,包括:
所述逻辑组态模块管理器调用所述第一通信子模块向所述第二通信子模块发送请求报文,以获取所述多个运行时模块的运行状态;
所述运行时模块管理器通过所述第二通信子模块接收到所述请求报文后,调用所述第二调度控制子模块查询获取所述多个运行时模块的运行状态;
所述第二调度控制子模块将获取的所述多个运行时模块的运行状态发送给所述第二通信子模块;
所述第二通信子模块根据所述多个运行时模块的运行状态生成第二应答报文,并发送给所述第一通信子模块;
所述逻辑组态模块管理器通过所述第一通信子模块接收所述第二应答报文,解析所述第二应答报文以获取所述多个运行时模块的运行状态。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810582570.4A CN108804109B (zh) | 2018-06-07 | 2018-06-07 | 基于多路功能等价模块冗余仲裁的工业部署和控制方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810582570.4A CN108804109B (zh) | 2018-06-07 | 2018-06-07 | 基于多路功能等价模块冗余仲裁的工业部署和控制方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108804109A CN108804109A (zh) | 2018-11-13 |
CN108804109B true CN108804109B (zh) | 2021-11-05 |
Family
ID=64088963
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810582570.4A Active CN108804109B (zh) | 2018-06-07 | 2018-06-07 | 基于多路功能等价模块冗余仲裁的工业部署和控制方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108804109B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP7014675B2 (ja) | 2018-05-23 | 2022-02-01 | 花王株式会社 | 半導体型単層カーボンナノチューブ分散液の製造方法 |
CN111600836B (zh) * | 2020-04-02 | 2022-02-22 | 之江实验室 | 一种保证冗余等价执行体tcp连接归一化的装置及方法 |
CN112738224B (zh) * | 2020-12-29 | 2022-06-10 | 浙江中控技术股份有限公司 | 一种支持触发式通信的数据处理系统和方法 |
CN112558461B (zh) * | 2021-02-25 | 2021-05-14 | 四川腾盾科技有限公司 | 一种多余度无人机飞机管理计算机输出信号表决方法 |
CN113741166B (zh) * | 2021-06-04 | 2023-08-15 | 北京四方继保自动化股份有限公司 | 一种基于多cpu工业系统控制器的工控逻辑冗余实现方法 |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4965717A (en) * | 1988-12-09 | 1990-10-23 | Tandem Computers Incorporated | Multiple processor system having shared memory with private-write capability |
CN100530106C (zh) * | 2006-12-20 | 2009-08-19 | 中国电子科技集团公司第十四研究所 | 多机容错系统内核的实现方法 |
CN101251816B (zh) * | 2008-03-13 | 2010-06-09 | 中国科学院计算技术研究所 | 一种用于可编程器件的冗余系统及其冗余实现方法 |
CN102096401B (zh) * | 2010-12-22 | 2015-03-11 | 北京昊图科技有限公司 | 基于现场总线和arm处理器的冗余容错安全仪表系统 |
JP2012221248A (ja) * | 2011-04-08 | 2012-11-12 | Hitachi Ltd | フォールトトレラントシステム用動作検証装置及びフォールトトレラントシステムの動作検証方法 |
CN202598125U (zh) * | 2012-04-09 | 2012-12-12 | 上海海事大学 | 一种采用plc软冗余控制的氮气供应系统 |
EP2930623B1 (en) * | 2014-04-09 | 2017-08-02 | ABB Schweiz AG | Controller system with peer-to-peer redundancy, and method to operate the system |
WO2016020986A1 (ja) * | 2014-08-05 | 2016-02-11 | 株式会社東芝 | 整列装置、データ処理装置、プログラム、整列方法および多重化システム |
CN104808592B (zh) * | 2015-03-13 | 2016-06-01 | 华中科技大学 | 一种基于虚拟上位机的数控系统 |
CN205594431U (zh) * | 2016-03-14 | 2016-09-21 | 昆明理工大学 | 一种基于北斗卫星的矿浆管道scada系统 |
CN106774277B (zh) * | 2017-01-17 | 2019-03-08 | 爱普(福建)科技有限公司 | 一种多虚拟控制器之间的数据共享方法 |
-
2018
- 2018-06-07 CN CN201810582570.4A patent/CN108804109B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN108804109A (zh) | 2018-11-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108804109B (zh) | 基于多路功能等价模块冗余仲裁的工业部署和控制方法 | |
US8006118B1 (en) | System and method for application failure detection | |
CA1263759A (en) | Arrangement for on-line diagnostic testing of an off- line standby processor in a duplicated processor configuration | |
EP0498130A2 (en) | Apparatus and method for verifying compatibility of system components | |
EP3586203B1 (en) | Resilient failover of industrial programmable logic controllers | |
US9696692B2 (en) | Industrial automation control system | |
WO2007118741A1 (en) | Computer hardware fault diagnosis | |
CN109508295B (zh) | 区块链共识算法测试方法、装置、计算装置和存储介质 | |
US11846923B2 (en) | Automation system for monitoring a safety-critical process | |
CN115408371B (zh) | 一种redis数据库动态冗余部署方法和装置 | |
US11951999B2 (en) | Control unit for vehicle and error management method thereof | |
CN116881929B (zh) | 安全防护方法、装置、电子设备以及基板控制器芯片 | |
Pop et al. | Methods and tools for reducing certification costs of mixed-criticality applications on multi-core platforms: the RECOMP approach | |
CN106708701B (zh) | 一种基于arinc659总线的中央维护装置与方法 | |
CN108388228B (zh) | 一种针对多通道嵌入式控制系统的同步调试方法和装置 | |
US11982984B2 (en) | Automation system for monitoring a safety-critical process | |
US20220006863A1 (en) | Method for processing application programs in a distributed automation system | |
Eloranta et al. | A pattern language for distributed machine control systems | |
KR102471314B1 (ko) | 항공기 소프트웨어에서 순서위배의 자율적 수리를 위한 건전성 관리 시스템 및 방법 | |
EP3982250A1 (en) | Generation of code for a system | |
CN117149216A (zh) | 一种支持增量部署的软件系统自动化部署系统、方法、装置及存储介质 | |
WO2023110069A1 (en) | Data processing apparatus and method implementing a software lockstep | |
JP2001256071A (ja) | 冗長化システム | |
CN114185501A (zh) | 基于人工智能的日志打印方法、装置、电子设备及介质 | |
CN114546446A (zh) | 一种控制系统升级方法、装置、设备及存储介质 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |