用于DCS的图形化编程逻辑图拓扑生成方法及装置与流程

摘要: 本说明书实施例涉及工业自动化控制,特别涉及用于dcs的图形化编程逻辑图拓扑生成方法。背景技术:1、在工业自动化控制领域,分布式控制系统(dcs)广泛采用图形化编...
用于DCS的图形化编程逻辑图拓扑生成方法及装置与流程

本说明书实施例涉及工业自动化控制,特别涉及用于dcs的图形化编程逻辑图拓扑生成方法。

背景技术:

1、在工业自动化控制领域,分布式控制系统(dcs)广泛采用图形化编程方式,允许工程师通过拖拽图形块并以连线表示数据流或控制流来构建控制逻辑,无需编写复杂的文本代码。图形化编程的核心在于将图形化的逻辑图准确转换为可线性执行的指令序列,其中图形块的执行顺序直接影响控制逻辑的正确性与可靠性。

2、目前,行业内多采用深度优先搜索(dfs)算法进行拓扑排序以确定图形块的执行顺序。具体步骤为:将图形化逻辑图抽象为有向图,其中节点代表图形块,有向边代表依赖关系;从任意节点开始递归遍历所有可达节点,记录遍历完成的节点,形成逆序的执行序列;对未遍历的节点重复上述过程,最终得到完整的执行顺序。该方案在处理简单逻辑图时可基本满足需求。

3、然而,现有基于dfs的拓扑排序方案存在以下技术缺陷:第一,dfs算法采用递归方式,当图形块数量超过一定规模时,会因栈内存占用过大导致计算速度显著下降,递归调用的上下文切换成本随规模增长而急剧上升;第二,当图形化逻辑图发生动态修改(如新增或删除连线)时,dfs需要重新遍历整个图形,无法局部更新执行顺序,导致适应性差、响应慢;第三,对于存在多个独立分支的逻辑图,dfs可能因遍历起点不同导致执行顺序不稳定,增加调试难度。

4、因此,亟需一种能够高效、稳定地计算图形块执行顺序,且能够适应逻辑图动态调整的拓扑生成方法。

技术实现思路

1、有鉴于此,本说明书实施例提供了用于dcs的图形化编程逻辑图拓扑生成方法。本说明书一个或者多个实施例同时涉及用于dcs的图形化编程逻辑图拓扑生成装置,一种计算设备,一种计算机可读存储介质以及一种计算机程序,以解决现有技术中存在的技术缺陷。

2、根据本说明书实施例的第一方面,提供了一种用于dcs的图形化编程逻辑图拓扑生成方法,包括:

3、获取图形化编程逻辑图,逻辑图包括图形块和用于表示图形块之间数据流或者控制流的连线;

4、将逻辑图转换为有向无环图,其中,将图形块映射为有向无环图的节点,将连线映射为有向无环图的有向边,有向边的方向与数据流或者控制流的方向一致;

5、遍历有向无环图中的所有节点,统计每个节点的入度,入度是指向节点的有向边的数量;

6、初始化一个队列,将入度为零的节点加入队列;

7、循环执行以下步骤,直到队列为空:从队列中取出一个节点,将取出的节点加入执行序列;遍历取出的节点的所有下游节点,将每个下游节点的入度减一;将入度减一后变为零的下游节点加入队列;

8、输出执行序列作为图形块的执行顺序。

9、在一种可能的实现方式中,在统计每个节点的入度之后,还包括:通过深度优先搜索算法检测有向无环图中是否存在回环,若存在回环,则生成用于提示用户修改逻辑图的反馈信息。

10、在一种可能的实现方式中,还包括动态更新步骤:监测图形化编程逻辑图的调整,当逻辑图发生调整时,对有向无环图和入度进行增量更新,并根据更新后的有向无环图和入度重新生成执行序列。

11、在一种可能的实现方式中,增量更新包括:记录逻辑图中发生变化的部分,变化的部分包括新增的节点和边、删除的节点和边、或者修改方向的边;根据变化的部分,对有向无环图进行增加、删除或者修改操作,并对受影响的节点的入度进行调整。

12、在一种可能的实现方式中,重新生成执行序列包括:利用之前生成的执行序列信息,仅对受调整影响的节点重新计算执行顺序。

13、在一种可能的实现方式中,将逻辑图转换为有向无环图包括:建立包含所有节点、所有有向边以及节点到图形块的映射的数据结构;其中,节点包含关联的图形块的唯一标识,有向边包含起点节点和终点节点,起点节点对应上游图形块,终点节点对应下游图形块。

14、在一种可能的实现方式中,执行序列中的图形块的顺序满足:对于任意一条有向边,有向边的起点节点所对应的图形块排列在有向边的终点节点所对应的图形块之前。

