具有自动安全重定位的机床系统控制的制作方法

文档序号:6326771阅读:204来源:国知局
专利名称:具有自动安全重定位的机床系统控制的制作方法
技术领域
本发明涉及机床控制软件。更具体地,本发明的领域是促进自动刀具重定位的机床控制软件的领域。
背景技术


发明内容
机床系统通常执行包括如下指令的零件程序,该指令由机床控制软件来解译,以产生用于控制机床系统的操作的命令。指令中的一些指令导致将由机床系统用来成形或者切割零件的刀具从一个位置重定位到另一个位置。当然,需要在不与机床系统的零件或部件进行不期望的接触的情况下将刀具从一个位置移动至另一个位置。因此,零件程序员指定零件程序中用于从第一位置撤回或退回刀具(以在刀具与零件之间设置距离)、将刀具重定位到第二位置上方的位置以及将刀具切入至第二位置的中间动作。 如根据上述内容应当清楚的,用于传统机床控制软件的零件程序的程序员需要指定零件程序中的中间重定位动作,同时记住将要执行该零件程序的机床系统的限制。所有机床系统都具有“工作空间”,工作空间是刀具可以在其中移动的三维体积。零件程序中的重定位动作需要考虑可以在工作空间中移动刀具的最大程度、零件在工作空间中的位置以及正在被重定位的刀具的尺寸(例如,长度),以避免机床控制软件产生超过工作空间的限制(“机器限制”)或者使刀具与机床系统的零件或部件进行不期望的接触的运动命令。如果在编写零件程序时没有考虑到这些限制,或者如果零件程序由具有与程序员原先预料的物理特性不同的物理特性的机床系统来执行,则可能发生零件或机床系统的损坏,或者可能终止零件程序的执行,因为否则会超过机器限制。这样,机床系统操作员需要修改零件程序指令,以避免这种错误。总之,因为传统机床控制软件需要由零件程序来提供重定位动作,所以需要针对具体机器配置或“最坏情况”机器配置来编写零件程序指令,以避免非有意的后果和/或错误。

发明内容
在本发明的示例性实施例中,提供了一种用于机床系统的运动控制系统,该运动控制系统自动确定将刀具从在零件程序中指定的第一位置重定位至在该零件程序中指定的第二位置同时维持与零件的安全距离并且同时使机器限制错误最小化所需的动作。该运动控制系统的设计的一个结果是零件程序可以用不依赖于机器的方式来编写并且由使用本公开的运动控制系统的各种机床系统中的任意机床系统执行。在本公开的示例中,提供了一种用于将机床系统的三维工作空间内的刀具从当前位置自动重定位到目标位置的方法。该方法包括步骤(A)通过根据需要调整退回向量以使得退回向量对应于刀具在保持处于机床系统的工作空间内的情况下朝着退回平面的移动,基于退回向量计算刀具从当前位置至退回平面中的退回位置的至少一个退回动作;(B)通过根据需要调整作为切入向量的反向量的运动向量以使得运动向量对应于刀具在保持处于机床系统的工作空间内的情况下朝着退回平面的移动,基于运动向量计算刀具从目标位置至退回平面中的切入位置的至少一个切入动作;以及(C)将刀具从当前位置移动至退回位置以及从切入位置移动至目标位置。在本公开的另一示例性实施例中,提供了一种用于将机床系统的刀具从起始位置自动重定位至目标位置的方法。该方法包括步骤(A)执行重定向序列,其中,将刀具从起始位置移动至重定向位置,刀具在重定向位置具有对应于目标位置的取向;(B)执行退回序列,包括步骤确定沿退回向量将刀具从重定向位置退回至退回平面中的退回位置是否会超出机床系统的轴限制,如果沿退回向量退回所述刀具会超出轴限制,则剪切退回向量的对应于被超出的轴限制的方向分量,并且计算用于将刀具移动至退回位置的新退回向量,存储刀具从重定向位置至退回位置的退回动作;(C)执行切入序列,包括步骤确定沿作为切入向量的反向量的运动向量将刀具从目标位置退回至退回平面 中的切入位置是否会超出机床系统的轴限制,如果沿运动向量退回刀具会超出轴限制,则剪切运动向量的对应于被超出的轴限制的方向分量,并且计算用于将刀具移动至切入位置的新运动向量,存储刀具从切入位置至目标位置的切入动作;(D)执行退回动作;以及(E)执行切入动作。在本公开的又一示例性实施例中,提供了一种用于将机床系统的刀具从当前位置自动重定位至目标位置的方法。该方法包括步骤(A)计算退回序列,包括步骤确定沿退回向量将刀具从当前位置退回至退回平面中的退回位置是否会超出机床系统的任何轴限制,调整退回向量以避免超出任何轴限制,存储用于将刀具从当前位置重定位至退回位置的退回动作序列中的至少一个动作;(B)计算切入序列,包括步骤确定沿作为切入向量的反向量的运动向量将刀具从目标位置退回至退回平面中的切入位置是否会超出机床系统的任何轴限制,调整运动向量以避免超出任何轴限制,按倒序存储用于将刀具从目标位置重定位至切入位置的切入动作序列中的至少一个动作;(D)执行退回动作序列;以及(E)执行切入动作序列。在本公开的再一示例性实施例中,提供了一种用于使用至少一个刀具来加工零件的装置。该装置包括框架;可移动支承件,其由框架支承并且能够相对于框架移动,可移动支承件支承零件;机床主轴,其由框架支承并且能够相对于零件移动,机床主轴适合于耦接至至少一个刀具,能够通过驱动系统使可移动支承件和机床主轴在由多个轴限制限定的三维工作空间内移动;以及运动控制系统,其操作耦接至机床主轴和可移动支承件,运动控制系统包括控制器,控制器控制机床主轴和可移动支承件的移动,以将刀具从第一位置自动重定位至第二位置,这两个位置均由零件程序不依赖于多个轴限制地指定;其中,控制器通过下述操作重定位刀具通过根据需要调整退回向量以使得退回向量对应于刀具在保持处于三维工作空间内的情况下朝着退回平面的移动,基于退回向量计算刀具从第一位置至退回平面中的退回位置的至少一个退回动作;通过根据需要调整作为切入向量的反向量的运动向量以使得运动向量对应于刀具在保持处于三维工作空间内的情况下朝着退回平面的移动,基于运动向量计算刀具从第二位置至退回平面中的切入位置的至少一个切入动作;以及向驱动系统输出运动命令,由此将刀具从第一位值移动到退回位置以及从切入为止移动至第二位置。在本公开的再一示例性实施例中,提供了一种用于多轴机床系统的运动控制系统,该多轴机床系统具有支承件、王轴和驱动系统,该驱动系统稱接至支承件和王轴以调整刀具的相对于零件的位置。运动控制系统包括1/0模块,包括包含多个命令的零件程序和限定机床系统的三维工作空间的机器配置信息;以及软件控制器,其从I/o模块接收机器配置信息,处理零件程序命令,以及将导致刀具与零件的相对运动的运动命令输出给驱动系统;其中,软件控制器包括用于将刀具在自动保持处于三维工作空间内的情况下从第一位置重定位至第二位置的算法,这两个位置均由零件程序在不参考机器配置信息的情况下指定,算法包括步骤通过将运动命令输出给驱动系统来在对应于第二位置的取向的相对于零件的取向上将刀具从第一位置移动至三维工作空间的限制处的重定向位置,来重定位刀具,通过根据需要调整当前退回向量以将刀具保持在三维工作空间内来基于当前退回向量计算刀具从重定向位置至退回平面中的退回位置的退回动作,通过根据需要调整作为切入向量的反向量的当前运动向量以将刀具保持在三维工作空间内来基于当前运动向量计算刀具从第二位置至退回平面中的切入位置的至少一个切入动作,以及将运动命令输出给驱动系统,从而将刀具从第一位置移动至退回位置以及从切入位置移动至第二位置。在本公开的又一示例性实施例中,提供了一种用于多轴机床系统的运动控制系统,该多轴机床系统被配置成用使可移动刀具成形零件。运动控制系统包括1/0模块,其包括限定机床系统的三维工作空间的三个轴限制的机器配置信息以及在不参考零件在工作空间内的位置、刀具的尺寸或限制的情况下指定刀具的第一位置和刀具的第二位置的零 件程序;以及软件控制器,被配置成(A)内部地处理动作以确定刀具是否能够被安全地从第一位置重定位至第二位置,安全重定位被定义为将刀具保持在距零件的最小间隙之上并且在限制内,(B)如果能够安全地对刀具重定位,则将经内部地处理的动作输出给机床系统以引起刀具从第一位置至第二位置的移动,以及(C)如果不能安全地对刀具重定位,则将错误输出给机床系统。


