首页> 中国专利> 语句表到梯形图的转换方法

语句表到梯形图的转换方法

摘要

本发明公开了语句表到梯形图的转换方法,以LD/LDN类指令,AND/ANDN类指令,OR/ORN类指令,ALD指令,OLD指令,LPS、LRDLPP指令这五类指令为中,以及线圈(Coil)类与功能盒(Box)类指令则根据当前逻辑栈顶的值来决定是否执行或赋值,可根据需要任意扩展;步骤有:步骤1:建立必要的数据结构;步骤2:创建路径链表:步骤3:扫描语句表,生成路径链表;步骤4:根据所扫描到的指令,按算法生成路径链表;步骤5:从路径链表中提起梯形图。

著录项

  • 公开/公告号CN104317631A

    专利类型发明专利

  • 公开/公告日2015-01-28

    原文格式PDF

  • 申请/专利权人 湖南先步信息股份有限公司;

    申请/专利号CN201410572477.7

  • 发明设计人 周晓峰;胡炎良;

    申请日2014-10-24

  • 分类号G06F9/45(20060101);

  • 代理机构44214 广州市红荔专利代理有限公司;

  • 代理人张文

  • 地址 410000 湖南省长沙市雨花经济开发区兴业路18号

  • 入库时间 2023-12-17 04:10:37

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2022-11-18

    专利权质押合同登记的生效 IPC(主分类):G06F 8/53 专利号:ZL2014105724777 登记号:Y2022430000095 登记生效日:20221101 出质人:湖南先步信息股份有限公司 质权人:华融湘江银行股份有限公司长沙分行 发明名称:语句表到梯形图的转换方法 申请日:20141024 授权公告日:20180209

    专利权质押合同登记的生效、变更及注销

  • 2019-06-14

    专利权质押合同登记的生效 IPC(主分类):G06F8/53 登记号:2019430000045 登记生效日:20190522 出质人:湖南先步信息股份有限公司 质权人:交通银行股份有限公司湖南省分行 发明名称:语句表到梯形图的转换方法 授权公告日:20180209 申请日:20141024

    专利权质押合同登记的生效、变更及注销

  • 2018-02-09

    授权

    授权

  • 2015-02-25

    实质审查的生效 IPC(主分类):G06F9/45 申请日:20141024

    实质审查的生效

  • 2015-01-28

    公开

    公开

说明书

技术领域

本发明涉及工业控制领域,特别是语句表到梯形图的转换方法。 

背景技术

梯形图(Ladder Diagram)作为起源于早期继电器逻辑控制电路的一种图形化编程语言,由于其简单易用,可高效直观地实现复杂的逻辑控制功能,在工业控制领域当中从简单的PLC到复杂得系统如集散控制系统(DCS)、现场总线控制系统(FCS)中都作为一个必不可少且往往是最主要的编程语言。梯形图一般会被编译成为语句表,在具体实现中语句表往往就是IEC61131-3虚拟主机的基本指令,从虚拟主机的二进制程序代码与语句表指令一一对应。出于调试维护的原因,有时需要上载已经在运行的PLC内部程序,上载的二进制代码可以很方便的转换为语句表,语句表毕竟是文本化程序语言,没有梯形图看起来直观简单,因此需要将语句表转化为梯形图。 

发明内容

本发明的目的是提供一种语句表到梯形图的转换方法。 

本发明是通过以下技术方案予以实现的: 

语句表到梯形图的转换方法,以LD/LDN类指令,AND/ANDN类指令,OR/ORN类指令,ALD指令,OLD指令,LPS、LRDLPP指令这五类指令为中,以及线圈(Coil)类与功能盒(Box)类指令则根据当前逻辑栈顶的值来决定是否执行或赋值,可根据需要任意扩展;具体步骤如下:

步骤1:建立必要的数据结构;

步骤2:创建路径链表:①创建一个链表结构,存储这里称之为“路径”的对象,路径对象描述了该组成该路径的梯形图元件、源节点号、目标节点号的信息。路径还可以包含子路径,子路径之间可以是串联或并联关系;②建立一种节点号申请机制,使得每次都可申请到一个新的节点号;③建立路径的出发节点(源节点)机进入节点(目标节点)堆栈;

步骤3:扫描语句表,生成路径链表;

步骤4:根据所扫描到的指令,按下面的算法生成路径链表:

⑴LD/LDN类指令:

①.  生成一个新的路径,路径中包含一个触点类型的梯形图元件;

②.  申请新的节点号,压入源节点号堆栈;

③.  再次申请新的节点号,压入目标节点号堆栈;

④.  新路径的源节点号等于源节点号堆栈栈顶值;

⑤.  新路径的目标节点号等于目标节点号堆栈栈顶值;

⑥.  新生成的路径插入到链表的前端;

⑵AND/ANDN类指令:

①.  生成一个新的路径,路径中包含一个触点类型的梯形图元件;

②.  新路径源节点号等于目标节点号堆栈栈顶值;

③.  申请新的节点号,替换目标节点号堆栈栈顶值;

④.  新路径的源节点号等于源节点号堆栈栈顶值;

⑤.  新路径的目标节点号等于目标节点号堆栈栈顶值;

⑥.  新生成的路径与链表最前端的路径合并生成一个串联复合路径;

⑶OR/ORN类指令:

