雷立群,王戬
(吉林农业科技学院机械与土木工程学院,吉林吉林 132101)
开放式数控系统是数控系统发展的主流方向[1],基于PC 的全软件数控系统是实现开放式数控系统的最理想方法。在全软件数控系统中,采用何种数控代码编译方法将会影响到数控加工控制过程的加工速度和加工精度。通过对传统控制系统编译方法的分析,提出了采用程序地址计数器式的读入缓存和翻译指令的方式对数控代码进行翻译。将该种翻译代码的方法应用到自主设计的数控系统中,证明了该种方法是有效可行的。
传统的数控系统在数控代码的翻译上,主要采取以下两种方法:
(1)对数控代码进行逐条编译、插补和位置控制[2]
这是一种较为传统的编译方式,数控系统在插补中断周期到来之前预先对下一条数控代码进行翻译,等上一条指令的插补结束时,就将预先翻译好的指令读入插补程序中进行插补。控制系统对数控指令进行逐条的翻译、插补。采用这种方法的好处就是,数控系统不需要很大的内存空间来存储数控代码。但其缺点也是显而易见的,系统在控制过程中要严格按照顺序进行,如果某条数控代码的插补很快就结束了,而下一条数控代码的翻译又很慢,就会出现加工过程中的等待或停顿现象,不但影响了加工速度,而且使加工零件表面粗糙度大,降低加工质量。
(2)将数控代码全部编译完成之后再进行插补运算和位置控制[3]
这种加工方法一般是在插补开始之前,读入所有数控代码后,将所有数控代码全部翻译,并存储在存储区中。当插补开始之后,就可以直接从存储区中读出编译好的数控代码,进行实时控制。采用这种编译方法避免了按顺序边翻译代码边插补控制的弊端,剔除了插补控制时间与翻译数控代码所用时间之间的矛盾,并且可以有效提高加工控制的速度。但是采用这种编译方法也有其不容易克服的缺点:当需要加工的数控源文件的程序量很大时,就需要有更大的内存空间来存储翻译好的数控代码,而PC 机的内存是非常珍贵的,这将使数控源文件程序量很大的数控加工受到限制。
以上两种方式是传统数控系统中经常采用的编译方式。这两种方法均有各自的优点,也有其不可克服的缺点。因此,有必要在对传统数控系统编译数控文件的方法进行分析的基础上对传统数控文件的编译方法进行改进,以克服传统数控系统在翻译数控代码方式中存在的弊端。
数控系统在加工过程中对数控代码的翻译过程是这样的:首先,在内存中定义一段存储空间,在进行实时控制之前先翻译n 条数控代码(如n=10),并按顺序将其存入这段内存空间中;存储完这n 条翻译好的数控代码后,启动实时插补运算过程,插补程序按顺序从这段内存中读取控制指令进行插补运算,并用一个标志位fnum>0 标记下内存中的数控代码不足于n 条。同时,数控系统在每个插补周期结束时,都会判断这个标志位,若fnum>0 (表示已经取出fnum条数控代码),说明内存空间的数控代码不足于n 条,则继续翻译下一条数控代码,并按顺序存入内存空间。流程图1 具体说明了该系统对数控代码的翻译过程。
图1 数控代码的编译过程
采用这种方法不但可以避免加工过程中因严格按照先翻译数控代码后进行实时插补运算的顺序而造成加工过程中的等待以及加工工件的表面光滑度降低等问题,同时也解决了存储空间给加工控制过程带来的限制。可以说该数控系统采用的数控代码的翻译方式是在将前面两种传统加工方式巧妙结合的基础上进行了改进。在加工开始之前先将一部分数控代码翻译完成并读入内存,实时加工开始后数控代码的翻译过程与插补过程完全独立,只要内存不满翻译过程就可以在插补周期结束时连续进行,而不需要按照某一顺序去进行。
数控代码的存放与数控加工中采用的数控代码的翻译方法以及插补运算方法有关,什么样的翻译方法和插补运算方法有什么样的数控代码存储方式。文中用下面的结构体存放一条翻译完成的数控代码。
在内存空间中以数组的形式定义一个存储空间:DATA datanum[10],在插补运算开始之前先按顺序逐条翻译并存储n=10 条数控代码,然后启动实时插补运算过程。具体过程可用下面的图2 表示,流程图2(a)、(b)、(c)表示了加工过程中数控代码的存取过程。
图2 加工过程中数控代码的存取过程
从图2 可以看到:数控代码的读取和存入是两个并行的、独立的过程。在实时插补过程中从内存中读取一条数控代码,当插补周期结束时判断内存是否有空余位置,如果有,则继续读取下面的数控文件内容存入内存空间。
将这种用程序地址计数器式的读入缓存和翻译指令的编译方法应用到自行设计的数控系统中,实验证明这种方法完全可以保证指令翻译的连续性,并且有效节省了程序的存储空间。图3 是采用该种编译方法的数控系统的工作状态显示。
图3 数控加工状态显示
通过对传统控制系统编译方法的分析,提出了采用程序地址计数器式的读入缓存和翻译指令的编译方法,该方法可以有效节约程序存储空间,文中给出了该种方法的具体实现过程,并将该方法应用到自行设计开发的数控系统中,实践证明文中所提出的方法是有效可行的。
[1]于振文,雷立群,王芳.基于GPNC/PCNC 一体化数控系统的研究与开发[J].河南大学学报,2011,41(4):405 -409.
[2]马群生,温冬婵,仇玉章.微型计算机计数[M].北京:清华大学出版社,2006:192 -207.
[3]雷立群,于振文.基于Windows 的全软件数控系统实现方法研究[J].机床与液压,2012,40(9):94 -97,20.
[4]武安河,邰铭,于洪涛.Windows2000/XP WDM 设备驱动程序开发[M].北京:电子工业出版社,2003:1 -354.
[5]何航.Windows 开发式数控系统软件设计与研究[D].成都:电子科技大学,2004.
[6]LEI L Q,WANG K Q,HAN J.Implementation Study about the Software CNC System Based on Windows[J].Advanced Materials Research,2011(9/10/11):264 -269.