数控制码系统中的数据处理新方法
本文分析了数控制码系统中数据处理的特点,讨论了数控系统中两种传统的数据处理方法及三种改进方法。综合分析各种方法的优缺点,结合制码系统中数据处理的特点,提出了一种更适用的数据处理新方法。该方法即节约了系统资源,又提高了制码速度和工作效率。
数控系统的数据处理是指NC程序送入零件缓冲区之后、插补之前的准备工作,主要包括译码、运动轨迹计算、进给速度计算三部分。选用合理的数据处理方法将大幅提高编程的正确性和工作效率,且便于数据校对,尤其适合批量零件和有规律零件程序加工。数据处理方法是否合理主要取决于其连续性、时间效率和资源占用情况。目前,对传统数据处理方法改进的数据处理方法主要有:资源重叠流水处理的解释方法、目标码编译方法、解释一编译方法。它们各有优点和不足,如在不同的环节加快了处理速度,减少了等待时间,但就整体的连续性和时间效率而言,还不够完善。为了进一步提高加工连续性和加工效率,本文针对各算法的优缺点提出了一种新的数据处理方法,更加适用于制码系统的加工处理。
1数控制码系统
制码系统由三个步进电机驱动,在圆形小零件上制码。零件圆面上需以环形刻两组对称的、由字母和数字组成的标记码。规定每个零件上的标记码字符个数相同(取6位字符为例),即每个零件加工时编译的目标码大小一样,所占内存空间相同。标记码主要有两部分:整批零件的代号(相同)和每个零件单独的标记码(不同)。刀具上固定需要用到的字母刀和数字刀,根据转动刀架和转动零件对准零件上需要刻码的位置。所以这三个步进电机分别用来控制刀架的转动、零件的位置和刀架的深浅。其数据处理就是对固定位数的标记码进行译码,主要特点是:每个零件的标记码可作为一个代码段来处理;可以针对标记码中整批零件代号相同和各零件代码不同的特点进行相应的处理;零件上刻的是两组完全相同的标记码,即处理的数据相同,只是改变了位置;每个零件加工的衔接速度很快,数据处理需要有很好的连续性。针对制码系统中数据处理的特点,结合各数据处理方法,研究出一种建立在已有数据处理方法基础之上、更适用于制码系统数据处理的方法。
2传统的数据处理方法
传统的数据处理方法有解释方法和编译方法两种。
(1)解释方法
解释方法是将加工程序整理成某种形式,在加工时由主控程序顺序取出,分析判断后,进行译码处理,并对零件加工程序逐条进行解释、插补和控制。这种方法占用内存少、操作简单,但存在难以克服的缺点:各模块问的控制是顺序的,如果对一个程序的解释过程较慢而使机床具有一定的等待时间,则加工出来的工件就会出现明显的粗糙度;不易处理各程序间的转接,易形成停顿与过切。
(2)编译方法
编译方法是先对加工程序全部编译,将结果放到缓冲区中,当开始加工时,直接启动插补中断程序。从缓冲区中取出编译好的数据,进行计算并控制加工。这种加工方法的优点是加工速度快、效率高;缺点是编译与加工之间存在时间间隔。
3改进的数据处理方法
3。1资源重叠漉水处理的解释方法
针对传统方法的缺点,对传统的解释控制进行改进,即资源重叠流水处理的解释控制方法。时间重叠是流水处理的关键。它不仅是CNC装置处在NC工作方式时,程序输入、译码、插补和位控加工四个处理过程的时间资源重叠,而且译码过程所包含的各子过程,即程序装入、语法检查、解释和刀具补偿四个子过程之间也运用了时间资源重叠。
在NC工作方式下。若用t1、t2、t3、t4分别表示程序输入、译码、插补和位控加工四个子过程的处理时间,则加工一个零件程序段的数据转换时间将是t=tl+t2+t3+t4;在数据处理的译码过程中,tl、t2、t3、t4分别表示程序装入、语法检查、解释和刀具补偿四个子过程的处理时间,则数据处理的总时间将是t=t1+t2+t3+t4。如果以传统的解释方式顺序处理,即第一个数据处理完后再处理第二个数据,则在两个程序段的输出之间将有一个时间长度t的时间间隔,其时空关系如图1(a)所示。这种时间间隔反映在电机上就是电机时转时停,反映在刀具上就是刀具时走时停。不管这种时间间隔多么小,时走时停在数控加工中都是不允许的。
采用重叠流水处理技术可以消除这种间隔,重叠流水处理后的时间空间关系如图1(b)所示。其关键是时间重叠,即在一段时间间隔内不是处理一个过程,而是处理两个或更多的子过程。经过时间重叠流水处理后,每个零件程序段的输出之间、每个数据处理之间不再有间隔,从而保证电机转动和刀具移动的连续性,加快数控加工的速度。
该方法节约了系统资源,有效防止了内存碎片的形成,适应大程序译码和复杂数据处理。
3。2目标码编译方法
目标码编译是执行一个零件的加工程序,只需在开机后首次运行时进行编译,然后将得到的目标码存放在RAM中,下次加工同样的零件时,无需再次对原零件程序进行编译,直接执行目标码即可,从而减少了每次重新编译所占用的时间。
3。3解释一编译方法
单纯使用传统的解释方法或编译方法都有不可避免的缺点,解释一编译方法是将两种方法相结合进行数据处理的方法。在开始加工前先开辟一段内存作为缓冲区(根据具体情况分配),接着一次性编译若干程序段,直到缓冲区满。然后,从缓冲区中取出已编译好的程序段进行加工处理。这里必须给加工处理完的程序置一标志,例如,定义一标志位bufflag,初始为False,程序加工处理完后置为True,则当所有程序的标志位都为True时清空缓冲区,继续装入下一批编译的程序段。译码缓冲区在译码进程初始化时被开辟,在译码进程被杀死时释放。在译码缓冲区的生命期间,数据被不断地写入、修改、读出与清除。对于某一个缓冲区,它不断地接收新的零件程序段,不断地被各子进程轮流处理。这种将大量加工程序分成若干程序段进行编译加工的方法,可有效减少编译等待时间,增加加工效率。
4适用于制码系统数据处理的新方法
上述几种数据处理方法都有其不足,如资源重叠流水处理解释方法只是缩短了进程间的等待时间,其解释阶段不如目标码编译方法效率高,整个译码处理效率不如解释一编译方法;目标码编译方法只是优化了编译阶段的数据处理;解释一编译方法结合解释方法和编译方法,提高了整体数据处理效率,但数据解释送缓冲区阶段不如资源重叠流水处理解释方法效率高,缓冲区编译阶段又不如目标码编译方法效率高。
综合分析上述各方法的优缺点,为制码系统研究出一种更优的数据处理方法。主要思想是:总体运用解释一编译方法,开辟一段内存作为缓冲区,先一次性编译若干代码段存入缓冲区,直到缓冲区满。然后,从缓冲区中取出已编译好的代码段进行加工处理。而在一次性编译若干代码段中各条代码时,采用资源重叠流水处理的解释方法进行编译处理。并且在编译处理时综合采用目标码编译方法,先判断各标志位,如具有相同代码段,就将该段相同代码编译后的目标码存入RAM中,下次处理相同数据时直接调用RAM中的目标码即可。其数据处理过程如下:
(1)定义缓冲区数据格式
根据零件标记码的固定长度分配一定内存空间作为缓冲区,需两个一样大小的缓冲区,一个用来存放若干程序殷(一个零件的6个标记码);另一个用来存放译码结果。缓冲区的数据结构定义如下:
每个缓冲区设置6小块缓冲区BUF0~BUF5,用来存放每个零件的6位标记码,并置相应的bufflag为1;6块缓冲区满后,再依次进行数据译码处理,处理结果放入另一缓冲区,同时置相应的bufflag为2;当6块缓冲区全部准备好(bufflag为2),则进行加工,加工完的标记码所对应的缓冲区就置bufflag为O,继续存放下一个零件标记码。
(2)采用资源重叠流水处理的解释方法进行译码
①从第一个缓冲区取出第一个零件标记码进行编译并将结果放入第二个缓冲区中,同时输入第二个零件的标记码。
②从第二个缓冲区中取出第一个零件的编译结果对第一个零件进行加工,这时编译第二个零件的标记码放入已空的第二个缓冲区中,同时输入第三个零件的标记码。
③第一个零件加工完毕,继续加工第二个零件,并编译第三个零件的标记码,同时输入第四个零件的标记码。
采用重叠流水数据译码处理,直到加工完成整批零件。数据译码处理过程如图2。
(3)编译缓冲区的数据
数据编译阶段,即从第一个缓冲区取出数据进行编译的阶段,编译结果存入第二个缓冲区,采用目标码编译方法对数据进行编译。由于零件上标记码是两组对称的相同代码且整批零件的代号相同,为了避免重复编译相同代码,在缓冲区格式中定义了两个标志位accessorynuml和accessorynum2。accessorynuml是某个零件单独标记码编译后的目标码标志位,为0表示该码还未编译或已重复使用一次;为1表示已编译存储,且还未重复使用。accessorynum2是整批零件代号编译后的目标码标志位,为0表示还未编译或已重复使用n次;为n表示第一次编译存储,且未重复使用;为i表示已重复使用了n-i次(n为整批零件数,i为1~n间的整数)。当acccssorynum1为1时说明该零件单独标记码还要被使用,应先保存,下次使用时可以直接加工而无需再去编译;由于加工零件是对称的。所以第二次加工就无需重新编译而直接加工即可。当accessorynum2的值大于O小于n时,说明该代码需保存。由于整批零件的代号相同,因此加工每个零件时都可以直接调用第一次编译好的代号数据直接加工。通过accessorynum1和accessorynum2两个标志位,可以加快数据编译处理速度,有效提高数据处理的效率。
当一个零件加工完换下一个零件时,继续进行下一个零件标记码的数据处理,直到加工完整批零件。只有在输入或编译下一个零件,即需要占用两缓冲区之一、而上一零件的编译或加工还没有处理完时需要等待,但这种等待是极其短暂的。
经实验可知,数控制码系统中运用资源重叠流水解释方法实现数据处理时,一个零件的制码时问需要2.4s;运用解释一编译方法实现数据处理时,需要2.3s;而运用这种新数据处理方法实现数据处理时,只需要2.0s,比运用前两种方法的教率分别提高了16.7%和13.04%,有效地提高了数控制码的速度和效率,且使用至今一直很稳定。
这种新的数据处理方法适合大量有规律或程序段较短的数控程序的译码。它能节约系统资源,加快数据处理速度,且译码缓冲区是静态分配的,可有效防止内存碎片的形成。该方法还能很好地利用Windows系统本身提供的基于线程的抢先式多任务机制。
文章版权归西部工控xbgk所有,未经许可不得转载。