一种功能块图转换为结构化文本的方法及相关设备技术

技术编号:36538283 阅读:55 留言:0更新日期:2023-02-01 16:29
本申请提供一种功能块图转换为结构化文本的方法及相关设备,涉及程序编译领域,其中方法包括:对功能块图的若干个元件进行中序遍历,得到若干条第一路径;对若干条第一路径进行编译处理,得到若干个元件之间连接关系的若干个第一结构化文本单元;对若干个元件进行编译得到若干个第二结构化文本单元,组合若干个第一结构化文本单元与若干个第二结构化文本单元,得到功能块图对应的结构化文本。相较于零星的元件的结构化文本,包含元件之间连接关系的整体的结构化文本,能够更加清晰的体现整体的功能块图的逻辑关系,便于后续用户对于结构化文本的查验以及结构化文本在PLC其它场景的应用。的应用。的应用。

【技术实现步骤摘要】
一种功能块图转换为结构化文本的方法及相关设备


[0001]本申请涉及程序编译领域,具体涉及一种功能块图转换为结构化文本的方法及相关设备。

技术介绍

[0002]随着科技的发展,可编程逻辑控制器(Programmable Logic Controller,PLC)在工业设备自动控制领域已经成为不可或缺的一部分,是生产设备运行的控制中枢,在PLC领域中,IEC61131

3是国际电工协会建立的一套关于可编程控制的一系列标准,IEC61131

3标准中定义了五种编程语言,分别是两种文本语言:语句表(Instruction List,IL)、结构化文本语言(Structured Text,ST),以及三种图形化语言:梯形图(Ladder Diagram,LD)、功能块图(Function Block Diagram,FBD)和顺序功能图(Sequence Function Chart,SFC)。其中功能块图在工业控制中广泛使用,但是功能块图是便于用户设定控制流程的图形化语言,并不能直接控制PLC下位机的运行,而结构化文本是一种源自PASCAL的高级语言,易于用户逻辑理解的同时还能控制PLC下位机的运行。
[0003]目前已有的将功能块图转换为结构化文本的方式,只能实现将功能块图中的单个元件转换为结构化文本的功能,以使用户查看修改,但实际中由功能块图构建的程序组织单元(Program Organization Unit,POU)中包含多个网络。在多个网络中,功能块图的各个元件通过有向线连接为一个整体,最后导致功能块图程序十分复杂,通过逐个查看零星的结构化文本,难以联系其它元件和相应逻辑,无法获取到完整功能块图的结构化文本。

技术实现思路

