一种基于发电机组控制器的PLC梯形图转指令表的方法技术

技术编号:11003445 阅读:100 留言:0更新日期:2015-02-05 03:38
本发明专利技术提供一种基于发电机组控制器的PLC梯形图转指令表的方法,包括以下步骤:步骤1:根据PLC梯形图构建中间树;步骤2:遍历中间树;步骤3:输出步骤2中生成的指令表。本发明专利技术方法提供了一种由PLC梯形图的生成指令表的方法,可自动检测错误和冗余,由PLC梯形图生成中间树结构,然后由树结构生成指令表。

【技术实现步骤摘要】
一种基于发电机组控制器的PLC梯形图转指令表的方法
本专利技术涉及一种转指令表的方法,具体的说,涉及了一种基于发电机组控制器的PLC梯形图转指令表的方法。
技术介绍
PLC的编程语言一般采用梯形图语言(LD)、指令表语言(IL)、功能模块语言(FBD)、顺序功能流程图语言(SFC)和结构化文本语言(ST)五种,然而,在使用的过程中,有时候需要在梯形图与指令表之间进行互转,但是,普通的方法在梯形图转指令表的过程中不能纠错,并且还容易出现指令翻译错误或者指令冗余。
技术实现思路
本专利技术的目的是针对现有技术的不足,提供了一种易于实现,能自动检测错误和冗余的基于发电机组控制器的PLC梯形图转指令表的方法。为了实现上述目的,本专利技术所采用的技术方案是:一种基于发电机组控制器的PLC梯形图转指令表的方法,包括以下步骤:步骤1:根据PLC梯形图构建中间树:其中,所述中间树的节点包括叶子节点和关系节点,所述关系节点为PLC梯形图逻辑节点的父节点,包括串联节点S和并联节点P;所述叶子节点为PLC梯形图中逻辑节点开关量;每个叶子节点必须有个关系父节点,如果关系节点的子节点为关系节点,关系子节点不能与父节点类型相同;步骤2:遍历中间树;a、如果PLC梯形图中只有一个叶子节点和一个输出,判断该叶子节点的极性,如果是常开的,生成指令“LD”,如果是常闭的,则生成“LDNOT”;b、如果PLC梯形图中有多个节点:先判断节点是否为关系节点的第一个子节点;如果是第一个子节点,根据节点的极性,生成“LD”指令或“LDNOT”指令;如果不是,当节点的父节点是串联节点S时,根据节点的极性,生成“AND”指令或“ANDNOT”指令,当节点的父节点是并联节点P时,根据节点的极性,生成“OR”指令或“ORNOT”指令;当一个关系节点的所有子节点都遍历后,判断该关系节点是否是其父节点的第一子节点,如果是第一子节点,则不生成指令,如果不是第一子节点,则根据该节点的类型,串联节点S生成“ORLD”指令,并联节点生成“ANDLD”指令;若某个关系节点的子节点也是关系节点,则递归调用步骤b;步骤3:输出步骤2中生成的指令表。本专利技术相对现有技术具有突出的实质性特点和显著进步,具体的说,本专利技术方法提供了一种由PLC梯形图的生成指令表的方法,可自动检测错误和冗余,由PLC梯形图生成中间树结构,然后由中间树生成指令表。附图说明图1是本专利技术方法拟用的PLC梯形图。图2是本专利技术方法依据图1生成的中间树。图3是本专利技术方法步骤2中分步骤a的PLC梯形图和中间树。具体实施方式下面通过具体实施方式,对本专利技术的技术方案做进一步的详细描述。如图1所示,一种基于发电机组控制器的PLC梯形图转指令表的方法,包括以下步骤:步骤1:根据PLC梯形图构建中间树:其中,所述中间树的节点包括叶子节点和关系节点,所述关系节点为PLC梯形图逻辑节点的父节点,包括串联节点S和并联节点P;所述叶子节点为PLC梯形图中逻辑节点开关量;每个叶子节点必须有个关系父节点,如果关系节点的子节点为关系节点,关系子节点不能与父节点类型相同。根据图1所示PLC梯形图生成的中间树如图2所示。步骤2:遍历中间树;a、如果PLC梯形图中只有一个叶子节点和一个输出,那对应的中间树如图3所示,判断该叶子节点的极性,如果是常开的,生成指令“LD”,如果是常闭的,则生成“LDNOT”;图3所示PLC梯形图生成的指令表结果为:LDX1OUTF1END;b、如果PLC梯形图中有多个节点,如图1和图2所示:先判断节点是否为关系节点的第一个子节点;如果是第一个子节点,根据节点的极性,生成“LD”指令或“LDNOT”指令,如图2中的X1、X3、X6节点;如果不是,当节点的父节点是串联节点S时,根据节点的极性,生成“AND”指令或“ANDNOT”指令,如图2中的X8节点,生成指令“ANDX8”,当节点的父节点是并联节点P时,根据节点的极性,生成“OR”指令或“ORNOT”指令,如图2中的X3、X4节点,父节点为并联节点P,而且X3节点为父节点的第一子节点,所以生成的指令为“LDX3”、“ORX4”;当一个关系节点的所有子节点都遍历后,判断该关系节点是否是其父节点的第一子节点,如果是第一子节点,则不生成指令,如果不是第一子节点,则根据该节点的类型,串联节点S生成“ORLD”指令,并联节点生成“ANDLD”指令;如图2所示,X2节点遍历完后,因为X2的父节点是其父节点的第一子节点,所以不生成“AND”指令;X9节点访问完后,其父节点不是第一子节点,所以要生成“ORLD”指令,即:LDX6ORX7ANDX9ORLD;若某个关系节点的子节点也是关系节点,则递归调用步骤b。步骤3:根据步骤2,图1和图2所示的PLC梯形图和中间树,生成的指令表如下:LDX1ORX2LDX3ORX4ANDX8ORX5LDX6ORX7ANDX9ORLDANDLDANDX10OUTCounter1最终,输出步骤2中生成的指令表。最后应当说明的是:以上实施例仅用以说明本专利技术的技术方案而非对其限制;尽管参照较佳实施例对本专利技术进行了详细的说明,所属领域的普通技术人员应当理解:依然可以对本专利技术的具体实施方式进行修改或者对部分技术特征进行等同替换;而不脱离本专利技术技术方案的精神,其均应涵盖在本专利技术请求保护的技术方案范围当中。本文档来自技高网...
一种基于发电机组控制器的PLC梯形图转指令表的方法

