CN112506129B - 一种梯形图的转换方法、装置、设备及存储介质 - Google Patents
一种梯形图的转换方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN112506129B CN112506129B CN202011475740.2A CN202011475740A CN112506129B CN 112506129 B CN112506129 B CN 112506129B CN 202011475740 A CN202011475740 A CN 202011475740A CN 112506129 B CN112506129 B CN 112506129B
- Authority
- CN
- China
- Prior art keywords
- icon
- icons
- ladder diagram
- sequence
- determining
- 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
Classifications
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/04—Programme control other than numerical control, i.e. in sequence controllers or logic controllers
- G05B19/05—Programmable logic controllers, e.g. simulating logic interconnections of signals according to ladder diagrams or function charts
- G05B19/056—Programming the PLC
-
- 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30145—Instruction analysis, e.g. decoding, instruction word fields
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Automation & Control Theory (AREA)
- General Engineering & Computer Science (AREA)
- Programmable Controllers (AREA)
Abstract
本发明涉及一种梯形图的转换方法、装置、设备及存储介质,该方法通过根据梯形图中各图符之间的输入输出关系,确定各图符之间的依赖关系;基于所述依赖关系,以被依赖的图符先解析的原则,确定所有所述图符的解析顺序;以所述解析顺序作为所述图符的执行顺序,生成所述梯形图对应的、具有所述执行顺序的无向连通图,实现降低梯形图转换的复杂度、提高对复杂梯形图的兼容性和提高执行速度的技术效果。
Description
技术领域
本发明涉及可编程逻辑控制器的技术领域,尤其涉及一种梯形图的转换方法、装置、设备及存储介质。
背景技术
梯形图(Ladder Diagram,LD)是可编程逻辑控制器(Programmable logiccontroller,PLC)的常用编程语言,梯形图用不同图符表示不同控制指令,对于工作人员来说形象直观,但对于PLC来说,是不可直接执行的语言。
一般的,需要首先将梯形图转换为顶点活动(Activity On Vertex,AOV)图,再将AOV图转换为二叉树,最终遍历二叉树生成指令表,从而通过对指令表的编译或解释执行实现相应控制逻辑。指令表是一系列符合IEC61131-3(GB/T 15969.3)标准的指令集,类似于汇编语言。
但是,在将AOV图形转为二叉树的过程变得极为复杂,甚至可能会产生的死循环或者不能够生成正确的二叉树。如图1A所示的AOV图形,由于有多个节点的互相连接,无法转换为合适的二叉树,进而无法最终得到相应的指令表。
发明内容
本发明的目的在于提出一种梯形图的转换方法、装置、设备及存储介质,实现降低梯形图转换的复杂度、提高对复杂梯形图的兼容性和提高执行速度的技术效果。
为实现上述目的,本申请第一方面提供了一种梯形图的转换方法,包括:根据梯形图中各图符之间的输入输出关系,确定各图符之间的依赖关系;
基于所述依赖关系,以被依赖的图符先解析的原则,确定所有所述图符的解析顺序;
以所述解析顺序作为所述图符的执行顺序,生成所述梯形图对应的、具有所述执行顺序的无向连通图。
可选的,所述图符包括第一图符和第二图符,其中,所述第一图符和所述第二图符为所述梯形图中的任意两个不同的图符;
所述根据梯形图中各图符之间的输入输出关系,确定各图符之间的依赖关系,包括:
当从所述第一图符输出到所述第二图符时,确定所述第二图符依赖于所述第一图符。
可选的,所述基于所述依赖关系,以被依赖的图符先解析的原则,确定所有所述图符的解析顺序,包括:
将所述梯形图中与左母线相连接的图符加入顺序列表中,以初始化顺序列表;
在按照所述顺序列表对所述梯形图进行解析的过程中,根据各所述图符之间的依赖关系,调整所述顺序列表中的所述图符及所述图符的顺序;
记录在所述梯形图的解析过程中,所有所述图符实际的解析顺序。
可选的,所述在按照所述顺序列表对所述梯形图进行解析的过程中,根据各所述图符之间的依赖关系,调整所述顺序列表中的所述图符及所述图符的顺序,包括:
S1、将所述顺序列表中排在头部的图符,确定为正在解析的当前图符;
S2、将所述当前图符的输入端所连接的图符,确定为所述当前图符的依赖图符;
S3、确定所述依赖图符是否已解析;
S4、当存在一所述依赖图符未解析时,将所述依赖图符添加到所述顺序列表的头部,并继续执行步骤S1。
可选的,在步骤S3之后,还包括:
S31、当所有所述依赖图符均已解析完毕时,确定所述当前图符解析完毕,并从所述顺序列表中删除所述当前图符;
S32、当所述当前图符的输出端连接有未解析的图符、且未解析的图符不在所述顺序列表中时,将未解析的图符按照从高到低的顺序,添加到所述顺序列表中的头部,并继续执行步骤S1。
可选的,在步骤S31之后,还包括:
S311、当所述当前图符的输出端未连接有未解析的图符、或直接连接所述梯形图中的右母线时,则继续执行步骤S1。
可选的,步骤S1时,包括:
当所述顺序列表不存在图符时,则确定所述梯形图中的所有图符均已解析完毕。
可选的,还包括:
在解析当前图符时,存储所述当前图符的输入端和输出端所解析得到的值;
步骤S3,包括:
当所述当前图符的所有输入端均对应设置有值时,确定所述当前图符的所有所述依赖图符均已解析完毕。
可选的,还包括:
当所述梯形图中存在两所述图符互为依赖关系时,确定所述梯形图中存在成环的连线错误。
为实现上述目的,本申请第二方面提供了一种梯形图的转换装置,包括:
依赖关系确定模块,用于根据梯形图中各图符之间的输入输出关系,确定各图符之间的依赖关系;
解析顺序确定模块,用于基于所述依赖关系,以被依赖的图符先解析的原则,确定所有所述图符的解析顺序;
无向连通图转换模块,用于以所述解析顺序作为所述图符的执行顺序,生成所述梯形图对应的、具有所述执行顺序的无向连通图。
为实现上述目的,本申请第三方面提供了一种梯形图的转换设备,包括:存储器以及一个或多个处理器;
所述存储器,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如第一方面中任一所述的梯形图的转换方法。
为实现上述目的,本申请第四方面提供了一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行如第一方面中任一所述的梯形图的转换方法。
由上可见,本申请提供的技术方案,通过该转换方法可以解析出整个梯形图的执行顺序。具体的,通过寻找每个图符的依赖关系,寻找到所有图符的依赖关系,当所有的图符依赖关系寻找完毕后,就可以得到梯形图的整体逻辑,最终生成一张具有执行顺序的无向连通图,解决了因AOV图无法正确转换为二叉树所带来的无法生成指令表的问题。
这种方法生成的带有执行顺序的无向连通图具有以下优势:
1、解析图形速度快。不必生成有向图来分析逻辑关系,而是直接得到所有图符之间的依赖关系,甚至图符输入输出端之间的逻辑关系。
2、在寻找依赖的过程中,可以得到梯形图的执行顺序。保证用户作图稳定性,正确的解析用户作图的逻辑,算法支持各种复杂的图形。
3、执行速度快。不必生成语法树去执行所有的逻辑,而是直接生成具有执行顺序的无向连通图,根据无向连通图形执行即可,方便快捷。
附图说明
图1A为一种AOV图形;
图1B为本发明实施例1中提供的一种梯形图的转换方法的流程图;
图1C为本发明实施例1中提供的一种梯形图;
图1D为本发明实施例1中提供的另一种梯形图;
图2A为本发明实施例2中提供的一种梯形图的转换方法的流程图;
图2B为图1D所示梯形图的执行顺序示意图;
图3为本发明实施例3中提供的一种梯形图的转换装置的结构示意图;
图4为本发明实施例4提供的一种梯形图的转换设备的结构示意图。
具体实施方式
以下实施例用于说明本发明,但不用来限制本发明的范围。
实施例1
本申请提供一种梯形图的转换方法,该方法可以由梯形图的转换装置来执行,该梯形图的转换装置可以通过软件和/或硬件的方式实现,并集成在可进行在梯形图的转换设备中。可选的,该梯形图的转换设备包括但不限定于个人计算机、服务器等终端。本实施例中,以该梯形图的转换设备为个人计算机为例进行详细说明。
图1B为本发明实施例1中提供的一种梯形图的转换方法的流程图;图1C为本发明实施例1中提供的一种梯形图;图1D为本发明实施例1中提供的另一种梯形图,参照图1B,该方法可以包括如下的步骤:
S110、根据梯形图中各图符之间的输入输出关系,确定各图符之间的依赖关系。
本实施例中,梯形图是PLC最常用的图形编程语言,其沿袭了继电器控制电路的形式,是在常用的继电器与接触器逻辑控制基础上简化了符号演变而来的,因此,梯形图中往往包含各种具有不同含义的图符,并按照相应输入输出关系将上述图符连接起来。
其中,图符可以对输入该图符的信号进行预设功能的处理之后,从该图符输出。示例性的,图符可以包括线圈、触点、变量以及功能模块等可以连接的单元。
具体的,图符中可以设置有输入端和输出端,一图符的输入端可以用于连接左母线或者另一图符的输出端;同样的,一图符的输出端可以用于连接另一图符的输入端或者右母线,以构成两个图符之间的输入输出关系。
本实施例中,以图符包括第一图符和第二图符为例对依赖关系进行详细说明,其中,第一图符和第二图符为梯形图中的任意两个不同的图符;进一步的,当从第一图符输出到第二图符时,即第一图符的一输出端连接第二图符的一输入端时,确定第二图符依赖于第一图符。其中,依赖指的是,第二图符的输入端的值等于第一图符的输出端的值,只有当第一图符的输出端的值确定时,才可以确定第二图符的输入端的值。
需要注意的是,依赖关系包括直接依赖关系和间接依赖关系两种。两图符直接连接,则两图符构成直接依赖关系;两图符之间串联有其他图符,则两图符构成间接依赖关系。
在一实施例中,对于IEC61131-3标准,闭环是不允许的连接方式。为此,本实施例中,还可以在确定梯形图中存在两图符互为依赖关系时,确定梯形图中存在成环的连线错误。
在一具体的实施例中,依赖关系可以使用父子辈关系进行表示,如第一图符依赖于第二图符,则第一图符为第二图符的子辈,第二图符为第一图符的父辈。
具体的,可以对梯形图中的所有图符进行遍历,并在遍历的过程中,通过各图符的输入输出关系以及连接顺序,确定图符之间的父子辈关系。当某个图符发现自己是自己的父辈的时,即认定为是出现了闭环的情况,这种情况是连线错误,所以不再进行后续的操作,避免了用户由于自身连线错误导致每次都需要重新解析整个梯形图。
以图1C所示的梯形图为例进行说明,第一梯级ADD(add1)和第二梯级的ADD功能(add2)、in1均为图符,其中,第二梯级的ADD(add2)功能将输出端直接连接到第一梯级ADD功能(add1)的输入端。在遍历过程中,根据图1C所示的输出线路,记录in1是add1的父辈,add1是add2的父辈,add2是add1的父辈。进一步的,推理得到add1是add1的父辈,则表示add1和add2互为依赖关系,也就是说,梯形图中存在成环的连线错误。
S120、基于所述依赖关系,以被依赖的图符先解析的原则,确定所有所述图符的解析顺序。
本实施例中,对图符的解析,主要是为了得到每个图符的输入端和输出端的值。进一步的,在解析图符时,可以存储该图符的输入端和输出端所解析得到的值。
一般的,梯形图的解析顺序为从左至右,从上到下的顺序,本实施例中,在此基础上,以被依赖的图符先解析的原则,对所有图符的解析顺序进行调整。
在一具体的实施例中,参照图1D所示的梯形图,以被依赖的图符先解析的原则,可以确定所有图符的解析顺序为(in1,TP_1,out1,in2,ADD1,out1,var4)。
S130、以所述解析顺序作为所述图符的执行顺序,生成所述梯形图对应的、具有所述执行顺序的无向连通图。
本实施例中,无向连通图中的图符可以按照执行顺序依次转换为PLC可以执行的指令,也就是说,可以进一步将无向连通图转换为包括有指令的指令表。将此表转换为GCC的GENERIC/AST(是标准的抽象语法树),再转换为寄存器传输语言,最终转换为汇编代码,也就是可执行的指令表。
其中,指令表是一系列符合IEC61131-3(GB/T 15969.3)标准的指令集,类似于汇编语言。可以对指令表的编译或解释执行实现相应控制逻辑,即实现梯形图中所示的控制逻辑。
需要注意的是,无向连通图中各图符的执行顺序,可以用于体现该图符对应的指令的执行顺序。
本实施例提供的技术方案中,通过该转换方法可以解析出整个梯形图的执行顺序。具体的,通过寻找每个图符的依赖关系,寻找到所有图符的依赖关系,当所有的图符依赖关系寻找完毕后,就可以得到梯形图的整体逻辑,最终生成一张具有执行顺序的无向连通图,解决了因AOV图无法正确转换为二叉树所带来的无法生成指令表的问题。
这种方法生成的带有执行顺序的无向连通图具有以下优势:
1、解析图形速度快。不必生成有向图来分析逻辑关系,而是直接得到所有图符之间的依赖关系,甚至图符输入输出端之间的逻辑关系。
2、在寻找依赖的过程中,可以得到梯形图的执行顺序。保证用户作图稳定性,正确的解析用户作图的逻辑,算法支持各种复杂的图形。
3、执行速度快。不必生成语法树去执行所有的逻辑,而是直接生成具有执行顺序的无向连通图,根据无向连通图形执行即可,方便快捷。
实施例2
在上述实施例的基础上,本实施例进一步细化,至少包括:对图符的解析顺序进一步细化。图2A为本发明实施例2中提供的一种梯形图的转换方法的流程图;图2B为图1D所示梯形图的执行顺序示意图;参照图2A,该方法可以包括如下的步骤:
S210、根据梯形图中各图符之间的输入输出关系,确定各图符之间的依赖关系。
本实施例中,以图符包括第一图符和第二图符为例对依赖关系进行详细说明,其中,第一图符和第二图符为梯形图中的任意两个不同的图符;进一步的,当从第一图符输出到第二图符时,即第一图符的一输出端连接第二图符的一输入端时,确定第二图符依赖于第一图符。其中,依赖指的是,第二图符的输入端的值等于第一图符的输出端的值,只有当第一图符的输出端的值确定时,才可以确定第二图符的输入端的值。
S220、将所述梯形图中与左母线相连接的图符加入顺序列表中,以初始化顺序列表。
本实施例中,在顺序列表的初始化中,可以将梯形图中与左母线相连接的图符以从上到下的顺序加入顺序列表中,使得梯形图的解析顺序可以大致为从左至右,从上到下的顺序。
S230、在按照所述顺序列表对所述梯形图进行解析的过程中,根据各所述图符之间的依赖关系,调整所述顺序列表中的所述图符及所述图符的顺序。
本实施例中,一边按照顺序列表中所示的图符的顺序对顺序列表中的图符进行解析,另一边更新顺序列表中的图符及图符的顺序,可以加快梯形图的解析速度。
一般的,梯形图的解析顺序为从左至右,从上到下的顺序。如,当顺序列表中的某一图符解析完毕之后,可以将与该图符的输出端连接的图符按照从上到下的顺序加入到顺序列表中。
本实施例中,在从左至右、从上到下的解析顺序的基础上,以被依赖的图符先解析的原则,对所有图符的解析顺序进行调整。如,当顺序列表的某一图符在解析过程中,存在其依赖的图符尚未解析,则将该依赖的图符加入到顺序列表的头部,以便对该依赖的图符优先进行解析。
在一实施例中,步骤S230用于对梯形图中的所有图符进行遍历解析,可以细化为如下步骤:
S1、将顺序列表中排在头部的图符,确定为正在解析的当前图符。
本实施例中,解析顺序为从顺序列表的头部到尾部进行排序,也就是,可以将排在顺序列表头部的图符,确定为当前图符。
进一步的,在该当前图符解析完毕之后,可以删除该当前图符。之后继续将排在顺序列表头部的新的图符,作为当前图符,继续进行解析的操作。
S2、将当前图符的输入端所连接的图符,确定为当前图符的依赖图符。
本实施例中,梯形图的解析顺序为从左至右,从上到下的顺序,本实施例中,在此基础上,以被依赖的图符先解析的原则,对所有图符的解析顺序进行调整。
因此,需要先确定当前图符是否存在未解析的依赖图符。
S3、确定依赖图符是否已解析。
本实施例中,被依赖的图符需要提前进行解析,本实施例中,采用将未解析的依赖图符加入到顺序列表的头部进行实现。
在一实施例中,在解析当前图符时,存储当前图符的输入端和输出端所解析得到的值。
进一步地,当该当前图符的所有输入端均对应设置有值时,确定当前图符的所有依赖图符均已解析完毕。
在一具体的实施例中,在获取梯形图中的所有图符后,每个图符均可以配置有一个唯一识别号(ID)。当一图符已经被解析完毕时,可以使用若干个变量来存储该图符输出端和输入端的值,该变量可以是以该图符对应的ID进行命名。
例如,假设一个线圈coil_num1的ID是5,并且,在这个线圈第一次被解析完时,其输出值已经确定为a,则可以使用一命名为_TMP_5_enable的变量来存储值a,代表此线圈的输出值为a。其中,enable用于表示所有BOOL类型的图符的名称。BOOL类型的图符可以包括触点、线圈等。
又例如,以功能的输入端为例进行说明,如图1D的功能TP_1(图符)的IN端的ID是15,可以将该端的名称规定为_TMP_15_IN,根据依赖关系,_TMP_15_IN端的值存储为var1,其中,var1是一个常量,可以直接取值。也就是说,可以使用_TMP_15_IN这一变量存储功能TP_1(图符)的IN端的值。
进一步地,当再次遍历到重复的图符时,就不必再次寻找依赖关系,因为这个图符已经解析完毕,不在进行解析,如果需要其相应的值,只需要根据名称去取相应的值即可。(如根据_TMP_5_enable可以得到ID为5的图符的输出值是a)。
S4、当存在一依赖图符未解析时,将该依赖图符添加到顺序列表的头部,并继续执行步骤S1,以提前解析该依赖图符,使得当前图符在该依赖图符解析之后,再继续被解析,以保证解析顺序的正确性。
本实施例中,当所有依赖图符均已解析完毕时,则继续执行步骤S31。
S31、确定当前图符解析完毕,并从顺序列表中删除该当前图符。
进一步的,当该当前图符的输出端连接有未解析的图符、且未解析的图符不在顺序列表中时,则执行步骤S32;否则执行步骤S311。
S32、当该当前图符的输出端连接有未解析的图符、且未解析的图符不在顺序列表中时,将未解析的图符按照从高到低(即从上到下)的顺序,添加到顺序列表中的头部,并继续执行步骤S1。
S311、当该当前图符的输出端未连接有未解析的图符、或直接连接梯形图中的右母线时,则继续执行步骤S1,直到顺序列表中的所有图符均已解析完毕为止。
S240、记录在所述梯形图的解析过程中,所有所述图符实际的解析顺序。
需要注意的是,步骤S240可以与步骤S230同步执行,也就是说,可以是每解析完毕一个图符,则将该图符记录下来,最终得到图符实际的解析顺序。
S250、以所述解析顺序作为所述图符的执行顺序,生成所述梯形图对应的、具有所述执行顺序的无向连通图。
需要注意的是,无向连通图中各图符的执行顺序,可以用于体现该图符对应的指令的执行顺序。
在一具体的实施例中,以图1D中所示的梯形图为例进行说明。
1、与左母线相连接的图符为in1和in2。因此,初始的顺序列表可以为(in1,in2)。首先解析in1,在in1解析完毕之后,将图符in1从顺序列表中删除。进一步的,由于in1直接连接左母线,且没有依赖图符,因此,将in1的输出端连接的图符TP_1加入解析顺序列表的头部。
2、顺序列表更新为(TP_1,in2)。继续进行图符TP_1的解析。首先寻找TP_1的依赖图符,在TP_1的依赖图符全部解析后,再解析TP_1自身。TP_1的依赖图符包括in1、var1和var2,其中,in1已经解析完毕,var1和var2为常量,直接赋值即可。在解析TP_1自身时,可以根据TP_1的输入端的值和TP_1的功能解析得到所有TP_1的输出端的值,如TP_1.ENO和TP_1.Q等。在TP_1自身解析完毕之后,从顺序列表中删除TP_1。之后,将TP_1输出端所连接的图符,如out1和ADD1,按照从上到下的顺序加入解析顺序列表的头部。其中,ET输出端未连线,所以不必处理。
3、顺序列表更新为(out1,ADD1,in2)。在解析out1的时候,发现其存在两个依赖图符,包括TP_1和ADD1。其中,依赖图符TP_1已经解析完毕,即TP_1.ENO的依赖已经处理完毕,只需要处理未解析的依赖图符ADD1,即解析得到ADD1.ENO对应的值。进一步地,通过递归进入ADD1的解析,发现其有三个依赖图符,包括:TP_1、in2和var3。其中,ADD1.a连接的TP_1已经解析完毕,也就是说,a的依赖已经解析过,只需要处理EN和b即可。进一步地,通过递归进行in2的解析,in2连接左母线,没有依赖,直接解析in2即可,解析完毕之后,将ADD1加入解析顺序列表的头部。继续解析最后一个依赖b,发现b是变量,取其值即可。到此时,ADD1的三个依赖图符已全部解析完毕,开始解析ADD1。在ADD1解析完毕后,将ADD1的输出端ADD1.out所连接的var4加入顺序列表的头部。当ADD1解析完毕后,out1的依赖ADD1.ENO解析完毕,输出至右母线,代表本梯级的遍历结束,out1处理完毕,从顺序列表中删除out1。
4、此时,顺序列表更新为(var4,ADD1,in2),开始解析var4,var4依赖ADD1,发现ADD1已经解析完毕,直接取值即可。
5、此时,顺序列表更新为(ADD1,in2),同理的,这两个图符已经解析完毕,所以不必执行操作,从顺序列表中删除ADD1和in2。
当然,也可以在每个图符解析完毕之后,直接从顺序列表中删除,就不需要在遍历过程中,继续判断顺序列表中的图符是否已经解析完毕。
以上已经将梯形图中所有的图形遍历完毕,并且按照正确的逻辑顺序解析完毕,图符真实解析顺序为(in1,TP_1,out1,in2,ADD1,out1,var4)。
进一步地,以图2B中所示的各图符的执行顺序为例进行说明,图2B中包含了所有图符各个值的信息。
假定这些图符的ID为in1:5,in2:8,TP_1:10,ADD1:15,out1:20。那么值信息为:
触点in1的输出端_TMP_5_enable对应的值in1;触点in2的输出端_TMP_8_enable对应的值in2;TP_1的输入端_TMP_10_EN对应的值in2;TP_1的输入端_TMP_10_IN对应的值var1;TP_1的输入端_TMP_10_PT对应的值var2。
实施例3
本申请提供一种梯形图的转换装置,该梯形图的转换装置可以通过软件和/或硬件的方式实现,并集成在可进行在梯形图的转换设备中。可选的,该梯形图的转换设备包括但不限定于电脑、服务器等终端。本实施例中,以该梯形图的转换设备为服务器为例进行详细说明。
图3为本发明实施例3中提供的一种梯形图的转换装置的结构示意图,参照图3,该装置可以包括如下的结构:依赖关系确定模块310、解析顺序确定模块320和无向连通图转换模块330。
依赖关系确定模块310,用于根据梯形图中各图符之间的输入输出关系,确定各图符之间的依赖关系。
解析顺序确定模块320,用于基于所述依赖关系,以被依赖的图符先解析的原则,确定所有所述图符的解析顺序。
无向连通图转换模块330,用于以所述解析顺序作为所述图符的执行顺序,生成所述梯形图对应的、具有所述执行顺序的无向连通图。
本实施例提供的技术方案中,通过该转换方法可以解析出整个梯形图的执行顺序。具体的,通过寻找每个图符的依赖关系,寻找到所有图符的依赖关系,当所有的图符依赖关系寻找完毕后,就可以得到梯形图的整体逻辑,最终生成一张具有执行顺序的无向连通图,解决了因AOV图无法正确转换为二叉树所带来的无法生成指令表的问题。
这种方法生成的带有执行顺序的无向连通图具有以下优势:
1、解析图形速度快。不必生成有向图来分析逻辑关系,而是直接得到所有图符之间的依赖关系,甚至图符输入输出端之间的逻辑关系。
2、在寻找依赖的过程中,可以得到梯形图的执行顺序。保证用户作图稳定性,正确的解析用户作图的逻辑,算法支持各种复杂的图形。
3、执行速度快。不必生成语法树去执行所有的逻辑,而是直接生成具有执行顺序的无向连通图,根据无向连通图形执行即可,方便快捷。
在上述技术方案的基础上,所述图符包括第一图符和第二图符,其中,所述第一图符和所述第二图符为所述梯形图中的任意两个不同的图符;
所述依赖关系确定模块310,包括:
依赖关系确定单元,用于当从所述第一图符输出到所述第二图符时,确定所述第二图符依赖于所述第一图符。
在上述技术方案的基础上,所述解析顺序确定模块320,包括:
初始化单元,用于将所述梯形图中与左母线相连接的图符加入顺序列表中,以初始化顺序列表。
调整单元,用于在按照所述顺序列表对所述梯形图进行解析的过程中,根据各所述图符之间的依赖关系,调整所述顺序列表中的所述图符及所述图符的顺序;
顺序记录单元,用于记录在所述梯形图的解析过程中,所有所述图符实际的解析顺序。
在上述技术方案的基础上,所述调整单元,具体用于实现如下步骤:
S1、将所述顺序列表中排在头部的图符,确定为正在解析的当前图符;
S2、将所述当前图符的输入端所连接的图符,确定为所述当前图符的依赖图符;
S3、确定所述依赖图符是否已解析;
S4、当存在一所述依赖图符未解析时,将所述依赖图符添加到所述顺序列表的头部,并继续执行步骤S1。
在上述技术方案的基础上,在步骤S3之后,还包括:
S31、当所有所述依赖图符均已解析完毕时,确定所述当前图符解析完毕,并从所述顺序列表中删除所述当前图符;
S32、当所述当前图符的输出端连接有未解析的图符、且未解析的图符不在所述顺序列表中时,将未解析的图符按照从高到低的顺序,添加到所述顺序列表中的头部,并继续执行步骤S1。
在上述技术方案的基础上,在步骤S31之后,还包括:
S311、当所述当前图符的输出端未连接有未解析的图符、或直接连接所述梯形图中的右母线时,则继续执行步骤S1。
在上述技术方案的基础上,步骤S1时,包括:
当所述顺序列表不存在图符时,则确定所述梯形图中的所有图符均已解析完毕。
在上述技术方案的基础上,该装置还用于:在解析当前图符时,存储所述当前图符的输入端和输出端所解析得到的值;
步骤S3,包括:
当所述当前图符的所有输入端均对应设置有值时,确定所述当前图符的所有所述依赖图符均已解析完毕。
在上述技术方案的基础上,该装置还包括:
成环错误检测模块,用于当所述梯形图中存在两所述图符互为依赖关系时,确定所述梯形图中存在成环的连线错误。
实施例4
图4为本发明实施例4提供的一种梯形图的转换设备的结构示意图。如图4所示,该梯形图的转换设备包括:处理器40、存储器41、输入装置42以及输出装置43。该梯形图的转换设备中处理器40的数量可以是一个或者多个,图4中以一个处理器40为例。该梯形图的转换设备中存储器41的数量可以是一个或者多个,图4中以一个存储器41为例。该梯形图的转换设备的处理器40、存储器41、输入装置42以及输出装置43可以通过总线或者其他方式连接,图4中以通过总线连接为例。该梯形图的转换设备可以是电脑和服务器等。本实施例以梯形图的转换设备为个人计算机进行详细说明。
存储器41作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块,如本发明任意实施例所述的梯形图的转换方法对应的程序指令/模块(例如,梯形图的转换装置中的依赖关系确定模块310、解析顺序确定模块320和无向连通图转换模块330)。存储器41可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作***、至少一个功能所需的应用程序;存储数据区可存储根据设备的使用所创建的数据等。此外,存储器41可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,存储器41可进一步包括相对于处理器40远程设置的存储器,这些远程存储器可以通过网络连接至设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
输入装置42可用于接收输入的数字或者字符信息,以及产生与梯形图的转换设备的观众用户设置以及功能控制有关的键信号输入,还可以是用于获取图像的摄像头以及获取音频数据的拾音设备。输出装置43可以包括扬声器等音频设备。需要说明的是,输入装置42和输出装置43的具体组成可以根据实际情况设定。
处理器40通过运行存储在存储器41中的软件程序、指令以及模块,从而执行设备的各种功能应用以及数据处理,即实现上述的梯形图的转换方法。
实施例5
本发明实施例5还提供一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行一种梯形图的转换方法,包括:
根据梯形图中各图符之间的输入输出关系,确定各图符之间的依赖关系;
基于所述依赖关系,以被依赖的图符先解析的原则,确定所有所述图符的解析顺序;
以所述解析顺序作为所述图符的执行顺序,生成所述梯形图对应的、具有所述执行顺序的无向连通图。
当然,本发明实施例所提供的一种包含计算机可执行指令的存储介质,其计算机可执行指令不限于如上所述的梯形图的转换方法操作,还可以执行本发明任意实施例所提供的梯形图的转换方法中的相关操作,且具备相应的功能和有益效果。
通过以上关于实施方式的描述,所属领域的技术人员可以清楚地了解到,本发明可借助软件及必需的通用硬件来实现,当然也可以通过硬件实现,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如计算机的软盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(RandomAccess Memory,RAM)、闪存(FLASH)、硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是机器人,个人计算机,服务器,或者网络设备等)执行本发明任意实施例所述的梯形图的转换方法。
值得注意的是,上述梯形图的转换装置中,所包括的各个单元和模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。
应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行***执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
在本说明书的描述中,参考术语“在一实施例中”、“在又一实施例中”、“示例性的”或“在具体的实施例中”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
虽然,上文中已经用一般性说明、具体实施方式及试验,对本发明作了详尽的描述,但在本发明基础上,可以对之作一些修改或改进,这对本领域技术人员而言是显而易见的。因此,在不偏离本发明精神的基础上所做的这些修改或改进,均属于本发明要求保护的范围。
Claims (10)
1.一种梯形图的转换方法,其特征在于,包括:
根据梯形图中各图符之间的输入输出关系,确定各图符之间的依赖关系;
将所述梯形图中与左母线相连接的图符加入顺序列表中,以初始化顺序列表;
在按照所述顺序列表对所述梯形图进行解析的过程中,根据各所述图符之间的依赖关系,调整所述顺序列表中的所述图符及所述图符的顺序;
记录在所述梯形图的解析过程中,所有所述图符实际的解析顺序;
以所述解析顺序作为所述图符的执行顺序,生成所述梯形图对应的、具有所述执行顺序的无向连通图;
其中,所述在按照所述顺序列表对所述梯形图进行解析的过程中,根据各所述图符之间的依赖关系,调整所述顺序列表中的所述图符及所述图符的顺序,包括:
S1、将所述顺序列表中排在头部的图符,确定为正在解析的当前图符;
S2、将所述当前图符的输入端所连接的图符,确定为所述当前图符的依赖图符;
S3、确定所述依赖图符是否已解析;
S4、当存在一所述依赖图符未解析时,将所述依赖图符添加到所述顺序列表的头部,并继续执行步骤S1。
2.根据权利要求1所述的方法,其特征在于,所述图符包括第一图符和第二图符,其中,所述第一图符和所述第二图符为所述梯形图中的任意两个不同的图符;
所述根据梯形图中各图符之间的输入输出关系,确定各图符之间的依赖关系,包括:
当从所述第一图符输出到所述第二图符时,确定所述第二图符依赖于所述第一图符。
3.根据权利要求1所述的方法,其特征在于,在步骤S3之后,还包括:
S31、当所有所述依赖图符均已解析完毕时,确定所述当前图符解析完毕,并从所述顺序列表中删除所述当前图符;
S32、当所述当前图符的输出端连接有未解析的图符、且未解析的图符不在所述顺序列表中时,将未解析的图符按照从高到低的顺序,添加到所述顺序列表中的头部,并继续执行步骤S1。
4.根据权利要求3所述的方法,其特征在于,在步骤S31之后,还包括:
S311、当所述当前图符的输出端未连接有未解析的图符、或直接连接所述梯形图中的右母线时,则继续执行步骤S1。
5.根据权利要求1所述的方法,其特征在于,步骤S1时,包括:
当所述顺序列表不存在图符时,则确定所述梯形图中的所有图符均已解析完毕。
6.根据权利要求1和3-5任一所述的方法,其特征在于,还包括:
在解析当前图符时,存储所述当前图符的输入端和输出端所解析得到的值;
步骤S3,包括:
当所述当前图符的所有输入端均对应设置有值时,确定所述当前图符的所有所述依赖图符均已解析完毕。
7.根据权利要求1所述的方法,其特征在于,还包括:
当所述梯形图中存在两所述图符互为依赖关系时,确定所述梯形图中存在成环的连线错误。
8.一种梯形图的转换装置,其特征在于,包括:
依赖关系确定模块,用于根据梯形图中各图符之间的输入输出关系,确定各图符之间的依赖关系;
初始化单元,用于将所述梯形图中与左母线相连接的图符加入顺序列表中,以初始化顺序列表;
调整单元,用于在按照所述顺序列表对所述梯形图进行解析的过程中,根据各所述图符之间的依赖关系,调整所述顺序列表中的所述图符及所述图符的顺序;
顺序记录单元,用于记录在所述梯形图的解析过程中,所有所述图符实际的解析顺序;无向连通图转换模块,用于以所述解析顺序作为所述图符的执行顺序,生成所述梯形图对应的、具有所述执行顺序的无向连通图;
其中,所述调整单元,具体用于实现如下步骤:
S1、将所述顺序列表中排在头部的图符,确定为正在解析的当前图符;
S2、将所述当前图符的输入端所连接的图符,确定为所述当前图符的依赖图符;
S3、确定所述依赖图符是否已解析;
S4、当存在一所述依赖图符未解析时,将所述依赖图符添加到所述顺序列表的头部,并继续执行步骤S1。
9.一种梯形图的转换设备,其特征在于,包括:存储器以及一个或多个处理器;
所述存储器,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-7中任一所述的梯形图的转换方法。
10.一种包含计算机可执行指令的存储介质,其特征在于,所述计算机可执行指令在由计算机处理器执行时用于执行如权利要求1-7 中任一所述的梯形图的转换方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011475740.2A CN112506129B (zh) | 2020-12-15 | 2020-12-15 | 一种梯形图的转换方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011475740.2A CN112506129B (zh) | 2020-12-15 | 2020-12-15 | 一种梯形图的转换方法、装置、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112506129A CN112506129A (zh) | 2021-03-16 |
CN112506129B true CN112506129B (zh) | 2022-02-22 |
Family
ID=74973647
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011475740.2A Active CN112506129B (zh) | 2020-12-15 | 2020-12-15 | 一种梯形图的转换方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112506129B (zh) |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111967017A (zh) * | 2020-07-28 | 2020-11-20 | 深圳开源互联网安全技术有限公司 | 生成依赖关系的方法、装置、终端设备及存储介质 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010020635A (ja) * | 2008-07-11 | 2010-01-28 | Nippon Reliance Kk | プログラミング言語変換装置、変換方法及び変換プログラム |
JP5155829B2 (ja) * | 2008-11-18 | 2013-03-06 | 株式会社東芝 | プログラマブルコントローラのダイアグラムのデバッグシステム、そのプログラミング装置及びそのプログラム |
CN104160344B (zh) * | 2012-12-17 | 2016-01-20 | 三菱电机株式会社 | 程序解析辅助装置及控制装置 |
CN103150147B (zh) * | 2013-02-20 | 2015-07-08 | 中南大学 | 一种基于GPU的LD tagSNPs并行选择方法 |
EP3410245A1 (en) * | 2017-06-02 | 2018-12-05 | OMRON Corporation | Process analysis apparatus, process analysis method, and process analysis program |
CN109976760A (zh) * | 2017-12-27 | 2019-07-05 | 北京东土科技股份有限公司 | 一种图形语言的交叉编译方法及交叉编译器 |
-
2020
- 2020-12-15 CN CN202011475740.2A patent/CN112506129B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111967017A (zh) * | 2020-07-28 | 2020-11-20 | 深圳开源互联网安全技术有限公司 | 生成依赖关系的方法、装置、终端设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN112506129A (zh) | 2021-03-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8307354B2 (en) | Program creation device, program test device, program execution device, information processing system | |
US11656592B2 (en) | Analysis device, analysis method, and recording medium | |
CN111935622B (zh) | 带数字功放电子设备的调试方法、装置、设备及存储介质 | |
CN114201381A (zh) | 测试用例生成方法、设备和存储介质 | |
CN111580821B (zh) | 脚本绑定方法、装置、电子设备及计算机可读存储介质 | |
CN109032056A (zh) | 可编程逻辑控制器编程语言转换方法 | |
CN110098959B (zh) | 工控协议交互行为的建模方法、装置、***及存储介质 | |
CN111464515A (zh) | 一种数据转换方法、装置、设备及存储介质 | |
CN114238151A (zh) | 一种软件测试方法、装置、电子设备及存储介质 | |
CN114201397A (zh) | 一种接口测试建模方法、装置、电子设备和存储介质 | |
CN112506129B (zh) | 一种梯形图的转换方法、装置、设备及存储介质 | |
CN112114866B (zh) | 一种json文件的数据转换加载方法、装置及存储介质 | |
CN116643739A (zh) | 决策引擎实现方法、装置、设备及存储介质 | |
CN113485710A (zh) | 一种低代码脚本实现方法及终端 | |
CN114594960A (zh) | 一种递归函数解析执行方法、装置及存储介质 | |
CN112232071A (zh) | 多轮对话剧本测试方法、装置、设备及存储介质 | |
CN111701223A (zh) | 一种实景娱乐的流程自动控制方法及装置 | |
US20180267680A1 (en) | Screen creation apparatus, simulation apparatus and recording medium | |
CN117389569B (zh) | 一种程序解释执行方法 | |
CN117519669A (zh) | 基于形式化验证的智能体行为树程序自动生成方法及装置 | |
CN118174807A (zh) | 链路箱及其控制方法、装置和计算机可读存储介质 | |
CN115827109A (zh) | 一种脚本数组元素删除方法、装置、设备及存储介质 | |
CN117573089A (zh) | 通讯协议栈代码的生成方法、装置、电子设备及存储介质 | |
CN116880825A (zh) | 代码生成方法、装置、电子设备和存储介质 | |
CN117112402A (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 | ||
EE01 | Entry into force of recordation of patent licensing contract | ||
EE01 | Entry into force of recordation of patent licensing contract |
Application publication date: 20210316 Assignee: Beijing Shuili Intelligent Building Technology Co.,Ltd. Assignor: KYLAND TECHNOLOGY Co.,Ltd. Contract record no.: X2022990000047 Denomination of invention: A conversion method, device, equipment and storage medium of ladder diagram License type: Common License Record date: 20220121 |
|
GR01 | Patent grant | ||
GR01 | Patent grant |