CN112948097A - 一种iec61499的功能块执行调度方法及装置 - Google Patents
一种iec61499的功能块执行调度方法及装置 Download PDFInfo
- Publication number
- CN112948097A CN112948097A CN202110406390.2A CN202110406390A CN112948097A CN 112948097 A CN112948097 A CN 112948097A CN 202110406390 A CN202110406390 A CN 202110406390A CN 112948097 A CN112948097 A CN 112948097A
- Authority
- CN
- China
- Prior art keywords
- action
- event
- priority
- function block
- scheduling
- 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.)
- Granted
Links
Images
Classifications
-
- 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
- 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/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5016—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
-
- 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/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/5038—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
-
- 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/54—Interprogram communication
- G06F9/542—Event management; Broadcasting; Multicasting; Notifications
-
- 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/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. 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/484—Precedence
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5021—Priority
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/54—Indexing scheme relating to G06F9/54
- G06F2209/548—Queue
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multimedia (AREA)
- Programmable Controllers (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开了一种IEC61499的功能块执行调度方法及装置,所述IEC61499的功能块的执行控制图包括初始状态、状态切换、当前状态、动作,动作包括动作对应的算法和动作触发的事件,所述方法包括:获取先进控制系统的工艺数据变化和控制周期作为触发动作的事件,在执行控制图的事件和动作中增加统一的优先级,在动作中增加最大执行时间和是否可中断属性;按照事件和动作的优先级,调度动作的执行和终止;根据IEC61499的功能块的计算资源以及动作的耗时程度,动态调整事件队列的长度,优化计算资源分配;本发明的优点在于:满足抢占式调度的要求,算法执行的确定性在时间不确定的分布式系统能满足要求。
Description
技术领域
本发明涉及工业控制系统的资源调度方法,更具体涉及一种IEC61499的功能块执行调度方法及装置。
背景技术
IEC61499最初在2005年发表,围绕在工业过程中的数据采集和控制系统中功能块编程的主题,在IEC61131的基础上,为分布式控制系统定义了一个通用的模型。IEC61499是分布式工业测量,控制和监控系统的功能块标准,它是面向工业测量和控制的系统,对系统的确定性要求必然也比较高。确定性又是安全性的前提。不同的工业领域的应用场合,对于IEC61499的功能块的算法执行有着不同的要求。对于数字量采集,往往最近的事件和数据有着较高的优先级,而对于模拟量采集,往往正在执行的算法(数据)优先级较高。另外,对于分布式控制系统,不同的设备的计算能力和存储资源差别很大,一处编程多处部署的调度算法要差别对待分布式控制系统中不同的设备。
以先进控制实施项目为例,由于流程行业的化学反应周期较长,变量较多,先进控制算法的控制周期长,计算量大;但是稳定流程行业核心工艺参数的同时,先进控制算法要结合专家系统,保护电气设备等重要工业设备。比如在水泥行业的原料磨先进控制实施项目中,操作原料磨的喂料量,来控制磨主机电流,磨机出口压差,外排提升机电机电流;操作选粉机转速来控制原料粉末的细度。在常规工况下,先进控制系统可以对多变量,大时滞系统实行有效控制,即通过选粉机转速,喂料量控制压差和原料粉末细度。此时先进控制的缺点是,寻优计算需要较大的计算量,所以在单一控制周期有可能无法计算出结果,此时先进控制算法需要继续运算,保持控制量不变化。但是,当紧急情况发生时,需要立刻按照工艺专家的输入,进行紧急控制,比如外排提升机电流过大以及压差过高时,需要紧急降低喂料量以及降低选粉机转速放出磨内粉末。此时,专家系统的优先级要高于先进控制。另外,初始化先进控制往往是手动切换自动时的初始值设定,具有最高优先级。当基于IEC61499实现生料磨的智能控制功能块时,利用目前标准中的算法调度机制,功能块的开发者封装的功能块没有考虑紧急状况,不能实现工业现场确定性的要求,所以目前的标准中的算法调度需要增加新的手段以达到先进控制现场实施的要求。
另外,IEC61499标准定义还较为宽泛,目前的标准实现都使用了固定长度的事件队列,以及对于执行控制图(ECC)的事件和正在执行的动作对应的算法的调度仅采用超时(swap)和队列缓冲的调度办法,不能满足抢占式调度的要求,所以算法执行的确定性在上述紧急情况也即执行时间不确定的分布式系统中不能满足要求。
中国专利申请号201910136529.9,公开了一种保证计算时序确定性的IEC61499功能块建模方法,包括:重新定义功能块的事件接口,用于将事件定义为包含时间戳的事件结构体;增加功能块对到达事件的时序管理模块,用于解析到达的本地事件,将事件按照时序排列,保证事件队列中事件按照确定的时序被响应;增加算法执行管理模块,用于定义算法执行时间约束、超时响应处理算法接口,对ECC执行响应算法进行管理、监测程序执行状态。该专利申请通过对IEC 61499基础功能块的扩展保证分布式系统协同计算的确定性,该功能块结构可以在异步事件高并发的分布式系统中保证事件执行时序的一致性和事件响应算法执行的确定性。但是其使用了固定长度的事件队列,以及对于ECC的事件和正在执行的动作对应的算法的调度没有给出具体的调度办法,不能满足抢占式调度的要求,所以算法执行的确定性在执行时间不确定的分布式系统中不能满足要求。
发明内容
本发明所要解决的技术问题在于现有技术IEC61499的功能块执行调度方法不能满足抢占式调度的要求,算法执行的确定性在执行时间不确定的分布式系统中不能满足要求。
本发明通过以下技术手段实现解决上述技术问题的:一种IEC61499的功能块执行调度方法,应用于工业场景下的流程工业的先进控制系统,所述IEC61499的功能块的执行控制图包括初始状态(EC initial state)、状态切换(EC transition)、当前状态(ECState)、动作(EC action),动作(EC action)包括动作对应的算法(algorithm)和动作对应触发事件(event),所述方法包括:
步骤一:获取先进控制系统的工艺数据变化和控制周期作为触发动作事件,在执行控制图的事件(event)和动作(EC action)中增加统一的优先级,在动作(EC action)中增加最大执行时间和是否可中断属性;
步骤二:按照事件(event)和动作(EC action)的优先级,调度动作(EC action)的执行和终止;
步骤三:根据IEC61499的功能块的计算资源以及动作(EC action)的耗时程度,动态调整事件队列的长度,优化计算资源分配。
本发明在算法计算需求和计算资源不匹配时,按照事件和动作的优先级,调度动作的执行和终止,出现紧急情况时不需要增加新的手段以达到先进控制现场实施的要求,根据应用场景以抢占式方式调度,在不同的计算资源上,采用事件队列动态调整的方式,充分合理利用资源,保证整个系统的正常工作状态,在事件算法执行时间不确定的分布式系统中保证事件执行的一致性和事件响应算法执行的确定性。
进一步地,相同优先级的事件队列按照发生事件的时间戳或者到达功能块的时间戳进行二次排序。
进一步地,所述IEC61499的功能块还包括调度算法模块,调度算法模块以线程的形式监视计算资源的内存情况和动作(EC action)的执行时间,为动态调整事件队列收集数据。
进一步地,所述步骤二包括:
步骤201:按照事件队列的顺序,执行优先级最高的事件,对与优先级最高的事件相关的输入数据进行采样,当符合状态机状态切换(EC transition)条件时,进行状态切换,执行状态对应的动作(ECaction),此时状态对应的动作(EC action)的优先级与状态切换(EC transition)的优先级一致;
步骤202:如果IEC61499的功能块正在执行状态(EC state)的动作(EC action)对应的算法(algorithm)并且未执行结束,同时,事件队列中有新的事件,并且该事件触发了状态切换(EC transition)条件,此时如果状态切换(EC transition)的优先级高于动作(EC action)的优先级,则动作对应的算法(algorithm)退出;如果状态切换(ECtransition)的优先级低于动作(EC action)的优先级,则动作对应的算法(algorithm)继续执行,事件在队列中等待;
步骤203:如果状态切换(EC transition)的优先级等于动作对应的算法(algorithm)的优先级,则通过动作对应的算法algorithm是否可中断属性判断,如果是可中断,则动作对应的算法(algorithm)退出,执行状态切换(EC transition);如果是不可中断,则动作对应的算法(algorithm)继续执行,事件在队列中等待。
进一步地,所述步骤三中动态调整事件队列的长度的方法为:
通过公式
获取当前事件队列长度,其中,LenEventQueue表示当前事件队列长度,k表示第k个时刻,n表示第n个时刻,ComingEventNumber表示当前时刻到达的事件个数,MaxWaitTime表示前n个时刻的事件得到执行的最大等待时间,TimeofWindow表示计算间隔。
更进一步地,通过公式
当前事件队列长度进行加权平均滤波,获取更新后的当前事件长度,在更新后的事件队列长度下进行功能块执行调度,其中,LenEventQueue’表示更新后的当前事件长度,λk表示第k个加权系数,Lenk表示第k个时刻的当前事件队列长度。
本发明还提供一种IEC61499的功能块执行调度装置,应用于工业场景下的流程工业的先进控制系统,所述IEC61499的功能块的执行控制图包括初始状态(EC initialstate)、状态切换(EC transition)、当前状态(EC State)、动作(EC action),动作(ECaction)包括动作对应的算法(algorithm)和动作触发事件(event),所述装置包括:
预处理模块,用于获取先进控制系统的工艺数据变化和控制周期作为触发动作事件,在执行控制图的事件(event)和动作(EC action)中增加统一的优先级,在动作(ECaction)中增加最大执行时间和是否可中断属性;
调度模块,用于按照事件(event)和动作(EC action)的优先级,调度动作(ECaction)的执行和终止;
资源优化模块,用于根据IEC61499的功能块的计算资源以及动作(EC action)的耗时程度,动态调整事件队列的长度,优化计算资源分配。
进一步地,相同优先级的事件队列按照发生事件的时间戳或者到达功能块的时间戳进行二次排序。
进一步地,所述IEC61499的功能块还包括调度算法模块,调度算法模块以线程的形式监视计算资源的内存情况和动作(EC action)的执行时间,为动态调整事件队列收集数据。
进一步地,所述调度模块还用于:
步骤201:按照事件队列的顺序,执行优先级最高的事件,对与优先级最高的事件相关的输入数据进行采样,当符合状态机状态切换(EC transition)条件时,进行状态切换,执行状态对应的动作(ECaction),此时状态对应的动作(EC action)的优先级与状态切换(EC transition)的优先级一致;
步骤202:如果IEC61499的功能块正在执行状态(EC state)的动作(EC action)对应的算法(algorithm)并且未执行结束,同时,事件队列中有新的事件,并且该事件触发了状态切换(EC transition)条件,此时如果状态切换(EC transition)的优先级高于动作(EC action)的优先级,则动作对应的算法(algorithm)退出;如果状态切换(ECtransition)的优先级低于动作(EC action)的优先级,则动作对应的算法(algorithm)继续执行,事件在队列中等待;
步骤203:如果状态切换(EC transition)的优先级等于动作对应的算法(algorithm)的优先级,则通过动作对应的算法algorithm是否可中断属性判断,如果是可中断,则动作对应的算法(algorithm)退出,执行状态切换(EC transition);如果是不可中断,则动作对应的算法(algorithm)继续执行,事件在队列中等待。
进一步地,所述资源优化模块中动态调整事件队列的长度的方法为:
通过公式
获取当前事件队列长度,其中,LenEventQueue表示当前事件队列长度,k表示第k个时刻,n表示第n个时刻,ComingEventNumber表示当前时刻到达的事件个数,MaxWaitTime表示前n个时刻的事件得到执行的最大等待时间,TimeofWindow表示计算间隔。
更进一步地,
通过公式
当前事件队列长度进行加权平均滤波,获取更新后的当前事件长度,在更新后的事件队列长度下进行功能块执行调度,其中,LenEventQueue’表示更新后的当前事件长度,λk表示第k个加权系数,Lenk表示第k个时刻的当前事件队列长度。
本发明的优点在于:本发明在算法计算需求和计算资源不匹配时,按照事件和动作的优先级,调度动作的执行和终止,出现紧急情况时不需要增加新的手段以达到先进控制现场实施的要求,根据应用场景以抢占式方式调度,在不同的计算资源上,采用事件队列动态调整的方式,充分合理利用资源,保证整个系统的正常工作状态,在事件算法执行时间不确定的分布式系统中保证事件执行的一致性和事件响应算法执行的确定性。。
附图说明
图1为本发明实施例所提供的一种IEC61499的功能块执行调度方法的流程图;
图2为本发明实施例所提供的一种IEC61499的功能块执行调度方法的流程图;
图3为本发明实施例所提供的一种IEC61499的功能块执行调度方法中调度动作(EC action)的执行和终止的状态转换流程图;
图4为现有技术IEC61499的标准功能块图;
图5为现有技术IEC61499的功能块的执行控制图的执行过程图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例1
本发明在扩展现有IEC61499的功能块的基础上,提供抢占式的调度方法,功能块依赖于计算资源得以执行。计算资源可以是一个嵌入式操作系统管理的嵌入式设备,或者服务器上运行的一个进程。以Linux操作系统为例,功能块运行时环境是Linux的一个进程,而事件调度模块也即本发明所提供的调度方法是该进程下的一个线程。本发明描述的调度算法的IEC61499功能块能够在原料磨机的先进控制系统中采用,能够兼顾算法的控制性能和紧急情况处理能力。以下详细介绍本发明的具体实施方式。
如图1所示,一种IEC61499的功能块执行调度方法,应用于工业场景下的流程工业的先进控制系统,本实施例中本发明的调度方法主要应用于水泥生产的原料磨先进控制系统。如图5所示,所述IEC61499的功能块的执行控制图包括初始状态(EC initial state)、状态切换(EC transition)、当前状态(EC State)、动作(EC action),动作(EC action)包括动作对应的算法(algorithm)和动作触发的事件(event),如图3所示,本申请在图5的基础上对IEC61499的功能块的执行控制图进行扩展,扩展内容也即下文步骤一,本发明的调度方法的步骤S1:获取先进控制系统的工艺数据变化和控制周期作为触发动作事件,在执行控制图的事件(event)和动作(EC action)中增加统一的优先级,在动作(EC action)中增加最大执行时间和是否可中断属性;具体的,如图2所示,本发明将事件和动作统一增加字段优先级,其源代码如下:
步骤S2:按照事件(event)和动作(EC action)的优先级,调度动作(EC action)的执行和终止,图2中EC State的优先级就是当前执行的EC action的优先级;具体为:
步骤201:按照事件队列的顺序,执行优先级最高的事件,对与优先级最高的事件相关的输入数据进行采样,当符合状态机状态切换(EC transition)条件时,如事件发生或者数据符合特定条件时,进行状态切换,执行状态对应的动作(EC action),此时状态对应的动作(EC action)的优先级与状态切换(EC transition)的优先级一致;
步骤202:如果IEC61499的功能块正在执行状态(EC state)的动作(EC action)对应的算法(algorithm)并且未执行结束,同时,事件队列中有新的事件,并且该事件触发了状态切换(EC transition)条件,此时如果状态切换(EC transition)的优先级高于动作(EC action)的优先级,则动作对应的算法(algorithm)退出;如果状态切换(ECtransition)的优先级低于动作(EC action)的优先级,则动作对应的算法(algorithm)继续执行,事件在队列中等待;
步骤203:如果状态切换(EC transition)的优先级等于动作对应的算法(algorithm)的优先级,则通过动作对应的算法algorithm是否可中断属性判断,如果是可中断,则动作对应的算法(algorithm)退出,执行状态切换(EC transition);如果是不可中断,则动作对应的算法(algorithm)继续执行,事件在队列中等待。如图3中的功能块包括四个状态,START(初始状态),INIT(初始化状态),Normal(正常状态)和Abnormal(异常状态),MVO和PARAMO为Normal状态和Abnormal状态的算法计算结束后触发的事件,INITO为INIT结束后触发的事件。START状态响应INIT信号(即手动切换到自动),EX1信号(控制周期信号)和EX2信号(紧急信号,原料磨外排提升机电流超限);P(INIT)(INIT事件优先级),P_EX1(EX1事件优先级),P_EX2(EX2事件优先级)为事件优先级,同时,当MPC算法和EXPERT算法执行时,该动作(EC_ACTION)的优先级等于触发该动作事件的优先级,即Normal状态MPC算法的优先级为P_EX1,而Abnormal状态EXPERT算法优先级为P_EX2。这三个信号的优先级关系为P_INIT>P_EX2>P_EX1。所以在START状态,INIT动作和其输出事件INITO优先级最高,因为重新初始化在工业现场意味着手动到自动的切换,具有最高优先级,EX2事件次之,而EX1优先级最低。在Normal状态,优先响应EX2。当Normal状态执行MPC算法时,Normal状态MPC算法的优先级为P_EX1,当EX2事件到达,由于P_EX2>P_EX1,Normal状态执行的MPC算法退出,而如果EX1事件到达,新的EX1事件和数据是否执行,依赖于该MPC算法是否能够被中断。当该MPC算法是可以被中断时,新的EX1事件和数据触发新的算法执行,该MPC算法退出也即旧的算法让出计算资源;反之,新的EX1事件和数据入事件队列等待。AbNormal状态同理。以上流程与图4的原理相同,都是调度动作(EC action)的过程,只是图4为现有技术IEC61499的标准功能块图,现有技术IEC61499的标准功能块图属于现有常规技术,在很多材料甚至百度百科中均有记载,在此不对其原理进行赘述。
相同优先级的事件队列按照发生事件的时间戳或者到达功能块的时间戳进行二次排序,最新发生的事件排在最前。功能块网络图较复杂时,由于每个功能块的算法的复杂度不同,对于简单算法的功能块,队列长度可以比较短,而复杂算法功能块的队列长度就要更长,因此由于IEC61499是分布式系统,每个功能块所处的硬件算力不同,算法执行效率也不同,在不同的计算资源上,采用事件队列动态调整的方式,充分合理利用资源,保证整个系统的正常工作状态,具体参考步骤S3。
步骤S3:根据IEC61499的功能块的计算资源以及动作(EC action)的耗时程度,动态调整事件队列的长度,优化计算资源分配。所述IEC61499的功能块还包括调度算法模块,调度算法模块以线程的形式监视计算资源的内存情况和动作(EC action)的执行时间,为动态调整事件队列收集数据。
所述步骤S3中动态调整事件队列的长度的方法为:
通过公式
获取当前事件队列长度,其中,LenEventQueue表示当前事件队列长度,k表示第k个时刻,n表示第n个时刻,ComingEventNumber表示当前时刻到达的事件个数,MaxWaitTime表示前n个时刻的事件得到执行的最大等待时间,TimeofWindow表示计算间隔。
通过公式
当前事件队列长度进行加权平均滤波,获取更新后的当前事件长度,在更新后的事件队列长度下进行功能块执行调度,其中,LenEventQueue’表示更新后的当前事件长度,λk表示第k个加权系数,Lenk表示第k个时刻的当前事件队列长度。
通过以上技术方案,本发明在算法计算需求和计算资源不匹配时,按照事件和动作的优先级,调度动作的执行和终止,根据应用场景以抢占式方式调度,在不同的计算资源上,采用事件队列动态调整的方式,充分合理利用资源,保证整个系统的正常工作状态,在事件算法执行时间不确定的分布式系统中保证事件执行的一致性和事件响应算法执行的确定性。
实施例2
与实施例1相对应的,本发明实施例2还提供一种IEC61499的功能块执行调度装置,应用于工业场景下的流程工业的先进控制系统,所述IEC61499的功能块的执行控制图包括初始状态(EC initial state)、状态切换(EC transition)、当前状态(EC State)、动作(EC action),动作(EC action)包括动作对应的算法(algorithm)和动作触发的事件(event),所述装置包括:
预处理模块,用于获取先进控制系统的工艺数据变化和控制周期作为触发动作事件,在执行控制图的事件(event)和动作(EC action)中增加统一的优先级,在动作(ECaction)中增加最大执行时间和是否可中断属性;
调度模块,用于按照事件(event)和动作(EC action)的优先级,调度动作(ECaction)的执行和终止;
资源优化模块,用于根据IEC61499的功能块的计算资源以及动作(EC action)的耗时程度,动态调整事件队列的长度,优化计算资源分配。
具体的,相同优先级的事件队列按照发生事件的时间戳或者到达功能块的时间戳进行二次排序。
具体的,所述IEC61499的功能块还包括调度算法模块,调度算法模块以线程的形式监视计算资源的内存情况和动作(EC action)的执行时间,为动态调整事件队列收集数据。
具体的,所述调度模块还用于:
步骤201:按照事件队列的顺序,执行优先级最高的事件,对与优先级最高的事件相关的输入数据进行采样,当符合状态机状态切换(EC transition)条件时,进行状态切换,执行状态对应的动作(EC action),此时状态对应的动作(EC action)的优先级与状态切换(EC transition)的优先级一致;
步骤202:如果IEC61499的功能块正在执行状态(EC state)的动作(EC action)对应的算法(algorithm)并且未执行结束,同时,事件队列中有新的事件,并且该事件触发了状态切换(EC transition)条件,此时如果状态切换(EC transition)的优先级高于动作(EC action)的优先级,则动作对应的算法(algorithm)退出;如果状态切换(ECtransition)的优先级低于动作(EC action)的优先级,则动作对应的算法(algorithm)继续执行,事件在队列中等待;
步骤203:如果状态切换(EC transition)的优先级等于动作对应的算法(algorithm)的优先级,则通过动作对应的算法algorithm是否可中断属性判断,如果是可中断,则动作对应的算法(algorithm)退出,执行状态切换(EC transition);如果是不可中断,则动作对应的算法(algorithm)继续执行,事件在队列中等待。
具体的,所述资源优化模块中动态调整事件队列的长度的方法为:
通过公式
获取当前事件队列长度,其中,LenEventQueue表示当前事件队列长度,k表示第k个时刻,n表示第n个时刻,ComingEventNumber表示当前时刻到达的事件个数,MaxWaitTime表示前n个时刻的事件得到执行的最大等待时间,TimeofWindow表示计算间隔。
通过公式
当前事件队列长度进行加权平均滤波,获取更新后的当前事件长度,在更新后的事件队列长度下进行功能块执行调度,其中,LenEventQueue’表示更新后的当前事件长度,λk表示第k个加权系数,Lenk表示第k个时刻的当前事件队列长度。
以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (10)
1.一种IEC61499的功能块执行调度方法,其特征在于,应用于工业场景下的流程工业的先进控制系统,所述IEC61499的功能块的执行控制图包括初始状态、状态切换、当前状态、动作,动作包括动作对应的算法和动作触发的事件,所述方法包括:
步骤一:获取先进控制系统的工艺数据变化和控制周期作为触发动作事件,在执行控制图的事件和动作中增加统一的优先级,在动作中增加最大执行时间和是否可中断属性;
步骤二:按照事件和动作的优先级,调度动作的执行和终止;
步骤三:根据IEC61499的功能块的计算资源以及动作的耗时程度,动态调整事件队列的长度,优化计算资源分配。
2.根据权利要求1所述的一种IEC61499的功能块执行调度方法,其特征在于,相同优先级的事件队列按照发生事件的时间戳或者到达功能块的时间戳进行二次排序。
3.根据权利要求1所述的一种IEC61499的功能块执行调度方法,其特征在于,还包括调度算法模块,调度算法模块以线程的形式监视计算资源的内存情况和动作的执行时间。
4.根据权利要求1所述的一种IEC61499的功能块执行调度方法,其特征在于,所述步骤二包括:
步骤201:按照事件队列的顺序,执行优先级最高的事件,对与优先级最高的事件相关的输入数据进行采样,当符合状态机状态切换条件时,进行状态切换,执行状态对应的动作,此时状态对应的动作的优先级与状态切换的优先级一致;
步骤202:如果IEC61499的功能块正在执行状态的动作对应的算法并且未执行结束,同时,事件队列中有新的事件,并且该事件触发了状态切换条件,此时如果状态切换的优先级高于动作的优先级,则动作对应的算法退出;如果状态切换的优先级低于动作的优先级,则动作对应的算法继续执行,事件在队列中等待;
步骤203:如果状态切换的优先级等于动作对应的算法的优先级,则通过动作对应的算法是否可中断属性判断,如果是可中断,则动作对应的算法退出,执行状态切换;如果是不可中断,则动作对应的算法继续执行,事件在队列中等待。
7.一种IEC61499的功能块执行调度装置,其特征在于,应用于工业场景下的流程工业的先进控制系统,所述IEC61499的功能块的执行控制图包括初始状态、状态切换、当前状态、动作,动作包括动作对应的算法和动作触发的事件,所述装置包括:
预处理模块,用于获取先进控制系统的工艺数据变化和控制周期作为触发动作事件,在执行控制图的事件和动作中增加统一的优先级,在动作中增加最大执行时间和是否可中断属性;
调度模块,用于按照事件和动作的优先级,调度动作的执行和终止;
资源优化模块,用于根据IEC61499的功能块的计算资源以及动作的耗时程度,动态调整事件队列的长度,优化计算资源分配。
8.根据权利要求7所述的一种IEC61499的功能块执行调度装置,其特征在于,相同优先级的事件队列按照发生事件的时间戳或者到达功能块的时间戳进行二次排序。
9.根据权利要求7所述的一种IEC61499的功能块执行调度装置,其特征在于,还包括调度算法模块,调度算法模块以线程的形式监视计算资源的内存情况和动作的执行时间,为动态调整事件队列收集数据。
10.根据权利要求7所述的一种IEC61499的功能块执行调度装置,其特征在于,所述调度模块还用于:
步骤201:按照事件队列的顺序,执行优先级最高的事件,对与优先级最高的事件相关的输入数据进行采样,当符合状态机状态切换条件时,进行状态切换,执行状态对应的动作,此时状态对应的动作的优先级与状态切换的优先级一致;
步骤202:如果IEC61499的功能块正在执行状态的动作对应的算法并且未执行结束,同时,事件队列中有新的事件,并且该事件触发了状态切换条件,此时如果状态切换的优先级高于动作的优先级,则动作对应的算法退出;如果状态切换的优先级低于动作的优先级,则动作对应的算法继续执行,事件在队列中等待;
步骤203:如果状态切换的优先级等于动作对应的算法的优先级,则通过动作对应的算法是否可中断属性判断,如果是可中断,则动作对应的算法退出,执行状态切换;如果是不可中断,则动作对应的算法继续执行,事件在队列中等待。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110406390.2A CN112948097B (zh) | 2021-04-15 | 2021-04-15 | 一种iec61499的功能块执行调度方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110406390.2A CN112948097B (zh) | 2021-04-15 | 2021-04-15 | 一种iec61499的功能块执行调度方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112948097A true CN112948097A (zh) | 2021-06-11 |
CN112948097B CN112948097B (zh) | 2022-10-14 |
Family
ID=76232773
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110406390.2A Active CN112948097B (zh) | 2021-04-15 | 2021-04-15 | 一种iec61499的功能块执行调度方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112948097B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114911203A (zh) * | 2022-04-27 | 2022-08-16 | 上海交通大学 | 一种事件与时间混合驱动的分布式工业控制并发执行方法 |
CN114924849A (zh) * | 2022-04-27 | 2022-08-19 | 上海交通大学 | 一种工业控制系统高并发执行和资源调度方法及装置 |
WO2024065186A1 (en) * | 2022-09-27 | 2024-04-04 | Siemens Aktiengesellschaft | Method for scheduling function block, apparatus for scheduling function block, electronic device, and storage medium |
US12007739B2 (en) | 2020-12-10 | 2024-06-11 | Schneider Electric Industries Sas | Method and system for executing an event-oriented control program |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4272819A (en) * | 1978-03-31 | 1981-06-09 | Fujitsu Limited | Inter-subsystem direct transfer system |
US5606703A (en) * | 1995-12-06 | 1997-02-25 | International Business Machines Corporation | Interrupt protocol system and method using priority-arranged queues of interrupt status block control data structures |
US20120239372A1 (en) * | 2011-03-14 | 2012-09-20 | Nec Laboratories America, Inc. | Efficient discrete event simulation using priority queue tagging |
US20130061233A1 (en) * | 2011-09-02 | 2013-03-07 | Exludus Inc. | Efficient method for the scheduling of work loads in a multi-core computing environment |
CN105553879A (zh) * | 2015-12-18 | 2016-05-04 | 湖南大学 | 一种基于服务器的流调度方法 |
CN106156939A (zh) * | 2015-04-27 | 2016-11-23 | 上海宝信软件股份有限公司 | 基于作业流的分布式调度系统及应用方法 |
US20190041830A1 (en) * | 2017-11-16 | 2019-02-07 | Intel Corporation | Self-descriptive orchestratable modules in software-defined industrial systems |
CN111611029A (zh) * | 2019-02-25 | 2020-09-01 | 中国科学院沈阳自动化研究所 | 一种计算时序确定的iec 61499功能块建模方法 |
CN112286671A (zh) * | 2020-12-29 | 2021-01-29 | 湖南星河云程信息科技有限公司 | 一种容器化批处理作业调度方法、装置和计算机设备 |
-
2021
- 2021-04-15 CN CN202110406390.2A patent/CN112948097B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4272819A (en) * | 1978-03-31 | 1981-06-09 | Fujitsu Limited | Inter-subsystem direct transfer system |
US5606703A (en) * | 1995-12-06 | 1997-02-25 | International Business Machines Corporation | Interrupt protocol system and method using priority-arranged queues of interrupt status block control data structures |
US20120239372A1 (en) * | 2011-03-14 | 2012-09-20 | Nec Laboratories America, Inc. | Efficient discrete event simulation using priority queue tagging |
US20130061233A1 (en) * | 2011-09-02 | 2013-03-07 | Exludus Inc. | Efficient method for the scheduling of work loads in a multi-core computing environment |
CN106156939A (zh) * | 2015-04-27 | 2016-11-23 | 上海宝信软件股份有限公司 | 基于作业流的分布式调度系统及应用方法 |
CN105553879A (zh) * | 2015-12-18 | 2016-05-04 | 湖南大学 | 一种基于服务器的流调度方法 |
US20190041830A1 (en) * | 2017-11-16 | 2019-02-07 | Intel Corporation | Self-descriptive orchestratable modules in software-defined industrial systems |
CN111611029A (zh) * | 2019-02-25 | 2020-09-01 | 中国科学院沈阳自动化研究所 | 一种计算时序确定的iec 61499功能块建模方法 |
CN112286671A (zh) * | 2020-12-29 | 2021-01-29 | 湖南星河云程信息科技有限公司 | 一种容器化批处理作业调度方法、装置和计算机设备 |
Non-Patent Citations (4)
Title |
---|
D. IVANOVA等: "Intelligent component based batch control using IEC61499 and ANSI/ISA S88", 《2008 4TH INTERNATIONAL IEEE CONFERENCE INTELLIGENT SYSTEMS》 * |
刘纯尧等: "信息物理融合系统的动态多优先级调度", 《计算机科学》 * |
王庆江: "一个模拟网格上并行作业调度的离散事件系统", 《小型微型计算机系统》 * |
黄雪梅: "符合IEC 61499的分布可重构STEP-NC控制器设计", 《计算机集成制造系统》 * |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US12007739B2 (en) | 2020-12-10 | 2024-06-11 | Schneider Electric Industries Sas | Method and system for executing an event-oriented control program |
CN114911203A (zh) * | 2022-04-27 | 2022-08-16 | 上海交通大学 | 一种事件与时间混合驱动的分布式工业控制并发执行方法 |
CN114924849A (zh) * | 2022-04-27 | 2022-08-19 | 上海交通大学 | 一种工业控制系统高并发执行和资源调度方法及装置 |
CN114924849B (zh) * | 2022-04-27 | 2024-06-04 | 上海交通大学 | 一种工业控制系统高并发执行和资源调度方法及装置 |
WO2024065186A1 (en) * | 2022-09-27 | 2024-04-04 | Siemens Aktiengesellschaft | Method for scheduling function block, apparatus for scheduling function block, electronic device, and storage medium |
Also Published As
Publication number | Publication date |
---|---|
CN112948097B (zh) | 2022-10-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112948097B (zh) | 一种iec61499的功能块执行调度方法及装置 | |
CN106557369B (zh) | 一种多线程的管理方法及系统 | |
CN111767134B (zh) | 一种多任务动态资源调度方法 | |
CN101452404B (zh) | 一种嵌入式操作系统的任务调度装置及方法 | |
CN102073545B (zh) | 操作系统中防止用户界面卡屏的进程调度方法及装置 | |
JPH09269903A (ja) | プロセス管理方式 | |
EP3594809A1 (en) | Control system for microkernel architecture of industrial server and industrial server comprising the same | |
KR20140057371A (ko) | 멀티 프로세서 코어 시스템 내의 프로세서 코어를 스케줄링 하기 위한 방법, 장치, 및 시스템 | |
CA2284339A1 (en) | Method for cooperative multitasking in a communications network, and a network element for carrying out the method | |
CN111897637B (zh) | 作业调度方法、装置、主机及存储介质 | |
CN111324432B (zh) | 处理器调度方法、装置、服务器及存储介质 | |
EP4361808A1 (en) | Resource scheduling method and device and computing node | |
CN111046091B (zh) | 数据交换系统的运行方法、装置及设备 | |
CN111580949B (zh) | 一种网络收包模式自动调节方法 | |
CN112130963A (zh) | 虚拟机任务的调度方法、装置、计算机设备及存储介质 | |
CN112114952A (zh) | 一种多级阈值触发传感器及多级阈值触发方法 | |
CN114185674A (zh) | 一种cpu任务实时调度方法、装置、设备及存储介质 | |
CN117675860A (zh) | 基于兰彻斯特定律的物联网数据接收高并发解决方法 | |
CN109656716B (zh) | 一种Slurm作业调度方法及系统 | |
RU2450330C2 (ru) | Аппаратно-реализуемый способ выполнения программ | |
CN112579257B (zh) | 一种虚拟中央处理器核心的调度方法、装置及相关设备 | |
CN101937371A (zh) | 一种嵌入式系统中监控任务执行状态的方法及装置 | |
CN111813531B (zh) | 一种操作系统时钟调度方法及系统 | |
CN114020440A (zh) | 多级任务分类处理方法、装置、系统和存储介质 | |
JP2667575B2 (ja) | タスクスケジューリング方式 |
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 |