数控仿真软件中数控程序纠错功能浅探
摘要:针对数控仿真软件如何能对用户填写的数控代码具有简单的语法与词法纠错功能进行了简单的介绍和探索。
关键词:数控仿真语法纠错词法纠错指令纠错
当前数控仿真软件主要运用于职业学校数控教学以及广大从事数控行业的人员进行自学与提高,其教学功能的重要性不言而喻,那么开发数控仿真软件不仅要具有仿真功能,还需要具有对用户输入数控代码的简单纠错功能,提高用户
的学习效率,现将本人开发软件时对这部分的设想做一个简单介绍。
数控加工程序以*.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格式为M03S…..。后面一定要跟上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.指令的某些参数必须要明确指定。这里涉及到一些指令的格式问题,比如G00X100Z100代码,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月
期刊库(http://www.zgqkk.com),是一个专门从事期刊推广、投稿辅导的网站。
本站提供如何投稿辅导,寻求投稿辅导合作,快速投稿辅导,投稿辅导格式指导等解决方案:省级投稿辅导/国家级投稿辅导/核心期刊投稿辅导//职称投稿辅导。
【免责声明】本文仅代表作者本人观点,与投稿辅导_期刊发表_中国期刊库专业期刊网站无关。投稿辅导_期刊发表_中国期刊库专业期刊网站站对文中陈述、观点判断保持中立,不对所包含内容的准确性、可靠性或完整性提供任何明示或暗示的保证。请读者仅作参考,并请自行承担全部责任。
投稿辅导服务咨询与期刊合作加盟
陆老师联系QQ: 913775405(普刊)
蒋老师联系QQ: 867306987(核心)
刘老师联系QQ: 271374912(核心)
联系电话:18015016272
17327192284
投稿辅导投稿邮箱:zgqkk365@126.com
期刊推荐
- 《课程教育研究》 旬刊 国家级
- 《网络空间安全》(信息安全与技术)月刊 国
- 《价值工程》旬刊 国家级 科技统计源期刊
- 《高教论坛》 月刊 省级
- 《法制与社会》旬刊 省级
- 《中国教育学刊》月刊 14版北大核心
- 《语文建设》 旬刊 14版北大核心
- 《中国绿色画报》 月刊 国家级
- 《社科纵横》季刊 社科类优秀期刊
- 《求索》月刊 14版北大核心期刊
- 《财会月刊》旬刊 14版北大核心
- 《艺术品鉴》 月刊 省级
- 《中华建设》月刊 国家级 建设类优秀期刊
- 《教学与管理》旬刊 北大核心
- 《当代经济》 旬刊 省级
- 《新课程研究》旬刊 省级 教育类优秀学术期
- 《文教资料》 旬刊 省级
- 《学术界》 月刊 双核心
- 《吉林教育》旬刊 省级 教育类学术期刊
- 《中国农业资源与区划》 月刊 14版北大核心
- 《继续教育研究》月刊 北大核心期刊
- 《财经界(学术版)》半月刊 国家级
- 《电影评介》半月刊 14版北大核心
- 《公路交通科技》 月刊 北大核心
- 《新闻传播》月刊 省级 新闻类优秀期刊