《数控加工虚拟仿真系统代码编译器的研究.pdf》由会员分享,可在线阅读,更多相关《数控加工虚拟仿真系统代码编译器的研究.pdf(4页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、2 0 0 9 年3 月第3 7 卷第3 期机床与液压M A C H I N ET O O L H Y D R A U L I C SM a t 2 0 0 9V 0 1 3 7N o 3数控加工虚拟仿真系统代码编译器的研究肖忠跃,李国臣,刘朝晖,周燕辉(井冈山大学X-学院,江西吉安3 4 3 0 0 9)摘要:分析了数控系统加工代码译码方法的优缺点,在此基础上,提出了一种新的数控加工虚拟仿真系统N c 代码编译器的实现算法解释一编译方法,并对如何在V i s u a lC+环境中运用计算机编译原理和面向对象技术来开发数控加工虚拟仿真系统N C 代码编译器进行了探讨。关键词:仿真系统;译码;编
2、译器;V i s u a lC+中图分类号:T P 3 9 1 9:T P 3 1 9文献标识码:B文章编号:1 0 0 1 3 8 8 1(2 0 0 9)3 一0 4 0 一3R e s e a r c ho ft h eC o d eC o m p i l e ro ft h eN CV i r t u a lE m u l a t i o nS y s t e mX I A 0Z h o n g y u e,L IG u o c h e n。L I UC h a o h u i,Z H O UY a n h u i(C o l l e g eo fE n g i n e e r i n
3、 g,J i n g g a n g s h a nU n i v e r s i t y,J i a nJ i a n g x i3 4 3 0 0 9,C h i n a)A b s t r a c t:T h ec h a r a c t e r i s t i c so fN C-c o d ec o m p i l e ro fN Cs y s t e mw e r ea n a l y z e d An e wm e t h o do fa l g o r i t h mf o rN C-c o d ec o m p i l e ro fN Cv i r t u a le m u
4、l a t i o ns y s t e m,t h ec o d i n gm e t h o do fe x p l a n a t i o na n dc o m p i l e rw a sb r o u g h tf o r w a r d,a n dt h em e t h o do fd e v e l o p i n gt h eN C c o d ec o m p i l e ro fN Cv i r t u a le m u l a t i o ns y s t e mw i t ht h et h e o r i e so fc o m p i l e ra n dt h
5、 eO 0t e c h n o l o g yi nV i s u a lC+e n v i r o n m e n tw a ss t u d i e d K e y w o r d s:E m u l a t i o ns y s t e m;C o d i n g;C o m p i l e r;V i s u a lC+0引言(4)对N C 代码程序的语言错误检查力度不够,随着数控技术在机械制造业中的广泛应用,数控加工虚拟仿真系统也得到迅速发展,广泛应用于数控编程操作的教学和培训,对减少高等院校和培训机构的资金投资,缩短企业的生产准备周期、减少生产成本、提高企业生产效率具有重要意义。
6、而作为数控加工虚拟仿真系统的前置处理部分N c 代码编译器,是沟通和传递数控加工虚拟仿真系统与C A D C A M 系统其它部分之间信息的桥梁,也得到了迅速发展。在数控加工虚拟仿真过程中,正确且快速有效地从所输入的加工程序中提取加工信息以及将它们有效地组织仿真系统内部默认的表示形式,是进行动态仿真的前提和仿真过程得以顺利进行的保证。综观国内外数控加工虚拟仿真系统N C 代码编译技术的发展情况,国外在这方面的研究比较成熟,而国内尽管已有很大发展并达到相当水平,但存在一些不足之处:(1)通用性不够,如某些数控系统的N C 代码编译器只适用于某一系统的代码编译;(2)在如何处理计算机内存资源利用率
7、和运行速度两者的关系上有待于进一步研究;(3)所处理的N C 代码有限,尤其是国内大多数N C 代码编译器只能实现对部分常用G 代码(如G 0 0 一C 0 4 等)、M 代码等基本代码进行翻译处理,而对一些重要的代码(如刀具补偿代码)、固定循环和子程序的处理却很少:多数N C 代码编译器只是显示错误出现的行号而已。在N C 代码翻译器的研究与实现过程中,如果能改善上述缺陷,即提高通用性、完善代码处理功能,真正实现数控加工虚拟仿真对加工信息的优化,则能进一步提高虚拟仿真的真实性,并为提高数控加工的生产效率、缩短生产准备周期、减少生产成本、企业实现以生产时间、加工成本、资源最优化配置利用来生产出
8、高质量的产品奠定坚实的基础。因此,本文作者将致力于实现具有一定通用性的N C 代码翻译器的关键技术的研究,使数控加工虚拟仿真系统能够满足C A D C A M 系统向集成化、智能化、网络化发展的需要。1编译系统采用的译码方法传统的数控系统代码编译方法有解释、编译和目标码编译等三种方法。这三种编译方法各有其优缺点,前两种的缺点是浪费计算机内存资源,执行程序时程序段与程序段之间可能存在停顿,影响零件加工精度;而且这两种译码方式都存在一个缺点,即在加工同一种类的不同零件时,程序每运行一次都需要重新对程序进行编译,都要占用一定的加工时间。而采用目标码进行编译时,虽然加工同类零件时只需运行一次译码程序,
9、提高了数控加工程序运行速度,且目标码形式单一,读取速度快,可大大提高加工程序反复运行的效率;但是当数控加工程序较长时,编译产收稿日期:2 0 0 8 0 3 2 1作者简介:肖忠跃(1 9 7 4 一),男,讲师,主要从事数控技术及应用研究。电话:1 3 9 7 9 6 2 1 2 1 3,E m a i l:x i a o z h o n g y u e 1 6 3 c o r n o 万方数据第3 期肖忠跃等:数控加工虚拟仿真系统代码编译器的研究4 1 生的目标码所占据的内存是比较大的,而且用户如果要在此基础上扩展其功能,则必须完全了解其代码的设计原则;所以这种译码方法的通用性和移植性较差
10、。笔者在此基础上,根l 第一次扫描零件N C 程序l,j I。一I 编译并建立结果缓冲区lI 竺=!竺!:!兰!t遥涉i!第二次扫描编译结果缓冲区据时间重叠流水处理_=二 二二_原理,提出了采用解u 掣释一编译方式对数控I 盟塞塑三l加工代码进行译码的图1 解释一编译的译方法,其工作流程如码方法的流程图图I 所示。该解释一编译的译码方法的运行过程是编译程序要进行两次扫描,且扫描的对象不同,第一次扫描的对象是数控加工程序中的各种地址符,此过程进行词法、语法和简单的语义分析,并累计程序的程序段个数;扫描的同时提取数控加工程序中主要加工信息,如G 0 0、G 0 l、G 0 2、G 0 3 等,并按
11、先后顺序将加工信息存放到编译结果缓冲区m C u r v e L i s t 尺寸链表,且设置插补类型标志位:e n u ml o c u s t y p e p o i n t,l i n e,c w a r c,a n t i c w a r c l o c u s t p,以供第二次扫描时使用。若存在错误则退出编译系统并提示出错信息,同时清空缓冲区m C u r v e L i s t 尺寸链表。若第一次扫描检查无错则进行第二次扫描。此时,第二次扫描的对象是编译结果缓冲区中各插补标志位,通过识别各个插补标志位从编译结果缓冲区m C u r v e L i s t 尺寸链表中读输出错误信息
12、开始初始化处理打开T X T 文本文档,并存入m F i l e L i n e L i s t 缓冲区读取程序段语句读取一个字符N 逵上Y记录一个字,存入字链表m s W o r d l i s t取刀位数据信息,并由此刀位数据信息来驱动相应插补模块完成数控加工过程的动态仿真;很显然,第二次扫描的时间会比第一次扫描时间短,且需要的存储空间比第一次扫描时需要的存储空间少。这种分次对不同对象进行扫描的解释一编译的译码方法,一方面克服了解释方式和编译方式浪费计算机内存资源的缺点;另一方面又克服了时间顺序处理方式由于在两个程序段的输出之间存在的时间间隔,导致电机的时转时停,而造成工件的加工质量下降的
13、缺点。同时该解释一编译方式由于两次扫描的对象不同,且第二次扫描的内容没有第一次扫描的复杂。很显然,这种方法一方面提高了计算机内存资源的利用率,另一方面缩短了编译的时间,大大提高了编译软件的工作效率。2数控加工程序译码算法的实现数控加工虚拟仿真系统承担着两大任务:一是对数控加工程序进行扫描并作出词法、语法和语义识别,并将识别结果输出告知用户;二是经过扫描识别确定加工程序无误后,提取驱动机床移动部件的加工信息进行加工仿真。而数控加工虚拟仿真系统编译器主要用于数控加工程序正确性的检验和提取驱动加工的刀位信息。因此,在V i s u a lC+环境下开发数控加工程序编译器,其主要任务是完成对零件程序的
14、扫描,并对词法、语法进行识别,将识别结果以链表的形式存人缓存区。图2 所示为笔者所采用的译码方法对N C 代码程序进行词法、语法识别的流程图。输出程序段的内容取一个字的第一个字节l三禹藤 季酬瓣鱼N 比竺L 与 亘亟垂至=山 豆面稿F=b 厂丽是T 吗?育丁L 逦至多提取刀位信息并存入轨迹t t 表m C u r v e L i s tN C 代码加工仿真图2N C 代码词法、语法识别算法流程图译提信清区编,错并冲出统出,缓退暴不息空 万方数据4 2 机床与液压第3 7 卷2 1 数控加工程序的读取数控加工虚拟仿真系统读取软盘或硬盘中以木t x t 格式存放的数控加工程序。为此,仿真系统首先调
15、用o p e n 函数打开一个文本格式的加工程序文件,由R e a d 函数按照先后顺序将N C 程序逐段读入C S t r i n g 类的n l s t r F i l e A l l 对象中;再将相应的地址存人C S t r i n g L i s t 类的m F i l e L i n e L i s t 链表中。循环进行这个过程,直到文件结束。这样,C S t r i n g L i s t 类型的I n F i l e L i n e L i s t 链表中将按先后顺序逐行记录整个N C程序的信息。2 2N C 代码词法检查词法检查所要完成的主要任务是对零件的加工程序中的各地址符进
16、行检查,尤其是G 功能字和M 功能字的检查;鉴别它们是否符合数控系统的G、M 功能库。若发现不合词法规则时,则指出错误所在;若词法检查无误,则进入下一步语法分析检查。否则,退出编译系统。为此,该编译器主要按照下面步骤进行:(1)建立G、M 功能库。在C S k D o c 类中定义G、M 功能字规则链表C S t r i n g L i s tm W r o d R u l e L i s t;存放数控系统G、M 功能规则库。(2)建立B O O LC S k D o c:I s T h e r e C h a r(C S t r i n gs t r L i n e,T C H A Rc)函
17、数,用于识别N、G、M、X、Y、z、I、J、K、R、U、V、W、S、T、F 等地址符。(3)建立L e x i c a l P a r s e r(c o n s tC S t r i n g L i s t L i n e W d L s,i n tn l i n e n u m b e r)函数用于进行词法检查。2 3N C 代码语法检查数控加工程序经过编译系统词法检查无误后,接下来就是要对其进行语法格式检查,以判断N C 程序是否符合数控系统的语法规则;如:G 9 0 和G 9 1 两个功能字在同一文件中不能同时存在;同一模态组的功能字不能在同一程序段中同时出现;C O O 功能字和F功
18、能字不能在同一程序段中同时出现;C O O、G 0 1、G 0 2 G 0 3 等G 功能字是否缺少正确匹配的尺寸字等等。为此,编译系统建立以下函数:首先,在S k D o c 类中定义获得程序段中各字顺序的处理函数G e t W o r d O r d e r(c o n s tC S t r i n g L i s t&1 w l i s t)。然后,在S k D o c 类中定义语法检查函数S y n t a x P a r s e r()。若零件的数控加工程序语法检查无误,则编译系统同时从N C 代码程序段链表n l F i l e L i n e L i s t 缓冲区及时提取主功能
19、信息如G 0 0、C 0 1、G 0 2、C 0 3 等的刀位信息并存入驱动仿真系统的轨迹链表m C u r v e L i s t缓冲区;若存在语法错误时,则退出编译系统同时清空轨迹链表m _ C u r v e L i s t 缓冲区。3 结论数控加工虚拟仿真系统主要用于高等院校和培训机构进行数控编程与机床操作的教学环节。其目的一方面是为了加深加固学员对数控编程知识的理解,另一方面是为了减少昂贵设备的投资。因此,数控加工虚拟仿真系统除了能真实地模拟数控加工过程,一方面要考虑识别尽可能多的数控系统代码,另一方面还必须考虑仿真系统编译代码的速度,提高计算机内存资源的利用率,这对于提高数控加工仿
20、真系统的真实性和计算机资源利用率具有非常重要意义。本文作者通过对目前数控仿真系统编译器技术的发展现状和各种译码方法的优缺点进行分析,提出了一种新的数控加工虚拟仿真系统N C 代码译码方法解释一编译方法。这种方法不但减少了系统资源的浪费,而且缩短了编译的时间,提高了整个编译系统的运行效率。在本文中,只解决了数控加工虚拟仿真系统的一个基础问题编译问题,为数控加工虚拟仿真系统的进一步研制奠定坚实基础。参考文献【1】姜桂平,王国锋,郑惠江虚拟数控车床加工技术的研究 J 制造技术与机床,2 0 0 7(4)【2】徐屯平,黄中信,沈荣辉数控车削加工仿真系统的研究 J 机械设计与制造,2 0 0 7(3)【
21、3】(美)迈克马特森M i k eM a t t s o n C N CP r o o g r a m m i n gP r i n c i p l e sa n dA p p l i c a t i o n s MJ 北京:机械工业出版社2 0 0 4【4】朱晓春数控技术 M1 北京:机械工业出版社,2 0()3【5】伍抗逆,李斌,陈吉红面向开放式数控系统平台的N C 代码解释器开发 J 中国机械工程,2 0 0 6(2)【6】张国彬,林亨,等车削中心数控加工仿真系统程序检杳模块的开发 J 机械设计与制造,2 0 0 1(3)【7】沙智华,张生芳,等通用数控代码编译系统研究与实现 J 中国机
22、械工程,2 0 0 3(9)(上接第8 8 页)重要因素,用数控机床加工定子曲线可提高定子曲线的加工精度,降低机械噪声,V 形消音槽设计是否合理是影响流体噪声的重要因素,开设最佳V 形槽可以降低流体噪声。参考文献【1】丁国红双作用叶片泵定子曲线对泵性能的影响 J 有色设备,2 0 0 6(2):6 0【2】关景泰机电液控制技术 M 上海:同济大学出版社,2 0 0 3 2:1 2 8【3】明仁雄,万会雄,等液压与气压传动 M 北京:国防工业出版社,2 0 0 3 1 0:2 6 3【4】雷哑勇,吴晓明,陈春明,等双作用叶片泵噪声的产生机理和降噪分析 J 机床与液压,2 0 0 7(1):9 万
23、方数据数控加工虚拟仿真系统代码编译器的研究数控加工虚拟仿真系统代码编译器的研究作者:肖忠跃,李国臣,刘朝晖,周燕辉,XIAO Zhongyue,LI Guochen,LIU Chaohui,ZHOU Yanhui作者单位:井冈山大学工学院,江西吉安,343009刊名:机床与液压英文刊名:MACHINE TOOL&HYDRAULICS年,卷(期):2009,37(3)被引用次数:1次 参考文献(7条)参考文献(7条)1.沙智华;张生芳 通用数控代码编译系统研究与实现期刊论文-中国机械工程 2003(09)2.张国彬;林亨 车削中心数控加工仿真系统程序检查模块的开发期刊论文-机械设计与制造 200
24、1(03)3.伍抗逆;李斌;陈吉红 面向开放式数控系统平台的NC代码解释器开发期刊论文-中国机械工程 2006(02)4.朱晓春 数控技术 20035.迈克马特森 CNC Proogramming Principles and Applications 20046.徐立平;黄中信;沈荣辉 数控车削加工仿真系统的研究期刊论文-机械设计与制造 2007(03)7.姜桂平;王国锋;郑惠江 虚拟数控车床加工技术的研究期刊论文-制造技术与机床 2007(04)引证文献(1条)引证文献(1条)1.李小龙.李英.黄碧辉 基于组件技术的开放式数控译码系统的研究与设计期刊论文-机床与液压 2010(12)本文链接:http:/