①.  生成一个新的路径,路径中包含一个触点类型的梯形图元件;

②.  新路径源节点号等于源节点号堆栈栈顶值;

③.  新路径目标节点号等于目标节点号堆栈栈顶值;

④.  新生成的路径与链表最前端的路径合并生成一个并联复合路径;

⑷ALD指令:

①.  生成一个新的路径,不包含任何元件;

②.  新路径源节点号等于源节点号堆栈栈顶值;

③.  链表头开始第2位置路径的源节点号等于目标节点号堆栈栈顶值;

④.  源节点号堆栈弹出,用新路径源节点号替换源节点号堆栈栈顶值;

⑤.  目标节点号堆栈弹出;

⑥.  新路径目标节点号等于目标节点号堆栈栈顶值;

⑦.  按顺序将链表头开始的2个路径移动到新路径的子路径;

⑧.  新生成的路径插入到链表的前端;

⑸OLD指令:

①.  生成一个新的路径。不包含任何元件;

②.  源节点号堆栈弹出;

③.  目标节点号堆栈弹出;

④.  新路径源节点号等于源节点号堆栈栈顶值;

⑤.  新路径目标节点号等于目标节点号堆栈栈顶值;

⑥.  链表头开始第1、2位置路径的源节点号等于源节点号堆栈栈顶值;

⑦.  链表头开始第1、2位置路径的目标节点号等于目标节点号堆栈栈顶值;

⑧.  按顺序将链表头开始的2个路径移动到新路径的子路径;

⑨.  新生成的路径插入到链表的前端;

⑹LPS指令:复制目标节点号堆栈栈顶值并压栈:

⑺LRD指令:复制目标节点号堆栈第2位置的值到栈顶:

⑻LPP指令:目标节点号堆栈弹出:

⑼线圈(Coil)类指令:

①.  生成一个新的路径,路径中包含一个线圈类型的梯形图元件;

②.  新路径源节点号等于源节点号堆栈栈顶值;

③.  新路径目标节点号等于新节点号;

④.  新生成的路径插入到链表的前端;

⑽功能盒(Box)类指令:

①.  生成一个新的路径,路径中包含一个功能盒(Box)类型的梯形图元件;

②.  新路径源节点号等于源节点号堆栈栈顶值;

③.  新路径目标节点号等于新节点号;

④.    新生成的路径插入到链表的前端;

步骤5:从路径链表中提起梯形图:

原始路径为只有1个梯形图元件,没有子路径的路径;将路径链表中的所有原始路径中的梯形图元件提出,就可得到语句表所对应的梯形图元件及连接相互之间的连接关系了;从原始路径中提取梯形图元件时,遵循以下原则:

①.    梯形图元件左侧连接到路径源节点号对应的接入点,梯形图元件右侧连接到路径门板节点号对应的接入点;

②.    按路径在链表/子链表中的顺序存放梯形图元件。

附图说明

图1是本发明的梯形图; 

图2是本发明的LD A生成对应路径的示意图;

图3是本发明的LD B生成对应路径的示意图;

图4是本发明的AND C生成对应路径的示意图;

图5是本发明的LD D生成对应路径的示意图;

图6是本发明的AND E生成对应路径的示意图;

图7是本发明的OLD建立路径之间关系的示意图;

图8是本发明的OR F生成对应路径的示意图;

图9是本发明的ALD建立路径之间关系的示意图;

图10是本发明的AND G生成对应路径的示意图;

图11是本发明的LPS处理路径节点的示意图;

图12是本发明的AND H生成对应路径的示意图;

图13是本发明的ADD生成对应路径的示意图;

图14是本发明的LRD生成对应路径的示意图。

具体实施方式

下面结合附图对本发明的实施例做进一步描述: 

如图1所示的梯形图对应的语句表如下,后面的步骤描述将下面的语句表反编译为图1所示的梯形图:

LD A     //将A加载到逻辑栈顶

LD B     //逻辑堆栈下压1层,将B放到栈顶

    AND C     //逻辑栈顶与C相与,结果放到栈顶

    LD D     //逻辑堆栈下压1层,将B放到栈顶

    AND E     //逻辑栈顶与C相与,结果放到栈顶

    OLD      //栈顶与其下一层相或,逻辑堆栈上弹,结果放在栈顶       

OR F     //逻辑栈顶与H相与

    ALD      //栈顶与其下一层相或,逻辑堆栈上弹,结果放在栈顶       

    AND G     //逻辑栈顶与I相与,结果放到栈顶

    LPS     //下压逻辑栈,并保持栈顶值不变

    AND H     //逻辑栈顶与J相与,结果放到栈顶

    ADD     //如果栈顶为真,则进行加法运算

    LRD     //复制次层的值到栈顶

    LD I     //逻辑堆栈下压1层,将I放到栈顶

    LD J     //逻辑堆栈下压1层,将J放到栈顶

    AND K     //逻辑栈顶与K相与,结果放到栈顶

    OLD     //栈顶与其下一层相或,逻辑堆栈上弹,结果放在栈顶    

    ALD     //栈顶与其下一层相与,逻辑堆栈上弹,结果放在栈顶

    SUB     //如果栈顶为真,则进行减法运算

    LPP      //逻辑堆栈上弹

    MUL     //如果栈顶为真,则进行乘法运算。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号