数控仿真软件中数控程序纠错功能浅探

来源 :中国机械 | 被引量 : 0次 | 上传用户:zmz28859330
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘 要:针对数控仿真软件如何能对用户填写的数控代码具有简单的语法与词法纠错功能进行了简单的介绍和探索。
  关键词:数控仿真 语法纠错 词法纠错 指令纠错
  当前数控仿真软件主要运用于职业学校数控教学以及广大从事数控行业的人员进行自学与提高,其教学功能的重要性不言而喻,那么开发数控仿真软件不仅要具有仿真功能,还需要具有对用户输入数控代码的简单纠错功能,提高用户
  的学习效率,现将本人开发软件时对这部分的设想做一个简单介绍。
  数控加工程序以*.cld文本文件的形式存放在硬盘中,读入内存后才能进行处理。程序打开一个文本文件,使用读取语句依次读入一行NC程序到设置的Cstring字符串数组类的对象中,这个字符串数组规定为由10个字符串组成。每行以碰到回车符号为结束。然后把这个字符串数组对象中的信息进行解释,并储存到一个结构体对象中。这里有2种方法处理数据,一种方法是直接反复循环,直到把文件读取完毕。整个数控程序就被读入到CSrtingList类的对象中了,NC程序的每一行就成为了此对象中的一个元素。然后对整个NC程序进行词法和语法检查,译码解释程序成为图形模拟的计算机程序。但是这种方法对内存的要求比较高,容易使程序运行变慢。而第二种方法是每读取一行数控程序就直接进行语法和词法的检查。如果出错就直接报错,没有错误就继续读取下一行数控程序。如此循环,直到把程序完成为止。
  1.数控程序的词法检查
  数控程序词法检查时以一个程序段为解释单位,一次解释一个程序段。首先,数控程序都是按照严格的格式书写的,每个G代码、M代码、F代码、S代码、T代码都有严格的书写格式。这里做的第一步就是检查程序的格式是否正确,采取的方法是在检查类中为每一个G代码和M代码都定义一个严格的格式规则。 G00的格式是G00X…Z….就规定G00后面一定要跟上X和其后的数值以及Z和其后的数值,G01的格式是G01X…Z….F…就规定G01后面一定要跟上X和其后的数值以及Z和其后的数值还有F地址字和其后的数值。G02/G03的格式是G02(G03)X…Z….R…就规定G00后面一定要跟上X和其后的数值以及Z和其后的数值和地址字R和其后的数值。至于其他G代码规则也是如此规定,就不一一详述,M代码也一样比如M03格式为M03 S…..。后面一定要跟上S地址字以及其后的数值。对每一种代码都作了严格规定后,如果出现上述表中没有的G代码或M代码,程序就会识别错误并立即报错。如果出现了已规定的代码而其后的地址数值不对也报错。如果没有检查出错误即进入下一步检查,下一步骤将检查我们输入的错误。如在程序中使用了未定义的地址符号“E”,,为此把数控程序中常用的N、G、M、F、S、T、X、Z等代码建立了一个字符集库,依次检查数控程序字符字是不是N、M、G、F、S、T、X、Z…..中的一个。如果是就继续进行,如果不是,调用报错函数报 “字符使用错误”。所以当我们遇到数控程序不会用到的代码字时就会报错。另外,其实每种数控程序中大部分代码其后都跟有数值,如X100、 Z100等等,他们代表该点在此坐标名称下的坐标值,由于数控机床所加工的工件大小是有规定的,刀架的运行也是有一定范围的。所以对X、Z代码后的数值也限定了范围,如X设置在-10到500之间,Z设置在-300到200之间,如果超出这个范围,即报 “超过机床允许范围”错误。比如我们输入时把X200输入成为X-200,把Z-150输入成为Z1500等等错误都可以检查出来。以上三种检查方法可以发现我们大部分的因粗心而出现的输写错误。
  2.数控程序的语法检查
  语法检查主要检查数控代码语法是否符合规则。数控代码中主要有以下几方面的语法错误:
  2.1.我们把具有相近类型的G代码分成一个组,比如G00、G01、G02、G03、G32就属于一个组。同组代码不能在一个程序段中同时出现。所以定义一个方法,该方法读取一行数控代码时如果有2个同组G代码出现就报错,M代码也是一样,可以实现把刚才定义的方法加上同一行出现2个M代码时会报错的功能。在此,先把需要识别的G代码或M代码分为几个组,把不能同时在一行出现的代码放置在一个组中,识别时如果在一行中出现了2个同组的代码即系统报错。
  2.2.G代码中一般要求字母要大写,设置检查程序有识别大小写功能,如出现小写字母即报错。
  2.3.指令的某些参数必须要明确指定。这里涉及到一些指令的格式问题,比如G00 X100 Z100 代码,G00 后必须有X和Z的坐标值。对于此处,其实和前面的词法检查同时进行,在前面设计的词法检查代码格式链表中为每个G、M、F、S、T代码编写好详细的代码规则,识别时会判别这些规则,出现和规则不同的情况即程序报错。
  2.4.程序开始有程序开始字符,结束有程序结束字符。检查程序时最先检查的就是程序是否由%开头,如果有则继续向下检查,如果没有则系统报错“请输入程序名称”。整个程序识别到M30或M02指令时,先不做响应,继续识别下一程序段。如果下一段为空则在对话框中输出“程序检查完毕”,如下一段不为空则报“结束符号使用错误”。如果识别代码时没有碰到M02或M30即碰到为空的程序段,就会报“程序没有结束符号”。
  由于语法错误非常的复杂,本程序只进行这些初步检查。其他深入的检查方法将在后续版本中逐渐实现。希望能对大家有所帮助。
  参考文献:
  [1]李 峰 数控仿真系统译码模块的开发 现代制造工程 2004(12)
  [2]郭培全,王红岩.数控机床编程与应用.机械工业出版社.2000
  [3]肖忠跃,周燕辉,刘朝晖 数控车削仿真系统NC程序编译器的研究与开发 井冈山学院学报 第30卷 第2期 2009 年2月
  作者简介:
  夏伯融(1978.11-),男,湖北武汉人,讲师,硕士研究生,现从事数控技术及机电技术研究与教学工作。