【技术保护点】
一种基于发电机组控制器的PLC梯形图转指令表的方法,其特征在于:包括以下步骤:步骤1:根据PLC梯形图构建中间树:其中,所述中间树的节点包括叶子节点和关系节点,所述关系节点为PLC梯形图逻辑节点的父节点,包括串联节点S和并联节点P;所述叶子节点为PLC梯形图中逻辑节点开关量;每个叶子节点必须有个关系父节点,如果关系节点的子节点为关系节点,关系子节点不能与父节点类型相同; 步骤2:遍历中间树;a、如果PLC梯形图中只有一个叶子节点和一个输出,判断该叶子节点的极性,如果是常开的,生成指令“LD”,如果是常闭的,则生成“LDNOT”;b、如果PLC梯形图中有多个节点:先判断节点是否为关系节点的第一个子节点;如果是第一个子节点,根据节点的极性,生成“LD”指令或“LDNOT”指令;如果不是,当节点的父节点是串联节点S时,根据节点的极性,生成“AND”指令或“ANDNOT”指令,当节点的父节点是并联节点P时,根据节点的极性,生成“OR”指令或“ORNOT”指令;当一个关系节点的所有子节点都遍历后,判断该关系节点是否是其父节点的第一子节点,如果是第一子节点,则不生成指令,如果不是第一子节点,则根据该节点的类型,串联节点S生成“ORLD”指令,并联节点生成“ANDLD”指令;若某个关系节点的子节点也是关系节点,则递归调用步骤b; 步骤3:输出步骤2中生成的指令表。...

【技术特征摘要】
1.一种基于发电机组控制器的PLC梯形图转指令表的方法,其特征在于:包括以下步骤:步骤1:根据PLC梯形图构建中间树:其中,所述中间树的节点包括叶子节点和关系节点,所述关系节点为PLC梯形图逻辑节点的父节点,包括串联节点S和并联节点P;所述叶子节点为PLC梯形图中逻辑节点开关量;每个叶子节点必须有个关系父节点,如果关系节点的子节点为关系节点,关系子节点不能与父节点类型相同;步骤2:遍历中间树;a、如果PLC梯形图中只有一个叶子节点和一个输出,判断该叶子节点的极性,如果是常开的,生成指令“LD”,如果是常闭的,则生成“LDNOT”;b、如果PLC梯形图中有多个节点:先判断节点是否...

【专利技术属性】
技术研发人员:冯斌王向前王磊刘蕊董俊丽
申请(专利权)人:郑州众智科技股份有限公司
类型:发明
国别省市:河南;41

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

1