一种数控控制器以及数控机床的制作方法

文档序号:6327530阅读:327来源:国知局
专利名称:一种数控控制器以及数控机床的制作方法
技术领域
本发明涉及现代数控(CNC, computer numerical control)机床技术,尤指一种数控控制器以及数控机床。
背景技术
具有多轴的高精度、高速度、多任务数控机床(CNC machine)是机床技术的发展方向。其中,STEP-NC技术是现代数控机床的发展趋势,在エ业应用中越来越多地被采用,这一代机器代表了机床制造エ业增长最快的部份。STEP-NC的总体目标是从计算机辅助设计(CAD, computer aided design)到产品实现形成一条快速追踪的流程链;在CAD/CAM与数控之间提供有效链接;使得基于CAD几何形状的程序互操作性描述的是“做什么”而不是“如何做”;对加工过程进行高层次描述。STEP-NC的好处包括提供给车间的信息质量更高; 使用STEP进行直接信息交互;双向信息流动。基于以上原因,STEP-NC将成为数控机床的新标准。现代STEP-NC要求数控控制器具有以下至少ー个优点成本低、支持高速度加工、支持高精度加工、在更多功能上具有灵活的可扩展性等。ー个典型的STEP-NC流程如图I所示,包括由STEP-NC编译器执行的NC核心步骤,以及由运动控制器执行的运动控制步骤。其中,NC核心步骤具体包括对STEP-NC程序提供的几何图形和任务进行解析(parse/interpret)的子步骤,显示子步骤,编辑(edit)子步骤,插值子步骤等。STEP-NC标准倾向于使用非均勻有理样条曲线(NURBS, Non-uniform rationalB-spline)表述几何形状及产品规范。使用由NURBS曲线数据计算出的位置,数控控制器直接将NURBS曲线数据从零件加工程序转换成多个小线段。但是,针对多轴的高精度实时 插值算法(比如NURBS等)会给数控控制器带来大量的计算负载。当STEP-NC标准中没有后处理过程时,数控控制器需要实时进行插值处理。因此,CNC系统的整体性能很大程度上取决于插值器的速度和精度。由于NURBS需要考虑计算约束条件,故具有较高的计算复杂性。在典型应用中,NURBS插值消耗了整个控制系统高达95%的时间。当使用NURBS作为数控机床的输入时,进给速度(feed rate)很大程度上取决于NURBS曲线的插值速度。也即,曲线插值速度对于高速度、高精度加工至关重要,曲线插值的计算复杂性高对于数控机床的速度和精度有很大的负面影响。此外,在典型的运动控制算法中,某些信号处理步骤(如FFT等)也将给数控控制器造成计算负担,从而影响数控机床的速度和精度。现有技术中有两种方式可加快NURBS曲线的插值速度基于多核CPU的方式和基于混合结构的方式,典型的混合结构是PC+FPGA,例如西门子公司提供的SINUMERIK 840D系统。多核/多处理器(multi-core/processor)并不是一种有效和经济的方案,因为数字控制核心(NCK, numeric control kernel)对处理能力要求过高且需要太多的资源。对于混合结构而言,复杂的FPGA价格昂贵,并且在进ー步更新和扩展方面缺乏灵活性。不论是在硬件还是软件上,FPGA/ASIC的开发成本都非常高。比如,对于增加新的插值算法和/或新的运动控制功能,FPGA并不灵活,每个微小的变化都将消耗大量的开发时间,且是ー个复杂的过程(比如毎次都需要经过HDL编程+综合+仿真+验证等)。

发明内容
有鉴于此,本发明提出ー种数控控制器以及数控机床,以便较好地满足机床加工的要求。为达到上述目的,本发明的技术方案具体是这样实现的ー种数控控制器,包括

