数控语言是数控系统的重要接口之一,其遵循标准由ISO6983/IEA RS274D(G代码)进化为ISO14694(STEP-NC)。相比G代码,SETP-NC具有巨大的优势,使数控系统具有自我规划、自我检测和自我决策的智能化行为[91]。但是STEP-NC的实现也是一项很艰巨的任务,目前在工业上广泛应用的数控语言仍然是G代码。结合实际情况,我们首先建立了针对G代码的任务生成模块。开放式数控系统最终应该支持STEP-NC标准,扩充其功能。
NC代码解释器主要完成语法检查、译码和刀具补偿等任务。
数控程序的译码有以下两种形式:
(1)编译方式 指一次完成所有NC代码的译码和刀具补偿,这些工作在数控加工之前已经完成,因此和运动控制间接相关。所以在编译方式下,译码和刀具补偿属于非实时任务。
(2)解释方式 指一次只读取一条NC指令,然后进行刀具补偿、加减速、插值和位置控制,如果下一段译码没有完成,插值和位置控制则无法完成,所以在解释方式下,译码和刀具补偿属于实时任务。(www.daowen.com)
这两种方式各有利弊,编译方式把译码和刀具补偿推到了非实时任务的范畴中,减小了实时任务的负担,但需要大容量的内存存放NC中间文件,在PC机上,随着内存容量的增大和存取速度的加快,这个问题已经得到解决;解释方式则对计算机的实时处理能力提出了很高的要求,增加了系统资源的配置要求,但对NC代码的数量没有很大的限制。
经过权衡,我们采用编译型的译码方式,也就是说任务生成器是一个非实时线程,使用Win32 API编程。它在Windows环境下运行,以COM组件形式实现。
经过试验,编译1000行五轴联动直线运动的程序,需时873ms,编译1000行平面圆弧运动的程序,需时889ms,这些时间消耗都是可以接受的。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。