新四季網

具有自動安全重定位的工具機系統控制的製作方法

2023-09-17 03:36:35 2

專利名稱:具有自動安全重定位的工具機系統控制的製作方法
技術領域:
本發明涉及工具機控制軟體。更具體地,本發明的領域是促進自動刀具重定位的工具機控制軟體的領域。
背景技術:


發明內容
工具機系統通常執行包括如下指令的零件程序,該指令由工具機控制軟體來解譯,以產生用於控制工具機系統的操作的命令。指令中的一些指令導致將由工具機系統用來成形或者切割零件的刀具從一個位置重定位到另一個位置。當然,需要在不與工具機系統的零件或部件進行不期望的接觸的情況下將刀具從一個位置移動至另一個位置。因此,零件程式設計師指定零件程序中用於從第一位置撤回或退回刀具(以在刀具與零件之間設置距離)、將刀具重定位到第二位置上方的位置以及將刀具切入至第二位置的中間動作。 如根據上述內容應當清楚的,用於傳統工具機控制軟體的零件程序的程式設計師需要指定零件程序中的中間重定位動作,同時記住將要執行該零件程序的工具機系統的限制。所有工具機系統都具有「工作空間」,工作空間是刀具可以在其中移動的三維體積。零件程序中的重定位動作需要考慮可以在工作空間中移動刀具的最大程度、零件在工作空間中的位置以及正在被重定位的刀具的尺寸(例如,長度),以避免工具機控制軟體產生超過工作空間的限制(「機器限制」)或者使刀具與工具機系統的零件或部件進行不期望的接觸的運動命令。如果在編寫零件程序時沒有考慮到這些限制,或者如果零件程序由具有與程式設計師原先預料的物理特性不同的物理特性的工具機系統來執行,則可能發生零件或工具機系統的損壞,或者可能終止零件程序的執行,因為否則會超過機器限制。這樣,工具機系統操作員需要修改零件程序指令,以避免這種錯誤。總之,因為傳統工具機控制軟體需要由零件程序來提供重定位動作,所以需要針對具體機器配置或「最壞情況」機器配置來編寫零件程序指令,以避免非有意的後果和/或錯誤。

發明內容
在本發明的示例性實施例中,提供了一種用於工具機系統的運動控制系統,該運動控制系統自動確定將刀具從在零件程序中指定的第一位置重定位至在該零件程序中指定的第二位置同時維持與零件的安全距離並且同時使機器限制錯誤最小化所需的動作。該運動控制系統的設計的一個結果是零件程序可以用不依賴於機器的方式來編寫並且由使用本公開的運動控制系統的各種工具機系統中的任意工具機系統執行。在本公開的示例中,提供了一種用於將工具機系統的三維工作空間內的刀具從當前位置自動重定位到目標位置的方法。該方法包括步驟(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日
發明者保羅·格雷 申請人:赫克公司

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