第一处理器,用于接收零件的曲线规范,生成相应的任务规范,将所述曲线规范和任务规范发送给第二处理器;所述第二处理器包括多个处理子単元,该多个处理子単元中至少两个处理子単元用于根据所述任务规范将分配给自身处理的曲线规范转换为机床加工的运动轨迹。在本发明的一种实施方式中,所述第一处理器用于将所述曲线规范和所述任务规范从自身的主内存写入所述第二处理器的全局内存;所述至少两个处理子单元中的每个处理子单元用于从所述全局内存读取分配给自身处理的曲线规范,将其写入该处理子単元的ー个或多个处理块的共享内存。在本发明的一种实施方式中,所述ー个或多个处理子単元的每个处理块用于根据自身共享内存中的曲线规范进行插值计算,得到该曲线规范所对应曲线段的插值点,并将计算出的插值点写入所述第二处理器的全局内存。在本发明的一种实施方式中,所述一个或多个处理块中姆个处理块包括一个或多个线程,用于从该处理块的共享内存读取相应的曲线规范进行插值计算。在本发明的一种实施方式中,所述第一处理器用于在所述第二处理器的全局内存存储的插值点数量到达预定值时,从所述全局内存读取所述插值点写入自身的主内存。在本发明的一种实施方式中,所述第二处理器进ー步用于机床加工的信号处理和/或运动控制。在本发明的一种实施方式中,所述第二处理器中多个处理子単元用于并行执行快速傅立叶变换(FFT)。在本发明的一种实施方式中,所述第一处理器为中央处理器(CPU),所述第二处理器为图形处理器(GPU),所述处理子单元为所述图形处理器中的流处理器。在本发明的一种实施方式中,所述曲线规范包括以下至少ー个參数曲线阶数、控制点集合、权重因子集合、节点矢量。本发明实施例还提供了一种数控机床,包括如上所述的数控控制器,以及与所述数控控制器连接的ー个或多个伺服驱动器,每个伺服驱动器连接ー个机床加工轴;所述机床加工轴用于根据所述数控控制器得到的运动轨迹对零件的表面进行加ェ。在本发明的一种实施方式中,所述数控控制器与所述伺服驱动器采用以太网或串行总线连接。由上可见,本发明实施例提供的数控控制器以及数控机床,能够较好地满足机床加工的要求。


