CN108228409A - 一种基于信号流的算法执行顺序生成方法 - Google Patents
一种基于信号流的算法执行顺序生成方法 Download PDFInfo
- Publication number
- CN108228409A CN108228409A CN201711484181.XA CN201711484181A CN108228409A CN 108228409 A CN108228409 A CN 108228409A CN 201711484181 A CN201711484181 A CN 201711484181A CN 108228409 A CN108228409 A CN 108228409A
- Authority
- CN
- China
- Prior art keywords
- algorithm
- vertex
- control logic
- connecting line
- signal stream
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/28—Error detection; Error correction; Monitoring by checking the correct order of processing
Abstract
本发明公开了一种基于信号流的算法执行顺序生成方法,包括以下步骤:S1、设计控制策略,使用算法图元,绘制控制逻辑图;S2、遍历控制逻辑图,提取并存储控制逻辑图的算法信息、连接线信息和拓扑关系;S3、将控制逻辑图的拓扑关系保存为有向图形式;S4、检测控制逻辑图中是否存在环路,如果存在环路,执行解环算法,否则,执行步骤S5;S5、执行拓扑排序算法,生成算法执行顺序;本发明采用有向图的深度优先搜索算法和拓扑排序算法,实现了基于信号流的算法执行顺序的自动生成,提高了工程师的工作效率。
Description
技术领域
本发明涉及一种基于信号流的算法执行顺序生成方法,属于工业过程控制领域。
背景技术
算法执行顺序是算法的属性之一,表示该算法在控制逻辑图(SAMA图)中第几个被执行。当SAMA图被下载到控制器运行时,将按照顺序号从小到大依次执行对应的算法。
不合理的算法执行顺序可能导致控制策略失效,甚至造成系统停机等事故,因此,正确地配置算法执行顺序是控制逻辑组态的重要步骤。
目前,控制逻辑算法执行顺序生成的规则主要有:
1、根据算法被添加到SAMA图中的顺序,第几个被添加其执行顺序就是几。这种方法不准确,需要工程师在算法执行顺序对话框中手动调整;
2、根据算法在SAMA中的物理位置,从左上到右下,依次计算。这种方法需要在SAMA图绘制完成后,拖放一些算法的位置,从而得到正确的执行顺序;
上述方法存在的主要问题是SAMA图绘制完成后,需要工程师对算法执行顺序进行确认和调整,工作量大,效率低。
发明内容
为了解决上述技术问题,本发明提供了一种基于信号流的算法执行顺序生成方法,能够根据控制策略执行时的信号流向,快速生成算法执行顺序,提高工程师的工作效率。
本发明技术方案如下:
一种基于信号流的算法执行顺序生成方法,包括以下步骤:
S1、设计控制策略,使用算法图元,绘制控制逻辑图;
S2、遍历控制逻辑图,提取并存储控制逻辑图的算法信息、连接线信息和拓扑关系;
S3、将控制逻辑图的拓扑关系保存为有向图形式;
S4、检测控制逻辑图中是否存在环路,如果存在环路,执行解环算法,否则,执行步骤S5;
S5、执行拓扑排序算法,生成算法执行顺序。
基于信号流的算法包括输入算法、输出算法和中间处理算法;
算法信息包括算法名称、算法索引号和算法坐标;
连接线包括普通线和跟踪线;
连接线信息包括:连接线两端算法索引号和连接线两端所连接的算法管脚名称。
控制逻辑图的算法信息和连接线信息分别存储在算法信息和连接线信息对应的链表中;
控制逻辑图的拓扑关系保存为有向图G=(V,E)的形式,其中顶点V={V1,V2,…,Vn},代表逻辑图中的所有算法,以存储算法索引号的链表表示;边E={E1,E2,…,Enn},代表逻辑图中算法之间的依赖关系,以邻接矩阵An×n的形式表示;邻接矩阵中的项aij=1,表示顶点i是顶点j的输入,矩阵中第i行的和表示顶点i的出度,第j列的和表示顶点j的入度。
存储控制逻辑图的拓扑关系时,根据连接线两端所连接的算法管脚名称判断连接线是否为跟踪线,若为跟踪线,则不做处理,否则将邻接矩阵中对应的项设置为1。
步骤S4具体包括以下步骤,
S401、查找基于信号流的算法中所有的输入算法,并按照算法坐标从左上到右下的位置排列,其中,横坐标优先;
S402、从第一个输入算法开始,基于有向图的深度优先搜索算法进行遍历,遍历过程中如果发现已经访问过的顶点,则表示发现了一条环路,将距离输入点最近的顶点置为0,从而更新邻接矩阵,解开此环路;
S403、对剩余的输入算法,执行S402,解开所有环路。
拓扑排序算法的具体包括以下步骤,
(a)、根据5中更新后的邻接矩阵,计算图中每个顶点的入度;
(b)、输出入度为0的顶点;
(c)、删除步骤b中顶点的所有出边;
(d)、循环执行b→c,直到所有顶点均已输出,完成排序,输出的顶点顺序即为基于信号流的算法执行顺序。
本发明的有益效果包括:本发明采用有向图的深度优先搜索算法和拓扑排序算法,实现了基于信号流的算法执行顺序的自动生成,提高了工程师的工作效率。
附图说明
图1为本发明的一种基于信号流的算法执行顺序生成方法的流程图。
图2为本实施例控制逻辑示意图。
具体实施方式
下面结合附图对本发明作进一步描述。以下实施例仅用于更加清楚地说明本发明的技术方案,而不能以此来限制本发明的保护范围。
如图1所示,一种基于信号流的算法执行顺序生成方法,包括以下步骤:
S1、设计控制策略,使用算法图元,绘制控制逻辑图;
S2、遍历控制逻辑图,提取并存储控制逻辑图的算法信息、连接线信息和拓扑关系;
S3、将控制逻辑图的拓扑关系保存为有向图形式;
S4、检测控制逻辑图中是否存在环路,如果存在环路,执行解环算法,否则,执行步骤S5;
S5、执行拓扑排序算法,生成算法执行顺序。
基于信号流的算法包括输入算法、输出算法和中间处理算法;
算法信息包括算法名称、算法索引号和算法坐标;
连接线包括普通线和跟踪线;
连接线信息包括:连接线两端算法索引号和连接线两端所连接的算法管脚名称。
控制逻辑图的算法信息和连接线信息分别存储在算法信息和连接线信息对应的链表中;
控制逻辑图的拓扑关系保存为有向图G=(V,E)的形式,其中顶点V={V1,V2,…,Vn},代表逻辑图中的所有算法,以存储算法索引号的链表表示;边E={E1,E2,…,Enn},代表逻辑图中算法之间的依赖关系,以邻接矩阵An×n的形式表示;邻接矩阵中的项aij=1,表示顶点i是顶点j的输入,矩阵中第i行的和表示顶点i的出度,第j列的和表示顶点j的入度。
存储控制逻辑图的拓扑关系时,根据连接线两端所连接的算法管脚名称判断连接线是否为跟踪线,若为跟踪线,则不做处理,否则将邻接矩阵中对应的项设置为1。
步骤S4具体包括以下步骤,
S401、查找基于信号流的算法中所有的输入算法,并按照算法坐标从左上到右下的位置排列,其中,横坐标优先;
S402、从第一个输入算法开始,基于有向图的深度优先搜索算法进行遍历,遍历过程中如果发现已经访问过的顶点,则表示发现了一条环路,将距离输入点最近的顶点置为0,从而更新邻接矩阵,解开此环路。假设发现了一条环路,环路中的顶点顺序为1→2→3→1,则选择距离输入最近的顶点假设为1,将邻接矩阵中的项a31置为0,从而更新邻接矩阵,解开此环路;
S403、对剩余的输入算法,执行S402,解开所有环路。
拓扑排序算法的具体包括以下步骤,
(a)、根据5中更新后的邻接矩阵,计算图中每个顶点的入度;
(b)、输出入度为0的顶点;
(c)、删除步骤b中顶点的所有出边;
(d)、循环执行b→c,直到所有顶点均已输出,完成排序,输出的顶点顺序即为基于信号流的算法执行顺序。
如图2所示的控制逻辑图,本实施例生成算法执行顺序的具体过程为:
假设控制逻辑图中没有跟踪线,生成的邻接矩阵为表1
表1控制逻辑图生成的邻接矩阵
从顶点1开始,执行有向图的深度优先算法,遍历的顺序为1→2→3→4→5→3,发现环路3→4→5→3;回退至5,继续遍历5→6;回退至5,继续遍历5→8→3,发现环路3→4→5→8→3;回退至8,继续遍历8→9→5,发现环路5→8→9→5;回退至9,继续遍历9→10。
从顶点1出发,检测出存在三条环路。环路3→4→5→3中的三个顶点中,3距离输入1最近,故将环路从3的输入处解开(即将邻接矩阵中第5行第3列的值置为0),类似地,将环路3→4→5→8→3从8的输入处解开,将环路5→8→9→5从8的输入处解开,更新后的邻接矩阵为表2;
表2解环更新后的邻接矩阵
从顶点7开始,执行有向图的深度优先算法,遍历的顺序为7→8→3→4→5→6,回退至8,继续遍历8→9→5→6,回退至9,继续遍历9→10,未发现环路。
计算邻接矩阵中顶点的入度,如表3:
表3邻接矩阵中顶点的入度
输出顶点1、7,删除1、7的所有出边,更新后的顶点入度,如表4:
表4输出顶点1、7更新后的顶点入度
输出2、8,删除2、8的所有出边,更新后的顶点入度,如表5:
表5输出2、8更新后的顶点入度
输出3、9,删除3、9的所有出边,更新后的顶点入度,如表6:
表6输出3、9更新后的顶点入度
输出4、10,删除4的所有出边,更新后的顶点入度,如表7:
表7输出4、10更新后的顶点入度
输出5,删除5的所有出边,更新后的顶点入度,如表8:
表8输出5更新后的顶点入度
输出6,所有顶点均已输出,基于信号流的算法执行顺序为1→7→2→8→3→9→4→10→5→6。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和变形,这些改进和变形也应视为本发明的保护范围。以上仅是本发明的优选实施方式,应当指出:对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (6)
1.一种基于信号流的算法执行顺序生成方法,其特征在于:包括以下步骤:
S1、设计控制策略,使用算法图元,绘制控制逻辑图;
S2、遍历控制逻辑图,提取并存储控制逻辑图的算法信息、连接线信息和拓扑关系;
S3、将控制逻辑图的拓扑关系保存为有向图形式;
S4、检测控制逻辑图中是否存在环路,如果存在环路,执行解环算法,否则,执行步骤S5;
S5、执行拓扑排序算法,生成算法执行顺序。
2.根据权利要求1所述的一种基于信号流的算法执行顺序生成方法,其特征在于:
所述基于信号流的算法包括输入算法、输出算法和中间处理算法;
所述算法信息包括算法名称、算法索引号和算法坐标;
连接线包括普通线和跟踪线;
连接线信息包括:连接线两端算法索引号和连接线两端所连接的算法管脚名称。
3.根据权利要求1所述的一种基于信号流的算法执行顺序生成方法,其特征在于:
控制逻辑图的算法信息和连接线信息分别存储在算法信息和连接线信息对应的链表中;
控制逻辑图的拓扑关系保存为有向图G=(V,E)的形式,其中顶点V={V1,V2,…,Vn},代表逻辑图中的所有算法,以存储算法索引号的链表表示;边E={E1,E2,…,Enn},代表逻辑图中算法之间的依赖关系,以邻接矩阵An×n的形式表示;邻接矩阵中的项aij=1,表示顶点i是顶点j的输入,矩阵中第i行的和表示顶点i的出度,第j列的和表示顶点j的入度。
4.根据权利要求3所述的一种基于信号流的算法执行顺序生成方法,其特征在于:
存储控制逻辑图的拓扑关系时,根据连接线两端所连接的算法管脚名称判断连接线是否为跟踪线,若为跟踪线,则不做处理,否则将邻接矩阵中对应的项设置为1。
5.根据权利要求4所述的一种基于信号流的算法执行顺序生成方法,其特征在于:
步骤S4具体包括以下步骤,
S401、查找基于信号流的算法中所有的输入算法,并按照算法坐标从左上到右下的位置排列,其中,横坐标优先;
S402、从第一个输入算法开始,基于有向图的深度优先搜索算法进行遍历,遍历过程中如果发现已经访问过的顶点,则表示发现了一条环路,将距离输入点最近的顶点置为0,从而更新邻接矩阵,解开此环路;
S403、对剩余的输入算法,执行S402,解开所有环路。
6.根据权利要求1所述的一种基于信号流的算法执行顺序生成方法,其特征在于:
拓扑排序算法的具体包括以下步骤,
(a)、根据5中更新后的邻接矩阵,计算图中每个顶点的入度;
(b)、输出入度为0的顶点;
(c)、删除步骤b中顶点的所有出边;
(d)、循环执行b→c,直到所有顶点均已输出,完成排序,输出的顶点顺序即为基于信号流的算法执行顺序。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711484181.XA CN108228409A (zh) | 2017-12-29 | 2017-12-29 | 一种基于信号流的算法执行顺序生成方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711484181.XA CN108228409A (zh) | 2017-12-29 | 2017-12-29 | 一种基于信号流的算法执行顺序生成方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN108228409A true CN108228409A (zh) | 2018-06-29 |
Family
ID=62646199
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711484181.XA Pending CN108228409A (zh) | 2017-12-29 | 2017-12-29 | 一种基于信号流的算法执行顺序生成方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108228409A (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109343448A (zh) * | 2018-09-18 | 2019-02-15 | 国电联合动力技术有限公司 | 一种用于风机一体化控制系统的编程系统及其编程方法 |
CN110109928A (zh) * | 2019-04-29 | 2019-08-09 | 电子科技大学 | 一种仪器校正参数部分依赖关系抽取方法 |
CN112486615A (zh) * | 2020-11-30 | 2021-03-12 | 重庆誉存大数据科技有限公司 | 基于拓扑路径的决策流执行方法、装置、设备及存储介质 |
CN112560273A (zh) * | 2020-12-21 | 2021-03-26 | 北京轩宇信息技术有限公司 | 面向数据流模型的模型组件执行顺序确定方法及装置 |
CN113034686A (zh) * | 2021-03-29 | 2021-06-25 | 中国科学院新疆生态与地理研究所 | 一种基于拓扑排序的地层顺序获取方法 |
CN117250480A (zh) * | 2023-11-08 | 2023-12-19 | 英诺达(成都)电子科技有限公司 | 组合逻辑电路的环路检测方法、装置、设备及存储介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6233703B1 (en) * | 1997-12-31 | 2001-05-15 | Triconex Corporation | Automatic generation of evaluation order for a function block diagram and detection of any associated errors |
CN102156782A (zh) * | 2011-04-14 | 2011-08-17 | 国电南瑞科技股份有限公司 | 基于图论的电力系统公式并行运算管理方法 |
CN102298653A (zh) * | 2010-06-25 | 2011-12-28 | 北京国电智深控制技术有限公司 | 一种配置算法执行顺序号的方法及装置 |
CN102937933A (zh) * | 2012-11-14 | 2013-02-20 | 中国矿业大学 | 基于测试级的类测试顺序确定方法 |
CN103207903A (zh) * | 2013-03-26 | 2013-07-17 | 南京南瑞继保电气有限公司 | 一种可视化图形程序拓扑排序方法 |
CN104020756A (zh) * | 2014-05-22 | 2014-09-03 | 国电南瑞科技股份有限公司 | 一种故障诊断系统的逻辑网络拓扑排序和存储方法 |
CN106097142A (zh) * | 2016-06-15 | 2016-11-09 | 国网江西省电力科学研究院 | 一种基于有向图的配变轮换序列自动生成及评价方法 |
-
2017
- 2017-12-29 CN CN201711484181.XA patent/CN108228409A/zh active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6233703B1 (en) * | 1997-12-31 | 2001-05-15 | Triconex Corporation | Automatic generation of evaluation order for a function block diagram and detection of any associated errors |
CN102298653A (zh) * | 2010-06-25 | 2011-12-28 | 北京国电智深控制技术有限公司 | 一种配置算法执行顺序号的方法及装置 |
CN102156782A (zh) * | 2011-04-14 | 2011-08-17 | 国电南瑞科技股份有限公司 | 基于图论的电力系统公式并行运算管理方法 |
CN102937933A (zh) * | 2012-11-14 | 2013-02-20 | 中国矿业大学 | 基于测试级的类测试顺序确定方法 |
CN103207903A (zh) * | 2013-03-26 | 2013-07-17 | 南京南瑞继保电气有限公司 | 一种可视化图形程序拓扑排序方法 |
CN104020756A (zh) * | 2014-05-22 | 2014-09-03 | 国电南瑞科技股份有限公司 | 一种故障诊断系统的逻辑网络拓扑排序和存储方法 |
CN106097142A (zh) * | 2016-06-15 | 2016-11-09 | 国网江西省电力科学研究院 | 一种基于有向图的配变轮换序列自动生成及评价方法 |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109343448A (zh) * | 2018-09-18 | 2019-02-15 | 国电联合动力技术有限公司 | 一种用于风机一体化控制系统的编程系统及其编程方法 |
CN110109928A (zh) * | 2019-04-29 | 2019-08-09 | 电子科技大学 | 一种仪器校正参数部分依赖关系抽取方法 |
CN110109928B (zh) * | 2019-04-29 | 2021-12-10 | 电子科技大学 | 一种仪器校正参数部分依赖关系抽取方法 |
CN112486615A (zh) * | 2020-11-30 | 2021-03-12 | 重庆誉存大数据科技有限公司 | 基于拓扑路径的决策流执行方法、装置、设备及存储介质 |
CN112486615B (zh) * | 2020-11-30 | 2023-07-04 | 重庆誉存大数据科技有限公司 | 基于拓扑路径的决策流执行方法、装置、设备及存储介质 |
CN112560273A (zh) * | 2020-12-21 | 2021-03-26 | 北京轩宇信息技术有限公司 | 面向数据流模型的模型组件执行顺序确定方法及装置 |
CN112560273B (zh) * | 2020-12-21 | 2023-11-10 | 北京轩宇信息技术有限公司 | 面向数据流模型的模型组件执行顺序确定方法及装置 |
CN113034686A (zh) * | 2021-03-29 | 2021-06-25 | 中国科学院新疆生态与地理研究所 | 一种基于拓扑排序的地层顺序获取方法 |
CN113034686B (zh) * | 2021-03-29 | 2023-10-13 | 中国科学院新疆生态与地理研究所 | 一种基于拓扑排序的地层顺序获取方法 |
CN117250480A (zh) * | 2023-11-08 | 2023-12-19 | 英诺达(成都)电子科技有限公司 | 组合逻辑电路的环路检测方法、装置、设备及存储介质 |
CN117250480B (zh) * | 2023-11-08 | 2024-02-23 | 英诺达(成都)电子科技有限公司 | 组合逻辑电路的环路检测方法、装置、设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108228409A (zh) | 一种基于信号流的算法执行顺序生成方法 | |
CN102354144B (zh) | 一种将梯形图转化成plc程序指令的方法 | |
CN109885891A (zh) | 一种智能车gpu并行加速轨迹规划方法 | |
CN104778258B (zh) | 一种面向协议数据流的数据抽取方法 | |
CN104361625B (zh) | 一种基于射线原理的带边界保留的云数据精简算法 | |
CN101957757B (zh) | 一种适用于软件可视化过程的图形布局方法 | |
CN106815447A (zh) | 基于历史数据的复杂结构件加工特征智能定义与分类方法 | |
CN110110402A (zh) | 基于二叉决策图的资源分配系统可达状态的快速求解方法 | |
CN106156245B (zh) | 一种电子地图中的线要素合并方法及装置 | |
CN104636748A (zh) | 一种号牌识别的方法及装置 | |
CN103268633A (zh) | 一种栅格数据的等值面构造方法 | |
CN104408263A (zh) | 一种自动处理闭环回路的图形元件分组排序方法 | |
CN102262682B (zh) | 基于粗糙分类知识发现的快速属性约简方法 | |
CN107846022B (zh) | 基于ilutp预处理并行迭代法的大规模配电网潮流分析方法 | |
CN106446472A (zh) | 数控加工几何仿真中基于stl模型的交线环求取算法 | |
Li et al. | Research and application of computer aided design system for product innovation | |
CN104573846B (zh) | 一种基于ca‑pso混合优化算法的多态性作业车间布局优化方法 | |
CN104794747B (zh) | 一种基于射线原理的三维点云数据精简方法 | |
CN110489448A (zh) | 基于Hadoop的大数据关联规则的挖掘方法 | |
CN104794120B (zh) | 一种海量地震数据并行抽道集方法 | |
CN106200541A (zh) | 一种将功能块图转换为aov结构的方法 | |
Xia et al. | A study on the significance of software metrics in defect prediction | |
Xin et al. | Path Planning Research Based on An Improved A* Algorithmfor Mobile Robot | |
CN107133281A (zh) | 一种基于分组的全局多查询优化方法 | |
CN104375416B (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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20180629 |
|
RJ01 | Rejection of invention patent application after publication |