其他文献
消化道重建和胃切除范围、淋巴结清扫范围及多模式治疗等一同被认为是胃癌治疗中人们关注的四大问题之一.自Schlatter于1887年为第1例胃癌病人成功实施了全胃切除,之后,外科
患者 38岁 ,孕 2产 2 ,住院号 990 35 8。平素月经规律 ,无痛经史 ,产后置宫内节育器 (IUD) 3年。  患者于 1992年 10月 2 4日因腹部挤压 (性交 )后胀痛伴肛门坠胀感 6小时急
目的 探讨集束电极射频治疗肝癌术后复发的近期疗效。 方法 对 11例肝癌行B超引导下经皮集束电极射频治疗。比较观察治疗前后肿瘤血供变化及近期疗效。 结果  11例病人
火电厂运用的传统发电技术,会产生大量的硫化物或硝化物,这对大气产生了严重的污染效应.因此,在火电厂中合理的运用烟气脱硫脱硝技术,才能实现节能环保等目标.
1 临床资料患者男性 ,32岁。因右胸壁肿块 2 0年 ,进行性增大 5年 ,切除后复发 1年 ,于 2 0 0 0 - 0 2 - 2 0入院。患者 2 0年前无意中发现右侧胸壁一个黄豆大小结节 ,质硬
本文对探亲夫妇首次受孕和不孕的有关情况进行了调查 ,试图探索两地生活夫妇自然受孕力及其影响因素 ,为建立两地生活探亲夫妇不孕症诊断标准提供依据。1 资料与方法  于
期刊
通过少孢子根霉和树状假丝酵母混合菌种的直接生物转化,由甘署原料制得了菌体蛋白饲料.在较佳培养条件下,经28℃浅盘发酵72h,产物干基粗蛋白含量为22.1%,采用自制固态生物反
在我国大肠癌病例的发病部位中 ,以直肠癌为主 ,其中中低位直肠癌占有较高比例。近年来直肠全系膜切除术(totalmesorectalexcision ,TME)已在欧洲确定为直肠癌治疗的标准术式