PLC梯形图向语句表的转换算法及实现.pdf

PLC梯形图向语句表的转换算法及实现.pdf

ID:50454808

大小:1.50 MB

页数:5页

时间:2020-03-06

PLC梯形图向语句表的转换算法及实现.pdf_第1页
PLC梯形图向语句表的转换算法及实现.pdf_第2页
PLC梯形图向语句表的转换算法及实现.pdf_第3页
PLC梯形图向语句表的转换算法及实现.pdf_第4页
PLC梯形图向语句表的转换算法及实现.pdf_第5页
资源描述:

《PLC梯形图向语句表的转换算法及实现.pdf》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、第32卷湖北师范学院学报(自然科学版)Vol畅32第1期JournalofHubeiNormalUniversity(NaturalScience)No畅1,2012PLC梯形图向语句表的转换算法及实现孙玉霞,李国屏,夏端峰(湖北师范学院计算机科学与技术学院,湖北黄石435002)摘要:基于块生长观念提出了一种全新的将梯形图转化为语句表的转换算法。该转换算法以梯级为单位,采取“自左而右,自上而下”的扫描顺序,通过竖线标志来确定元件间的串并联关系,借助存放块(依据元件间的串并联关系不断生长的块)的栈来定位下次扫描的元件对象。该

2、算法不仅能清晰地表达出梯形图各元件的逻辑关系,语句表转换过程准确快速,还能成功的实现梯级中包含多分支输出的复杂梯形图到语句表的转换。关键词:可编程控制器(PLC);梯形图;指令表;块生长中图分类号:G250文献标识码:A文章编号:1009-2714(2012)01-0005-050引言[1]可编程控制器(PLC)是一种基于工业控制计算机或嵌入式PC的逻辑控制软件。目前最常用[2]的PLC编程语言是梯形图(LD)和指令表(IL)。梯形图形象直观、易于掌握,但是梯形图不能被PLC的CPU识别,无法直接运行。指令表编程语言是一系列

3、自定义的符合IEC61131-3标准的指令集合,是一种与汇编语言类似的助记符编程语言,容易被PLC识别和执行,但是不够直观。为了方便用户,采用梯形图进行编程,但为使PLC的CPU容易识别程序,要将形象化的梯形图语言自动转化为指令表。因此,研究梯形图语言向指令表语言的转换算法是很必要且很重要的。目前已有少量文献给出了实现该功能的方法,如文献[3]提出基于AOV和二叉树的转换算法,但二叉树建立过程过于繁琐,时空复杂度高。文献[4]虽然复杂度较低,但梯形图转换成的广义表结构不清晰,不能方便地生成语句表。文献[5][6]虽然对文献[

4、3][4]进行了改进,但是过程太复杂,先将梯形图映射成AOV图,再对AOV图进行串并联扫描得到逻辑树,最后基于逻辑树生成语句表。通过对梯形图结构特点的分析,提出一种基于块生长的串并联扫描转换算法,改进了上述算法的缺点,实现了从梯形图到语句表的转换。1梯形图及转换算法中的数据结构1.1梯形图的数据结构梯形图是由若干行组成,每行又由若干个元素组成,整个梯形图编辑模块采用行存储结构,行用双向链表的数据结构来表示,每行为一个链表结点。用双向链表表示行的主要原因是:整个梯形图的收稿日期:2011—04—22基金项目:湖北师范学院青年项

5、目(2010C27)作者简介:孙玉霞(1977—),女,湖北黄冈人,硕士,讲师,研究方向为群智能算法畅·5·编辑过程是动态的,链表的存储结构便于表达这种动态存储过程。这样对于梯形图编辑过程中行的插入、删除等功能都可以由指针操作方便地完成。而对于每一行中的若干元件的地址采用用动态数组来存储,因为每行中存放的元件个数一般不会太多,可以先将数组的元素个数定义为一个基数(如10个),不足再进行动态扩充。这里定义的数据结构不仅可以节约存储空间,而且还能方便的找到梯形图中任何一个元件(先通过链表定位行,再通过数组定位列)。这样梯形图编辑

6、过程中的元件复制、剪切、粘贴、删除、查找等功能都可以方便地完成。梯形图的数据类型定义如下:typedefstructNode{ElementType倡data[MaxN];}NodeType;CList<NodeType,NodeType&>mylist;其中,基本图元(ElementTyp)存放梯形图中每一个元件的基本信息,包括元件类型、元件名、有无竖线、是否选中等信息。具体结构如图1所示。图1存放梯形图元件指针的行链表1.2梯级链表定义及数据结构梯级链表是在第一次遍历行链表时生成的,构成梯级链表的结点构成如图2畅遍历梯形

7、图生成的梯级链表结构如图3畅图2构成梯级链表的结点结构1.3块的定义及数据结构算法转换过程中用到两个栈,一个是存放根据元件间的串并联关系不断扩展的块的栈,另一个是存放多分支输出的的栈。栈是一种操作受限的线性表,限定插入和删除操作只能在表的一端进行,因此栈中的元素有先进先出(FIFO)的特点。往栈中插入一个元素称为入栈运算,从栈中删除一个元素(即删除栈顶元素)称为出栈运算。块的数据结构由块的左上角元件的行标、块的左上角元件的列标、块的右下角元件的行标和块的右下角元件的列标四个成员构成。2转换算法描述2.1转换算法的基本思想·6

8、·采用边遍历梯形图边实现转换的方法。因为梯形图由若干个梯级组成,梯级是相互影响的行组[7]成的最小单元。遍历梯形图时就以梯级为单位,采用经典的深度优先扫描的方法,按照梯形图网络的自上而下,自左而右的顺序进行。扫描时,遇到并联支路就转到下一行进行扫描,由于每个元件的行和列的位置都是不同的,所

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。