EDN China > 设计实例 > EDA工具与服务 > 仿真与验证 > 正文
? 2016博客大赛-不限主题,寻找电子导师,大奖升级??

数控加工虚拟仿真系统代码编译器的研究

肖忠跃 李国臣 刘朝晖 周燕辉?? 2009年10月14日 ?? 收藏0

  1 引言

  随着数控技术在机械制造业中的广泛应用,数控加工虚拟仿真系统也得到迅速发展,广泛应用于数控编程操作的教学和培训,对减少高等院校和培训机构的资金投资,缩短企业的生产准备周期、减少生产成本、提高企业生产效率具有重要意义。而作为数控加工虚拟仿真系统的前置处理部分——NC代码编译器,是沟通和传递数控加工虚拟仿真系统与CAD/CAM系统其它部分之间信息的桥梁,也得到了迅速发展。??? 在数控加工虚拟仿真过程中,正确且快速有效地从所输入的加工程序中提取加工信息以及将它们有效地组织仿真系统内部默认的表示形式,是进行动态仿真的前提和仿真过程得以顺利进行的保证。综观国内外数控加工虚拟仿真系统 NC代码编译技术的发展情况,国外在这方面的研究比较成熟,而国内尽管已有很大发展并达到相当水平,但存在一些不足之处:

  (1)通用性不够,如某些数控系统的NC代码编译器只适用于某一系统的代码编译;

  (2)在如何处理计算机内存资源利用率和运行速度两者的关系上有待于进一步研究;

  (3)所处理的NC代码有限,尤其是国内大多数NC代码编译器只能实现对部分常用C代码(如GOO—G04等)、M代码等基本代码进行翻译处理,而对一些重要的代码(如刀具补偿代码)、固定循环和子程序的处理却很少;
????
  (4)对NC代码程序的语言错误检查力度不够,多数NC代码编译器只是显示错误出现的行号而已。

  在 NC代码翻译器的研究与实现过程中,如果能改善上述缺陷,即提高通用性、完善代码处理功能,真正实现数控加工虚拟仿真对加工信息的优化,则能进一步提高虚拟仿真的真实性,并为提高数控加工的生产效率、缩短生产准备周期、减少生产成本、企业实现以生产时间、加工成本、资源最优化配置利用来生产出高质量的产品奠定坚实的基础。因此,本文作者将致力于实现具有一定通用性的NC代码翻译器的关键技术的研究,使数控加工虚拟仿真系统能够满足CAD/CAM系统向集成化、智能化、网络化发展的需要。

  2 编译系统采用的译码方法

  传统的数控系统代码编译方法有解释、编译和目标码编译等三种方法。这三种编译方法各有其优缺点,前两种的缺点是浪费计算机内存资源,执行程序时程序段与程序段之间可能存在停顿,影响零件加工精度;而且这两种译码方式都存在一个缺点,即在加工同一种类的不同零件时,程序每运行一次都需要重新对程序进行编译,都要占用一定的加工时间。而采用目标码进行编译时,虽然加工同类零件时只需运行一次译码程序,提高了数控加工程序运行速度,且目标码形式单一,读取速度快,可大大提高加工程序反复运行的效率;但是当数控加工程序较长时,编译产生的目标码所占据的内存是比较大的,而且用户如果要在此基础上扩展其功能,则必须完全了解其代码的设计原则;所以这种译码方法的通用性和移植性较差。笔者在此基础上,根据时间重叠流水处理原理,提出了采用解释—编译方式对数控加工代码进行译码的方法,其工作流程如图1所示。

解释-编译的译码方法的流程图

图1? 解释-编译的译码方法的流程图

  该解释-编译的译码方法的运行过程是编译程序要进行两次扫描,且扫描的对象不同,第一次扫描的对象是数控加工程序中的各种地址符,此过程进行词法、语法和简单的语义分析,并累计程序的程序段个数;扫描的同时提取数控加工程序中主要加工信息,如G00、G01、G02、G03等,并按先后顺序将加工信息存放到编译结果缓冲区m_CurveList尺寸链表,且设置插补类型标志位:enum locustype{point,line,cwarc,anticwarc} locustp,以供第二次扫描时使用。若存在错误则退出编译系统并提示出错信息,同时清空缓冲区m_Cu~eHst尺寸链表。若第一次扫描检查无错则进行第二次扫描。此时,第二次扫描的对象是编译结果缓冲区中各插补标志位,通过识别各个插补标志位从编译结果缓冲区m_CurveList尺寸链表中读取刀位数据信息,并由此刀位数据信息来驱动相应插补模块完成数控加工过程的动态仿真;很显然,第二次扫描的时间会比第一次扫描时间短,且需要的存储空间比第一次扫描时需要的存储空间少。

  这种分次对不同对象进行扫描的解释—编译的译码方法,一方面克服了解释方式和编译方式浪费计算机内存资源的缺点;另一方面又克服了时间顺序处理方式由于在两个程序段的输出之间存在的时间间隔,导致电机的时转时停,而造成工件的加工质量下降的缺点。同时该解释—编译方式由于两次扫描的对象不同,且第二次扫描的内容没有第一次扫描的复杂。很显然,这种方法一方面提高了计算机内存资源的利用率,另一方面缩短了编译的时间,大大提高了编译软件的工作效率。


上一页12下一页
?? ?? ??


打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮

1.扫描左侧二维码
2.点击右上角的分享按钮
3.选择分享给朋友
?? ??

数控加工? 虚拟仿真? 代码编译器?

相关文章

我来评论
美国的游客
美国的游客 ??? (您将以游客身份发表,请登录 | 注册)
?
有问题请反馈