通过参考结合附图给出的实施例的以下描述,本公开的上述和其他特征和目的及其实现方式会变得更加清楚,并且公开本身也会变得更好理解,附图中图I图解示例性机床系统;图2是图I的示例性机床系统的运动控制系统的框图;图3是刀具的相对于零件的起始位置和目标位置处的概念图;图4是起始位置处的图3的刀具的概念图;图5至图7是重定向序列期间各个位置处的图3的刀具的概念图;图8是退回序列的最终位置处的图3的刀具的概念图;图9是切入序列期间计算的位置处的图3的刀具的概念图;图10是切入序列执行之后目标位置处的图3的刀具的概念图;图11是图解切入序列期间刀具的各个位置的概念图;图12是相对于零件示出检查平面的刀具概念图;图13是图解不成功的切入序列期间刀具的各个位置的概念图;图14是图解退回序列和切入序列期间刀具的各个位置的概念图;图15是用于由图I的机床系统来执行的示例性零件程序的一部分;图15A是使用图15的零件程序加工的零件的立体图;图16是根据本公开的一个实施例的程序命令处理(“PCP”)算法的框图;图17是根据本公开的一个实施例的自动安全重定位(“ASR”)算法的框图18是根据本公开的一个实施例的移动至目标(“MTT”)算法的框图;图19是根据本公开的一个实施例的计算退回序列(“CRS”)算法的框图;图20是根据本公开的一个实施例的剪切向量运动(“CVM”)算法的框图;图21是图解图20的CVM算法的操作的概念图;图22是图解切入序列期间刀具的各个位置的概念图。在若干图中,相应的附图标记指示相应的零件。
具体实施例方式本文中公开的实施例不是意在为详尽的或者将本公开限制于以下详细描述中公开的精确形式。相反,选择并描述实施例,使得本领域其他技术人员可以利用其教导。参考图1,示出了具有运动控制系统200的机床系统100。机床系统100包括耦接有第一鞍座104的框架102。鞍座104能够沿着方向106和108平移。第二鞍座110由第一鞍座104支承。鞍座110能够相对于鞍座104沿着方向112和114平移。平台120由鞍座110支承并且能够沿着方向122和124相对于鞍座110旋转。在一个实施例中,鞍座104、鞍座110和平台120中的每个能够通过驱动系统来移动,该驱动系统包括由运动控制系统200控制的多个电机。此外,第三鞍座126由框架102支承。鞍座126能够沿着方向128和130平移。鞍座126支承可旋转构件132。可旋转构件132能够相对于鞍座126沿着方向134和136旋转。在一个实施例中,鞍座126和可旋转构件132中的每个都能够通过由运动控制系统200控制的电机来移动。刀具主轴138由旋转构件132支承。各个刀具141可以耦接至刀具主轴138以用机床系统100执行各种操作。示例性刀具包括端铣刀、钻、丝锥、铰刀和其他合适的刀具。刀具主轴138能够围绕刀具主轴的轴139旋转以给刀具141输入旋转。在一个实施例中,多个刀具 141 被存储在刀具架 144 中。在题为“System and Method for Tool Use Management”的美国临时申请第11/890,384号中提供了与刀具架144有关的其他细节,其公开内容通过引用明确地合并到本文中。鞍座104沿着方向106或方向108的运动被示出为y轴150上的运动。鞍座110沿着方向112或方向114的运动被示出为X轴152上的运动。鞍座126沿着方向128或者方向130的运动被示出为z轴154上的运动。可旋转构件132沿着方向134或者方向136的旋转被示出为B轴156上的运动。平台120沿着方向122或者方向124的旋转被示出为C轴158上的运动。机床系统100是示例性5轴机器。在一个实施例中,B轴156和C轴158之一用A轴替换,其中,平台120能够绕X轴152和y轴150之一倾斜。通过机床系统100的5轴中的一个或更多个轴的运动,可以相对于待加工的由平台120支承的零件160 (参见图3)来定位刀具141。零件160可以紧固至平台120,以维持零件160的在平台120上的位置。通过运动控制系统200来控制机床系统100的5轴中的一个或更多个轴的运动。参考图2,运动控制系统200包括软件控制器202以及一个或更多个I/O模块206。应当理 解,本文中公开的方法可以由软件控制器202来执行并且可以以与软件控制器202相关联的方式来存储。
软件控制器202接收机器配置208和输入数据,如零件程序204,并且然后提供输出数据,如用于机床系统100的各个轴150、152、154、156和158的位置数据。在图2所示的示例中,软件控制器202从一个或更多个I/O模块206接收零件程序204和机器配置208。机器配置208提供机床系统100的各个轴150、152、154、156和158之间的依赖性以及每个轴的属性。例如,当鞍座104沿着方向106移动时,C轴158的位置变化。因此,C轴158的位置取决于鞍座104的位置。不例性I/O模块206包括输入构件,如用户接口、触摸式显不器、键盘、鼠标、一个或更多个按钮或开关、CD驱动器、软盘驱动器、至限定网络的接口(无线或有线)和用于给软件控制器202和输出构件提供信息的其他合适的设备,如显示器(如触摸屏)、灯、打印机和用于呈现信息的其他合适的设备。
在一个实施例中,通过对话式操作输入零件程序204,从而在编程会话期间通过用户接口(如触摸屏和键盘)来向用户呈现一个或更多个屏幕。在被受让给当前申请的受让人的美国专利第5,453,933号中公开了对话编程的示例性方法,该专利申请的公开内容通过引用明确地合并到本文中。在编程会话期间,用户可以对被加工的零件的期望几何形状进行编程,并且指定一个或更多个属性。在一个示例中,用户通过创建编码块来指定被加工的零件的期望几何形状,编码块中的每个编码块指定刀具和其他加工参数。接着,软件控制器202产生用于将刀具切割成期望几何形状的刀具轨迹。在另一个实施例中,通过NC操作模式来提供零件程序204,从而将NC程序加载到软件控制器202中。零件程序通常用标准G&M代码语言或者这种语言的基于国际标准组织
(ISO)或电子工业协会(EIA) RS-274-D的相近衍生物来表达,使用由诸如G、M、F的字母标识的代码。代码限定加工操作的序列,以控制零件的制造中的运动。软件控制器202对代码进行转换,以提供机床系统100的各个轴150、152、154、156和158的所在位置。与零件程序204的起源无关,零件程序204直接或者基于用于产生零件的操作来限定被加工的零件的期望的几何形状。但是,零件程序204可以不指定鞍座104、110和126的位置,也不指定平台120和可旋转构件132的旋转。这些位置由软件控制器202来确定。在一个实施例中,软件控制器202是面向对象式软件部件。在一个实施例中,软件控制器202基于1995年9月26日授权的题为“CNC CONTROL SYSTEM”的美国专利第5,453,933号中描述的软件,该专利的公开内容通过引用明确地合并到本文中。图3至图14是图解根据本公开的一个实施例的与自动安全重定位相关联的各个运动阶段的简化的二维图。应当理解,这些二维图仅用于简化描述。当然,本公开的算法设计用于提供多轴机床的三维自动安全重定位。下面,参考如图3至图14中描绘的刀具141的位置,以下描述将解释自动安全重定位的概念的各个阶段,包括刀具重定向序列、退回序列以及切入序列。稍后,在本说明书中描述由控制器202在重定向、退回和切入序列期间使用的各种算法。现在,参考图3,示出了安装至主轴138的刀具141 (下文中统称为刀具141)和的起始位置400和目标位置402 二者。在示出的示例中,刀具141的起始位置400可以视为被定向在第一坐标系404中,第一坐标系404具有平行于零件160的面406的x轴、与面406共平面的y轴(未示出,但是垂直于图3的平面延伸)以及垂直于面406的z轴。如以下进一步描述的,当刀具141在目标位置402中时,刀具141可以视为被定向在第二坐标系408中,第二坐标系408具有平行于零件160的第二面410的X轴、与面410共平面的y轴(未示出,但是垂直于图3的平面延伸)以及垂直于面410的z轴。图3还描绘了刀具141能够在控制器202的控制下在具体机床系统100的三维工作空间内移动的限制(即,“机器限制”)。这些机器限制被作为机器配置208 (图2)的一部分提供给控制器202。更具体地,线412表示刀具141在机床系统100内可能达到的最上位置(即,“正Z限制”),线414表示刀具141在机床系统100内可能达到的最下位置(即,“负Z限制”),而线416、418分别表示刀具141的最右和最左位置(“正X限制”和“负X限制”)。如上所述,对于沿着机床系统100的Y轴的移动,存在类似的限制,图中没有示出Y限制,以简化描述。所有这些机器限制限定机床系统100的三维工作空间。最后,图3还描绘了退回平面420,在本示例中退回平面420平行于第二坐标系408中的xy平面。如以下进一步描述的,退回平面420限定在机床系统100执行向零件106的切入运动之前刀具141距零件160的期望安全距离。同样如以下描述的,还可以限定间隙或者检查平面,以产生刀具141距零件160的次级期望安全距离,并且,如果在给定机床系统100的机器限制的情况下不能实现退回平面420,则使用间隙或检查平面。 图3至图10示出了在刀具141的从起始位置400至目标位置402的自动安全重定位期间刀具141在控制器202的控制下的移动的序列。在本示例中,在退回序列和切入序列期间沿着刀具向量428 (图4和图7)重定位和移动刀具141,刀具向量428沿着刀具141的旋转中心从刀具端部422朝着主轴138 (未示出)纵向延伸。如以下要描述的,控制刀具141的移动的算法的操作是相同的,其与刀具141的相对于第一坐标系404和第二坐标系408的取向无关。在图4中,刀具141处于起始位置400。基于机器配置208和零件程序204,控制器202知道刀具端部422的位置和刀具141的相对于第一坐标系404的取向。控制器202还知道第一坐标系404与第二坐标系408之间的关系以及退回平面的位置。最后,控制器知道当刀具141在目标位置402处时的位置和取向。不知道的是,在不通过不希望的机械接触而损坏机床系统100或零件160的任何部分并且不由于超过机器限制而产生错误的情况下将刀具141从起始位置400重定位和重定向至目标位置402的各种机器轴动作(即,“重定位动作”)。因为在本示例中,刀具141在起始位置400中的取向不同于刀具141在目标位置402中的取向,所以控制器202需要产生动作命令,以重定向刀具141 (即,执行重定向序列)。在本示例中,刀具141的重定向是通过旋转刀具141 (例如,通过致动可旋转构件132和鞍座126)来实现的。但是,应当理解,也可以通过移动零件160如通过致动平台120、鞍座110和/或鞍座104,或者通过移动刀具141和零件160 二者来相对于零件160重定向刀具141。控制器202计算刀具141的初始动作序列,以在刀具141与零件160之间具有最大间隙的情况下实现刀具141的重定向。在本示例中,控制器202使刀具141沿着刀具向量423退回,直到刀具141达到机器限制为止。在本示例中,如图5所示,刀具141移动通过向量424,并且达到机床系统100的正X限制416。接着,控制器202使刀具141沿着正X限制416的方向移动,从而在刀具141与零件160之间产生另外的间隙。在本示例中,控制器202使刀具141在机床坐标系429的z轴的正方向上沿着正X限制416移动通过向量426 (图6),直到刀具141达到正Z限制412为止。
当刀具141处于图6所示的位置中时,其被退回成在机床系统100的机器限制所允许的范围内距零件160尽可能的远。接着,控制器202确定将刀具141的取向从图6所示的定向改变至图7所示的取向所需的动作,图7所示的取向对应于刀具141在目标位置402(图3)时的最终取向。为了确定对刀具141进行重定向所需的动作,控制器202计算当处于图6的取向时刀具端部422在第二坐标系408中的当前取向以及当处于图7的取向时刀具端部422在第二坐标系408中的期望取向。在这些计算完成之后,刀具141移动至图7所示的经重定向的位置。从此之后,本示例中的刀具141的移动是相对于第二坐标系408的移动。应当理解,仅在刀具141在起始位置400的取向与刀具141在目标位置402的取向不同的情况下才执行重定向序列。如果刀具141在相对于零件160的两个位置具有相同的取向,则不需要重定向,并且,不按以上参照图5和图6描述的方式来将141退回至机器限制。相反,控制器202跳过重定向序列,并且执行以下描述的退回序列的计算和移动。继续本示例,在将刀具141重定向至图7的取向之后,控制器202将刀具端部422 在第二坐标系408中的当前位置与退回平面420的位置进行比较,并且确定刀具端部422位于退回位置平面420 “下方”。换言之,未将刀具端部422定位至沿着第二坐标系408的z轴的足够的正距离处(即,远离零件160的面410)以处于退回平面420中。因此,控制器202最初尝试将刀具141沿着相对于机械坐标系429限定的刀具向量428从图7的位置朝着退回平面420移动。将沿着刀具向量428的移动考虑为理想的运动,因为其为将刀具端部422定位至退回平面420的最直接路径。然而,当在图7的位置时,刀具141处于机床系统100的正Z限制412处,并且不能沿着第二坐标系408的z轴移动得更远。如以下进一步描述的,控制器202分析刀具向量428,并且确定沿着刀具向量428的z分量的移动是不可能的,因为刀具141已经处于正Z限制412处。接着,控制器202从退回向量(此处,退回向量是刀具向量428)减去z分量,由此计算朝着退回平面420的新退回方向。控制器202比较在新退回方向上的所需移动,以确定在此移动期间是否会遇到其他机器限制。如以下将进一步描述的,如果会遇到其他机器限制,则减去退回向量的适当分量,并且计算另一新退回方向。在最坏情况下,控制器202因为将遇到机器限制而减去刀具向量428的所有方向分量,并且确定不能将刀具端部422安全地移动至退回平面420。这种情况可以使控制器202产生错误,并且中断零件程序204的操作。然而,如下文中进一步描述的,控制器202可以可替代地确定当不可能移动至退回平面420内时,是否可以移动至检查平面(未示出)内或者检查平面上方。换言之,如果在机器限制的界限内不能实现移动至退回平面420内,则控制器202将按以上参考退回平面420描述的方式来计算刀具端部422至检查平面内或者检查平面上方的运动,以查看当将刀具141维持在机器限制内时该运动是否是可能的。如果是可能的,则控制器202将产生移动命令,以将刀具端部422定位在检查平面中。然而,在本示例中,在刀具端部422至退回平面420中的移动的计算期间,仅遇到 正Z限制412。在如上文所述减去刀具向量428的相对于机器坐标系429限定的z分量之后,新退回方向是沿着朝着负X限制418的负X方向。控制器202确定刀具141能够沿负X方向移动,直到刀具端部422达到退回平面420,而未遇到另一机器限制。因此,在确定是否可以成功地达成下文描述的切入序列之后,控制器202将使刀具141沿着向量430从图7的位置至图8的位置移动,其中在图8的位置中刀具端部422处于退回平面420中。退回序列完成,并且现在描述用于执行切入序列的计算和移动。参考图9和图10,刀具141被示出为处于其在本示例中的切入序列的执行期间将采取的两个位置中。更具体地,在图10中刀具141被示出为处于目标位置402,在图9中其被示出为处于位置432,刀具141将从位置432向零件160切入。如下文中将更详细地描述的,在退回序列期间由控制器202执行以确定刀具141从图7的位置至图8的位置的安全退回移动的算法也由控制器202在切入序列期间用以计算刀具141从图9的位置至图10的位置的切入移动。然而,控制器202计算将刀具141从图10的目标位置402安全地移动至图9的位置432所需的动作序列,并且按倒序将这些动作存储在移动移动列表中,使得当在移动列表中的动作由机床系统100来执行时,刀具141被从位置432切入到目标位置402。更具体地,正如控制器202通过确定沿着刀具向量428的移动是否会超过机器限制并且按需要减去刀具向量的方向分量以避免超过机器限制来将刀具141从图7的位置退回至退回平面420 —样,控制器202通过确定是否会遇到机器限制并且减去切入向量434的反向量的方向分量以避免超过这些限制来计算将刀具141从图10的目标位置402退回(在 本示例中,沿着作为图10所示的切入向量434的反向量的运动向量)至图9的位置432的方式。在本示例中,在切入序列期间未遇到机器限制。在控制器202将刀具141从退回序列的最后位置(图8)移动至位置432 (沿着向量436)之后,简单地直接沿着切入向量434将刀具141从图9的位置432移动至目标位置402。因此,刀具141从起始位置400至目标位置402的自动安全重定位完成。现在参照图11,将进一步描述控制器202使用检查平面的方式。通常,图11描绘了切入序列,其中,刀具141遇到机器限制(与以上参照图9和图10描述的示例不同)。在图11中,刀具141的位置438对应于图8中的刀具141的位置。更具体地,刀具141被示出为处于在将刀具端部422定位至退回平面420中的退回序列之后的位置438中。如上所述,接着,控制器202计算用于切入序列的移动(即,从目标位置440至刀具141处于退回平面420中时的位置的移动),其是按倒序执行的。在此计算期间,控制器202确定刀具141能够沿着对应于切入向量442的反向量的运动向量移动,直到刀具141遇到负X限制418(即,同11中用虚线示出的位置444)为止。接着,控制器202确定当在位置444中时,刀具141不处于退回平面420中。因此,控制器202确定刀具141是否至少在检查平面446中或者检查平面446上方,这在这种情况下是成立的。因而,将位置444视为刀具141在切入序列期间可以经过的安全位置。尽管如此,控制器202继续尝试将刀具141移动至退回平面420。由于已经遇到负X限制418,所以控制器202减去向量442的反向量的负x分量,并且计算沿着负X限制418的新运动向量448。运动向量448允许将刀具141重定位至退回平面420中的位置450处。因此,当执行切入序列(即,按倒序执行所计算的运动命令)时,控制器202会使刀具141从位置438至位置450 (即,从退回序列的最后位置至切入序列的第一位置的过渡移动)、从位置450至位置444以及最终从位置444至目标位置440的移动。虽然图11中的检查平面446被示出为在当刀具141处于目标位置440时刀具端部442所在的平面452上方,但是,在控制器202的一个实施例中,默认检查平面446是平面452。换言之,当刀具端部422不能被安全地定位至退回平面420上的切入点时,本实施例中的控制器202的默认操作为确定刀具端部422是否能够被安全地移动至对应于目标位置440的位置。然而,在某些情况下,希望限定与默认检查平面452相比而言与零件160间隔得更远的检查平面。例如,在图12的情况下,其中,当在目标位置440时,刀具端部422被定位至形成在零件160中的凹穴456的底部454附近(即,刀具141延伸至形成在零件160的表面410中的凹部内),希望限定与默认检查平面452相比而言与底部454间隔得更远的检查平面458,以避免重定位操作期间刀具141与零件160之间的干扰。图13描绘了不能在机器限制的界限内将刀具141定位至所限定的检查平面460上方的切入点处的情况。虽然控制器202能够计算在退回序列期间将刀具端部422维持在检查平面460上方的移动(即,用于将适当定向的刀具141重定位至刀具端部422在退回平面462中的位置的移动),但是切入序列期间的安全移动(即,沿着切入向量464的反向量至检查平面460中或者检查平面460上方的位置的移动)是不可能的。这示范了根据本公开的控制器202的一个实施例的一个特性。具体地,在这样的实施例中,控制器202需要 能够计算沿着切入向量464的反向量(其可以是或者可以不是刀具向量)从目标位置466至检查平面中或者检查平面上方的位置而不遇到机器限制的移动(其是按倒序执行的)。应当理解,并不计算刀具141在机床系统100的正z方向上从位置465至检查平面460上方的位置的动作,控制器202将产生该动作不安全的错误,并且中断零件程序204的操作。现在,参考图14,示出了更一般化的自动安全重定位。更具体地,图14描绘了即使退回向量468、切入向量470、刀具向量472和法向向量474都不同而仍然使用本公开的算法重定位刀具141的情况。如根据以下描述清楚的是,本公开的算法被充分地一般化,以产生重定向、退回以及切入序列,而与退回向量468、切入向量470或刀具向量472在第二坐标系408中的取向无关。控制器202仅尝试沿着所提供的任何退回向量将刀具端部422移动至退回平面或检查平面上的切入点而不违反机器限制,接着,尝试沿着所提供的任何切入向量将刀具端部422移动至目标位置(通过相反地计算移动)而不违反机器限制。如所示出的,刀具141的位置476对应于图7中的刀具141的经重定向的位置。然而,此处,并非使用默认退回向量(其为当刀具141处于起始位置时的刀具向量),控制器202使用已经由用户按缓冲器关G码(S卩,G08. 2,其使用如下所述的向量的分别对应于X、y和z方向余弦的参数A、B和C)关于第一坐标系404限定的退回向量468。并非如上所述基于法向向量474产生退回序列,控制器202尝试将刀具141沿着退回向量468安全地移动至刀具端部422处于退回平面478中的位置。在使用退回向量468计算退回序列之前,控制器202确定退回向量468对于将刀具端部422移动至退回平面478内是否有效。通过将退回向量468投影至法向向量474来以数学方式执行此确定。如果投影为正(如果退回向量468指向退回平面478上方的半球中的任意点,其将为正),则退回向量468有效(即,沿着退回向量468移动刀具141将最终使刀具端部422位于退回平面478中,除非机器限制遇到阻止该移动)。因此,控制器202计算刀具141沿着退回向量468的动作,其立即导致遇到机床系统100的正Z限制412。然后控制器202减去退回向量468的z分量,并且计算新退回向量480,该新退回向量480对应于刀具141在机床系统100的负x方向上沿着正Z限制412的移动。控制器202计算出通过沿着新退回向量480将刀具141移动至刀具端部422被定位在退回平面478内的位置482不会遇到其他机器限制。在此时,退回序列完成。
仍然如图14所示,并非使用为当刀具141处于目标位置484时的刀具向量的反向量的默认切入向量,控制器202使用已经由用户按照缓冲器关G码(S卩,G08. 2,其使用如下所述的对应于向量的x、y和z方向余弦的参数U、V和W)限定的切入向量470。如以上所指出的,本公开的算法不需要按照法向向量474的反向量的切入序列。可以使用任意用户限定切入向量,只要切入向量至退回平面478的法向向量474的投影为负即可。换言之,指向退回平面478下方的半球中的任意切入向量都是有效的。图14的切入向量470满足这个条件。因而,控制器202使用与以上参照退回序列描述的相同的算法根据用户限定的切入向量470计算切入序列。更具体地,按照与参照图9和图10描述的方式类似的方式,控制器202计算将刀具141从目标位置484移动至位置496所需的移动序列,并且假定能够完成移动(即,至少能够将刀具141移动至检查平面(未示出),而不遇到机器限制),使机床系统100按照倒序执行所计算的移动,由此将刀具141沿着切入向量470从位置486切入到目标位置484。当使用用户限定的切入向量470执行这些计算时,控制器202确定从目标位置484沿着切入向量470的反向量至退回平面478的移动是否会导致遇到机器限制。如果是这样,但刀具141至少在检查平面(未示出)上方,则从切入向量470减去适当的运动方向分量,并且依照所得到的运动向量朝着退回平面478移动,除非遇到另外的机器限制,在这种情况下,减去另外的方向分量,并且重复该过程,直到计算出结果为退回平面478上的刀具141位置的运动序列或者因为无法在不超过所有机器限制的情况下达到此位置而产生错误。在所示示例中,没有遇到机器限制。当执行退回序列和切入序列的运动命令时,控制器202使机床系统100将刀具141从位置476移动至位置482 (退回序列的最后位置),然后至位置486,并且最后沿着切入向量470至目标位置484。如以上所指出的,本公开的自动安全重定位算法在使机床系统100执行刀具移动前计算这些移动。这是通过在控制器202确定可以安全重定位刀具141之前缓冲所计算的动作序列并且然后执行经缓冲的动作来实现的。然而,应当理解,计算和缓冲是当零件程序204实际上正在由控制器202执行时在运行时间执行的。因此,零件程序204需要包括指示开始该缓冲的时间和停止该缓冲的时间的命令。图15描绘了具有这些自动安全重定位命令的零件程序的一部分。零件程序204包括块490,块490包括G08. I缓冲器开命令492和G08. 2缓冲器关命令500,G08. I缓冲器开命令492之后是各种机器和运动M和G代码命令。在执行零件程序204之后,当控制器202遇到G08. I缓冲器开命令492时,控制器202执行以下描述的算法,并且内部处理中间命令而不引起刀具141的移动,直到遇到G08. 2缓冲器关命令500为止。如以上所指出的,本公开的算法可以与独立于机器配置208、零件160的设置位置以及刀具141的设置(长度)而产生的零件程序204 —起使用。还应当理解,虽然以下段落描述用于执行本公开的各个功能的多个不同算法,但是本领域技术人员可以使用更多或较少的算法来实现这些功能。实际上,可以将所有算法适当地视为单个算法。将功能分为以下算法的方式主要是为了便于描述本公开的概念。在本示例中,编写图15的零件程序204以如图15A中所描绘的在立方体479的侧面切割两个正方形475、477(具有100X 100X IOOmm的尺寸)。使用下述算法的零件程序 204的执行会导致切割正方形477之后刀具141的安全重定向以及将刀具141安全重定位至用于切割正方形475的机器位置。在准备零件程序204时,程序员不需要考虑重定位序列中的任何序列是否会遇到引起程序终止的机器限制。本公开的算法自动计算重定位序列,并且仅在不能在维持距零件160的安全距离的同时实现重定位的情况下返回错误。如对于本领域技术人员而言清楚的,零件程序204不包括旋转轴特定的命令(例如,可以用于命令A轴的90度旋转的A90命令)。因此,当程序204被加载到具有执行本公开的算法以及在2007年8月3日提交的题为“GENERATION KINEMATICS SYSTEM”的代理人案号为HUR-P198-US-01的美国专利申请S/N 11/833,971 (下文中,“一般化的运动学专利申请”,其公开内容通过引用明确地合并到本文中)中描述的算法的运动控制系统200的5轴机床系统100中并且由该5轴机床系统100来执行时,每个这种机床系统将安全地切割相同的零件,即使其轴配置和工作容积(即,机械轴限制)不同。在没有这些算法的益处的情况下,程序员需要插入安全地重定向以及重定位刀具所需的动作序列。如以上指出的,程序员知道,如果经编程的动作过于保守(即,被设计成在重定位期间维持零件160与刀具141之间的过多距离),则这些动作可能导致诸如超过机器限制的错误。因此,程序员可以对不太保守的动作进行编程,但是导致与零件160或者机床系统100的部件的非意欲的接触,这当然是更不希望的。如下文所述,通过本公开的算 法,使程序员摆脱了将重定位动作插入到零件程序204中的责任,并且程序员甚至可以指定在机器限制之外而不导致错误或刀具碰撞的退回平面。现在,参照图16,描绘程序命令处理(“PCP”)算法502,其由控制器202在处理零件程序204时执行。块504表示在运行时给控制器202的输入,该输入包括零件程序204、初始缓冲器状态506为关以及通知超出限制变量508的初始状态为开。在确立了这些初始状态之后,控制器202开始处理零件程序204的如块510所指示的编程命令。在处理期间,对于PCP算法502,四个主要执行路径是可能的。一个主要的处理模式是正常程序执行,其中,自动安全重定位并不是必要的并且因此不启动。在正常程序执行期间,缓冲器状态506为关,并且变量程序命令既不等于缓冲器开(其在控制器202正处理G08. I缓冲器开命令492时发生),也不等于缓冲器关(其在控制器202正处理G08. 2缓冲器关命令500时发生)。换言之,程序命令并非G08. I缓冲器开命令492或者G08. 2缓冲器关命令500,并且缓冲器状态506为关。如下所述,这些条件的结果是,在正常程序执行期间,在零件程序204中指定的机器位置被输出给机床系统100,以用于运动(即,当在程序执行期间遇到机械轴移动时执行机械轴移动)。更具体地,参考图16,在从零件程序204获得命令(块510)之后,控制器202确定程序命令不等于缓冲器开(块512)。在块514处,控制器202还确定程序命令不等于缓冲器关(并且缓冲器状态506不为开)。接着,在块518处,控制器202确定缓冲器状态506为关(尚未使缓冲器状态506从其为关的初始化状态(块504)改变),并且,继续进行至块526。如以下进一步描述的,在块526处,控制器202使用如在一般化的运动学专利申请中描述的机器的运动学模型来内部计算所需机械轴位置以达到所编程的刀具位置和取向。如果通知超出限制508为开(块527),其针对此执行路径,则在块529中,控制器202检查所计算的机器轴是否在限制之外。如果是这样,则控制器202生成错误(块531),并且终止程序执行。否则,块528的结果为是(即,缓冲器状态506仍然是关),并且在块532处,控制器202将由零件程序204指定的运动命令输出给机床系统100。接着,控制器202返回块510,以开始按上述方式处理零件程序204的下一个命令。因此,除非遇到G08. I缓冲器开命令492或G08. 2缓冲器关命令500,否则控制器202将仅进行通过块512、514和518,以按标准方式处理命令,如果命令导致违反机器限制,则生成错误(块529、531),而如果没有遇到机器限制,则输出命令(块532)。当程序命令等于缓冲器开时(即,在零件程序204中遇到G08. I缓冲器开命令492之后),依照PCP算法502的另一条执行路径。如图16所示,当程序命令等于缓冲器开并且缓冲器状态506为关(如其最初状态)时,控制器202从块512继续进行至块516,在块516处,缓冲器状态506被设置为开。此外,在块516处,通知超出限制508被设置为关,并且存储当前机器位置以用于可能地用作以下描述的算法中的刀具141的起始位置,但是仅在没有缓冲第二组命令的情况下才如此。如本文中所解释的,第二组命令移动机床系统100的轴。在某些情况下,控制器202知道命令的执行内容及其将把轴移动至何处,但是在其他情况下,控制器不知道命令。对于这些命令,控制器202需要将命令发送给逻辑控制器539 (参见图2)(即,与机械部件和物理系统的接口),等待直到逻辑控制器539发信号表示其已经完成命令,然后读取实时机器位置。更具体地,参考图16,控制器202继续进行至块526,在块526处,控制器202使用 如在以上参考的一般化的运动学专利申请中描述的机器运动学模型来内部计算所需的机器轴位置以达到所编程的刀具位置和取向。在块527,控制器202确定通知超出限制508不是开。然后,在块508,控制器202确定缓冲器状态506不为关(其在块516处被设置为开)。因此,控制器202在块530处更新ASR算法540的目标位置(为在块516处存储的当前机器位置),并且在块510处获得零件程序204的下一个命令。在块512处,控制器202确定缓冲器状态506不为关,并且继续进行至块514,在块514处,其确定程序命令不等于缓冲器关。在块518处,控制器202确定缓冲器状态不为关,并且检查当前正处理的命令是第一组命令或者是第二组命令(以下对其进行充分描述)。如果是这样,则控制器202将命令存储在块522所指示的事件缓冲器中。否则,命令被认为是第三组命令,并且在块526处由控制器202内部执行命令。更具体地,控制器202使用如在以上的一般化的运动学专利申请参考文献中描述的运动学模型来内部计算所需的机器轴位置以达到编程的刀具位置和取向。因为通知超出限制508仍然是关,所以控制器从块527传至块528。在块528处确定缓冲器状态506仍然不是关。如果需要,则控制器202再次更新目标位置(块530)。如根据以下描述将变得更清楚的,目标位置为由图17的ASR算法540使用的目标位置(例如,图3的位置402)。控制器202在块510处再次获得零件程序204中的下一个命令,并且继续缓冲第一组和第二组命令、内部执行第三组命令以及更新目标位置的过程。最终,控制器202将在其继续按以上描述的方式处理零件程序204的命令时遇到G08. 2缓冲器关命令500。当其遇到该命令时,块514的结果会为是,并且控制器202前进至块524,在块524处,使缓冲器状态506变为关,将通知超出限制508设置为开,并且调用图17的ASR算法540以开始安全重定位刀具141的过程。以下描述的命令分组为本发明的命令缓冲特征的一部分,其为零件程序204的创建器提供附加的灵活性。如以上所指出的,程序员可以选择任意块来开始命令缓冲(通过G08. I缓冲器开命令492)以及选择任意随后块来结束该缓冲(通过G08. 2缓冲器关命令500)。当缓冲被开启时,以下描述的重定位算法对刀具141的当前位置进行操作。在G08. I缓冲器开命令492与G08. 2缓冲器关命令500之间的由零件程序204命令的所有动作由控制器202内部地执行,并且被允许在机器限制之外,因为当缓冲器状态506为开时,通知超出限制508被设置为关。然而,因为在执行ASR算法540之前使缓冲器状态506返回至关(块524)时,通知超出限制508被设置为开,因此最终目标位置(块530)需要在机器限制内。如果最终目标位置在机器限制之外,则算法将生成错误,并且终止程序的执行。将遇到的所有命令分类为三组。第一组命令包括启动机床系统100上的设备或系统,但是不需要机床系统100的轴的移动的命令。第一组命令的示例为起始托板改变、轴夹紧、冷却剂开/关以及主轴开/关的命令。这些命令在缓冲过程中被缓冲,并且在重定向过程和安全重定位刀具141动作之前执行。第二组命令为按零件程序204的块序列在软件中执行但是直到执行所计算的刀具141动作之前都不在机床系统100上执行的命令。这些命令在执行时产生机器运动并且致动机床系统100的设备或系统。第二组命令的示例包括刀具改变命令和区域改变命令。对于示例刀具改变命令,机床将把轴移动至刀具改变位置,然后逻辑控制器539将刀具库转位至新刀具。接着,逻辑控制器539将主轴138中的刀具141与库中的被转位至交换位置的刀具进行交换,之后,逻辑控制器539对控制器202发信号表示刀具改变完成。如在刀 具改变命令示例中所描述的,第二组命令将执行机床系统100的次级系统(例如,转位刀具库以及将刀具交换至主轴)并且移动机器轴。对于某些第二组命令,在将命令发至逻辑控制器539之前,控制器202将知道命令的执行内容以及其将把轴移动至何处。然而,对于某些其他命令,控制器202不知道该命令;其仅为逻辑控制器539知道,逻辑控制器539为到次级机器部件及物理系统的接口。对于这些命令,控制器202需要将命令发送给逻辑控制器539,等待直到逻辑控制器539完成该命令,接着,读取实时机器位置,因为其并不提早知道命令将执行什么内容及逻辑控制器539将把轴移动至何处。第三组命令也是按零件程序204的块序列在软件中内部执行的。第三组命令为与运动有关的命令,其不启动由逻辑控制器539控制的次级机器设备或系统。示例包括快速及现行内插动作(GO、G1)、弧命令(G02/G03)、变换平面启动/取消、钻孔循环等。通常,控制器202产生由在遇到G08. 2缓冲器关命令500之前在零件程序204中遇到的第二组命令和第三组命令产生的从刀具141的起始位置(即,恰好在G08. I缓冲器开命令492之前的刀具141的当前位置,或在计算与重定向序列和退回及切入序列相关联的刀具141动作之前,在执行了第二组命令之后的机器位置)至最终位置的过渡动作。现在,参考图17的ASR算法540,块542通过初始化若干变量并且计算在退回平面及检查平面上的点的位置来开始重定向序列(注意,通过指定位于平面中的点和垂直于该平面的面的法向方向来充分限定该平面)。如图所示,控制器202将缓冲器状态506初始化为关,并且将通知超出限制508初始化为开。控制器202将来自事件缓冲器的所有第一组事件和第二组事件按照图16的PCP算法502的执行期间被存储的次序输出给逻辑控制器539。通过输出经缓冲的第一组和第二组命令,控制器202使逻辑控制器539执行这些命令,从而产生适当的机器轴运动(对于第二组命令)和/或启动适当的机器系统(对于第一组和第二组命令两者)。然而,应当理解,在输出这些命令的过程中,控制器202评估事件的状态(即,诸如冷却剂系统的机器系统的当前状态)以避免事件的不必要的切换。更具体地,例如,如果在缓冲过程期间(缓冲器状态506为开)命令了若干刀具改变,则在计算与重定向序列和退回及切入序列相关联的动作之前将仅执行最后的刀具调用。控制器202还获得当前机器位置(即,输出的第二组命令的执行之后刀具141的位置)。例如,可能已经在进入图17的块542之后执行第二组刀具改变命令,从而改变刀具141的针对ASR算法540的起始位置。控制器202存储当前机器位置,作为可变当前机器位置。控制器202还获得退回平面和检查平面法向向量,如果没有在G08. 2缓冲器关命令500中指定R参数(如在本文中进一步描述的),则该法向向量默认沿刀具向量。如果在G08. 2缓冲器关命令500中R参数被指定为I (Rl),则控制器202将使退回平面和检查平面法向向量与程序的当前坐标系z轴方向对准。控制器202还获得退回和切入向量,其可以默认地设置或者使用本文中描述的额外参数在G08. 2命令中指定。退回平面和检查平面二者共用同一法向向量,否则,如果不共用同一法向向量,则这两个平面将部分相交,并且检查平面将处于退回平面上方,从而产生错误条件,这一点在以下进一步描述。最后,在块542处,控制器202计算退回平面点和检查平面点。更具体地,控制器 202使用等式I (以下描述)来确定退回平面点的位置,并且使用等式2 (以下描述)来计算检查平面点。等式I :如果通过G08. 2缓冲器关命令500将退回距离L指定为来自零件程序204的输入参数,则退回平面点=目标点+距目标的退回距离*退回方向向量。否则,如果通过G08. 2缓冲器关命令500使用对应于当前坐标系中的x、y和z位置的参数X、Y和Z在零件程序204中明确地指定该点,则退回平面点(X,Y,Z)=零件程序204中指定的点。如果既没有通过G08. 2缓冲器关命令500指定退回距离L,也没有通过G08. 2缓冲器关命令500指定退回平面点(X,Y,Z),则控制器202使用无限大的退回距离L,由此将退回平面设置在退回方向上距目标点无限远距离处。等式2 :如果通过G08. 2缓冲器关命令500将检查平面距离Q指定为来自零件程序204的输入参数,则检查平面点=目标点-距目标的检查平面距离*切入方向向量。否贝U,如果通过G08. 2缓冲器关命令500使用对应于当前坐标系中的x、y和z位置的参数I、J和K在零件程序204中明确地指定该点,则检查平面点=在零件程序204中指定的点(I、J、K)。如果既没有通过G08. 2缓冲器关命令500指定检查平面距离Q,也没有通过G08. 2缓冲器关命令500指定检查平面点(I、J、K),则控制器202使用为零的检查平面距离Q,由此将检查平面设置为包含目标点。在块544处,控制器202基于当前刀具向量和与目标位置相关联的刀具向量来确定是否需要重定向刀具141的旋转轴中的任何旋转轴。如果不需要重定向(即,刀具141已经处于目标取向),则控制器202执行图18的移动至目标(“MTT”)算法550,如块546所指示的。另一方面,如果如在以上参照图5至图7描述的示例中那样需要重定向刀具141,则控制器202执行在块548中标识的步骤。块548的重定向序列的第一步骤对应于以上参照图5的描述,其中,控制器202沿着当前刀具向量退回刀具141,直到刀具141达到机床系统100的限制(例如,正X限制416)。如图6中所描绘的,在刀具141达到机器限制之后,控制器202使刀具141沿着该限制移动,直到刀具141达到机床系统100的正Z限制412 ( “退回至ZO机器”)。以此方式,提供刀具141与零件160之间的最大间隙。接着,控制器202确定将刀具141的取向从当前位置改变至目标位置的取向所需要的动作。刀具141在目标位置的取向由用户例如通过旋转轴位置或者通过指定零件程序204中的刀具向量来指定。接着,控制器202使用如在以上引用的一般化的运动学专利申请中描述的机床系统100的运动学模型来计算所需的机器轴位置以实现编程的刀具位置和取向。接着,控制器202使机床系统100将需要移动以实现所计算的重定向的刀具141的任何旋转轴松开。控制器202输出运动命令以执行轴旋转和重定向刀具141,恢复被松开的轴的夹紧状态,并且更新当前机器位置以反映刀具141的新取向。在块548的步骤完成之后,控制器202执行如块546所指示的图18的MTT算法550。现在,参照图18,块552列出了给MTT算法550的输入,包括刀具141的目标位置、当前机器位置(来自图17的块542)、退回方向(来自图17的块542)、切入方向(其可以在G08. 2缓冲器关命令500中使用参数U、V和W加以指定,但是按默认(即,在未指定U、V和W时),为当刀具141处于目标位置时刀具向量的反向量)、如上所述的平面法线(来自图17的块542)、退回平面点(如使用上述等式I计算)和检查平面点(如使用上述等式2计算)。接着,如块544所表示的,控制器202使用这些输入来执行图19的计算退回序列(“CRS”)算法600。通常,CRS算法600提供计算刀具141的移动使得不超过机器限制(即,以避免生成错误)的功能。以下详细描述该功能。CRS算法600计算刀具141在上述退回序列期间的移动。块556表示由控制器202进行的关于刀具141是否可以被移动至退 回平面或退回平面上方(或至少检查平面)而不超过机器限制中的任何机器限制的确定。如果退回序列不成功,则控制器202使机床系统100显示指示刀具141不能被安全地重定位的错误,如块558所指示的。如果退回序列被成功地计算,则算法550继续进行至块560。在块560中,用于切入序列的在退回平面上的点被设置至用于退回序列所计算的最后位置。因此,如果退回序列没有达到退回平面(但是在检查平面处或检查平面上方),则至目标点上方的位置的动作将在平行于退回平面和检查平面的平面中(如果在计算切入序列时没有遇到机器限制)。接着,在块562处,控制器202开始执行切入序列,在下文中对其进行详细描述。如上文提到的,由控制器202用来计算退回序列中的动作序列的CRS算法600为由控制器202用来计算切入序列中的动作序列的相同算法。这在图18中是明显的,因为在块554处(退回序列)和块562处(切入序列)调用CRS算法600。然而,在切入序列期间计算的动作命令是按与MTT算法550中计算的次序相反的次序存储的。换言之,控制器202确定将刀具141从目标位置重定位至退回平面点所需要的动作,并且接着相反地执行这些动作以将刀具141从退回平面点朝着零件160切入至目标位置。当在切入序列期间执行时,CRS算法600还假定刀具141的终点(即,当相反地执行切入序列动作时,在切入方向上的移动的开始点)为退回平面点。虽然以下描述的退回序列通常尝试将刀具141定位至退回平面点处,但是并非始终是如此。在某些情况下,在退回序列的开始处,刀具141已经处于退回平面处或退回平面“上方”。在这种情况下,不执行CRS算法600,因为刀具141已经在安全位置。或者,在其他情况下,不可能在不超过机器限制的情况下将刀具141移动至退回平面处或退回平面“上方”。CRS算法600可以改为将刀具141移动至退回平面点“下方”的位置,只要该位置至少在检查平面处或检查平面上方即可。因此,可能的是,退回序列结束时的刀具141的位置可以不对应于退回平面点。如上文所指出的,图18的块560通过将退回平面点(即,切入序列的终点,其为切入动作的起始点)设置至退回序列中所计算的最后位置来解决该可能性。换言之,在切入序列期间,CRS算法600将刀具141的最后位置(在退回平面上方、下方或在退回平面处)当作退回平面点。
如果控制器202确定不能在机床系统100的限制内执行切入序列,则块564的结果为在块558处产生错误信息。另一方面,如果切入序列的计算保持在机器限制内,则控制器202输出动作命令,这些动作命令使机床系统100将刀具141经由退回序列和切入序列移动至目标位置,如块566所指示的。控制然后返回至PCP算法502 (图16)的块524,如下文所述。返回图18的块554,对于退回序列,CRS算法600通过将起始点设置为等于当前机器位置并将退回方向设置为等于所输入的退回方向来开始。应当理解,退回方向向量是在ASR算法540的块542处被确立为用户在零件程序204中所指定的,或者,如果没有提供用户指定的向量,则被确立为默认向量(即,刀具141的刀具向量)。实际上,ASR算法540基于退回向量、切入向量、退回平面点、检查平面点和平面法线是否为用户在零件程序204中指定的(如果不是,则如本文中解释地使用默认值)来计算或设置这些项。MTT算法550和CRS算法600仅获得先前确立的(即,用户指定的或者默认的)限定。控制器202还获得平面法线、退回平面点和检查平面点作为输入。控制器202还被初始化,以正向地存储所计算的动作。最后,允许将检查平面下方的动作的变量设置为真,并且,开始图19的CRS算法 600。 现在,参考图19,除了设置以上描述的初始状态并获得输入之外,控制器202设置变量动作序列完成和在检查平面处或检查平面上方等于假,如块602中指示的。在块604处,控制器202确定检查平面(其是用户指定的或者默认定义为当刀具141在目标位置中时刀具端部的位置)是在退回平面处或者是沿着平面法线在退回平面上方。最初,块604的结果为否,并且控制器202在块606处确定动作序列(在这种情况下,退回序列)是否完成。再次,块606最初的结果为否。接着,控制器202在块608处确定当前退回方向是否会朝着退回平面移动刀具141。这是使用算法610实现的。算法610(以下阐明)由控制器202用来计算射线(此处为退回方向向量)沿着射线的方向向量与由平面上的点和法向向量限定的平面的交点以及射线上的点沿着射线的方向向量到由平面上的点和法向向量限定的平面的距离。如果算法610返回0整数,则指示射线平行于该平面(即,射线垂直于平面法向向量),并且不能与该平面在一点处相交。否则,算法610返回交点、从射线点至该平面的带正负号的距离以及射线方向与平面法向向量的点积的正负号(其指示射线的指向是否远离该平面的由法向向量限定的正面)。点积的正负号用于确定退回方向向量是否正朝着退回平面移动。如果dDistanceToPlaneAlongRay (以下示出)的正负号为正,则PtPointOnRay处于平面的相对于平面法线的负侧。负值指示输入位置在输入平面上方,其用于检查当前刀具端部位置是在检查平面或退回平面上方。以下提供算法620的一个实施例。integer ComputeInIersectionOfRayToPlane(PoInt ptPomiOnPlane,
Vector vPlamNormal 5
Point ptPointOnRay,
Vector vRayDirection Point Sc pt!ntersectionPointt double & dDisiToPIamAlongRay)
{
Vector= plPointOnPlane - ptPoiniOnRay fiDistToPlmmAhmgMay 0.寒
pilnferseciimPomi - {0,0,0}
—uWe dDoiPmtii = DotProcIiictf,vPlmeNormal)
double dDtrtProcf . . -- DotProductf vMayBirection, vHaneMfmal)
i{(dDofPmM = = Q)
相交 3 sI 能的._ # a., f f * 法戎。I ; ; }
dOisiTo PlaneJt ImtgRoy -髮,!!!色-
dDoi Ftodl
pifniermctimPoint = piPoinlOnMay dDisiToPlamedImtgMay * vMayDmaim; return SignO((dDotPmiI2)
I假定块608的结果为当前退回方向使刀具141向退回平面前进,则接下来控制器202执行块612的功能。控制器202 (使用算法610)获得从刀具141的当前位置沿着当前退回方向至退回平面和检查平面的带正负号的距离。参考图7中描绘的示例,其中刀具141位于正X限制416和正Z限制412处,并且退回方向沿着刀具向量428,在遇到机器限制(即,正Z限制412)之前,可以沿着退回向量行进的距离为零。块612的第二步骤指示控制器202使用图20的剪切向量运动(“CVM”)算法614(以下对其进行详细描述)剪切退回向量至机器限制。在步骤3和4处,控制器202识别哪些轴被剪切以及剪切后的退回向量的带正负号的长度。在图7的示例中,剪切后的轴为z轴,因为刀具141不能在机床系统100的z方向上沿着刀具向量428移动得更远。现在,参考图20,如块616所指示的,CVM算法614包括各种输入变量。块616中的前三个变量是关于输入的射线,其具有相对于机器坐标系429限定的起始点(RefPt)、方向向量(DirVect)和长度(Length)。而且,使用稍后描述的等式4来使DirVect归一化,并且通过块616中给出的等式计算动作的终点(EndPt)。在块616中输入轴对象,对于每个轴(x,y,z),存在上限和下限。使用分别对应于x、y、z的0、1、2将轴对象索引至具体索弓I。使用分别对应于下限和上限的0或I来索引轴对象的每个轴的轴限制。通常,如果射线沿着射线方向延伸至限制之外,则CVM算法614将射线的长度剪切至机床系统100的轴限制。CVM算法614循环通过每个轴限制,如果射线延伸超过该限制,则剪切射线,并且存储最短的剪切后长度作为最终剪切后长度。CVM算法614在块618中通过从对应于关于机械坐标系429的轴x、y、z的0、1、2 增加i来开始。如果方向向量(DirVect)的i分量为零,则在对应的轴i方向上不存在运动,并且因此算法直接返回至块618以通过增加i来索引至下一个轴方向。如果在块620中DirVect的i分量不为零,则算法继续进行至块622以将EndPt的i分量与轴i的下限比较。如果其小于或等于轴i的下限,则将轴i的ClippedAxis值设置为-I以表示轴被剪切至其下限,该ClippedAxis值稍后在块642中存储在ClippedAxes向量中。继续行进至块630,计算新的(剪切后的)长度(NewLength),并且在块632中,将NewLength与当前长度比较。如果其较小,则算法继续进行至块634,在块634处,针对x、j、z将ClippedAxes重新初始化至零,然后块640更新长度使其等于新的剪切后的长度NewLength。然后,在块642中,控制器202将ClippedAxes向量的分量i设置为n (在块624中,其在这种情况下被设置为-I),指示动作被剪切至轴i的下限。然后,CVM算法614返回块618以索引至下一轴并且重复其自身。然而,如果在块632中发现新的剪切后的长度NewLength不小于当前长度,则算法继续进行至块636,指示NewLength等于长度(Length)(其将总是这种情况,否则算法将已经从块626直接返回至块618,因为EndPt的i分量将已经处于机器限制内)。然后,在块642中,控制器202将ClippedAxes向量的i分量值设置为n (其在这种情况下为_1),指示该动作被剪切至轴i的下限。当EndPt处于轴限制中的一个或更多个时,发生这种情况。这种情况(以否退出块632)的示例为当动作方向穿过轴限制相交的角之一(图21中的动作e)时。如果在块622中,EndPt的i分量比轴i的下限大,则CVM算法614继续进行至块626,在块626处,其检查EndPt的i分量是否比轴i的上限大。如果其相等,则不发生剪切,并且算法返回块618以索引至下一个轴。如果EndPt的i分量大于或等于轴i的上限,则CVM算法614将剪切后的轴值设置为+1,指示运动被剪切至轴i的上限。然后,算法如上所述从块630继续向前至块636或块642。在已经循环经过了所有三个轴x、y、z之后,CVM算法614返回新的剪切后长度和向量ClippedAxes,向量ClippedAxes针对每个轴指示动作未被剪切至轴的限制(O)、被剪切至轴的下限(-1)或者被剪切至上限(+1)。图21图解CVM算法614的功能的示例。在示出的示例中,射线690首先被剪切至正X限制416,并且然后被剪切至Z限制412,从而导致最终的剪切后长度。在执行CVM算法614之前,控制器202确定射线起始点(RefPt)是否在机器限制内,因为CVM算法614将剪切超出限制地起始的射线,诸如射线692(即,CVM算法614是通用的)。返回长度的正负号取决于剪切后的射线是否指向与射线(b,c)相反的方向。算法还返回含有每个轴的{-1,0,+1}中的值的ClippedAxes阵列。值_1指示轴运动被剪切至指定的轴的下限。值0指示该轴方向的轴运动未被剪切。最后,值+1指示该轴方向的轴运动被剪切至上限。对于图21的射线690,ClippedAxes阵列为{+1,0,+1},这指示射线被剪切至正X限制416和正Z限制412,但是未被剪切至Y限制。继续图7和图8中描绘的退回序列的示例,在图19的块650处,控制器202确定剪切后的长度大于或等于零(因为仅退回向量的z分量的正部分已经被剪切)。接着,在块652处,控制器202确定用于存储所计算的刀具位置的方向(即,正序或倒序)。此处 ,由于CRS算法600正执行退回序列,因此存储位置次序是正序的,并且(在块654处)控制器202将刀具141的所计算的位置推至正由CRS算法600建立的动作序列的后部。如果CRS算法600在执行切入序列(即图18的块562),则存储位置次序被设置为逆向,并且(在块656处)控制器202将已经将刀具141的所计算的位置推至动作序列的前部。接着,(在块658处)控制器202确定退回向量的剪切后的长度是否大于或等于至退回平面的距离,这指示刀具在退回平面处或退回平面上方。在本示例中,剪切后的长度不大于或等于至退回平面的距离。因此,接着,控制器202(在块660处)确定退回向量的剪切后的长度是否大于或等于至检查平面的距离,这指示刀具在检查平面处或检查平面上方。如果剪切后的长度不大于或等于至检查平面的距离,则处控制器202在块662处确定允许检查平面下方的动作的变量是否为真。由于在针对退回序列的CRS算法600的初始化之后允许检查平面下方的动作的变量被设置为真(在块554处),因此控制器202从块662前进至块666。允许检查平面下方的动作的变量为计算退回序列时所使用(即,设置为真)的选项。如果第一退回动作并未高于检查平面(因为遇到机器限制),则允许该动作,并且继续按本文中所描述的方式的针对机器限制剪切退回方向向量和处理退回动作直到达到至少在检查平面处或检查平面上方的刀具位置。对于以下描述的切入序列,允许检查平面下方的动作的变量设置为假,并且所有计算的动作需要高于检查平面。例如,如果第一动作(从目标点退回,其为恰好在切入至目标点之前的位置动作)不高于检查平面,则按以下描述的方式生成错误。换言之,在切入至目标位置前的恰好在目标位置上方的刀具141的位置需要总是在检查平面处或检查平面上方。否则,认为其是不安全的,并且本公开的算法生成错误以终止程序执行。在块666处,控制器202通过将退回向量的对应于剪切后的轴的分量设置为零来计算新退回方向向量。如果剪切后的长度大于或等于至检查平面的距离(块660),则控制器202也将已达到块666,但仅在块670处设置在检查平面处或检查平面上方的变量等于真之后才如此。在这种情况下,所计算的动作大于至检查平面的距离(块660)。因此,如果在进一步处理之后,退回向量的所有分量已被剪切(即,不能在维持处于机器限制内的同时实现朝着退回平面的进一步的处理-退回向量长度为零),同时在检查平面处或检查平面上方标志被设置为真,则CRS算法600仍然返回成功(块678),即使刀具141没有达到退回平面也是如此。更具体地,在块666之后,控制器202将在块672确定退回向量为零并且前进至块674。在块674处,控制器检查在检查平面处或检查平面上方的状态。如果状态为真,则将动作序列设置为完成(块676),其导致返回成功(块606、678)。在该示例中,新退回向量不再为刀具向量。新退回向量(在设置z分量等于零之后)处于负X方向。在块672处,控制器202使用等式3计算新退回向量的长度并且确定其是否为非零。等式3 :向量 v{x, y, z}Length(V) = ^x2 + y2 +z2如果新退回方向向量长度为零,则在块674处,如果在检查平面处或检查平面上方为真,则动作序列处理完成,并且算法在块678处将成功返回给MTT算法550的块556 (图18)。否则,算法在块668处将失败返回给MTT算法550的块556 (图18),因为刀具端部没 有达到检查平面。返回图19的块672,当新退回方向向量的长度不为零时,控制器202在块680处使用等式4来使退回方向向量归一化并返回块606。等式 4 :归一化向量(V) = ~X -y -~—I
[Length(V) Length(V) Length(V)J当已经剪切了退回向量中的至少一个但并非所有方向分量时,这种情况将会发生,并且退回序列没有完成。在本示例中,已经剪切了原始退回向量(即,刀具向量428)的z分量,但是控制器202尚未确定可以将刀具141安全地移动至退回平面。因为退回序列没有完成,所以在块606的确定将导致控制器202在块608处使用算法610 (以上描述)来确定当前退回方向是否会导致刀具141从其当前位置移动向退回平面。此处,刀具141在负X方向沿着Z限制418(即,新退回向量)的移动构成朝着退回平面420的移动。因此,控制器202继续进行至块612。在块612处,控制器202按以上描述的方式使用算法610和CVM算法614来计算沿着新退回向量至退回和检查平面的带正负号的距离,以便按照必要的程度来剪切退回向量以避免超过机器限制,并且计算剪切后的退回向量的长度。在本示例中,可以在不超越任何极限限制的情况下将刀具141移动至图8的位置。因此,新退回向量没有被剪切,并且保持正长度(即,达到退回平面所需要的长度)。因此,在块650处,控制器202确定退回向量的剪切后的长度大于零,并且在动作列表的末尾存储沿正Z限制418在负X方向上的对应动作(参见块652和654)。当控制器202达到块658时,其将确定退回向量的剪切后的长度等于至退回平面的距离。因此,控制器202将动作序列完成变量设置为真(块682)并且返回块606。由于退回序列完成,控制器202在块678处将退回动作序列返回MTT算法550 (图18)。在MTT算法550的块556处,控制器202确定可以安全地执行退回序列,并且前进至块560,在块560处,将退回平面点限定为在退回序列中的最后动作处刀具端部422相对于机器坐标系429的位置。如上所述,退回平面点的该重新限定照顾到了刀具141位于原始退回平面上方或原始退回平面下方但是在检查平面上方的情况。通过重新限定用于切入序列的退回平面,从退回列表中的最后位置至切入序列列表中的第一位置的动作将平行于退回和检查平面的xy平面(如果在切入序列中没有遇到机器限制)。在本示例中,由于退回序列中刀具141的最后位置处于退回平面420中,因此,块560处的操作没有效果。应当注意,如果在退回序列期间控制器202在块608处确定当前退回方向不朝着退回平面移动刀具141,则控制器202前进至块684以检查变量在检查平面处或检查平面上方是否为真。最初,将在检查平面处或检查平面上方的变量设置为假(块602)。然而,如果在如上所述的剪切退回方向向量的轴的过程期间,轴的经剪切的长度为零(块650),并且小于至退回平面的距离(块658),但是大于或等于至检查平面的距离(块660),则在块670处将在检查平面处或检查平面上方变量设置为真。在该示例中,如果在块666处计算的新退回方向向量具有非零长度(块672),则如上所述在块680处使其归一化。然后,因为移动序列尚未完成,所以控制器202使用算法610 (块608)来确定退回方向是否会使刀具141朝着退回平面前进。继续本示例,在退回方向将不导致朝着退回平面的运动的情况下(诸如以下参照图22描述的示例),控制器202前进至块684并且确定在检查平面处或检查平面上方变量为真。因此,虽然刀具141不能被退回至退回平面上方,但是已经计算了至少使刀具141安全定位在检查平面上方的动作。成功的退回序列被指示在块678处并且 被返回图18的块556。参照图18继续本示例,在块560之后,控制器202在块562处开始切入序列。如上文提到的,以上参考退回序列描述的CRS算法600也用于切入序列。然而,在块562中改变某些参数的定义。更具体地,将起始点设置为目标位置,将退回方向设置为切入方向(其可以由用户限定,或者为当刀具141在目标位置时刀具向量的默认值)的反向量,将存储动作的次序设置为倒序,并且将用于允许在检查平面下方的动作的变量设置为假。如上文参照图13描述的,在切入序列中,不允许会导致刀具141定位在检查平面下方的动作。第一计算动作为从目标位置至目标位置上方的位置的动作。如果该第一计算动作不将刀具141定位在检查平面中或上方,则切入序列失败。对输入参数的这些修改允许在切入序列期间使用CRS算法600而没有对该算法的修改。相反,CRS算法600使用反向切入方向计算将刀具141从目标位置退回至退回平面(或至少检查平面)所需的动作并且按照倒序存储这些动作。当执行这些动作时,结果为刀具141在切入方向上从退回平面(或至少检查平面)至目标位置的切入移动。当在块562处设置了切入参数并且开始了 CRS算法600之后,在图19的块604处,控制器202确定检查平面是否沿着平面法向在检查平面上方。块604保证退回平面总是沿着平面的法向向量在检查平面之上(即,块604的结果需要总为否)。若非如此,则不能产生动作(至退回平面的动作将总不能达到检查平面),并且控制器202将前进至块668以返回失败,由此终止执行。如果块604的结果为否,则控制器202然后在块606处确定动作序列(此处为切入序列)是否完成(即,标志是否已经设置为真)。再次,最初结果为否。接着,控制器202使用算法610确定当前退回方向是否会使刀具141朝着退回平面前进(块608)。使用图9和图10的示例,在起始位置作为目标位置且退回方向作为反方向切入方向的情况下,算法610的结果为是。接着,在块612处,控制器202计算沿着退回向量(即,反向切入方向)至退回和检查平面的带正负号的距离。在本示例中,可以沿着反向切入方向将刀具141从目标位置(图10)移动至退回平面(图9),而没有遇到机器限制。因此,在块612中将不剪切退回向量。接着,控制器202根据算法610计算剪切后的退回向量的带正负号的长度。在本示例中,因为退回向量没有被剪切,所以退回向量的长度等于至退回平面的距离。在块650处,控制器202确定退回向量的长度大于零,并且前进至块652。因为在图18的块562中存储位置次序变量被设置为反向,所以在块656处将从目标点至退回平面的动作存储在动作序列的前部。接着,在块658处,控制器202确定退回长度等于至退回平面的距离。因此,控制器202将动作序列完成变量设置为真(块682)并且返回块606。由于动作序列完成,控制器202在块678处将动作序列(此处,由单一动作组成)和切入序列成功的指示返回给MTT 算法 550 (图 18)。如上所述,图11描绘了在切入序列期间发生剪切的情况。以下为被执行以反映图11中描绘的移动的切入序列的描述。在图18的块562和图19的块602处的初始化之后,控制器202继续进行至块604,在块604中,确定检查平面446并未沿着法向向量(对应于第二坐标系408的z轴)在退回平面420上方。因为动作序列没有完成(块606),所以控制器202使用算法610来计算当前退回方向是否使刀具141朝着退回平面420前进。如图11中所描绘的,向量442的反向量将使刀具141朝着退回平面420前进。因此,在图19的 块612处,控制器202计算沿着退回方向至退回平面420和检查平面446的距离(使用算法610)。控制器202还(使用CVM算法614)计算在可以将刀具141移动至退回平面420之前将遇到机器限制(即,负X限制418)。因此,CVM算法614将导致对当前退回向量的负X分离的剪切。然而,经剪切的退回向量的长度将大于零,因为可以将刀具141从目标位置440 (当执行时,按逆向)移动至位置444 (图11中的虚线所示)。因此,块650的结果为是,并且将动作存储(块656)在动作列表的前部。在块658处,控制器202确定剪切后的退回向量不大于或等于至退回平面420的距离(即,不能使用当前退回向量将刀具141移动至退回平面420)。然而,在块660处,控制器202确定剪切后的退回向量至少大于至检查平面446的距离(即,在图11中,在位置444 (虚线)中的刀具141在检查平面446上方)。因此,在块670处,将在检查平面处或检查平面上方变量设置为真。在块666处,控制器202通过设置当前退回向量的X分离等于零来计算新退回向量。此处,新退回向量为图11中所示的向量448的反向量。因为新退回向量长度不为零(块672),所以在块680处使用等式4对其进行归一化,并且控制器202在块606处确定动作序列是否完成(其为否)。控制器202接着在块608处确定新退回向量将使刀具141朝着退回平面420前进。然后控制器202确定(块612)沿着当前退回向量 至退回平面420的距离以及进一步的剪切是否必要。如图11所示,可以在没有遇到机器限制的情况下将刀具141从位置444移动至位置450。因此,在块650处,控制器202确定当前退回向量(其没有经过剪切)的剪切后的长度不为零,并且在块656处将该动作推至动作列表的前部。在块658处,控制器202确定退回向量的剪切后的长度等于至退回平面420的距离,并且在块682处将动作序列完成变量设置为真。在块606之后,将成功切入序列的计算结果返回(块678)给MTT算法550 (块564),并且按照以上描述的方式执行动作。图22描绘了成功切入序列的示例,其中,刀具141控制器202确定剪切之后新退回向量将不使刀具141朝着退回平面420前进,但是仍然在图19的块678处返回成功,因为可以将刀具141移动至检查平面446处或其上方。更具体地,当在块604处确定检查平面446并非沿着平面法线在退回平面420上方并且切入序列未完成(块606)之后,控制器202确定当前退回方向是否会使刀具141朝着退回平面420前进。最初,当刀具141处于目标位置(图22中未示出)中时,块608的结果为是(S卩,反向切入向量443的方向使刀具141朝着退回平面420前进)。因此,控制器202执行以上描述的CRS算法600的步骤以将向量443剪切至图22中所示的长度,并且计算新运动向量447。在控制器202返回块606并且确定动作序列没有完成之后,控制器202使用算法610 (以上所述)来确定运动向量447不使刀具141朝着退回平面420前进。因为运动向量447仅具有z分量(在本示例中,其平行于退回平面420),所以沿着运动向量447的移动并非必要。因此,控制器前进至块684,在块684处,确定刀具141 (在位置445)在检查平面446处或在其上方。因此,控制器202将成功切入序列返回(块678)给图18的MTT算法550。现在,参考图13,以下为不成功的切入序列的描述。在本示例中,在初始化(图18的块562和图19的块602)之后,确定检查平面460不在退回平面462上方(块606),并且确定动作序列没有完成(块606),控制器202使用算法610 (块608)来确定当前退回向量(向量464的反向量)是否会使刀具141朝着退回平面462前进。因为退回向量将使刀具141朝着退回平面462前进,所以控制器202前进至块612以确定至退回平面462和检 查平面460的距离,并且(使用图20的CVM算法614)确定在将刀具141移动至退回平面462时是否会遇到机器限制。如图13所示,遇到负X限制418。因此,将当前退回向量剪切至图13所示的长度。因为剪切后的长度不为零,所以将图13中所描绘的动作存储在动作列表的前部(图19的块650、652和656)。当控制器202达到块658时,其确定退回向量的剪切后的长度不大于或等于至退回平面462的距离。在块660处,控制器202还确定剪切后的长度不大于或等于至检查平面460的距离。因为在切入序列的初始化(图18的块562)时将用于允许检查平面下方的动作的变量设置为假,所以块662的结果为否,并且控制器202报告不成功的切入序列(块668),其生成错误(图18的块564和558)并且终止程序执行。返回图9和图10的示例,当在图18的块566处计算了成功的切入序列之后,控制器202执行退回和切入动作序列,并且返回图16的块524。如上所解释的,在遇到零件程序204中的G08. 2缓冲器关命令500同时变量缓冲器状态506被设置为开(当在PCP算法502的处理期间遇到G08. I缓冲器开命令492时,其在块516处发生)之后,控制器202达到块524。在达到块524之后,控制器202将缓冲器状态506设置为关,将通知超出限制506设置为开,并且开始执行图17的ASR算法540。在这个过程中,控制器202执行如参考图17描述的刀具141的重定向,然后执行图18的MTT算法550。图18的MTT算法550的执行涉及执行图19的CRS算法600 (连同图20的CVM算法614)两次,一次针对退回序列而一次针对切入序列。在返回PCP算法502 (图16)的块524之后,控制器202达到块526,在块526中,控制器202继续命令的正常处理(即,缓冲器状态被设置为关,在块532处将运动命令输出给机床系统100)。这完成了刀具141的自动安全重定位。在已经描述了用于自动安全重定位的各种算法的操作之后,以下为对零件程序204以及缓冲命令块以根据本公开的原理进行处理的方式的更详细的描述。返回图15的零件程序204和图15A的立方体479,当控制器202处理G08. I缓冲器开命令492时,变量程序命令等于缓冲器开(图16的PCP算法502的块512),其使控制器202按照以上参照图16论述的方式开始缓冲命令。图15的行N2上的命令为第2组(指定刀具141),在PCP算法502的块522处将该命令推至事件缓冲器。接着,在行N3处,控制器202遇到第3组命令,其相对于图15A的坐标系481限定与从立方体479剪切正方形477相关联的变换平面的坐标系。在PCP算法502的块526处,内部地执行这些命令。控制器202接着在行N4处缓冲第I组命令,其仅指定主轴138的速度、其旋转方向和冷却剂系统的启动。行N5包括第3组命令,其用于限定在准备剪切正方形477时刀具141的端部在行N3中限定的变换平面中的位置和取向。在行N6处遇到第一 G08. 2缓冲器关命令500,其使变量程序命令转变至缓冲器关。如PCP算法502的块514处所示,当程序命令等于缓冲器关并且缓冲器状态等于开(其在零件程序204的本执行阶段等于开)时,控制器202继续进行至块524以开始执行ASR算法540和用于计算刀具141从其紧接在G08. I变换器开命令492之前的位置至行N5中指定的位置的安全重定位的其他相关联的算法。如以上参照ASR算法540的块542所描述的,在限定重定位序列的过程中使用各种参数。G08. 2缓冲器关命令500可以用于指定如程序员所选择的这些参数中的一些或全部。例如,其后没有跟随参数说明的G08. 2缓冲器关命令500使控制器202使用这些参 数的默认值。更具体地,默认退回方向为沿着当前坐标系中的目标位置的刀具向量{0,0,1}。默认切入方向为目标位置的刀具向量的反向量{0,0,-I}。默认平面法线为沿着切入方向向量的反向量{0,0,1}。退回平面沿着退回方向距该目标点的默认距离(“L”)为无限大。当计算退回序列时,这使得控制器202将刀具141的移动剪切至机器限制。最后,检查平面沿着反向切入方向距目标点的默认距离(“Q”)为零,这指示检查平面穿过目标点{0,0,5}。G08. 2缓冲器关命令500的较高等级的具体性示例为在零件程序204的行N18处所示的命令“G08.2 L95 Q45”。控制器202将使用如上所述的退回方向、切入方向和平面法线的默认值。然而,退回平面位置和检查平面位置已经指定,因此将不使用默认值。更具体地,参数“L95”对控制器202指示沿着退回平面穿过的平面法线{0,0,1}距目标点{0,0,5}的增加距离为95mm,并且因此穿过相对于在零件程序204的行N15处指定的变换平面的点{0,0,100}o类似地,参数“Q45”对控制器202指示沿着检查平面穿过的屏幕法线{0,0,1}距目标点{0,0,5}的增加距离为45mm,并且因此穿过相对于在零件程序204的行N15处指定的变换平面的点{0,0,50}。由于在零件程序204的行N18处的G08. 2缓冲器关命令500没有包括参数R1,因此控制器202使用默认平面法线方向,其为切入方向向量的反向量(此处为{0,0,1})。在零件程序204的行N6处,使用充分限定的G08. 2缓冲器关命令500。对于行N6处的命令,参数“AO. B0. Cl ”相对于当前坐标系(在本示例中,其为在零件程序204中的行N3处指定的变换平面)指定退回方向向量。参数“U0.V0.W-1”相对于当前坐标系指定切入方向向量。参数“R1”将平面法线向量指定为沿着当前坐标系的z方向。通过相对于当前坐标系(在本示例中,在行N3中指定的变换平面)限定位于退回平面中的点(“X0.Y0. Z100”)来指定退回平面。类似地,并不指定如上所解释的具有距目标点的增加距离的检查平面,本示例中的检查平面由相对于当前坐标系的位于检查平面中的点(“10. J0.K50”)来限定。在重定位刀具141之后,控制器202通过执行行N7至N12处的命令(其使刀具141在立方体479中切割出正方形477、撤销启动主轴138以及关闭冷却剂系统)而继续零件程序204的执行。在行N13处,控制器遇到G69命令,其取消当前变换平面。控制器202在零件程序204的行N14处再次遇到G08. I缓冲器开命令492。在PCP算法502的块524处缓冲器状态506已经被设置为关并且程序命令等于开的情况下,控制器202再次开始缓冲第I组和第2组命令并且执行第3组命令的过程,直到遇到另一 G08. 2缓冲器关命令500。在行N15处,另一集合的第3组命令限定为用于在正方形475的切割期间控制刀具141的移动的新变换平面坐标系。与行N15处的第3组命令相同,行N16处的命令指定刀具141在新变换平面中的位置和取向。行N17处的命令为第I组命令,其指定主轴138的方向并且启动冷却剂系统。在行N18处,控制器遇到另一 G08. 2缓冲器关命令500,其使用如上所述距目标点的增加距离来指定退回平面和检查平面。这再次使控制器202执行ASR算法540以将刀具141从其在从立方体479 (图15A)切割了正方形477之后的最后位置重定位至用于切割正方形475的开始位置。在刀具141的安全重定位之后,控制器202执行行N19至N28处的命令,其引起正方形475的切割,关闭主轴138和冷却剂系统,将刀具141退回至机器限制,重设变换平面和结束零件程序204。如对于本领域技术人员而言可以是清楚的,在以上示例中,退回序列和切入序列都不产生刀具141从图8所示的位置到退回平面中的图9的位置432的动作的计算。该动作仅为从退回动作序列的最后位置(即,图8)至切入序列的第一位置(即,图9)的过渡动作。换言之,当机床系统100执行由图18的算法550产生的动作(即,紧接在G08. I缓冲器开命令492前刀具141的位置与G08. 2缓冲器关命令500后刀具141的位置之间的动作)时,刀具141被从中间位置移动至下一个位置。这包括从退回序列的最终位置至切入序列的第一位置的动作。虽然本公开已经集中于使用自动安全重定位概念来在零件程序的正常执行期间安全地重定位刀具,但是存在其他用途。例如,这些概念还适用于增强机床系统的恢复重新启动功能。在某些情况下,希望在不同于第一命令块的恢复命令块中开始零件程序的执行(例如,在总共10,000个命令块中的块2000处)。并非简单地将刀具移动至恢复块中指定的第一位置以及从该处执行零件程序,以上描述的概念允许用户在零件程序的开始插入缓冲器开命令以及在恢复块处插入缓冲器关命令。控制器然后内部地处理所有介于其间的命令和机器状态,并且仅输出从恢复块往后的对于零件程序的适当操作所需要的这些命令。在另一实施例中,控制器202自动地在第一程序块之前内部地插入G08. I缓冲器开命令并且紧接在恢复重新启动块之前内部地插入G08. 2,由此自动调用ASR命令缓冲算法。
虽然已经将本发明描述为具有示例性设计,但是可以在本发明的精神和范围内进一步修改本发明。因此,本申请意在涵盖本发明的使用其一般原理的任何变化、用途或修改。此外,本申请意在涵盖属于本发明相关的技术中的已知或通常实践的与本发明的偏离。
权利要求
1.一种用于将机床系统的三维工作空间内的刀具从当前位置自动重定位至目标位置的方法,所述方法包括步骤 (A)通过根据需要调整退回向量以使得所述退回向量对应于所述刀具在保持处于所述机床系统的所述工作空间内的情况下朝着退回平面的移动,基于所述退回向量计算所述刀具从所述当前位置至所述退回平面中的退回位置的至少一个退回动作; (B)通过根据需要调整作为切入向量的反向量的运动向量以使得所述运动向量对应于所述刀具在保持处于所述机床系统的所述工作空间内的情况下朝着所述退回平面的移动,基于所述运动向量计算所述刀具从所述目标位置至所述退回平面中的切入位置的至少一个切入动作;以及 (C)将所述刀具从所述当前位置移动至所述退回位置以及从所述切入位置移动至所述目标位置。
2.根据权利要求I所述的方法,其中,所述机床系统包括五轴机床。
3.根据权利要求I所述的方法,其中,所述退回平面平行于对应于所述目标位置的坐标系的xy平面。
4.根据权利要求I所述的方法,其中,所述退回平面限定在将所述刀具从所述切入位置向所述目标位置移动之前所述刀具距零件的期望安全距离。
5.根据权利要求4所述的方法,其中,计算至少一个退回动作的步骤还包括步骤当沿所述退回向量的移动不会导致所述刀具在保持处于所述机床系统的所述工作空间内的情况下被重定位至所述退回平面中的所述退回位置时,确定沿所述退回向量的移动是否会导致将所述刀具重定位到检查平面中或检查平面上方的退回位置。
6.根据权利要求5所述的方法,其中,计算至少一个切入动作的步骤还包括步骤当沿所述运动向量的移动不会导致所述刀具在保持处于所述机床系统的所述工作空间内的情况下被重定位至所述退回平面中的所述切入位置时,确定沿所述运动向量的移动是否会导致将所述刀具重定位到检查平面中的切入位置。
7.根据权利要求5所述的方法,其中,所述检查平面限定在将所述刀具从所述切入位置向所述目标位置移动之前所述刀具距所述零件的次级期望安全距离。
8.根据权利要求5所述的方法,其中,除非由所述机床系统的用户另外指定,否则所述检查平面对应于当所述刀具处于所述目标位置时所述刀具的端部占据的平面。
9.根据权利要求6所述的方法,其中,所述计算至少一个切入动作的步骤还包括步骤如果沿所述运动向量的移动不会导致所述刀具被重定位至所述检查平面中或所述检查平面上方的切入位置,则生成错误信息。
10.根据权利要求I所述的方法,其中,用于所述退回向量和所述切入向量二者的默认向量对应于沿所述刀具的旋转中心从所述刀具的端部纵向延伸的刀具向量。
11.根据权利要求10所述的方法,其中,用于所述切入向量的所述默认向量为当所述刀具处于所述目标位置时的所述刀具向量。
12.根据权利要求I所述的方法,其中,所述切入向量是在由所述机床系统执行的零件程序中的缓冲器关命令中相对于对应于所述目标位置的坐标系指定的。
13.根据权利要求I所述的方法,还包括将所述刀具从起始位置重定位至所述当前位置的步骤。
14.根据权利要求13所述的方法,其中,重定位所述刀具的步骤包括步骤计算初始动作序列以在所述当前位置处对所述刀具进行重定向,其中所述刀具与零件之间具有最大间隙。
15.根据权利要求14所述的方法,其中,计算初始动作序列的步骤包括步骤计算所述刀具沿刀具向量到机器限制的动作,所述机器限制在一个方向上限定所述三维工作空间的外边界。
16.根据权利要求15所述的方法,其中,所述计算初始动作序列的步骤还包括步骤计算所述刀具沿所述机器限制到第二机器限制的动作。
17.根据权利要求13所述的方法,其中,重定位所述刀具的步骤包括步骤计算所述刀具的与对应于所述目标位置的坐标系中的所述起始位置相对应的第一取向;计算所述刀具的对应于所述坐标系中的所述当前位置的第二取向;以及将所述刀具从所述第一取向重定向至所述第二取向。
18.根据权利要求I所述的方法,其中,所述计算步骤使用公共算法来调整所述退回向量以及调整所述运动向量。
19.根据权利要求18所述的方法,其中,在计算至少一个切入动作的步骤期间,给所述公共算法的输入包括作为起始位置的所述目标位置、用于存储所述至少一个切入动作的倒序、以及禁止检查平面下方的动作的指示。
20.根据权利要求I所述的方法,其中,所述退回向量是在由所述机床系统执行的零件程序中的缓冲器关命令中相对于第一坐标系指定的,所述第一坐标系与对应于所述目标位置的第二坐标系不同。
21.根据权利要求I所述的方法,其中,计算至少一个退回动作的步骤包括步骤确定所述退回向量对于将所述刀具移动至所述退回位置是否有效。
22.根据权利要求21所述的方法,其中,所述确定步骤包括步骤将所述退回向量数学投影至法向向量并且确定所述投影是否为正。
23.根据权利要求I所述的方法,其中,所述至少一个退回动作和所述至少一个切入动作被存储在缓冲器中,直到确定能够将所述刀具从所述当前位置安全地移动至所述目标位置为止,所述移动步骤包括步骤执行所存储的至少一个退回动作和所存储的至少一个切入动作。
24.根据权利要求I所述的方法,其中,计算至少一个退回动作的步骤包括步骤 将退回平面点计算为下列项之和对应于所述目标位置的目标点;以及所述退回向量的方向与距所述目标位置的退回平面距离的乘积。
25.根据权利要求5所述的方法,其中,计算至少一个退回动作的步骤包括步骤 将检查平面点计算为下列项之差对应于所述目标位置的目标点;以及所述切入向量的反向量的方向与距所述目标位置的检查平面距离的乘积。
26.一种用于自动地将机床系统的刀具从起始位置重定位至目标位置的方法,所述方法包括步骤 (A)执行重定向序列,其中,将所述刀具从所述起始位置移动至重定向位置,其中所述刀具具有对应于所述目标位置的取向; (B)执行退回序列,包括步骤确定沿退回向量将所述刀具从所述重定向位置退回至退回平面中的退回位置是否会超出所述机床系统的轴限制, 如果沿所述退回向量退回所述刀具会超出所述轴限制,则剪切所述退回向量的对应于被超出的轴限制的方向分量,并且计算用于将所述刀具移动至所述退回位置的新退回向量, 存储所述刀具从所述重定向位置至所述退回位置的退回动作; (C)执行切入序列,包括步骤 确定沿作为切入向量的反向量的运动向量将所述刀具从所述目标位置退回至所述退回平面中的切入位置是否会超出所述机床系统的轴限制, 如果沿所述运动向量退回所述刀具会超出所述轴限制,则剪切所述运动向量的对应于被超出的轴限制的方向分量,并且计算用于将所述刀具移动至所述切入位置的新运动向量, 存储所述刀具从所述切入位置至所述目标位置的切入动作; (D)执行所述退回动作;以及 (E)执行所述切入动作。
27.一种用于自动地将机床系统的刀具从当前位置重定位至目标位置的方法,所述方法包括步骤 (A)计算退回序列,包括步骤 确定沿退回向量将所述刀具从所述当前位置退回至退回平面中的退回位置是否会超出所述机床系统的任何轴限制, 调整所述退回向量以避免超出任何轴限制, 存储用于将所述刀具从所述当前位置重定位至所述退回位置的退回动作序列中的至少一个动作; (B)计算切入序列,包括步骤 确定沿作为切入向量的反向量的运动向量将所述刀具从所述目标位置退回至所述退回平面中的切入位置是否会超出所述机床系统的任何轴限制, 调整所述运动向量以避免超出任何轴限制, 按倒序存储用于将所述刀具从所述目标位置重定位至所述切入位置的切入动作序列中的至少一个动作; (D)执行所述退回动作序列;以及 (E)执行所述切入动作序列。
28.一种用于用至少一个刀具来加工零件的装置,所述装置包括 框架; 可移动支承件,其由所述框架支承并且能够相对于所述框架移动,所述可移动支承件支承所述零件; 机床主轴,其由所述框架支承并且能够相对于所述零件移动,所述机床主轴适合于耦接至所述至少一个刀具,能够通过驱动系统使所述可移动支承件和所述机床主轴在由多个轴限制限定的三维工作空间内移动;以及 运动控制系统,其操作耦接至所述机床主轴和所述可移动支承件,所述运动控制系统包括控制器,所述控制器控制所述机床主轴和所述可移动支承件的移动,以将所述刀具从第一位置自动重定位至第二位置,这两个位置均由零件程序与所述多个轴限制无关地加以指定; 其中,所述控制器通过下述操作重定位所述刀具 通过根据需要调整退回向量以使得所述退回向量对应于所述刀具在保持处于所述三维工作空间内的情况下朝着退回平面的移动,基于所述退回向量计算所述刀具从所述第一位置至所述退回平面中的退回位置的至少一个退回动作; 通过根据需要调整作为切入向量的反向量的运动向量以使得所述运动向量对应于所述刀具在保持处于所述三维工作空间内的情况下朝着所述退回平面的移动,基于所述运动向量计算所述刀具从所述第二位置至所述退回平面中的切入位置的至少一个切入动作;以及 向所述驱动系统输出运动命令,由此将所述刀具从所述第一位值移动到所述退回位置以及从所述切入位置移动至所述第二位置。
29.根据权利要求28所述的装置,其中,所述退回平面平行于对应于所述目标位置的坐标系的xy平面。
30.根据权利要求28所述的装置,其中,所述退回平面限定在将所述刀具从所述切入位置向所述第二位置移动之前所述刀具距所述零件的期望安全距离。
31.根据权利要求30所述的装置,其中,当沿所述退回向量的移动不会导致所述刀具在保持处于所述三维工作空间内的情况下被重定位至所述退回平面中的所述退回位置时,所述控制器还确定沿所述退回向量的移动是否会导致将所述刀具重定位在检查平面中的退回位置。
32.根据权利要求31所述的装置,其中,当沿所述运动向量的移动不会导致所述刀具在保持处于所述三维工作空间内的情况下被重定位至所述退回平面中的所述切入位置时,所述控制器还确定沿所述运动向量的移动是否会导致将所述刀具重定位在检查平面中的切入位置。
33.根据权利要求31所述的装置,其中,所述检查平面限定在将所述刀具从所述切入位置向所述第二位置移动之前所述刀具距所述零件的次级期望安全距离。
34.根据权利要求31所述的装置,其中,所述检查平面的默认定义为当所述刀具处于所 述第二位置时所述刀具的端部占据的平面。
35.根据权利要求28所述的装置,其中,用于所述退回向量和所述切入向量的所述反向量二者的默认向量对应于沿所述刀具的旋转中心从所述刀具的端部朝着所述机床主轴纵向延伸的刀具向量。
36.根据权利要求35所述的装置,其中,所述控制器被配置成当所述刀具向量、所述退回向量、所述切入向量和平面法线方向都相互不同时自动重定位所述刀具。
37.根据权利要求28所述的装置,其中,所述控制器还将所述刀具从起始位置重定位至所述第一位置。
38.根据权利要求37所述的装置,其中,所述控制器还计算初始动作序列以在所述第一位置处对所述刀具进行重新定向,其中在所述刀具与所述零件之间具有最大间隙。
39.根据权利要求38所述的装置,其中,所述初始动作序列包括所述刀具沿刀具向量至轴限制的动作以及所述刀具沿所述轴限制至第二轴限制的动作。
40.根据权利要求37所述的装置,其中,所述控制器还计算所述刀具的与对应于所述第二位置的坐标系中的所述起始位置相对应的第一取向;计算所述刀具的对应于所述坐标系中的所述第一位置的第二取向;以及将所述刀具从所述第一取向重定向至所述第二取向。
41.根据权利要求28所述的装置,其中,在计算所述至少一个退回动作之前,所述控制器还确定所述退回向量对于将所述刀具移动到所述退回位置是否有效。
42.根据权利要求41所述的装置,其中,如果所述退回向量到法向向量的数学投影为正,则所述控制器确定所述退回向量有效。
43.根据权利要求28所述的装置,其中,所述控制器将所述至少一个退回动作和所述至少一个切入动作存储在缓冲器中,直到所述控制器确定能够将所述刀具从所述第一位置安全地移动至所述第二位置为止。
44.根据权利要求28所述的装置,其中,所述控制器通过减去所述退回向量的对应于在所述至少一个退回动作的所述计算期间所遇到的轴限制的方向分量来调整所述退回向量,以限定用于朝着所述退回平面移动所述刀具的新退回向量。
45.根据权利要求44所述的装置,其中,所述控制器通过减去所述运动向量的对应于在所述至少一个切入动作的所述计算期间所遇到的轴限制的方向分量来调整所述运动向量,以限定用于朝着所述退回平面移动所述刀具的新运动向量。
46.根据权利要求28所述的装置,其中,所述控制器内部地执行缓冲器开命令与缓冲器关命令之间在所述零件程序中指定的所有动作。
47.一种用于多轴机床系统的运动控制系统,所述多轴机床系统具有支承件、主轴和耦接至所述支承件和所述主轴以用于调整刀具相对于零件的位置的驱动系统,所述运动控制系统包括 I/O模块,包括包含多个命令的零件程序和限定所述机床系统的三维工作空间的机器配置信息;以及 软件控制器,其从所述I/O模块接收所述机器配置信息,处理所述零件程序命令,以及将导致所述刀具与所述零件的相对运动的运动命令输出给所述驱动系统; 其中,所述软件控制器包括用于将所述刀具在自动保持处于所述三维工作空间内的情况下从第一位置重定位至第二位置的算法,这两个位置均由所述零件程序在不参考所述机器配置信息的情况下指定,所述算法包括步骤 通过将运动命令输出给所述驱动系统以在对应于所述第二位置的取向的相对于所述零件的取向上将所述刀具从所述第一位置移动至所述三维工作空间的限制处的重定向位置,来重定位所述刀具, 通过根据需要调整当前退回向量以将所述刀具保持在所述三维工作空间内,来基于所述当前退回向量计算所述刀具从所述重定向位置至退回平面中的退回位置的退回动作, 通过根据需要调整作为切入向量的反向量的当前运动向量以将所述刀具保持在所述三维工作空间内,来基于所述当前运动向量计算所述刀具从所述第二位置至所述退回平面中的切入位置的至少一个切入动作,以及 将运动命令输出给所述驱动系统,从而将所述刀具从所述第一位置移动至所述退回位置以及从所述切入位置移动至所述第二位置。
48.根据权利要求47所述的系统,其中,所述算法还包括步骤确定所述当前退回向量是否具有会将所述刀具从所述重定向位置朝着退回平面中的退回位置移动的方向分量。
49.根据权利要求47所述的系统,其中,所述退回平面限定在将所述刀具从所述切入位置向所述第二位置移动之前所述刀具距零件的期望安全距离。
50.根据权利要求47所述的系统,其中,计算退回动作的步骤还包括步骤当沿所述当前退回向量的移动不会导致所述刀具在保持处于所述三维工作空间内的情况下被重定位在所述退回平面中的所述退回位置时,确定沿所述当前退回向量的移动是否会导致将所述刀具重定位到检查平面中的退回位置。
51.根据权利要求50所述的系统,其中,所述计算至少一个切入动作的步骤还包括步骤当沿所述当前运动向量的移动不会导致所述刀具在保持处于所述三维工作空间内的情况下被重定位在所述退回平面中的所述切入位置时,确定沿所述当前运动向量的移动是否会导致将所述刀具重定位到检查平面中的切入位置。
52.根据权利要求50所述的系统,其中,所述检查平面限定在将所述刀具从所述切入位置向所述目标位置移动之前所述刀具距所述零件的次级期望安全距离。
53.根据权利要求47所述的系统,其中,所述退回向量是在所述零件程序中的缓冲器关命令中相对于第一坐标系指定的。
54.根据权利要求53所述的系统,其中,所述切入向量是在所述零件程序中的缓冲器关命令中相对于对应于所述第二位置的第二坐标系指定的,所述第一坐标系与所述第二坐标系不冋。
55.根据权利要求47所述的系统,其中,重定位所述刀具的步骤包括步骤计算所述刀具沿刀具向量从所述第一位置至机器限制的动作,所述机器限制在一个方向上限定所述三维工作空间的外边界。
56.根据权利要求55所述的系统,其中,所述重定位所述刀具的步骤包括步骤计算所述刀具沿所述机器限制到第二机器限制的动作,所述第二机器限制在另一方向上限定所述三维工作空间的外边界。
57.根据权利要求47所述的系统,其中,在计算至少一个切入动作的步骤期间,所述算法接收以下内容作为输入作为起始位置的所述第二位置、用于存储所述至少一个切入动作的倒序、以及禁止检查平面下方的动作的指示。
58.根据权利要求47所述的系统,其中,计算退回动作的步骤包括步骤确定所述当前退回向量对于将所述刀具移动至所述退回位置是否有效。
59.根据权利要求47所述的系统,其中,将所述退回动作和所述至少一个切入动作存储在缓冲器中,直到所述软件控制器确定能够安全地将所述刀具从所述第一位置移动至所述第二位置为止,所述输出步骤包括步骤执行所存储的退回动作和所存储的至少一个切入动作。
60.一种用于多轴机床系统的运动控制系统,所述多轴机床系统被配置成使用可移动刀具来使零件成形,所述控制系统包括 I/O模块,其包括限定所述机床系统的三维工作空间的三个轴限制的机器配置信息以及在不参考所述零件在所述工作空间内的位置、所述刀具的尺寸或所述限制的情况下指定刀具的第一位置和所述刀具的第二位置的零件程序;以及 软件控制器,被配置成 (A)内部地处理动作以确定所述刀具是否能够被安全地从所述第一位置重定位至所述第二位置,安全重定位被定义为将所述刀具保持在距所述零件的最小间隙之上并且在所述限制内, (B)如果能够安全地对所述刀具重定位,则将所述经内部地处理的动作输出给所述机床系统以引起所述刀具从所述第一位置至所述第二位置的移动,以及 (C)如果不能安全地对所述刀具重定位,则将错误输出给所述机床系统。
61.根据权利要求60所述的系统,其中,所述控制器通过下述操作确定是否能够安全地重定位所述刀具计算动作序列以将所述刀具从所述第一位置重定位至重定向位置;计算退回动作序列以将所述刀具从所述重定向位置重定位至距所述零件的最小间隙之上的退回位置;以及,计算切入动作序列以将所述刀具从距所述零件的最小间隙之上的切入位置重定位至所述第二位置。
62.根据权利要求61所述的系统,其中,所述控制器通过下述操作计算所述退回动作序列确定所述刀具沿退回向量从所述重定向位置的移动是否会导致所述刀具重定向至所述退回位置而不超出轴限制;以及,如果使用所述退回向量会超出一个或更多个轴限制,则通过排除所述退回向量的对应于会被超过的所述一个或更多个轴限制的一个或更多个方向分量来计算至少一个新退回向量,并确定所述刀具沿所述至少一个新退回向量从所述重定向位置的移动是否会导致所述刀具重定位至所述退回位置而不超出所有三个轴限制。
63.根据权利要求61所述的系统,其中,所述控制器通过下述操作计算所述切入动作序列确定所述刀具沿作为切入向量的反向量的运动向量从所述第二位置的移动是否会导致所述刀具重新定向至所述切入位置而不超出轴限制;以及,如果使用所述运动向量会超出一个或更多个轴限制,则通过排除所述运动向量的对应于会被超出的所述一个或更多个轴限制的一个或更多个方向分量来计算至少一个新运动向量,并确定所述刀具沿所述至少一个新运动向量从所述第二位置的移动是否会导致所述刀具重定位至所述切入位置而不超出所有三个轴限制。
64.根据权利要求60所述的系统,其中,所述控制器按正序存储所述退回动作序列并且按倒序存储所述切入动作序列,使得当所述机床系统执行所述内部地处理的动作时,所述刀具被从所述第一位置移动至所述重定向位置、从所述重定向位置移动至所述退回位置、从所述退回位置移动至所述切入位置以及从所述切入位置移动至所述第二位置。
全文摘要
本公开包括一种用于被配置成使用刀具成形零件的机床系统的运动控制系统,该运动控制系统包括I/O模块,I/O模块具有限定机床系统的三维工作空间的限制的机器配置信息。I/O模块还包括在不参考工作空间限制的情况下指定刀具的第一和第二位置的零件程序。该运动控制系统还包括软件控制器,被配置成内部地处理动作以确定刀具是否可从第一位置重定位至第二位置,同时将刀具保持在距零件最小间隙以上并且在工作空间限制内;如果可安全地重定位刀具,则将经内部地处理的动作输出给机床系统以引起刀具的移动,而如果不能安全地重定位刀具则输出错误。
文档编号G05B19/18GK102713775SQ201080045163
公开日2012年10月3日 申请日期2010年10月5日 优先权日2009年10月8日
发明者保罗·格雷 申请人:赫克公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1