预览加载中,请您耐心等待几秒...
1/6
2/6
3/6
4/6
5/6
6/6

在线预览结束,喜欢就下载吧,查找使用更方便

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

第卷第期北京工业大学学报】 年月以 软编译系统的开发与实现 王新华,周峰,孙树文,李剑锋 北京工业大学机械工程与应用电子技术学院,北京 摘共为了配合在机上运行的软编辑开发系统,使机完成相应的控制功能,设计和开发了软 编译系统,简述了软编译系统的组成以及软梯形图和指令表的遍历算法,介绍了软梯形图与指 令表程序相互转换的实现过程通过实例,分析了软程序的指令表文法设计过程,给出了文法预测分 析器模型及控制程序,详细介绍了软程序语法分析的过程仿真结果表明,开发的软编译系统能实现 软梯形图与指令表程序的相互转换,完成软程序的文法设计和语法分析,并对软程序的运行指 令作出正确解释,使机完成相应的控制功能 关工词可编程逻辑控制器编译程序梯形图语法指令表 中圈分类号文献标识码文幸幼号一一一 一 软控制技术是基于软件和硬件在逻辑功能上等效的思想’〕,采用开放式体系结构,通过软件来 实现刃硬件的功能软系统由上位机和下位机组成,上位机为用户提供编辑界面和多种编程语言 环境,便于用户在机上进行程序的编辑,同时还对下位机的一些状态量进行监控,并给下位机发 送指令〔”〕用户编辑完的梯形图和指令表程序后只有通过对程序的编译来获取程序的逻辑后才能 按照的工作原理运行为了配合在机上运行的软编辑开发系统’〕,使机完成相应的控 制功能,开发了软编译系统 软程序编译系统的组成 编译模块由梯形图语法检查模块、梯形图程序逻辑检查模块和指令表程序语法检查模块组成 梯形图程序语法检查模块检查用户图形程序有无指令标记重复、指令地址越界等语法错误梯形图 程序逻辑检查模块检查图形程序有无逻辑错误语言程序语法检查模块检查用户语句程序有无拼 写、指令格式、指令地址越界等语法错误 编译程序的构造包括词法分析、语法分析、语义分析、错误的检查和处理以及代码生成和代码优化等 程序 软程序的遍历算法 软程序的遍历算法主要包括梯形图遍历算法和指令表遍历算法梯形图程序由若千个梯级组 成,遍历时以梯级为单位,采用深度优先的扫描方法,按从上到下,从左到右的顺序进行在扫描过程 中,遇到并联结点就转入下一行进行扫描,行与行之间的切换由指针的变换来实现,原先位置的指针被预 先存储起来,待并联模块扫描完后,再从原来的位置开始往下扫描梯级和扫描顺序如图所示 指令表是由一系列指令组成,且指令按照链式结构存储,按照顺序读取指令即可完成对指令表的 遍历 收稿日期一一 基金项目北京市自然科学荃金资助项目 王新华一,男,山东德州人,副教授 北京工业大学学报年 梯形图与指令表程序的相互转换 。禅形圈转换成指令表 梯形图转换成指令表是以梯级为单位进行的 对于没有并联支路的梯级,只要根据梯形图元素在梯 级中的位置和元素的类型,即可将梯形图转换为指令 , 表对于包含有并联支路的梯级可以按照遍历梯形图梯级和扫描图 ,, 图的方法一边追历一边转换在转换过程中首先月曰冠 设定个全局变量地梯级深度,以确定梯级 , 的深度,然后判断个梯级是否包含并联支路如果包含则调用包含有并联支路的转换程序,然后顺序读 入当前梯级深度层次上的梯形图元素如没有发现并联支路,则调用不含并联支路的转换程序依次转换 在转换过程中,每转换完条支路就要添加个支路并联指令 在对整个梯形图程序进行转换时,首先生成行号和地个全局变量,然后从头开始进行 转换,转换完个梯级后,下个梯级从第二随行开始,直到梯形图文件结 束为止 指令农转换成禅形日 指令表转换成梯形图的过程就是根据指令语句生成相应的梯形图元素链表的过程因为梯形 图和指令表程序是一一对应的关系,可按照语句对应生成相应的梯形图元素,利用在梯形图向语言表转换 文件中已设计好的位图资源,建立标志符和位图之间的相应关系转换时,将语句表以文件流的方式存入 文本文件中,逐行分析,通过适当的算法处理,在视窗中画出对应的梯形图符号,直到文件结束此外,在 转换过程中,需要将程序划分为若干小节,每节对应梯形图中的个梯级在指令表中,梯级的划分可根 据指令来进行,串并联模块的划分可根据和指令进行 软程序的语法分析 在对程序进行编译时,先将由其他语言编写的程序转化为指令表后再进行处理程序语言 的文法通常包括组终结符、组非终结符、个开始符号和组产生式 软程序的文法设计 软程序文法主要指指令表语言的文法设计,指令表语言与梯形图语言存在一一对应 的关系的指令表程序由若干条语句组成,每条语句包括语句号、操作码和操作数操作码是指 令系统中的指令代码,包括逻辑取、触点串联指令、触点并联指令指令、支路并联指令、支路串联指令和线 圈驱动指令操作数主要是内部的继电器、定时器和计数器下面是一段指令表例程 串联触点 并联连接 输出 以三菱公司系列的逻辑指令为例来说明指令表文法的设计,并选取指令集中的一个子集