图I示出典型的STEP-NC流程;图2为本发明一个实施例中基于GPU的STEP-NC系统的结构示意图;图3为本发明一个实施例中利用GPU进行并行NURBS插值的方法流程图;图4示出本发明ー个实施例中并行NURBS插值的数据流;图5为本发明一个实施例中GPU块对任务进ー步划分的示意图;图6为本发明一个实施例中基于GPU的数控控制器8轴应用的结构示意图;图7示出本发明ー个实施例中基于GPU的NURUS插值的验证结果;
图8示出本发明ー个实施例中基于GPU的FFT算法的验证結果。
具体实施例方式为使本发明的目的、技术方案及优点更加清楚明白,以下參照附图并举实施例,对本发明进一歩详细说明。本发明的实施例提出ー种基于图形处理器(GPU,Graphic Processing Unit)的数控(CNC)控制器,以便更好地满足机床加工的要求。在ー个具体实现的示例中,GPU在数控控制器中作为中央处理器(CPU)的ー个协处理器(co-processor)。零件的NUBRS特征信息被传递到GPU,GPU以例如高度并行的方式对NUBRS曲线进行插值,NUBRS插值的输出即为每个机床加工轴的运动轨迹。之后,采用运动控制器的FFT算法处理这些运动轨迹,以便进行运动控制算法中的低通或带通滤波。对于FFT算法,GPU也可以用例如高度并行的方式进行处理。基于GPU的STEP-NC系统如图2所示,包括IS0 14649 (即STEP-NC)程序生成单元201、电机驱动单元203、以及基于GPU的数控控制器202。其中,数控控制器202具体包括如下逻辑功能通信系统、操作系统、普通应用接ロ、GPU应用接ロ、运动控制器、解析器、信号处理器、插值器、操作监视器、MMI、任务调度器、以及用于显示的图形系统。具体地,GPU应用接ロ、信号处理器、插值器、图形系统等采用GPU实现,在图2中以虚线示出,数控控制器202中的其他功能模块由CPU实现。进ー步地,可以由GPU实现ー些运动控制功能,从而降低CPU在运动控制上的处理负担。在图2所示的结构中,通信系统是最底层,操作系统位于通信系统上ー层,依此类推,操作监视器等是整个结构中位于最上层的应用。需要指出,通过使用现成的组件和成熟的开发环境(例如NVIDIA的GTX系列),基于GPU的数控控制器的升级和扩展将更为容易且经济。对于数控控制器中执行的插值,本发明的一个实施例采用CPU和GPU配合的方式实现并行NURBS插值,具体过程如图3所示,包括以下步骤步骤301是初始化步骤,CPU将曲线规范和任务规范等规范数据从主内存(MM,main memory)发送到 GPU 的全局内存(GM, global memory)。需要指出,ー个GPU有多个流处理器(或为Grid),而ー个流处理器有多个GPU块,每个GPU块包括一个共享内存(SM,shared memory)和多个线程(thread),该SM为所述多个线程所共享。相应地,任务规范用于指定曲线段和流处理器的对应关系,或者曲线段和流处理器中的GPU块的对应关系。比如,将整个曲线划分为多个曲线段后,每个曲线段分配给ー个流处理器,或者该流处理器中的部分GPU块进行NURBS插值,使得不同曲线段的NURBS插值可以并行执行。步骤302 GPU中的姆个流处理器(stream processor)从全局内存读取规范数据,写入该流处理器的每个GPU块的SM。本领域技术人员可以理解,在步骤302中,GPU的部分处理器也可以并不处于工作状态。步骤303是以迭代方式对曲线进行插值的计算步骤。每次迭代后,根据指定的采样分辨率计算每个曲线段的采样点(或插值点),写入GPU的全局内存。具体地,流处理器根据待处理的曲线段的控制点进行插值,并将插值点从共享内存写入GPU的全局内存。步骤304:全局内存中的插值点是否积累到一定数量,如果是则执行步骤305,否则执行步骤306。步骤305 =CPU将插值点从GPU的全局内存读回自身的主内存。步骤306 :判断是否所有的曲线段都处理完毕,如果是则流程结束,否则从未处理的曲线段中选择ー个作为待处理的曲线段,返回步骤303对其进行处理。相应地,图3所示并行NURBS插值过程的数据流见图4。对于GPU而言,输入数据主要包括曲线规范,还可以进一歩包括采样分辨率等,从而定义出ー个从PC(或为CPU)主内存到GPU的全局内存再到每个GPU块的共享内存的输入数据流。本实施例中,曲线规范例如包括曲线阶数、控制点集合、权重因子集合、以及节点矢量等中的至少ー个參数。输出数据包括曲线的所有采样点,按照曲线段(curve segment)对采样点进行分组计算,并将计算出的采样点读回主内存。需要指出,输出数据流与输入的方向相反,也即从每个GPU块的共享内存到GPU的全局内存最后再到主内存。在并行算法中,整个曲线被逐段采样,每段采样或插值由预定数量的GPU块执行,图5为每个GPU块中多个线程之间的子任务划分和分配策略示意图。在本发明ー个实施例中,k阶NURBS由ρ+k+l个控制点构成、共分为P部分,其中每部分描述ー个曲线段,表I和表2为相应的并行NURBS算法的伪码(pseudo code)。其中,k和P可为任意正整数。
权利要求
1.ー种数控控制器,所述数控控制器包括 第一处理器,用于接收零件的曲线规范,生成相应的任务规范,将所述曲线规范和任务规范发送给第二处理器; 所述第二处理器包括多个处理子単元,所述多个处理子単元中至少两个处理子単元用于根据所述任务规范将分配给自身处理的曲线规范转换为机床加工的运动轨迹。
2.根据权利要求I所述的数控控制器,其中, 所述第一处理器用于将所述曲线规范和所述任务规范从自身的主内存写入所述第二处理器的全局内存; 所述至少两个处理子单元中的每个处理子单元用于从所述全局内存读取分配给自身处理的曲线规范,并将其写入该处理子単元的ー个或多个处理块的共享内存。
3.根据权利要求2所述的数控控制器,其中,所述ー个或多个处理块用于根据自身共享内存中的曲线规范进行插值计算,得到该曲线规范所对应曲线段的插值点,并将计算出的插值点写入所述第二处理器的全局内存。
4.根据权利要求3所述的数控控制器,其中,所述ー个或多个处理块中每个处理块包括ー个或多个线程,用于从该处理块的共享内存读取相应的曲线规范进行插值计算。
5.根据权利要求3所述的数控控制器,其中,所述第一处理器用于在所述第二处理器的全局内存存储的插值点数量到达预定值时,从所述全局内存读取所述插值点写入自身的主内存。
6.根据权利要求I所述的数控控制器,其中,所述第二处理器进ー步用于机床加工的信号处理和/或运动控制。
7.根据权利要求6所述的数控控制器,其中,所述第二处理器中多个处理子単元用于并行执行快速傅立叶变换FFT。
8.根据权利要求1-7中任一项所述的数控控制器,其中,所述第一处理器为中央处理器CPU,所述第二处理器为图形处理器GPU,所述处理子单元为所述图形处理器中的流处理器。
9.根据权利要求1-7中任一项所述的数控控制器,其中,所述曲线规范包括以下至少一个參数曲线阶数、控制点集合、权重因子集合、节点矢量。
10.一种数控机床,所述数控机床包括如权利要求1-9任一项所述的数控控制器,以及与所述数控控制器连接的ー个或多个伺服驱动器,每个伺服驱动器连接ー个机床加工轴; 所述机床加工轴用于根据所述数控控制器得到的运动轨迹对零件的表面进行加工。
11.根据权利要求10所述的数控机床,其中,所述数控控制器与所述伺服驱动器采用以太网或串行总线连接。
全文摘要
本发明公开了一种数控控制器以及数控机床。其中,数控控制器包括第一处理器,用于接收零件的曲线规范,生成相应的任务规范,将所述曲线规范和任务规范发送给第二处理器;所述第二处理器包括多个处理子单元,多个处理子单元中的至少两个处理子单元用于根据所述任务规范将分配给自身处理的曲线规范转换为机床加工的运动轨迹。本发明提供的设备能够更好地满足机床加工的要求。
文档编号G05B19/18GK102692892SQ201110069468
公开日2012年9月26日 申请日期2011年3月22日 优先权日2011年3月22日
发明者介鸣, 潘莉, 龙飞 申请人:西门子公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1