15、根据本说明书实施例的第二方面,提供了一种用于dcs的图形化编程逻辑图拓扑生成装置,包括:

16、数据获取模块,被配置为获取图形化编程逻辑图,逻辑图包括图形块和用于表示图形块之间数据流或者控制流的连线;

17、数据转换模块,被配置为将逻辑图转换为有向无环图,其中,将图形块映射为有向无环图的节点,将连线映射为有向无环图的有向边,有向边的方向与数据流或者控制流的方向一致;

18、入度计算模块,被配置为遍历有向无环图中的所有节点,统计每个节点的入度,入度是指向节点的有向边的数量;

19、队列生成模块,被配置为初始化一个队列,将入度为零的节点加入队列;

20、队列循环模块,被配置为循环执行以下步骤,直到队列为空:从队列中取出一个节点,将取出的节点加入执行序列;遍历取出的节点的所有下游节点,将每个下游节点的入度减一;将入度减一后变为零的下游节点加入队列;

21、数据输出模块,被配置为输出执行序列作为图形块的执行顺序。

22、根据本说明书实施例的第三方面,提供了一种计算设备,包括:

23、存储器和处理器;

24、所述存储器用于存储计算机可执行指令,所述处理器用于执行所述计算机可执行指令,该计算机可执行指令被处理器执行时实现上述用于dcs的图形化编程逻辑图拓扑生成方法的步骤。

25、根据本说明书实施例的第四方面,提供了一种计算机可读存储介质,其存储有计算机可执行指令,该指令被处理器执行时实现上述用于dcs的图形化编程逻辑图拓扑生成方法的步骤。

26、根据本说明书实施例的第五方面,提供了一种计算机程序,其中,当所述计算机程序在计算机中执行时,令计算机执行上述用于dcs的图形化编程逻辑图拓扑生成方法的步骤。

27、本说明书实施例提供用于dcs的图形化编程逻辑图拓扑生成方法及装置,包括:获取包含图形块和连线的图形化编程逻辑图;将图形块映射为有向无环图的节点,将连线映射为有向边,所述有向边的方向与数据流或控制流的方向一致;遍历所有节点,统计每个节点的入度;初始化队列,将所有入度为零的节点加入队列;循环执行以下步骤直至队列为空:从队列中取出一个节点并加入执行序列,遍历该节点的所有下游节点并将每个下游节点的入度减一,将入度减一后变为零的下游节点加入队列;输出执行序列作为图形块的执行顺序。避免了递归调用的栈内存开销,提高了大规模逻辑图的执行顺序计算效率,并能够支持逻辑图的动态局部更新,确保了执行顺序的唯一性和稳定性。

1.一种用于dcs的图形化编程逻辑图拓扑生成方法,其特征在于,包括:

2.根据权利要求1所述的方法,其特征在于,在所述统计每个所述节点的入度之后,还包括:通过深度优先搜索算法检测所述有向无环图中是否存在回环,若存在回环,则生成用于提示用户修改所述逻辑图的反馈信息。

3.根据权利要求1所述的方法,其特征在于,还包括动态更新步骤:监测所述图形化编程逻辑图的调整,当所述逻辑图发生调整时,对所述有向无环图和所述入度进行增量更新,并根据更新后的所述有向无环图和所述入度重新生成所述执行序列。

4.根据权利要求3所述的方法,其特征在于,所述增量更新包括:记录所述逻辑图中发生变化的部分,所述变化的部分包括新增的节点和边、删除的节点和边、或者修改方向的边;根据所述变化的部分,对所述有向无环图进行增加、删除或者修改操作,并对受影响的节点的所述入度进行调整。

5.根据权利要求3所述的方法,其特征在于,所述重新生成所述执行序列包括:利用之前生成的执行序列信息,仅对受所述调整影响的节点重新计算执行顺序。

6.根据权利要求1所述的方法,其特征在于,所述将所述逻辑图转换为有向无环图包括:建立包含所有节点、所有有向边以及所述节点到所述图形块的映射的数据结构;其中,所述节点包含关联的图形块的唯一标识,所述有向边包含起点节点和终点节点,所述起点节点对应上游图形块,所述终点节点对应下游图形块。

7.根据权利要求1所述的方法,其特征在于,所述执行序列中的所述图形块的顺序满足:对于任意一条所述有向边,所述有向边的起点节点所对应的图形块排列在所述有向边的终点节点所对应的图形块之前。

8.一种用于dcs的图形化编程逻辑图拓扑生成装置,其特征在于,包括:

9.一种计算设备,其特征在于,包括:

10.一种计算机可读存储介质,其存储有计算机可执行指令,该计算机可执行指令被处理器执行时实现权利要求1至7任意一项所述用于dcs的图形化编程逻辑图拓扑生成方法的步骤。