发明名称 嵌入式可编程控制器的梯形图编辑器设计方法
摘要 本发明给出了一种嵌入式可编程控制器的梯形图编辑软件设计方法,提出了按照梯形图中“能流”的方向来扫描梯形图从而来建立二叉树的方法。本发明以二叉树为中心,实现了PLC用户控制程序的梯形图形式与指令表形式之间的转换,及指令表语言转换为二叉树的方法,完成了以二叉树为中心的梯形图和指令表的相互转换。最后在Windows平台下应用VC++6.0开发了嵌入式可编程控制器的一套编辑器,该编辑器可以实现梯形图绘制、梯形图语言与指令表语言相互转换等功能。
申请公布号 CN102508654B 申请公布日期 2014.07.02
申请号 CN201110308100.7 申请日期 2011.10.11
申请人 江苏科技大学 发明人 朱志宇;常艳超;张冰;刘维亭;秦冲;魏海峰;赵强;袁文华
分类号 G06F9/44(2006.01)I;G06F17/50(2006.01)I 主分类号 G06F9/44(2006.01)I
代理机构 南京经纬专利商标代理有限公司 32200 代理人 楼高潮
主权项 一种嵌入式可编程控制器的梯形图编辑器设计方法,包括如下步骤:步骤一:元件库的设计;步骤二:梯形图的绘制;步骤三:元件属性的修改及删除;步骤四:语法检查:首先,要检测每个梯形图有没有输出线圈或者执行线圈,如果没有,则报错;其次检查是否有短路、断路情况的发生:顺次检查两相邻并联线间的支路是否有直线直接相连,通过扫描两个并联线之间是否有元件来判断,如果有元件则证明不是短路,如果元件的个数为零则就是短路,将扫描过的元件都进行记录,在检查扫描过程结束后如果发现还有未扫描到的元件,则就证明该元件所在的支路为断路;步骤五:梯形图转化成指令表;采用以“二叉树”为中心的方法来实现梯形图到指令表的转换;步骤六:指令表转换成梯形图;其特征在于,步骤五所述二叉树的建立方法包括如下步骤:第1步,首先确定扫描的方向,如果是从左到右的扫描,则分别记下元件的流入节点和流出节点的链表值;如果是从上到下的扫描,则将先扫描到的元件的流出节点和后扫描到的元件的流入节点记为一个值;判断扫描的方式是,判断先扫描到的元件的流出节点的横坐标和下一个要扫描的元件的流入节点的横坐标是否相同,如果相同是从上到下的扫描方向,否则,则是从左到右的扫描方向;第2步,若第一个节点流入节点链表值和第二个节点的流入节点链表值相同,第一个节点流出节点链表值和第二个节点的流出节点链表值相同,则两个节点是或的关系,建立OR节点,建立一棵小的二叉树,两个元件分别为左右子树,先扫描到的为左子树;如果有多个元件并联,则按照先后顺序前两个元件并联后,并联结果和第三个元件并联,建立二叉树,以此类推;第3步,若第一个节点的流入节点链表值和第二个节点的流出节点链表值相同,则两个节点是与的关系,建立AND节点,建立一棵小的二叉树,两个元件分别为左右子树,先扫描到的为左子树;如果有多个元件串联,则按照先后顺序前两个元件串联后,串联结果和第三个元件串联,建立二叉树,以此类推;第4步,建立的AND节点和OR节点,也根据上述原理和其它元件建立新的逻辑关系,建立新的二叉树,以此类推,将梯形图转换成二叉树;第5步:将二叉树转换成指令表语言;步骤六所述指令表转换成梯形图,是在确认无语法和逻辑错误的情况下,首先要对指令表进行扫描,具体的实现步骤如下:1)在确定语法没有错误的情况下,扫描指令表,读取到LD或是LDN指令的时候,申请一个节点建立二叉树,首个节点作为二叉树的左子树,然后根据当前指令以及步骤五中经扫描后保存在链表中的元件数据修改新二叉树的节点数据;2)如果读取到AND或是AND NOT指令时,就是列增加指令,此时申请两个新的节点,一个作为二叉树的父节点,另一个作为二叉树的右子树,然后根据当前指令以及步骤五中经扫描后保存在链表中的元件数据修改新二叉树各节点数据;3)如果读取到OR或是OR NOT指令时,就是行增加指令,此时同样申请两个新的节点,一个作为二叉树的父节点,另一个作为二叉树的右子树,然后根据当前指令以及步骤五中经扫描后保存在链表中的元件数据修改新二叉树各节点数据;4)如果读取到ALD指令或者是OLD指令,此时申请一新节点作为父节点,把当前二叉树和前一二叉树合并,形成一新的二叉树,其中前一个二叉树为左节点,当前二叉树为右节点,然后根据当前指令以及步骤五中经扫描后保存在链表中的元件数据修改新二叉树各节点数据;5)当逻辑块与单个节点进行操作时,单个节点相当于读到了LD指令,要作为左子树;当多个逻辑块与单个节点进行操作时,要将单个节点和首个逻辑块进行操作,然后依次与其他逻辑块进行操作,然后根据当前指令以及步骤五中经扫描后保存在链表中的元件数据修改新二叉树各节点数据;6)重复上述的建树方法,直到读到OUT指令,然后根据当前指令以及步骤五中经扫描后保存在链表中的元件数据修改新二叉树各节点数据,将指令表语言转换成二叉树;7)采用后序遍历法,将二叉树转换成梯形图。
地址 212003 江苏省镇江市梦溪路2号