一种plc梯形图的分析方法及装置的制造方法
【技术领域】
[0001]本发明涉及高级语言编译技术领域,特别涉及一种PLC梯形图的分析方法及装置。
【背景技术】
[0002]PLC(ProgrammabIe Logic Controller,可编程逻辑控制器)的IL(IntermediateLanguage,NET框架中中间语言)指令表编程语言是与汇编语言类似的一种助记符编程语言,和汇编语言一样由操作码和操作数组成,容易被PLC识别和执行。
[0003]在一些现有技术中,为了方便用户编程的直观性,降低对编程者的要求,可以采用PLC梯形图进行编程,然后将PLC梯形图转化为IL指令表编程语言,传递给CPU解析并执行。
[0004]然而,由于PLC梯形图较复杂,因此,在将PLC梯形图转化为IL指令表时,效率较低。
【发明内容】
[0005]本发明实施例提供了一种PLC梯形图的分析方法及装置,以降低PLC梯形图的复杂度。
[0006]第一方面,本发明实施例提供了一种PLC梯形图的分析方法,包括:
[0007]获取待分析的PLC梯形图;
[0008]遍历所述PLC梯形图,将遍历到的具有逻辑关系的图元进行合并,并重复执行本步骤,直到所述PLC梯形图中不包括具有逻辑关系的图元,将当前的所述PLC梯形图作为最终分析结果。
[0009]优选地,所述遍历所述PLC梯形图,包括:逐个扫描所述PLC梯形图中的每个图元,在扫描到当前图元时,遍历当前图元是否存在或逻辑关系,若存在或逻辑关系,则执行所述将遍历到的具有逻辑关系的图元进行合并,若不存在或逻辑关系,则遍历当前图元是否存在与逻辑关系,若存在与逻辑关系,则执行所述将遍历到的具有逻辑关系的图元进行合并,若不存在与逻辑关系,则继续扫描下一个图元。
[0010]优选地,在所述遍历所述PLC梯形图之前,进一步包括:根据所述PLC梯形图中各个元素之间的连接关系,为每个元素进行赋值;其中,所述获取的待分析的PLC梯形图中包括具有连接关系的多个元素。
[0011]优选地,
[0012]所述图元包括:元素和/或矩阵块;
[0013]所述将遍历到的具有逻辑关系的图元进行合并,包括:
[0014]在遍历到所述PLC梯形图中元素之间具有逻辑关系时,将具有逻辑关系的元素合并为矩阵块,并根据被合并为该矩阵块的各个元素分别对应的值生成该矩阵块的值;
[0015]在遍历到所述PLC梯形图中元素与矩阵块之间具有逻辑关系时,将具有逻辑关系的元素与矩阵块合并为新的矩阵块,并根据该具有逻辑关系的元素与矩阵块分别对应的值生成该新的矩阵块的值;
[0016]在遍历到所述PLC梯形图中矩阵块与矩阵块之间具有逻辑关系时,将具有逻辑关系的矩阵块合并为新的矩阵块,并根据该具有逻辑关系的矩阵块的值生成该新的矩阵块的值。
[0017]优选地,进一步包括:根据所述最终分析结果,将最终分析结果对应的PLC梯形图转换为IL指令表。
[0018]第二方面,本发明实施例提供了一种PLC梯形图的分析装置,包括:
[0019]获取单元,用于获取待分析的PLC梯形图,并将获取的所述PLC梯形图发送给遍历单元;
[0020]所述遍历单元,用于遍历所述PLC梯形图,并将遍历到的逻辑关系发送给分析单元;
[0021]所述分析单元,用于将遍历到的具有逻辑关系的图元进行合并,并触发所述遍历单元继续执行相应操作,直到所述PLC梯形图中不包括具有逻辑关系的图元,将当前的所述PLC梯形图作为最终分析结果。
[0022]优选地,所述遍历单元,具体用于逐个扫描所述PLC梯形图中的每个图元,在扫描到当前图元时,遍历当前图元是否存在或逻辑关系,若存在或逻辑关系,则触发所述分析单元执行相应操作,若不存在或逻辑关系,则遍历当前图元是否存在与逻辑关系,若存在与逻辑关系,则触发所述分析单元执行相应操作,若不存在与逻辑关系,则继续扫描下一个图
J L ο
[0023]优选地,进一步包括:赋值单元,用于根据所述PLC梯形图中各个元素之间的连接关系,为每个元素进行赋值;其中,所述获取的待分析的PLC梯形图中包括具有连接关系的多个元素。
[0024]优选地,
[0025]在所述图元包括:元素和/或矩阵块时,所述分析单元,具体用于在遍历到所述PLC梯形图中元素之间具有逻辑关系时,将具有逻辑关系的元素合并为矩阵块,并根据被合并为该矩阵块的各个元素分别对应的值生成该矩阵块的值;在遍历到所述PLC梯形图中元素与矩阵块之间具有逻辑关系时,将具有逻辑关系的元素与矩阵块合并为新的矩阵块,并根据该具有逻辑关系的元素与矩阵块分别对应的值生成该新的矩阵块的值;在遍历到所述PLC梯形图中矩阵块与矩阵块之间具有逻辑关系时,将具有逻辑关系的矩阵块合并为新的矩阵块,并根据该具有逻辑关系的矩阵块的值生成该新的矩阵块的值。
[0026]优选地,进一步包括:转换单元,用于根据所述最终分析结果,将最终分析结果对应的PLC梯形图转换为IL指令表。
[0027]本发明实施例提供了一种PLC梯形图的分析方法及装置,通过将PLC梯形图中具有逻辑关系的图元进行合并,使得由多个图元组成的复杂PLC梯形图转换为只包括少量图元的简单PLC梯形图,从而降低了PLC梯形图的复杂度。
【附图说明】
[0028]为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0029]图1是本发明一个实施例提供的一种方法流程图;
[0030]图2是本发明一个实施例提供的另一种方法流程图;
[0031 ]图3是本发明一个实施例提供的连接关系示意图;
[0032]图4是本发明一个实施例提供的一种PLC梯形图;
[0033]图5是本发明一个实施例提供的赋值后的PLC梯形图;
[0034]图6是本发明一个实施例提供的另一个赋值后的PLC梯形图;
[0035]图7是本发明一个实施例提供的另一种PLC梯形图;
[0036]图8是本发明一个实施例提供的生成矩阵块E15的PLC梯形图;
[0037]图9是本发明一个实施例提供的最终的PLC梯形图;
[0038]图10是本发明一个实施例提供的PLC梯形图的分析装置所在设备的硬件架构图;
[0039]图11是本发明一个实施例提供的PLC梯形图的分析装置的一种结构示意图;
[0040]图12是本发明一个实施例提供的PLC梯形图的分析装置的另一种结构示意图。
【具体实施方式】
[0041]为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例,基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0042]如图1所示,本发明实施例提供了一种PLC梯形图的分析方法,该方法可以包括以下步骤:
[0043]步骤101:获取待分析的PLC梯形图;
[0044]步骤102:遍历所述PLC梯形图,将遍历到的具有逻辑关系的图元进行合并,并重复执行本步骤,直到所述PLC梯形图中不包括具有逻辑关系的图元,将当前的所述PLC梯形图作为最终分析结果。
[0045]根据本发明实施例的上述方案,通过将PLC梯形图中具有逻辑关系的图元进行合并,使得由多个图元组成的复杂PLC梯形图转换为只包括少量图元的简单PLC梯形图,从而降低了 PLC梯形图的复杂度。
[0046]在本发明一个实施例中,由于PLC梯形图中各个图元之间的逻辑关系可以包括“或逻辑关系”和/或“与逻辑关系”,且在将具有逻辑关系的图元之间进行合并时,需要根据实际的运算顺序对具有逻辑关系的图元进行合并,以保证最终分析结果的准确性,因此,所述遍历所述PLC梯形图,包括:逐个扫描所述PLC梯形图中的每个图元,在扫描到当前图元时,遍历当前图元是否存在或逻辑关系,若存在或逻辑关