為什么要有刀具補償?
想象一下,如果我們的刀具可以理想到半徑無窮小,倒是不需要考慮半徑的補償,但是實際上我們用到的是刀具的邊沿在雕刻物體,如下圖:
簡單來看,好像是直接平行於輪廓進行移動就可以了,其實不然,單條直線的雕刻是平行,但是直線和直線,直線和圓弧,圓弧和圓弧都是不同的,並且!直線與直線的刀具補償也分為三種情況分析。並且,在理論上有兩種方法來進行補償。
且慢,還分為三步,第一步是建立補償,第二步 進行補償,第三步撤銷補償。
兩種方法分別為:
1、B刀具半徑補償
2、C刀具半徑補償
按照以往慣例,顯然第一種方法是簡單粗暴有效。第二種復雜一點,但是更加精准。
單條直線和圓弧的刀具偏移如圖,很簡單的可以計算出直線和圓弧的刀具補償公式如下:
公式是很簡單,其實和插補的算法結合到一起以后,就比較復雜了,典型的方法有R2法,極坐標法和矢量判別法,如果想知道具體的方法的原理,可以參考下面的鏈接:
http://jpkc.nwpu.edu.cn/jpkc2005/34/dianzikejian/
要注意的是,在B刀具半徑補償的時候,比如直線和圓弧連接,則需要一個過度的算法,否則刀具不連續而產生錯誤。過度時我們用到補償一個相切的圓弧,並且在B刀具補償的時候,還有一個尖角的問題需要處理,所以在數控系統中,專門加入了一條G39的補償指令。
C刀具補償法:
這個補償法用到了4個緩存,按照順序分別叫做BS,CS,AS,OS,簡單來說,插補的線段指令先送入BS,第一條,繼續往下傳遞到CS,繼續加載第二條指令到BS,這時候判斷BS和CS需要做何種刀具補償,這個是問題的關鍵,處理完成以后,加入補償后送入AS,AS進行運算,送到OS進行脈沖的輸出。
當指令傳入下一個緩沖器時,也就是上一個緩沖器完成一個傳遞以后,繼續取下一條指令。
其中需要補償的情況氛圍三種:
直線和直線
直線和圓弧
圓弧和圓弧
以直線和直線的轉接來說,按照兩條直線的夾角,可以分為以下的五種情況。
總體來說,就是縮短型,插入型和伸長型。
另外兩種情況類似也有這五種情況。
圓弧的計算流程如下:
總結下來,刀具半徑補償的算法就是理想與現實搭建起來的橋梁的一種算法,理解起來不難,但是要把每一種可能性都經過判斷,計算和執行,其實不是一件容易做到的事情。
問題:MCX314和PCL6045這種專用芯片,應該用到了刀具補償的算法,比如插補算法用比較原始的DDA算法,而刀具補償用到的是C刀具補償法。