認識CNC:如何辨讀G碼

十一月 3, 2016
Facebook
Twitter
G碼(G-code)是CNC工具機能解讀的純文字語言的通稱。
如果你使用的是現代桌上型CNC工具機和軟體,你永遠都不用手動輸入G碼,除非你真的很想。這項工作都是交由CAD/CAM軟體和機器控制器來處理。然而,有些人(尤其是Maker們!)就是想知道箇中原理。
G碼檔案為純文字檔,雖然並不是寫來給人類解讀的,但我們還是可以從檔案一窺其中的運作情形。G碼是我們用來告訴控制器要進行何種運動的方法。以下是最常見的指令和其原理。

G0/G1(快速/受控運動)

G0指令會使機器全速移動到G0後的座標(圖A)。這時機器會以協調的動作移動,且兩個軸會同時完成移動。G0不會用在切割上,而是用在使機器快速移動到開始工作的位置或同一項工作中另一個動作的位置。以下是一個快速(G0)指令的範例:
G0 X7 Y18
G1指令(圖B)和G0類似,但它是告訴機器以稱為「進給速率」(F)的特定速度移動:
G1 X7 Y18 F500

G2(順時鐘運動)

把模式設定為G2,並指定距離中心的位移(圖CD),會產生起點和指定終點之間的順時鐘運動。
G21 G90 G17
G0 X0 Y12
G2 X12 Y0 I0 J-12
G2的起點是下達G2指令前的機器位置。最簡單的做法是把機器移動到起點再下G2指令。

G3(逆時鐘運動)

與G2相同,G3指令會在兩個點之間產生弧線。不同的是,G2指定順時鐘運動,而G3指定逆時鐘運動(圖E)。以下是能有效產生G3運動的指令組合:
G21 G90 G17
G0 X-5 Y25
G3 X-25 Y5 I0 J-20

G17G18G19(作業平面)

這些模式用來設定要加工的平面。G17是最常使用的,也是多數非工業級機器的預設模式,但在三軸機器上可以使用另外兩個平面:

  • G17 = x/y平面
  • G18 = z/x平面
  • G19 = y/z平面

G2021(英吋或公厘)

G21和G20指令用來決定G碼的單位,可以選擇英吋或公厘:

  • G21 =公厘
  • G20 =英吋

以下是設定為公厘的範例::
G21 G17 G90

G28(參照起始位置)

簡單的G28指令會把機器帶回「起始位置」。在返回起始位置前,可以透過新增座標來定義中介點(來避免碰撞),如以下範例:
G28 Z0
有些機器需要G28.1指令來定義起始位置的座標:
G28.1 X0 Y0 Z0

G90(絕對模式)

G90會把單位做為「絕對座標」解讀。這是非工業級CNC機器最常用的模式,也是「預設」模式。
顧名思義,絕對座標的解讀是絕對的。G0 X10會把機器移動到x = 10,而不是從當前位置的x軸「加10」的位置。

G91(遞增模式)

「遞增模式」是與G90相反的模式,它代表下達的每個指令會把機器移動到當前位置「加上指令中指定距離」的位置。
舉例來說,在遞增模式下,不論當前位置為何,G1 X12都會把機器在x軸上推進1個單位。

G碼規則

和數學算式一樣,G碼有自己的運算順序。以下是依優先順序排列最常見的運算(即首先解讀註解,最後解讀更換工具):

  • 註解
  • 進給速率
  • 轉軸速率
  • 選取工具
  • 更換工具
下達G指令時,機器就會進入該「模式」。如果下達G1指令,例如 G1 X5 Y13,則機器會移動到X5 Y13。
如果你下達另一組座標,不用再使用一次G1指令;這是因為機器現在處於G1模式,直到被變更為G0、G2或G3等等。

進給、速度與工具

簡單的G碼可以用來設定速度、進給和工具的參數。

F代表「進給」(Feed)

F指令用來設定進給速率;使用G1時,機器會以所設定的進給速率運轉,而後續的G1指令會根據該F值執行。
如果進給速率(F)在第一次呼叫G1前尚未設定,則機器會發生錯誤,或者會以「預設」的進給速率運轉。以下是有效的F指令範例:​
G1 F1500 X100 Y100

S代表「轉軸速率」(Spindle Speed

S指令用來設定轉軸速度,通常以每分鐘轉速(RPM)為單位。以下是有效的S指令範例:
S10000

T代表「工具」(Tool

T指令和M6指令並用(M碼是機器的「動作碼」),指定執行當前切割檔案要使用的工具:
M6 T1
在工業級的機器上,M6 T指令通常會以自動換工具機來更換工具。在沒有自動換工具裝置的非工業級機器上,下達M6 T指令一般會使機器對自己下達暫停進給指令,等待操作員更換工具,並於按下「繼續」按鈕後重新開始運轉。
(譯:屠建明)
原文
Social media & sharing icons powered by UltimatelySocial