一种数控加工程序段的前瞻预取方法技术

技术编号:15390882 阅读:100 留言:0更新日期:2017-05-19 04:24
本发明专利技术是属于数控程序语言解释翻译领域,具体说是一种数控加工程序段的前瞻预取方法。为了实现程序段的前瞻预取,解释加工程序的软件模块采用了主解释器和辅解释器组成的双解释器结构,辅解释器超前主解释器几个程序段,对前瞻的若干程序段进行预分析,预分析后得到的参数写往内存缓冲,供主解释器在解释当前程序段时使用;主解释器在分析当前程序段时如需要后续程序段的参数,可从内存缓冲中读取辅解释器预分析的参数,完成当前程序段的解释分析,生成实际的机床动作指令。本发明专利技术在较好继承原有软件成果的基础上,通过添加一个辅助解释器,实现了加工程序段的前瞻预取,为复杂的G代码功能的实现提供了一个好的基础。

Prospective prefetch method for NC machining program segment

The invention belongs to the field of NC program language interpretation and translation, in particular to a prospective prefetch method for numerically controlled processing program segments. In order to achieve the prospective program segment, interpretation software module processing program uses a dual structure of the main and auxiliary interpreter interpreter interpreter the interpreter interpreter several advanced auxiliary main program segment, pre analysis of the procedures of forward-looking, parametric analysis of the pre write to the memory buffer for the main interpreter used in explain the current program; parameters of the main interpreter in the analysis of the current procedures such as need follow-up procedures section of the auxiliary parameters can be read from memory buffer interpreter pre analysis, analysis of the completion of the current program explanation, generate the actual machine instructions. The invention realizes the preview prefetch of the processing program segment by adding an auxiliary interpreter on the basis of better inheriting the original software achievement, and provides a good foundation for the realization of the complicated G code function.