[0004]本申请提供一种功能块图转换为结构化文本的方法及相关设备,通过遍历功能块图中的元件,基于遍历路径得到元件之间的连接关系,将连接关系与元件进行编译组合得到功能块图对应的结构化文本,能够完整展示出各元件之间的连接关系和相应地逻辑关系,便于后续对整体结构化文本的查阅和检验第一方面,本申请提供了一种功能块图转换为结构化文本的方法,所述方法包括:对功能块图的若干个元件进行中序遍历,得到若干条第一路径;对所述若干条第一路径进行编译处理,得到所述若干个元件之间连接关系的若干个第一结构化文本单元;对所述若干个元件进行编译得到若干个第二结构化文本单元,组合所述若干个第一结构化文本单元与所述若干个第二结构化文本单元,得到所述功能块图对应的结构化文本。
[0005]通过采用上述技术方案,使用中序遍历的方法将复杂的功能块图进行梳理,得到若干条包含功能块图中元件的第一路径,逐条对第一路径上的元件及元件间的连接关系进行遍历,再通过编译和组合得到完整的一段结构化文本,得到完整的结构化文本,无需在阅读结构化文本时参考对照复杂的功能块图,减少对照检验过程中产生的失误,完整的结构
化文本便于程序员阅读,能够轻松转化为控制机器运行的机器语言。
[0006]可选的,所述对功能块图的若干个元件进行中序遍历,得到若干条第一路径,包括:将功能块图中的最右下角的元件作为起始遍历元件,对所述功能块图中的若干个元件进行中序遍历,得到若干条第一路径。通过上述技术方案,从功能块图的最末端的输出元件为起点进行中序遍历,得到若干条第一路径,以从最末端的输出元件溯源的方式遍历功能块图中的所有元件及元件连接关系,相比于从最前端的输入元件开始遍历,不仅可以避免遍历遗漏,还可避免重复遍历加大运算量的情况。
[0007]可选的,所述对所述若干条第一路径进行编译处理,得到所述若干个元件之间连接关系的若干个第一结构化文本单元,包括:从所述若干条第一路径中选取一条未处理路径,处理所述未处理路径上的所述若干个元件,得到所述若干个元件的输入与输出;基于所述若干个元件的所述输入与所述输出对所述未处理路径进行编译处理,得到所述若干个元件之间连接关系的若干个第一结构化文本单元。
[0008]通过上述技术方案,对未处理路径上的所有元件进行处理,再逐条对所有的未处理路径进行处理,能够在不遗漏的情况下,对每个元件的输入及输出情况进行编译,从而获取到元件之间连接关系的结构化文本单元。
[0009]可选的,所述基于所述若干个元件的所述输入与所述输出对所述未处理路径进行编译处理,得到所述若干个元件之间连接关系的若干个第一结构化文本单元,包括:基于所述未处理路径的遍历顺序,判断所述未处理路径上单个元件的输入是否全部编译;若所述未处理路径上所述单个元件的输入已全部编译,则将所述单个元件移入已处理集合,基于所述单个元件的输入与输出得到所述单个元件的第一结构化文本单元,并执行基于所述未处理路径的遍历顺序,判断所述未处理路径上下一个所述单个元件的所述输入是否全部编译的步骤;若所述未处理路径上所述单个元件的输入未全部编译,则保留已编译的所述单个元件的输入,将所述未处理路径中的剩余路径添加至编译队列尾部,并执行另一条未处理路径的编译步骤。
[0010]通过上述技术方案,按照遍历顺序对单个元件的输入情况进行判断,若此元件的输入已全部编译,即此元件的其它输入关系已编译,可将此元件的输入关系与输出关系编译为结构化文本并将此元件划入已处理集合,减少重复操作步骤,同时若单个元件存在多个输入,其它路径还存在未编译的输入,则将此元件的此次编译的输入保留,执行下一条未处理路径,直到所有的元件均移入已处理集合。
[0011]可选的,所述若所述第一路径上所述单个元件的输入路径已全部编译,则将所述单个元件移入已处理集合之后,还包括:获取所述第一路径上所有元件的第一数量,获取已处理集合中已处理元件的第二数量;将所述第一数量与所述第二数量进行比对,当所述第一数量等于所述第二数量时,输出所述已处理集合中若干个元件之间连接关系的所述若干个第一结构化文本单元。
[0012]通过采用上述技术方案,上述对每条未处理路径进行判断时,由于元件通常都会有多个输入 ,导致路径中的剩余路径较多,均排列至编译队列的尾部,当此路径上的所有元件均已被处理时,一些剩余路径就无需再进行处理,能够提升路径处理的效率与速度。
[0013]可选的,所述输出所述已处理集合中若干个元件之间连接关系的所述若干个第一结构化文本单元,包括:对所述若干个第一结构化文本单元进行去重处理。
[0014]通过采用上述技术方案,在上述的所有第一路径中,路径都是从最前端的输入端到最末端的输出段,同一元件不可避免地会出现在多个第一路径中,因此会出现重复的结构化文本单元,使用去重处理可使组合后的结构化文本更加简练,减少重复无用信息。
[0015]可选的,所述对所述若干个元件进行编译得到若干个第二结构化文本单元之前,还包括:判断所述若干个元件的块元件类型;若所述元件的块元件类型为功能块,则在变量表中进行声明,并对所述若干个元件进行编译,得到所述若干个第二结构化文本单元;若所述元件的块元件类型为函数,则对所述若干个元件进行编译,得到所述若干个第二结构化文本单本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种功能块图转换为结构化文本的方法,其特征在于,所述方法包括:对功能块图的若干个元件进行中序遍历,得到若干条第一路径;对所述若干条第一路径进行编译处理,得到所述若干个元件之间连接关系的若干个第一结构化文本单元;对所述若干个元件进行编译得到若干个第二结构化文本单元,组合所述若干个第一结构化文本单元与所述若干个第二结构化文本单元,得到所述功能块图对应的结构化文本。2.根据权利要求1所述的方法,其特征在于,所述对功能块图的若干个元件进行中序遍历,得到若干条第一路径,包括:将功能块图中的最右下角的元件作为起始遍历元件,对所述功能块图中的若干个元件进行中序遍历,得到若干条第一路径。3.根据权利要求1所述的方法,其特征在于,所述对所述若干条第一路径进行编译处理,得到所述若干个元件之间连接关系的若干个第一结构化文本单元,包括:从所述若干条第一路径中选取一条未处理路径,处理所述未处理路径上的所述若干个元件,得到所述若干个元件的输入与输出;基于所述若干个元件的所述输入与所述输出对所述未处理路径进行编译处理,得到所述若干个元件之间连接关系的若干个第一结构化文本单元。4.根据权利要求3所述的方法,其特征在于,所述基于所述若干个元件的所述输入与所述输出对所述未处理路径进行编译处理,得到所述若干个元件之间连接关系的若干个第一结构化文本单元,包括:基于所述未处理路径的遍历顺序,判断所述未处理路径上单个元件的输入是否全部编译;若所述未处理路径上所述单个元件的输入已全部编译,则将所述单个元件移入已处理集合,基于所述单个元件的输入与输出得到所述单个元件的第一结构化文本单元,并执行基于所述未处理路径的遍历顺序,判断所述未处理路径上下一个所述单个元件的所述输入是否全部编译的步骤;若所述未处理路径上所述单个元件的输入未全部编译,则保留已编译的所述单个元件的输入,将所述未处理路径中的剩余路径添加至编译队列尾部,并执行另一条未处理路径的编译步骤。5.根据权利要求4所述的方法,其特征在于,所述若所述第一路径上所述单个元件的输入路径已全部编译,则将所述单个元件移入已处理集合之后,还包括:获...

【专利技术属性】
技术研发人员:孙安宝凌舟
申请(专利权)人:上海繁易信息科技股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1