CN109858721B - 一种控制计算策略生成方法以及*** - Google Patents
一种控制计算策略生成方法以及*** Download PDFInfo
- Publication number
- CN109858721B CN109858721B CN201711241168.1A CN201711241168A CN109858721B CN 109858721 B CN109858721 B CN 109858721B CN 201711241168 A CN201711241168 A CN 201711241168A CN 109858721 B CN109858721 B CN 109858721B
- Authority
- CN
- China
- Prior art keywords
- array
- function
- function block
- function blocks
- path
- 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
Landscapes
- Programmable Controllers (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
一种控制计算策略生成方法以及***,方法包括:从集合中依次取出各个未确定执行顺序的功能块,针对每次取出的功能块:将取出的功能块以及所有与其直接或间接连接的功能块整合在临时集合中,如果临时集合中的功能块配置了自定义顺序,则根据功能块的自定义顺序确定功能块的执行顺序,否则从临时集合中依次取出第一个功能块X直至临时集合为空,针对每次取出的功能块X,如果功能块X上游相邻的功能块都已经确定执行顺序,则直接设定功能块X的执行顺序,否则根据功能块X的上游相邻的功能块的执行顺序确定情况判断是否存在环路,针对有无环路的情形分别确定执行顺序。因此本发明适应自定义计算顺序和自动确定顺序两种情况,此外处理了环路的情况。
Description
技术领域
本发明涉及核电仿真技术领域,尤其涉及一种控制计算策略生成方法。
背景技术
在核电站生产运行过程中,需要控制***对生产过程进行控制。控制的执行方法一般是由运算处理装置输出控制指令并输入到各种不同的执行机构来作用于被控对象的可操作部分和可调节部分。控制指令可用于对被控对象进行连续调节或用于改变被控对象的状态或工况。
控制***其实从20世纪40年代就开始使用了,早期的现场基地式仪表和后期的继电器构成了控制***的前身。以PLC和DCS为代表,从70年开始应用以来,在核电工业过程控制中获得迅猛的发展。在控制***中需要构建相应的控制方案。控制方案的具体实现由运行于控制器的软件完成。当前,国内外主流的控制***厂商,在他们推出的控制***中纷纷采纳了IEC61131-3标准中规定的语言进行控制方案描述。其中用的比较多的就是功能块图FBD(Function Block Diagram)。FBD是一种图形化的控制编程语言,它通过调用函数、功能块来实现程序功能。块与块之间采用连线建立逻辑连接。采用仿真支撑平台进行FBD算法的仿真时,需要识别控制算法的结构和执行顺序。控制算法的计算结果与执行顺序存在很大的关联关系。仿真平台需要动态识别FBD算法的执行顺序。
对DCS控制逻辑或PLC等控制逻辑进行仿真时,需要对其控制算法进行解析。整个控制***一般包含了一个或多个控制站,每个控制站中包含了一个或多个FBD控制流程图。每张流程图中包含了一个或多个控制功能块与连接线。一般控制逻辑的计算采用从上到下、按信号流方向来实现计算顺序的确定。但也有特殊的情况需要处理:控制站之间是并行计算的,但是仿真计算是顺序执行的;控制***允许自定义控制算法的计算顺序;控制***中存在环路的情况,即信息流从功能A开始,经过多个功能块传递后,最后又传到了功能块A。在对控制***的控制逻辑进行仿真时,如何确定控制逻辑计算顺序的问题,同时需要解决自定义控制顺序确定,以及控制***中的环路的处理,成为急需解决的技术问题。
发明内容
本发明要解决的技术问题在于,针对现有技术的上述缺陷,提供一种控制计算策略生成方法以及***。
本发明解决其技术问题所采用的技术方案是:构造一种控制计算策略生成方法,包括:
识别步骤,对各个功能块的配置信息进行识别;
合并步骤,根据识别结果,将所有的功能块整合到一个集合中,并确定集合中各个功能块的邻接信息;
定序步骤,从集合中依次取出各个未确定执行顺序的功能块,针对每次取出的功能块执行如下操作:将取出的功能块以及所有与其直接或间接连接的功能块整合在临时集合中,如果临时集合中的功能块配置了自定义顺序,则根据功能块的自定义顺序确定功能块的执行顺序,否则从临时集合中依次取出第一个功能块X直至临时集合为空,针对每次取出的功能块X,如果功能块X上游相邻的功能块都已经确定执行顺序,则直接设定功能块X的执行顺序,否则根据功能块X的上游相邻的功能块的执行顺序确定情况判断是否存在环路,针对有无环路的情形分别确定执行顺序。
在本发明所述的控制计算策略生成方法中,识别步骤具体包括:将功能块按控制站顺序、页面顺序和页面内部排列顺序进行识别,识别功能块的属性,包含功能块的流水号、功能块的类型、自定义执行顺序以及连接类型的功能块的起始功能块和结束功能块信息。
在本发明所述的控制计算策略生成方法中,合并步骤具体包括:根据识别结果,将所有的功能块整合到数组V中,并针对每个节点类型的功能块,将与其相邻的功能块记录到表格A,将通过连接线输出变量至其的功能块记录到表格F中。
在本发明所述的控制计算策略生成方法中,定序步骤具体包括:
循环执行如下步骤a)-步骤g)直至数组V为空;
a)、从数组V中取第一个功能块Nijk,并将其从数组V中删除;
b)、如果功能块Nijk为节点类型的功能块且执行顺序未确定,则将功能块Nijk放入数组PATH_ARRAY中,否则返回步骤a);
c)将功能块Nijk的表格A中记录的所有功能块添加到数组PATH_ARRAY中;
d)遍历数组PATH_ARRAY,将数组PATH_ARRAY中的所有功能块的表格A中的所有功能块添加到数组PATH_ARRAY中,直到数组PATH_ARRAY中的功能块个数不再增加为止;
e)如果数组PATH_ARRAY中存在配置了自定义顺序的功能块,则执行步骤f),否则执行步骤g);
f)针对数组PATH_ARRAY中的每个功能块,将其自定义顺序加上数值NUMBER后作为其执行顺序,再将NUMBER的数值加上数组PATH_ARRAY中功能块的个数,并将数组PATH_ARRAY中的功能块按执行顺序的大小顺序放入数组ORDER_ARRAY中,最后清空数组PATH_ARRAY,继续执行步骤a);
g)从数组PATH_ARRAY中依次取出第一个功能块X直至数组PATH_ARRAY为空,针对每次取出的功能块X,如果功能块X上游的与其直接相邻的功能块都已经确定执行顺序,则直接设定功能块X的执行顺序,否则根据功能块X的表格F中功能块的执行顺序确定情况判断是否存在环路,针对有无环路的情形分别确定执行顺序。
在本发明所述的控制计算策略生成方法中,步骤g)具体包括:
g1)、取数组PATH_ARRAY第一个功能块X,如果功能块X的表格F中所有的功能块都已经确定执行顺序,则执行步骤g2),如果功能块X的表格F中存在功能块尚未确定执行顺序,则执行步骤g3);
g2)、设定功能块X的执行顺序为NUMBER,并将NUMBER加1,将功能块X移入数组ORDER_ARRAY中,并在数组PATH_ARRAY中将功能块X删除,执行步骤g4);
g3)、判断数组PATH_ARRAY中是否存在其他功能块的表格F存在功能块已经确定执行顺序的情况,如果是,则判断数组PATH_ARRAY中不存在环路,将功能块X放到数组PATH_ARRAY的最末位,否则判断数组PATH_ARRAY中存在环路,将功能块X的执行顺序确定为NUMBER,并将NUMBER加1,将功能块X移入数组ORDER_ARRAY中,并在数组PATH_ARRAY中将功能块X删除;
g4)、如果数组PATH_ARRAY不为空,返回g1)。
本发明还公开了一种控制计算策略生成***,包括处理器以及存储指令的存储器,该指令可被处理器加载并执行以下步骤:
识别步骤,对各个功能块的配置信息进行识别;
合并步骤,根据识别结果,将所有的功能块整合到一个集合中,并确定集合中各个功能块的邻接信息;
定序步骤,从集合中依次取出各个未确定执行顺序的功能块,针对每次取出的功能块执行如下操作:将取出的功能块以及所有与其直接或间接连接的功能块整合在临时集合中,如果临时集合中的功能块配置了自定义顺序,则根据功能块的自定义顺序确定功能块的执行顺序,否则从临时集合中依次取出第一个功能块X直至临时集合为空,针对每次取出的功能块X,如果功能块X上游相邻的功能块都已经确定执行顺序,则直接设定功能块X的执行顺序,否则根据功能块X的上游相邻的功能块的执行顺序确定情况判断是否存在环路,针对有无环路的情形分别确定执行顺序。
在本发明所述的控制计算策略生成***中,识别步骤具体包括:将功能块按控制站顺序、页面顺序和页面内部排列顺序进行识别,识别功能块的属性,包含功能块的流水号、功能块的类型、自定义执行顺序以及连接类型的功能块的起始功能块和结束功能块信息。
在本发明所述的控制计算策略生成***中,合并步骤具体包括:根据识别结果,将所有的功能块按照流水号顺序整合到数组V中,并针对每个节点类型的功能块,将与其相邻的功能块记录到表格A,将通过连接线输出变量至其的功能块记录到表格F中。
在本发明所述的控制计算策略生成***中,定序步骤具体包括:
循环执行如下步骤a)-步骤g)直至数组V为空;
a)、从数组V中取第一个功能块Nijk,并将其从数组V中删除;
b)、如果功能块Nijk为节点类型的功能块且执行顺序未确定,则将功能块Nijk放入数组PATH_ARRAY中,否则返回步骤a);
c)将功能块Nijk的表格A中记录的所有功能块添加到数组PATH_ARRAY中;
d)遍历数组PATH_ARRAY,将数组PATH_ARRAY中的所有功能块的表格A中的所有功能块添加到数组PATH_ARRAY中,直到数组PATH_ARRAY中的功能块个数不再增加为止;
e)如果数组PATH_ARRAY中存在配置了自定义顺序的功能块,则执行步骤f),否则执行步骤g);
f)针对数组PATH_ARRAY中的每个功能块,将其自定义顺序加上数值NUMBER后作为其执行顺序,再将NUMBER的数值加上数组PATH_ARRAY中功能块的个数,并将数组PATH_ARRAY中的功能块按执行顺序的大小顺序放入数组ORDER_ARRAY中,最后清空数组PATH_ARRAY,继续执行步骤a);
g)从数组PATH_ARRAY中依次取出第一个功能块X直至数组PATH_ARRAY为空,针对每次取出的功能块X,如果功能块X上游的与其直接相邻的功能块都已经确定执行顺序,则直接设定功能块X的执行顺序,否则根据功能块X的表格F中功能块的执行顺序确定情况判断是否存在环路,针对有无环路的情形分别确定执行顺序。
在本发明所述的控制计算策略生成***中,步骤g)具体包括:
g1)、取数组PATH_ARRAY第一个功能块X,如果功能块X的表格F中所有的功能块都已经确定执行顺序,则执行步骤g2),如果功能块X的表格F中存在功能块尚未确定执行顺序,则执行步骤g3);
g2)、设定功能块X的执行顺序为NUMBER,并将NUMBER加1,将功能块X移入数组ORDER_ARRAY中,并在数组PATH_ARRAY中将功能块X删除,执行步骤g4);
g3)、判断数组PATH_ARRAY中是否存在其他功能块的表格F存在功能块已经确定执行顺序的情况,如果是,则判断数组PATH_ARRAY中不存在环路,将功能块X放到数组PATH_ARRAY的最末位,否则判断数组PATH_ARRAY中存在环路,将功能块X的执行顺序确定为NUMBER,并将NUMBER加1,将功能块X移入数组ORDER_ARRAY中,并在数组PATH_ARRAY中将功能块X删除;
g4)、如果数组PATH_ARRAY不为空,返回g1)。
实施本发明的控制计算策略生成方法以及***,具有以下有益效果:本发明可适应自定义计算顺序和自动确定顺序两种情况,此外本发明处理了环路的情况。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图:
图1是本发明较佳实施例提供的控制计算策略生成方法的流程图。
具体实施方式
为了便于理解本发明,下面将参照相关附图对本发明进行更全面的描述。附图中给出了本发明的典型实施例。但是,本发明可以以许多不同的形式来实现,并不限于本文所描述的实施例。相反地,提供这些实施例的目的是使对本发明的公开内容更加透彻全面。
除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。本文中在本发明的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本发明。
为了更好的理解本发明的技术方案,下面将结合说明书附图以及具体的实施方式对本发明的技术方案进行详细的说明,应当理解本发明实施例以及实施例中的具体特征是对本申请技术方案的详细的说明,而不是对本申请技术方案的限定,在不冲突的情况下,本发明实施例以及实施例中的技术特征可以相互组合。
在介绍较佳实施例之前,首先对本发明定义的基本概念进行阐述。
一套控制方案中包含n个控制站,一般分别命名为S1到Sn。其中1到n为控制站编号。
每个控制站包含多个控制页面,一般分别命名为Pij,其中i是控制站编号,j是页面编号。
每个页面中包含多个功能块,一般命名为Nijk,其中i是控制站编号,j是页面编号,k是功能块编号。
每个功能块包含相应的配置信息Cijk,其中i是控制站编号,j是页面编号,k是功能块编号。配置信息具体包括:
1)Cijk(N),表示功能块的流水号;
2)功能块包含两种类型,用Cijk(T)表示。Cijk(T)为真表示是结点类型,代表一个算法块;Cijk(T)为假则代表是连接类型,代表一条连接线。
3)连接类型的功能块包含额外的连接属性,用Cijk(B)和Cijk(E)表示。其中Cijk(B)表示连接的起始功能块,Cijk(E)表示结束功能块。Cijk(B)和Cijk(E)必须指向结点类型的功能块。
4)功能块自定义执行顺序,如果Cijk(R)不为0,则代表其定义了自定义执行顺序。其中Cijk(R)从1开始计数,代表功能块在页面中的计算顺序。
5)每个结点类型的功能块包含三个表格,分别为表格A、F、T,三个表格初始为空。
6)每个功能块包含执行顺序属性Cijk(C),默认值为0。
本发明的控制计算策略生成方法主要分为识别步骤、合并步骤、定序步骤。下面对这三个步骤进行详细说明。
识别步骤,对各个功能块的配置信息进行识别,具体包括:将功能块按控制站顺序、页面顺序和页面内部排列顺序进行识别,识别功能块的属性,包含功能块的流水号、功能块的类型、自定义执行顺序以及连接类型的功能块的起始功能块和结束功能块信息。
合并步骤,根据识别结果,将所有的功能块整合到一个集合中,并确定集合中各个功能块的邻接信息。具体包括:根据识别结果,按照功能块的Cijk(N)属性定义的顺序,将所有的功能块整合到数组V中,并针对每个节点类型的功能块,将与其相邻的功能块记录到其所对应的表格A,将通过连接线输出变量至其的功能块记录到其所对应的表格F中,将通过连接线接收其所输出的变量的功能块记录到其所对应的表格T中。
定序步骤,从集合中依次取出各个未确定执行顺序的功能块,针对每次取出的功能块执行如下操作:将取出的功能块以及所有与其直接或间接连接的功能块整合在临时集合中,如果临时集合中的功能块配置了自定义顺序,则根据功能块的自定义顺序确定功能块的执行顺序,否则从临时集合中依次取出第一个功能块X直至临时集合为空,针对每次取出的功能块X,如果功能块X上游相邻的功能块都已经确定执行顺序,则直接设定功能块X的执行顺序,否则根据功能块X的上游相邻的功能块的执行顺序确定情况判断是否存在环路,针对有无环路的情形分别确定执行顺序。
下面结合图1,对定序步骤进行详细说明。
较佳实施例的定序步骤,具体包括:建立数组ORDER_ARRAY,用于保存所有功能块执行顺序,确定全局计算顺序计数器NUMBER,NUMBER起始为0,建立数组PATH_ARRAY,作为临时存储空间,然后循环执行如下步骤a)-步骤g)直至数组V为空;
a)、从数组V中取第一个功能块Nijk,并将其从数组V中删除;
b)、如果功能块Nijk为节点类型的功能块且执行顺序未确定,即如果Cijk(T)为真并且Cijk(C)为0,则将功能块Nijk放入数组PATH_ARRAY中,否则返回步骤a);
c)将功能块Nijk的表格A中记录的所有功能块添加到数组PATH_ARRAY中;
d)遍历数组PATH_ARRAY,将数组PATH_ARRAY中的所有功能块的表格A中的所有功能块添加到数组PATH_ARRAY中,直到数组PATH_ARRAY中的功能块个数不再增加为止;
e)如果数组PATH_ARRAY中存在配置了自定义顺序的功能块,即存在功能块的Cijk(R)属性不为0,则证明该数组PATH_ARRAY中所有功能块的Cijk(R)属性均不为0,执行步骤f),否则(即数组PATH_ARRAY中所有功能块的Cijk(R)属性为0),执行步骤g);
f)针对数组PATH_ARRAY中的每个功能块,将其自定义顺序加上数值NUMBER后作为其执行顺序,即Cijk(C)=Cijk(R)+NUMBER,再将NUMBER的数值加上数组PATH_ARRAY中功能块的个数,并将数组PATH_ARRAY中的功能块按执行顺序的大小顺序放入数组ORDER_ARRAY中,最后清空数组PATH_ARRAY,继续执行步骤a);
g)从数组PATH_ARRAY中依次取出第一个功能块X直至数组PATH_ARRAY为空,针对每次取出的功能块X,如果功能块X上游的与其直接相邻的功能块都已经确定执行顺序,则直接设定功能块X的执行顺序,否则根据功能块X的表格F中功能块的执行顺序确定情况判断是否存在环路,针对有无环路的情形分别确定执行顺序。
其中,步骤g)具体包括:
g1)、取数组PATH_ARRAY第一个功能块X,如果功能块X的表格F中所有的功能块都已经确定执行顺序,则执行步骤g2),如果功能块X的表格F中存在功能块尚未确定执行顺序,则执行步骤g3);
g2)、设定功能块X的执行顺序为NUMBER,即Cijk(C)=NUMBER,并将NUMBER加1,将功能块X移入数组ORDER_ARRAY中,并在数组PATH_ARRAY中将功能块X删除,执行步骤g4);
g3)、判断数组PATH_ARRAY中是否存在其他功能块的表格F存在功能块已经确定执行顺序的情况,如果是,则判断数组PATH_ARRAY中不存在环路,将功能块X放到数组PATH_ARRAY的最末位,否则判断数组PATH_ARRAY中存在环路,将功能块X的执行顺序确定为NUMBER,即Cijk(C)=NUMBER,并将NUMBER加1,将功能块X移入数组ORDER_ARRAY中,并在数组PATH_ARRAY中将功能块X删除;
g4)、如果数组PATH_ARRAY不为空,返回g1)。
定序步骤完成后,***即可按照数组ORDER_ARRAY中的顺序,周期性调用功能块计算功能。
基于同一发明构思,本发明还公开了一种控制计算策略生成***,***包括处理器以及存储指令的存储器,该指令可被处理器加载并执行以下步骤:
识别步骤,对各个功能块的配置信息进行识别;
合并步骤,根据识别结果,将所有的功能块整合到一个集合中,并确定集合中各个功能块的邻接信息;
定序步骤,从集合中依次取出各个未确定执行顺序的功能块,针对每次取出的功能块执行如下操作:将取出的功能块以及所有与其直接或间接连接的功能块整合在临时集合中,如果临时集合中的功能块配置了自定义顺序,则根据功能块的自定义顺序确定功能块的执行顺序,否则从临时集合中依次取出第一个功能块X直至临时集合为空,针对每次取出的功能块X,如果功能块X上游相邻的功能块都已经确定执行顺序,则直接设定功能块X的执行顺序,否则根据功能块X的上游相邻的功能块的执行顺序确定情况判断是否存在环路,针对有无环路的情形分别确定执行顺序。
其中,识别步骤具体包括:将功能块按控制站顺序、页面顺序和页面内部排列顺序进行识别,识别功能块的属性,包含功能块的流水号、功能块的类型、自定义执行顺序以及连接类型的功能块的起始功能块和结束功能块信息。
其中,合并步骤具体包括:根据识别结果,将所有的功能块按照流水号顺序整合到数组V中,并针对每个节点类型的功能块,将与其相邻的功能块记录到表格A,将通过连接线输出变量至其的功能块记录到表格F中。
其中,定序步骤具体包括:
循环执行如下步骤a)-步骤g)直至数组V为空;
a)、从数组V中取第一个功能块Nijk,并将其从数组V中删除;
b)、如果功能块Nijk为节点类型的功能块且执行顺序未确定,则将功能块Nijk放入数组PATH_ARRAY中,否则返回步骤a);
c)将功能块Nijk的表格A中记录的所有功能块添加到数组PATH_ARRAY中;
d)遍历数组PATH_ARRAY,将数组PATH_ARRAY中的所有功能块的表格A中的所有功能块添加到数组PATH_ARRAY中,直到数组PATH_ARRAY中的功能块个数不再增加为止;
e)如果数组PATH_ARRAY中存在配置了自定义顺序的功能块,则执行步骤f),否则执行步骤g);
f)针对数组PATH_ARRAY中的每个功能块,将其自定义顺序加上数值NUMBER后作为其执行顺序,再将NUMBER的数值加上数组PATH_ARRAY中功能块的个数,并将数组PATH_ARRAY中的功能块按执行顺序的大小顺序放入数组ORDER_ARRAY中,最后清空数组PATH_ARRAY,继续执行步骤a);
g)从数组PATH_ARRAY中依次取出第一个功能块X直至数组PATH_ARRAY为空,针对每次取出的功能块X,如果功能块X上游的与其直接相邻的功能块都已经确定执行顺序,则直接设定功能块X的执行顺序,否则根据功能块X的表格F中功能块的执行顺序确定情况判断是否存在环路,针对有无环路的情形分别确定执行顺序。
其中,步骤g)具体包括:
g1)、取数组PATH_ARRAY第一个功能块X,如果功能块X的表格F中所有的功能块都已经确定执行顺序,则执行步骤g2),如果功能块X的表格F中存在功能块尚未确定执行顺序,则执行步骤g3);
g2)、设定功能块X的执行顺序为NUMBER,并将NUMBER加1,将功能块X移入数组ORDER_ARRAY中,并在数组PATH_ARRAY中将功能块X删除,执行步骤g4);
g3)、判断数组PATH_ARRAY中是否存在其他功能块的表格F存在功能块已经确定执行顺序的情况,如果是,则判断数组PATH_ARRAY中不存在环路,将功能块X放到数组PATH_ARRAY的最末位,否则判断数组PATH_ARRAY中存在环路,将功能块X的执行顺序确定为NUMBER,并将NUMBER加1,将功能块X移入数组ORDER_ARRAY中,并在数组PATH_ARRAY中将功能块X删除;
g4)、如果数组PATH_ARRAY不为空,返回g1)。
综上所述,实施本发明的控制计算策略生成方法以及***,具有以下有益效果:本发明可适应自定义计算顺序和自动确定顺序两种情况,此外本发明处理了环路的情况。
上面结合附图对本发明的实施例进行了描述,但是本发明并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本发明的启示下,在不脱离本发明宗旨和权利要求所保护的范围情况下,还可做出很多形式,这些均属于本发明的保护之内。
Claims (10)
1.一种控制计算策略生成方法,用于核电仿真,其特征在于,包括:
识别步骤,对各个功能块的配置信息进行识别;
合并步骤,根据识别结果,将所有的功能块整合到一个集合中,并确定集合中各个功能块的邻接信息;
定序步骤,从集合中依次取出各个未确定执行顺序的功能块,针对每次取出的功能块执行如下操作:将取出的功能块以及所有与其直接或间接连接的功能块整合在临时集合中,如果临时集合中的功能块配置了自定义顺序,则根据功能块的自定义顺序确定功能块的执行顺序,否则从临时集合中依次取出第一个功能块X直至临时集合为空,针对每次取出的功能块X,如果功能块X上游相邻的功能块都已经确定执行顺序,则直接设定功能块X的执行顺序,否则根据功能块X的上游相邻的功能块的执行顺序确定情况判断是否存在环路,针对有无环路的情形分别确定执行顺序。
2.根据权利要求1所述的控制计算策略生成方法,其特征在于,识别步骤具体包括:将功能块按控制站顺序、页面顺序和页面内部排列顺序进行识别,识别功能块的属性,包含功能块的流水号、功能块的类型、自定义执行顺序以及连接类型的功能块的起始功能块和结束功能块信息。
3.根据权利要求1所述的控制计算策略生成方法,其特征在于,合并步骤具体包括:根据识别结果,将所有的功能块按照流水号顺序整合到数组V中,并针对每个节点类型的功能块,将与其相邻的功能块记录到表格A,将通过连接线输出变量至其的功能块记录到表格F中。
4.根据权利要求3所述的控制计算策略生成方法,其特征在于,定序步骤具体包括:
循环执行如下步骤a)-步骤g)直至数组V为空;
a)、从数组V中取第一个功能块Nijk,并将其从数组V中删除;
b)、如果功能块Nijk为节点类型的功能块且执行顺序未确定,则将功能块Nijk放入数组PATH_ARRAY中,否则返回步骤a);
c)将功能块Nijk的表格A中记录的所有功能块添加到数组PATH_ARRAY中;
d)遍历数组PATH_ARRAY,将数组PATH_ARRAY中的所有功能块的表格A中的所有功能块添加到数组PATH_ARRAY中,直到数组PATH_ARRAY中的功能块个数不再增加为止;
e)如果数组PATH_ARRAY中存在配置了自定义顺序的功能块,则执行步骤f),否则执行步骤g);
f)针对数组PATH_ARRAY中的每个功能块,将其自定义顺序加上数值NUMBER后作为其执行顺序,再将NUMBER的数值加上数组PATH_ARRAY中功能块的个数,并将数组PATH_ARRAY中的功能块按执行顺序的大小顺序放入数组ORDER_ARRAY中,最后清空数组PATH_ARRAY,继续执行步骤a);
g)从数组PATH_ARRAY中依次取出第一个功能块X直至数组PATH_ARRAY为空,针对每次取出的功能块X,如果功能块X上游的与其直接相邻的功能块都已经确定执行顺序,则直接设定功能块X的执行顺序,否则根据功能块X的表格F中功能块的执行顺序确定情况判断是否存在环路,针对有无环路的情形分别确定执行顺序。
5.根据权利要求4所述的控制计算策略生成方法,其特征在于,步骤g)具体包括:
g1)、取数组PATH_ARRAY第一个功能块X,如果功能块X的表格F中所有的功能块都已经确定执行顺序,则执行步骤g2),如果功能块X的表格F中存在功能块尚未确定执行顺序,则执行步骤g3);
g2)、设定功能块X的执行顺序为NUMBER,并将NUMBER加1,将功能块X移入数组ORDER_ARRAY中,并在数组PATH_ARRAY中将功能块X删除,执行步骤g4);
g3)、判断数组PATH_ARRAY中是否存在其他功能块的表格F存在功能块已经确定执行顺序的情况,如果是,则判断数组PATH_ARRAY中不存在环路,将功能块X放到数组PATH_ARRAY的最末位,否则判断数组PATH_ARRAY中存在环路,将功能块X的执行顺序确定为NUMBER,并将NUMBER加1,将功能块X移入数组ORDER_ARRAY中,并在数组PATH_ARRAY中将功能块X删除;
g4)、如果数组PATH_ARRAY不为空,返回g1)。
6.一种控制计算策略生成***,用于核电仿真,其特征在于,包括处理器以及存储指令的存储器,该指令可被处理器加载并执行以下步骤:
识别步骤,对各个功能块的配置信息进行识别;
合并步骤,根据识别结果,将所有的功能块整合到一个集合中,并确定集合中各个功能块的邻接信息;
定序步骤,从集合中依次取出各个未确定执行顺序的功能块,针对每次取出的功能块执行如下操作:将取出的功能块以及所有与其直接或间接连接的功能块整合在临时集合中,如果临时集合中的功能块配置了自定义顺序,则根据功能块的自定义顺序确定功能块的执行顺序,否则从临时集合中依次取出第一个功能块X直至临时集合为空,针对每次取出的功能块X,如果功能块X上游相邻的功能块都已经确定执行顺序,则直接设定功能块X的执行顺序,否则根据功能块X的上游相邻的功能块的执行顺序确定情况判断是否存在环路,针对有无环路的情形分别确定执行顺序。
7.根据权利要求6所述的控制计算策略生成***,其特征在于,识别步骤具体包括:将功能块按控制站顺序、页面顺序和页面内部排列顺序进行识别,识别功能块的属性,包含功能块的流水号、功能块的类型、自定义执行顺序以及连接类型的功能块的起始功能块和结束功能块信息。
8.根据权利要求6所述的控制计算策略生成***,其特征在于,合并步骤具体包括:根据识别结果,将所有的功能块按照流水号顺序整合到数组V中,并针对每个节点类型的功能块,将与其相邻的功能块记录到表格A,将通过连接线输出变量至其的功能块记录到表格F中。
9.根据权利要求8所述的控制计算策略生成***,其特征在于,定序步骤具体包括:
循环执行如下步骤a)-步骤g)直至数组V为空;
a)、从数组V中取第一个功能块Nijk,并将其从数组V中删除;
b)、如果功能块Nijk为节点类型的功能块且执行顺序未确定,则将功能块Nijk放入数组PATH_ARRAY中,否则返回步骤a);
c)将功能块Nijk的表格A中记录的所有功能块添加到数组PATH_ARRAY中;
d)遍历数组PATH_ARRAY,将数组PATH_ARRAY中的所有功能块的表格A中的所有功能块添加到数组PATH_ARRAY中,直到数组PATH_ARRAY中的功能块个数不再增加为止;
e)如果数组PATH_ARRAY中存在配置了自定义顺序的功能块,则执行步骤f),否则执行步骤g);
f)针对数组PATH_ARRAY中的每个功能块,将其自定义顺序加上数值NUMBER后作为其执行顺序,再将NUMBER的数值加上数组PATH_ARRAY中功能块的个数,并将数组PATH_ARRAY中的功能块按执行顺序的大小顺序放入数组ORDER_ARRAY中,最后清空数组PATH_ARRAY,继续执行步骤a);
g)从数组PATH_ARRAY中依次取出第一个功能块X直至数组PATH_ARRAY为空,针对每次取出的功能块X,如果功能块X上游的与其直接相邻的功能块都已经确定执行顺序,则直接设定功能块X的执行顺序,否则根据功能块X的表格F中功能块的执行顺序确定情况判断是否存在环路,针对有无环路的情形分别确定执行顺序。
10.根据权利要求9所述的控制计算策略生成***,其特征在于,步骤g)具体包括:
g1)、取数组PATH_ARRAY第一个功能块X,如果功能块X的表格F中所有的功能块都已经确定执行顺序,则执行步骤g2),如果功能块X的表格F中存在功能块尚未确定执行顺序,则执行步骤g3);
g2)、设定功能块X的执行顺序为NUMBER,并将NUMBER加1,将功能块X移入数组ORDER_ARRAY中,并在数组PATH_ARRAY中将功能块X删除,执行步骤g4);
g3)、判断数组PATH_ARRAY中是否存在其他功能块的表格F存在功能块已经确定执行顺序的情况,如果是,则判断数组PATH_ARRAY中不存在环路,将功能块X放到数组PATH_ARRAY的最末位,否则判断数组PATH_ARRAY中存在环路,将功能块X的执行顺序确定为NUMBER,并将NUMBER加1,将功能块X移入数组ORDER_ARRAY中,并在数组PATH_ARRAY中将功能块X删除;
g4)、如果数组PATH_ARRAY不为空,返回g1)。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711241168.1A CN109858721B (zh) | 2017-11-30 | 2017-11-30 | 一种控制计算策略生成方法以及*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711241168.1A CN109858721B (zh) | 2017-11-30 | 2017-11-30 | 一种控制计算策略生成方法以及*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109858721A CN109858721A (zh) | 2019-06-07 |
CN109858721B true CN109858721B (zh) | 2023-01-06 |
Family
ID=66888504
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711241168.1A Active CN109858721B (zh) | 2017-11-30 | 2017-11-30 | 一种控制计算策略生成方法以及*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109858721B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110928602B (zh) * | 2019-12-06 | 2022-09-20 | 浙江中控技术股份有限公司 | Fbd程序的运行方法及装置 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7200448B2 (en) * | 2001-11-27 | 2007-04-03 | Rockwell Automation Technologies, Inc. | System and method for function block execution order generation |
US7822495B2 (en) * | 2002-04-15 | 2010-10-26 | Fisher-Rosemount Systems, Inc. | Custom function blocks for use with process control systems |
CN102608934B (zh) * | 2012-02-08 | 2014-06-04 | 浙江中控技术股份有限公司 | 基于信息流的功能块排序方法 |
US9086688B2 (en) * | 2013-07-09 | 2015-07-21 | Fisher-Rosemount Systems, Inc. | State machine function block with user-definable actions on a transition between states |
CN104503338B (zh) * | 2014-12-30 | 2017-07-11 | 浙江中控技术股份有限公司 | 一种功能块排序执行方法及装置 |
CN104598205A (zh) * | 2015-02-26 | 2015-05-06 | 华北电力大学(保定) | 一种功能块图数据流的排序***及方法 |
-
2017
- 2017-11-30 CN CN201711241168.1A patent/CN109858721B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN109858721A (zh) | 2019-06-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10338963B2 (en) | System and method of schedule validation and optimization of machine learning flows for cloud computing | |
CN103180789B (zh) | 日志设定装置、日志设定方法 | |
CN104007954B (zh) | 处理器和用于处理器的控制方法 | |
CN103559071A (zh) | 一种核电仿真***集成工程分析软件的方法和核电仿真*** | |
CN109858721B (zh) | 一种控制计算策略生成方法以及*** | |
CN109308213B (zh) | 基于改进任务调度机制的多任务断点调试方法 | |
WO2016107299A1 (zh) | 一种状态机的合并方法和装置 | |
ZA200506289B (en) | Method for determining the processing sequence of function blocks of an automated system and corresponding automated system | |
CN110825433B (zh) | 一种边缘控制设备设计方法 | |
CN104281604A (zh) | 生成Targetlink数据字典分层树的方法和*** | |
JP7338922B2 (ja) | 異種埋め込み型の表形式化動作プロセスの処理および実行方法および装置 | |
CN109492086A (zh) | 一种答案输出方法、装置、电子设备及存储介质 | |
EP1710706B1 (en) | An overlapping command committing method for a dynamic cycle pipeline | |
CN114115023A (zh) | 一种实现avc组态文件的识别和运行的方法 | |
CN113359530A (zh) | 一种顺序控制方法及装置 | |
CN110737465B (zh) | 一种函数调用路径获取的方法和相关装置 | |
CN112270142B (zh) | 一种面向人机交互的流场可视化管线动态构建方法及装置 | |
CN107221067A (zh) | 一种流水号存取控制方法及*** | |
CN111488270B (zh) | 机器人离线程序的干涉区指令检测方法、***及存储介质 | |
JPS63318605A (ja) | Ncパ−トプログラム生成装置 | |
JPS5846439A (ja) | 計算機のプログラム編集方法 | |
CN105786583A (zh) | 对基于矩阵的分布式编程语言进行自动优化的方法 | |
JP2515719B2 (ja) | 設備群制御方法 | |
KR100423742B1 (ko) | 순차기능챠트에 의한 전용 제어 시스템 | |
CN104572028A (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 |