【技术实现步骤摘要】
一种数控加工程序段的前瞻预取方法
本专利技术涉及数控系统中加工程序语言(G代码)的解释翻译领域,具体是一种加工程序段的前瞻预取方法。
技术介绍
在数控系统中,加工程序的解释通常是以程序段为单位的,读入一段加工程序,然后对这个程序段逐个关键字的进行语法和语义分析,从而生成相应的实际机床动作命令,如直线进给、圆弧进给、打开冷却、主轴正转或反转等。但是,有时确定当前程序段的某些参数,往往需要对后续若干个加工程序段进行联合分析,如刀具半径补偿时,当前运动段的终点坐标的确定及干涉检查,需要对后面的一个或多个运动段的共同解析;可是此时后面的加工程序段还没有读入,更未分析过,造成当前程序段的解释分析困难。常规的处理方法是延迟当前程序段的解析,将相关命令参数存储,然后进行下面程序段的解析处理,直到相关条件满足,才将以上存储的命令参数进行再处理形成实际的机床动作命令;此种方法的缺点是给解释器软件数据流的处理带来了复杂的编码实现。
技术实现思路
为了解决当前程序段的解释分析依赖后续程序段的情况,本专利技术提出了一种主解释器和辅解释器相互配合,并行工作的前瞻预取方法,由辅解释器超前主解释器若干个程序段,完成这些前瞻程序段的预取和对这些前瞻程序段的预分析工作,将预分析后得到的参数传送给主解释器,使得主解释器在分析当前程序段时,能够得到完整的依赖参数。本专利技术采用的技术方案如下:一种数控加工程序段的前瞻预取方法,包括以下步骤:当前数控加工程序段的解释依赖后续程序段时,辅解释器超前主解释器若干个程序段生成预分析参数,主解释器参考预分析参数完成当前加工程序段的解释分析,得到机床动作指令用于控制数控机床。所述辅解释器超前主解释器若干个程序段生成预分析参数,主解释器参考预分析参数完成当前加工程序段的解释分析,得到机床动作指令包括以下步骤:进入双解释器工作方式:主解释器初始化辅解释器,辅解释器从当前程序段开始,预取后续若干个程序段,预分析后得到的预分析参数写往内存缓冲区,主解释器参考这些后续程序段的预分析参数后,对当前程序段解释分析,生成机床动作指令;双解释器并行工作:主解释器读入下一个程序段,辅解释器也往前读入下一个程序段,辅解释器总是超前主解释器固定的若干个程序段;辅解释器先分析自己读入的程序段,预分析后将得到的预分析参数写往两者之间交互的内存缓冲区;主解释器参考内存缓冲区中的预分析参数,完成对当前程序段的解释分析;当前加工程序段的解释分析不依赖后续程序段时,主解释器关闭辅解释器,主解释器独立工作,不再参考预分析参数解释分析当前加工程序段。所述主解释器和辅解释器的共有数据和方法封装在一个解释器基类中,主解释器和辅解释器从这个基类派生。本专利技术的有益效果及优点:1.本专利技术能够完全继承以前的解释器软件成果,且在解释器计算量增加不大的情况下实现加工程序段的前瞻预取,前瞻程序段的个数可配置,比较灵活。2.本专利技术软件结构简单、数据流向清晰,易于编码实现。附图说明图1为解释器软件的类层次结构图;图2为前瞻预取程序段时双解释器的工作结构图;图3为辅助解释器启动时的工作流程图;图4为双解释器并行工作时的语法分析控制流图;图5为双解释器并行工作时的语义分析控制流图。具体实施方式下面结合附图及实施例对本专利技术做进一步的详细说明。由单解释器工作方式到前瞻预取程序段的双解释器工作方式的转换过程如下:1)初始化辅解释器,辅解释器前瞻预取若干程序段。初始化辅解释器,复制主解释器的全局工作状态到辅助解释器,然后辅解释器从主解释器的工作状态出发,预取指定个数的程序段,预分析后将得到的预分析参数通过内存缓冲区传递给主解释器,主解释器得到这些预分析参数后,才能对当前指令继续进行解释分析,生成机床动作指令,完成当前加工程序段的处理。2)主辅两个解释器并行工作。当辅解释器前瞻预取完指定个数的程序段后,主解释器根据预分析的参数数据,也完成当前程序段的解释分析,生成机床动作指令后,主辅两个解释器就进入了同步并行工作阶段。主解释器移动文件指针读入一个程序段,辅解释器也往前读入一个程序段,辅解释器总是超前主解释器固定的几个程序段;辅解释器先分析自己读入的程序段,预分析(语法分析和语义分析)后将得到的参数数据写往两者之间交互的内存缓冲区,此时辅解释器对程序段的分析结束;此后主解释器才能展开对自己读入的当前程序段的解析工作,生成实际的机床动作指令。值得注意的是,主解释器当前程序段的分析结束后,还要把内存缓冲中对应当前段的预分析数据删除;否则,可能会导致主解释器在解释分析下个程序段时对预分析得到的参数的理解出现错误,或者缓冲区溢出。3)关闭辅解释器。当主解释器不需要前瞻预读指令,就可以关闭辅解释器。需要注意的是辅解释器只是对前瞻预取的程序段进行解释分析,并没有生成实际的机床动作指令,这些预取的程序段,主解释器还要再次进行解释分析,这时才会形成实际的机床动作指令。如图2所示,由于主辅两个解释器的并行工作,使得数控系统中的解释程序模块相对于单解释器工作时计算量增大,再考虑到需要前瞻预取后续程序段的加工程序段有限,所以在解释加工程序的整个过程中并不都是主辅解释器并行工作的情况,而是当主解释器发现当前解析处理的G代码指令需要后续程序段时,这时才会初始化并打开辅解释器,此后主辅两个解释器并行工作,当主解释器不再需要前瞻预取后续的程序段时,就会关闭辅解释器,重新进入单解释器工作方式。解释加工程序的软件模块分为单解释器和双解释器两种工作模式,当前程序段的解释不依赖后续程序段时,只有主解释器工作;当前程序段的解释依赖后续程序段时,主辅两个解释器同时工作。以开源的RS274/NGC解释器为蓝本,较为详细地说明如何在这个解释器基础上构造一个能够前瞻预取程序段的解释器软件模块。采用面向对象的程序设计方法,将主辅解释器共有且相同的数据和方法封装成一个基类basic_interpreter,如描述解释器全局状态的_setup结构,描述加工程序段各字段参数的block结构,打开文件open(),进行语法分析的read()、read_a()、……、read_z(),及其它;语义分析的相关方法,如convert_...()函数可声明为纯虚函数,由派生类来补充。将主解释器和辅解释器分别封装成两个类main_interpreter和assistant_interpreter,二者均从basic_interpreter类派生得到(参考附图1);但是二者的语义分析模块有很大的不同,可把原RS274/NGC解释器的语义分析convert_...()等方法照搬到主解释器,需要预取程序段的指令处理部分稍作修改,而辅解释器的语义分析convert_...()方法和主解释器有很大不同,它不生成实际的机床动作指令,根据需要重写;但是要注意到,并不是所有的convert_...()方法都需要的,如刀具半径补偿时,预读程序段中我们只需要处理运动指令,其它的辅解释器不需要,所以辅处理器的编码量非常有限。上面概括性的介绍了解释软件模块的实现架构,下面以一个具体地例子介绍解释软件模块由单解释器工作方式到前瞻预取程序段的双解释器工作方式的转换过程和实现方法,包括辅解释器的启动,双解释器并行工作,和辅解释器的关闭。在进行刀具半径补偿时,需本文档来自技高网...
一种数控加工程序段的前瞻预取方法

【技术保护点】
一种数控加工程序段的前瞻预取方法,其特征在于包括以下步骤:当前数控加工程序段的解释依赖后续程序段时,辅解释器超前主解释器若干个程序段生成预分析参数,主解释器参考预分析参数完成当前加工程序段的解释分析,得到机床动作指令用于控制数控机床。

【技术特征摘要】
1.一种数控加工程序段的前瞻预取方法,其特征在于包括以下步骤:当前数控加工程序段的解释依赖后续程序段时,辅解释器超前主解释器若干个程序段生成预分析参数,主解释器参考预分析参数完成当前加工程序段的解释分析,得到机床动作指令用于控制数控机床。2.根据对权利要求1所述的一种数控加工程序段的前瞻预取方法,其特征在于所述辅解释器超前主解释器若干个程序段生成预分析参数,主解释器参考预分析参数完成当前加工程序段的解释分析,得到机床动作指令包括以下步骤:进入双解释器工作方式:主解释器初始化辅解释器,辅解释器从当前程序段开始,预取后续若干个程序段,预分析后得到的预分析参数写往内存缓冲区,主解释器参考这些后续程序段的预分析参...

【专利技术属性】
技术研发人员:刘永胜樊丙建董世斌
申请(专利权)人:中国科学院沈阳计算技术研究所有限公司聊城鲁晟数控机械有限公司
类型:发明
国别省市:辽宁,21

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1