发明名称 一种基于发电机组控制器的PLC指令表转梯形图的方法
摘要 本发明提供一种基于发电机组控制器的PLC指令表转梯形图的方法,包括以下步骤:步骤1:根据PLC指令表构建中间树;步骤2:遍历中间树;步骤3:输出步骤2中生成的梯形图。本发明方法提供了一种由PLC指令表生成梯形图的方法,可自动检测错误和冗余,由PLC指令表生成中间树结构,然后由中间树生成梯形图。
申请公布号 CN104460489B 申请公布日期 2017.04.12
申请号 CN201410634281.6 申请日期 2014.11.12
申请人 郑州众智科技股份有限公司 发明人 冯斌;朱伟燕;刘晓东;彭长泓;刘霞丽
分类号 G05B19/05(2006.01)I 主分类号 G05B19/05(2006.01)I
代理机构 郑州德勤知识产权代理有限公司 41128 代理人 黄军委;白毅明
主权项 一种基于发电机组控制器的PLC指令表转梯形图的方法,其特征在于,包括以下步骤:步骤1:根据PLC指令表构建中间树:定义一个栈来保存节点,从上到下逐步翻译PLC指令表每一行的指令;a、若是LD或LDNOT指令,新建一个叶子节点X,并将新建的叶子节点X推进栈;b、如果碰到AND或ANDNOT指令,新建一个叶子节点X,然后判断栈顶节点的类型;如果是串联节点,将该叶子节点X设置为栈顶节点的子节点;如果栈顶节点是叶子节点或并联节点,则新建一个串联节点S,将新建的叶子节点X和栈顶节点设置为新建的串联节点S的子节点,栈顶节点出栈,新建的串联节点S进栈;c、如果碰到OR和ORNOT指令,新建一个叶子节点X,然后判断栈顶节点的类型;如果是并联节点,直接将新建的叶子节点X设置为栈顶节点的子节点;如果是叶子节点或串联节点,新建一个并联节点P,将叶子节点X和栈顶节点设置为该并联节点P的子节点,栈顶节点出栈,该并联节点P进栈;d、如果碰到ANDLD指令,新建一个串联节点S,将栈的前两个节点出栈,并将这两个节点设置为该串联节点S的子节点,该串联节点S进栈;e、如果碰到ORLD指令,新建一个并联节点P,将栈的前两个节点出栈,并将这两个节点设置为该并联节点P的子节点, 该并联节点P进栈;f、碰到OUT指令,新建输出节点;g、碰到END指令,则结束,中间树生成完成;其中,所述中间树的节点包括叶子节点X和关系节点,所述关系节点为梯形图逻辑节点的父节点,包括串联节点S和并联节点P;所述叶子节点X为梯形图中逻辑节点开关量;每个叶子节点X必须有个关系父节点,如果关系节点的子节点为关系节点,关系子节点不能与父节点类型相同;步骤2:遍历中间树:a1、遍历中间树,如果是关系节点,那么继续递归下去,直到遍历到叶子节点X,则绘制成梯形图的一个逻辑节点;b1、遍历到下一个叶子节点X,该叶子节点X与上一个节点有一个共同的关系节点,判断该关系节点的类型,如果是串联节点S则绘制在上一个节点的X轴方向的后面,如果是并联节点P则绘制在上一个节点Y轴方向的下面;c1、依次遍历完中间树的所有叶子节点X,根据步骤a1、步骤b1将中间树中每一个叶子节点X都绘制成梯形图中的一个逻辑节点;步骤3:输出步骤2中生成的梯形图。
地址 450001 河南省郑州市高新技术产业开发区金梭路28号