這份 G 代碼和 M 代碼清單涵蓋了您實際輸入以運行 CNC 銑床或車床的代碼:所有控制運動和幾何形狀的常用 G 代碼,以及切換主軸和冷卻液等機器功能的 M 代碼。無論您是在控制台上讀取 CNC 程序,還是手動編輯 CAM 軟體生成的文件,下面的表格和範例都旨在為您提供一個可以同時在第二個標籤頁中打開的單一參考,涵蓋銑削和車削,以及 Fanuc、Haas、Siemens、GRBL 和 LinuxCNC 之間的差異。
快速參考:G 與 M 一覽
| G碼 | 準備/幾何-告訴機器 哪裡 以及 如何 工具移動(G00 快速移動,G01 進給,G02/G03 圓弧移動)。 |
| M程式碼 | 雜項/機器 — 開關功能(M03 主軸開啟,M08 冷卻液開啟,M30 程序結束)。 |
| 格式 | 單字地址: N50 G01 X1.5 Z-0.75 F0.008 M08 — 每個「單字」由一個字母和一個數字組成。 |
| 相關標準 | 源自 EIA RS-274 和 ISO 6983-1:2009大多數控制器都源自於開放式解釋器。 NIST RS274/NGC 規格 |
G 代碼與 M 代碼:有什麼區別?

將每段程式碼歸入兩個類別之一,是閱讀任何程式最快的方法。 G碼 是一個預備指令,“G”通常解釋為 幾何因為這些字詞告訴切割者該往哪裡走,沿著哪條路走。 M程式碼 是雜項指令或機器指令:它會撥動機上某個地方的開關,例如啟動主軸或打開冷卻液。兩者都遵循相同的字地址語法,該語法由EIA在20世紀60年代初為數控機床標準化,後來ISO將其納入ISO 6983標準。
以下是您可以立即應用的實用劃分方法:
| 問題 | G代碼 | M程式碼 |
|---|---|---|
| 它控制什麼? | 刀具運動、座標、插值、偏移 | 主軸、冷卻液、換刀、程序流程 |
| 它會移動座標軸嗎? | 通常是(G00、G01、G02) | 沒有 |
| 它是模態的嗎? | 許多(保持活躍直至取消) | 部分(M03/M05);許多是一次性的。 |
| 例 | G01 X2.0 F10.0 |
M08 (冷卻液已開啟) |
所有方言中大約有 100 個 G 代碼,但任何一台機器實際使用的代碼集都遠小於此。 M 程式碼數量更少,而且不同製造商之間的一致性也差得多,這一點值得注意,因為它解釋了後面會提到的「這個程式在另一台機器上運作良好」的大部分問題。如果您仍在建立機器本身的心理模型,請參閱我們關於…的入門指南。 車床和銑床加工基礎知識 與此代碼參考資料完美契合。
如何讀懂G代碼區塊:地址字母和語法

一行數控程式碼稱為 度每個資料塊都只是一串「單字」。每個單字由一個字母(位址)和一個數字(值)組成。一旦你了解了這些字母的含義,你幾乎可以大聲讀出任何資料塊。我們把它當作新操作員的入門知識來教授。 NG-XYZ-FSTM 規則字母的出現順序大致如此,而這個順序也與機器的思考順序相符:行號、移動類型、移動位置、移動速度、旋轉速度、使用的工具以及撥動哪個開關。
| 信 | 意思 | 例 |
|---|---|---|
| N | 區塊(行)號 | N50 |
| G | 準備/運動指令 | G01 |
| X 和 Z | 軸位置(目的地) | X1.5 Z-0.75 |
| IJK | 弧中心相對於起點 | I0.5 J0 |
| F | 飼料速率 | F0.008 |
| S | 主軸轉速 | S1200 |
| T | 刀具編號 | T0303 |
| M | 機器功能 | M08 |
閱讀此部分N50 G01 X1.5 Z-0.75 F0.008 M08上面寫著:「在第 50 行,以每轉 0.008 的流量直線輸送至 X1.5、Z-0.75,並開啟冷卻液。」這就是全部訣竅。同樣的邏輯也適用於… 數控車床 驅動加工中心;只有軸字母和少數幾個預設循環會改變。
A 語氣 程式碼在執行完畢後會一直保持啟動狀態,直到同一程式碼群組中的其他程式碼將其取消。例如,G01 指令執行一次後,後續的每個代碼組都會持續進給一行材料,直到您呼叫 G00、G02 或 G03 為止。非模態(單次)代碼,例如 G04 駐留,僅作用於其出現的代碼組。混淆這些程式碼是導致大多數「刀具為何快速下刀?」故障的根源。
模態組:為什麼有些程式碼會互相抵消

這裡介紹的是將程式碼列表轉化為可操作的思維模型的概念。 G 代碼被分類為 模態組而且,同一組程式碼中一次只能有一個處於啟動狀態。呼叫同一組中的第二個程式碼,它會悄悄地替換掉第一個。這是有意為之的設計,也是為什麼包含兩個運動代碼的程式區塊會發出警報的原因。理解這些代碼組可以解答初學者常問的問題:“為什麼一個G代碼會抵消另一個G代碼?”
| 模態組 | 組內程式碼 | 開機時的預設值 |
|---|---|---|
| 運動 | G00、G01、G02、G03 | 通常 G00 |
| 平面選擇 | G17,G18,G19 | G17(銑床),G18(車床) |
| 部隊 | G20,G21 | 機器參數 |
| 距離模式 | G90,G91 | G90 絕對 |
| 切割機 | G40,G41,G42 | G40 關閉 |
| 工作偏移 | G54~G59 | G54 |
| 進料模式 | G93,G94,G95 | G94(磨) |
| 固定循環 | G73–G89,G80 取消 | G80 關閉 |
所以當你寫的時候 G90 G54 G17 G00 X0 Y0 在程式開頭,你需要設定幾個代碼組中的任何一個,例如絕對距離、工件偏移量 1、XY 平面、快速移動等等,這些設定都會保持鎖定狀態,直到你手動更改為止。這就是人們常說的「安全啟動」線。
完整G代碼清單(常用代碼G00–G99)

以下是G代碼總列表,依程式碼功能分組。這些代碼適用於絕大多數Fanuc系統;少數代碼存在一些特殊之處,詳見控制系統對比部分。請收藏此頁面,它同時也是大多數人在搜尋「G代碼M代碼清單pdf」時尋找的可列印速查表。
| 推薦碼 | 類別 | 功能 |
|---|---|---|
| G00 | 運動 | 快速定位(非切割移動) |
| G01 | 運動 | 以 F 速率進行線性進給運動 |
| G02 | 運動 | 順時針圓弧插值 |
| G03 | 運動 | 逆時針圓週插值 |
| G04 | 運動 | 停留(暫停),P 或 X 表示時間 |
| G17 / G18 / G19 | 機 | 選擇 XY / XZ / YZ 工作平面 |
| G20/G21 | 部隊 | 吋/毫米編程 |
| G28 | 運動 | 返回機器原點(參考)位置 |
| G30 | 運動 | 回第二/第三參考點 |
| G40 / G41 / G42 | 比較 | 切割器(半徑)補償關閉/左/右 |
| G43/G49 | 比較 | 工具長度補償開啟/取消 |
| G53 | 坐標 | 在機器座標系中移動(消除偏移) |
| G54~G59 | 坐標 | 工作座標系 1–6 |
| G73/G83 | 聽裝 | 高速啄鑽/全回縮啄鑽 |
| G80 | 聽裝 | 取消固定循環 |
| G81/G82 | 聽裝 | 簡單鑽孔/帶停留時間的鑽孔 |
| G84 | 聽裝 | 攻絲循環 |
| G85/G86 | 聽裝 | 無聊的循環 |
| G90/G91 | 距離 | 絕對/增量編程 |
| G93 / G94 / G95 | 進料模式 | 反向時間/每分鐘/每轉進料 |
| G96/G97 | 主軸 | 恆定表面速度/取消(恆定轉速) |
| G98/G99 | 罐裝* | 循環後返回初始/R平面(銑削) |
*在許多 Fanuc 車床控制系統中,G98/G99 改為設定每分鐘進給量和每轉進給量,這是下面詳細介紹的方言差異之一。
完整的M代碼清單(機器和程式功能)

M 代碼處理除運動控制之外的所有操作:主軸的啟動和停止、冷卻液的切換、刀具的更換以及程序的結束。常用的 M 代碼集很短,你每天都會用到十幾個。
| 推薦碼 | 功能 | 筆記 |
|---|---|---|
| M00 | 程序停止(強迫) | 按下循環開始恢復 |
| M01 | 可選停靠站 | 僅當「可選停止」開啟時 |
| M02 | 程式結束 | 無法倒帶 |
| M03/M04 | 主軸順時針/逆時針旋轉 | 需要一個 S 值 |
| M05 | 主軸停止 | |
| M06 | 換刀 | 與 T 開頭的字配對 |
| M07/M08/M09 | 噴霧/噴淋冷卻液開啟,冷卻液關閉 | M07並非每台機器都有。 |
| M29 | 剛性敲擊模式 | 發那科;G84 的前身 |
| M30 | 結束節目並倒帶 | 重置為頂部 |
| M98/M99 | 子程序呼叫/返回 | M99 也會循環播放程式。 |
M 代碼是機器語言中最不標準化的部分。冷卻液、托盤和輔助設備的 M 代碼在不同的製造商之間差異很大,而具有額外硬體的機器還會添加自己的 M 代碼。在假設某個數字的意思與您上次執行的控制碼相同之前,請務必先查閱機器手冊中的 M 程式碼頁面。
數控車床(車削)的G代碼和M代碼

大多數已發布的程式碼清單都是為銑床編寫的,因此車床程式設計人員只能靠猜測。車床與銑床共享核心運動和程序代碼,但增加了銑床所沒有的車削專用代碼層。如果您使用的是斜床身或平床身車削中心,那麼以下這些代碼才是真正重要的。
| 車床代碼 | 功能 |
|---|---|
| G50 | 夾緊主軸最大轉速(或設定座標,取決於控制方式) |
| G96/G97 | 恆定表面速度開關開/關-轉向的主力組合 |
| G70 | 完成週期 |
| G71 | 粗車(去除材質)循環 |
| G72 | 粗加工循環 |
| G74/G75 | 啄鑽/開槽循環 |
| G76 | 穿線週期 |
| G41 / G42 / G40 | 刀尖半徑補償 左/右/關閉 |
恆定表面速度是 概念上的巨大差異。 呼叫 G96 S500 控制器會調整主軸轉速,使刀具切削速度保持在每分鐘 500 英尺(表面),即使刀具直徑縮小,這正是您在錐形或端面零件上獲得光滑表面所需的理想狀態。切換到 G97 S1500 鎖定固定轉速,這對於中心鑽孔或攻牙至關重要。我們隨附的 Fanuc 式控制系統配備 ANTISHICNC 介面。 斜床式CNC車床 模型中,鑽孔循環前缺少 G97 是我們看到的最常見的首程序錯誤之一,主軸會在刀具接近中心時持續加速。
「車削加工時,順序與代碼同樣重要。先設定工件偏移量,然後使用 G50 速度夾具執行 G96 代碼,再選擇刀具;如果跳過夾具,第一次小直徑切削時主軸轉速可能會超過其安全極限。”
什麼是G94 G代碼?
G94 設定 每分鐘進料量 模式:F 值以每分鐘刀具行程的單位(英吋或毫米)讀取。它與 G93(反時間)和 G95(每轉進給量)一起位於進給模式模式群組中,在銑削控制器上,G94 是通常的預設值。但車床的情況有所不同:在許多 Fanuc 車削控制器上,進給模式組合實際上是 G98(每分鐘)和 G99(每轉),而 G94/G95 可能分配給其他功能。車削幾乎總是需要每轉進給量,以確保加工表面光潔度不受轉速的影響,因此大多數車床程式會設定 G99(或 G95,取決於控制器)。如有疑問,請檢查您的控制器使用的是哪種“系統”,相關資訊會記錄在程式手冊的進給模式代碼部分。
罐裝循環詳解:鑽孔、攻牙和鏜孔

A 罐裝循環 它將重複操作(鑽孔、回退、移動、再次鑽孔)壓縮到一行指令中。無需手動編寫每個鑽孔動作,只需呼叫一次循環,列出孔的位置,然後使用 G80 取消即可。這樣可以節省數十行程式碼,並使孔型一目了然。
- ✔G81直線鑽孔:快速鑽至 R 平面,進給至 Z 深度,快速鑽出。
- ✔G83啄鑽:以 Q 為增量向下啄鑽,完全回縮以清除深孔中的切屑。
- ✔G84攻牙:進給,反轉主軸,依螺距出絲。
- ✔G85/G86鏜孔:對預鑽孔進行精確、低進給量加工。
啄鑽塊看起來像 G83 Z-1.0 R0.1 Q0.2 F8.0從 0.1 的回退平面開始,以 0.2 的啄鑽次數,每分鐘 8 英吋的速度鑽至 Z-1.0。記錄孔的 XY 座標,並重複此循環,直到執行 G80 指令。
G84 在CNC工具機中扮演什麼角色?
G84 是右手攻牙循環。它將絲錐送入到所需深度,停止並反轉主軸,然後再送出,所有步驟都同步進行,以確保絲錐沿著自身螺紋進給而不會撕裂螺紋。進給速度必須與螺紋導程相符:進給速度等於主軸轉速乘以螺距。例如,對於 M8×1.25 的絲錐,在 300 rpm 的進給模式下,進給速度為 300 × 1.25 = 375 mm/min。在 Fanuc 系統中,通常需要在執行 G84 之前執行 M29(剛性攻牙模式),以使主軸和 Z 軸保持鎖定狀態,這樣即使不使用拉壓式夾具也能精確攻牙。將 R 平面設置在工件上方足夠高的位置,以便主軸能夠達到所需轉速並平穩反轉。忘記執行 M29 而使用剛性夾具在「浮動」模式下運行 G84 是導致絲錐斷裂的經典方法。
完整的G程式碼範例程式(銑床和車床)

閱讀表格中的程式碼是一回事,但在實際程式中看到它們才能真正理解。這裡有兩個簡短且帶有完整註釋的範例。每一行程式碼都與上面的表格相對應。
銑削範例正面朝上,鑽一個孔:
O1001 N10 G90 G54 G17 G21(絕對值,偏移 1,XY 平面,毫米)N20 G00 X0 Y0(快速啟動)N30 T1 M06(裝載刀具 1)N40 S1200 M03(主軸順時針旋轉,1200 rpmN50 S1200 M03(主軸順時針旋轉,1200 rpmN500 S12012503) M08(開啟冷卻液)N70 G83 Z-15.0 R2.0 Q3.0 F150(啄鑽)N80 G80(取消循環)N90 M09(關閉冷卻液)N100 G28 Z0 M05(Z 軸回零,主軸停止)N110 M30(結束後回捲)
樹立榜樣粗加工並精加工直徑:
O2001 N10 G21 G99 G40(毫米,每轉進給量,補償關閉)N20 G50 S2500(夾緊主軸最大轉速 2500 rpm)N30 T0101(車刀,偏移量 1)N40 G96 S180 M03(恆速 180. M08(進給毛坯,開啟冷卻液)N60 G71 U2.0 R1.0(粗車循環)N70 G70 P80 Q120(精車輪廓)N130 G97 S1200(恢復恆速)N140 G00 X200 Z200 M09(
在首次運行之前,請先在模擬器中執行該檔案。免費的線上 G 程式碼模擬器和檢視器可以在幾秒鐘內檢測出反向圓弧或缺少的 G80 指令,這比在工件上用刀具查找錯誤便宜得多。無論您是在切削工件還是其他工件,這種先驗證再加工的習慣都適用。 數控立式加工中心 或車削中心。
不同控制系統的 G 代碼和 M 代碼差異:Fanuc、Haas、Siemens、GRBL、LinuxCNC

單控制清單掩蓋了這樣一個真相:並不存在通用的G代碼。運動代碼(G00-G03)和安全啟動代碼幾乎在各地都相同,這部分確實是標準的。但固定循環參數、巨集語法、進給模式分配以及大多數M代碼在不同製造商之間都存在差異。 「標準G代碼」除了基本要素之外,在某種程度上只是一個神話。
| 控制 | 不同之處 |
|---|---|
| 發那科 | 事實上的基準;宏 B 變量,車床進給模式透過 G98/G99 控制,M29 剛性絲錐 |
| 哈斯 | 類似 Fanuc 的作業系統,加入了 Haas M 程式碼(例如 M97 局部子呼叫)和設定驅動行為 |
| 西門子(SINUMERIK) | 支援 G 代碼以及其自身的高級語言和 ShopTurn/ShopMill 步驟 |
| GRBL | 適用於業餘路由器和3D列印機級硬體的子集;無預設循環 |
| 數控系統 | 嚴格遵循 NIST RS274/NGC 標準;包含用於樣條曲線和探測的額外 G 代碼 |
機械師經常會遇到同樣的問題:一個在某個控制系統上驗證過的程序,在另一個控制系統上可能會出現故障,甚至運行錯誤,這通常是由於進給模式或固定循環的差異造成的,而不是運動代碼的問題。解決這個問題需要養成習慣,而不是修改程式碼:從CAM軟體重新上傳程式以適配目標控制系統,或在實際機床上以單塊模式測試程序,然後再確認其有效性。 LinuxCNC G 程式碼參考 當你想看看「標準」解釋器如何定義程式碼時,這是一個有用的中立基準。
常見的G代碼和M代碼錯誤

程式碼本身很簡單;錯誤往往出在上下文。一些常見的模式就能解釋新手程式設計師遇到的大部分問題。
- 以安全起步線開局(G90 G54 G17 G40 G80)
- 在進行下一步操作之前,請使用 G80 取消已儲存的循環。
- 在車床上鑽孔或攻牙前設定 G97 參數。
- 單塊程式是任何新程式的首次運行。
- 保持 G91 開啟,以便下次程式增量運行。
- 假設 M 代碼在每台機器上都表示相同的意思。
- 使用 G84 進行敲擊,但忘記了 M29 剛性模式
- 弧線方向錯誤(G02 與 G03)或 I/J/K 符號錯誤
如果你要從手動加工轉向數控加工,培養與手動控制相同的直覺會很有幫助,操作員讀取刻度盤的方式與讀取數控刻度盤時保持的警覺性是一樣的。 數位讀數 (DRO) 獎勵機制貫穿始終,甚至延伸到你按下循環啟動鍵之前閱讀程式碼的環節。為工作選擇合適的工具同樣至關重要;我們的指南將指導你如何做到這一點。 車床切削刀具 覆蓋了那一側。
變革趨勢:對話式程式設計、CAM 和人工智慧

手寫完整的程序已不再是以前的日常工作。到2026年,大部分生產用G程式碼將由CAM軟體及其後處理器生成,然後在機床上進行編輯。因此,需要合理安排兩班制的工作。
首先, 對話式程式設計 這種技術持續普及。像 Haas 和 Siemens ShopTurn 這樣的控制系統允許操作員描述特徵、孔、螺紋、面等,然後系統會自動產生相應的 G 代碼。這降低了加工簡單零件的門檻,但並不能取代對程式碼的了解:一旦對話式程式需要修改或發出警報,您仍然需要編寫 G 程式碼。其次,模擬已成為預設步驟,而非可有可無的選項。每月對 G 代碼模擬器的搜尋量接近 1,000 次,這表明切削前驗證已成為標準做法。能夠調整進給量並標記碰撞的 AI 輔助刀具路徑工具正在被主流 CAM 軟體所採用,儘管它們提出的變更仍需由程式設計師審核。
如果你打算在 2026 年開設店鋪或訓練操作員,切實可行的做法是先教授 G 程式碼基礎知識,然後將對話式程式設計和人工智慧工具作為加速器。這份清單中的基本內容正是這些工具產生的,也是你在遇到問題需要修復時會看到的內容。要了解程式設計成熟度如何影響機器的購買,請參閱我們的概述… 金屬車床 逐步介紹控制選項。
常見問題
Q:G代碼和M代碼有什麼差別?
看答案
Q:最常見的G代碼是什麼?
看答案
Q:CNC工具機中的M代碼是什麼意思?
看答案
Q:G代碼和M代碼在所有CNC機床上都一樣嗎?
看答案
Q:CNC車床使用哪些G代碼和M代碼?
看答案
Q:哪裡可以找到G代碼和M代碼清單的PDF檔案或速查表?
看答案
為新的車削中心編寫程式?
ANTISHICNC 製造的CNC車床可運行標準的 Fanuc 式 G 代碼,並提供對話式編程選項,同時為 40 多個國家/地區提供 3 年技術支援。告訴我們您的零件需求,我們將為您配置合適的工具機和控制系統。
我們為什麼要整理這份清單?
我們以製造CNC車床為生,新用戶收到機器後的第一反應總是「代碼清單在哪裡?」。網路上大多數參考資料只涵蓋銑削,或者只針對一種控制系統品牌,所以我們編寫了一份代碼列表,將銑削和車削代碼(包括我們機器每天都在使用的G96/G97和G70-G76車削循環)集中在一處,並詳細說明了不同控制系統之間的差異。
參考文獻和來源
- NIST RS274/NGC 解譯器,版本 3美國國家標準技術研究院(NIST)
- NIST RS274NGC 解釋器,完整報告(PDF)美國國家標準與技術研究院內部報告
- ISO 6983-1:2009,自動化系統及集成,NC程式格式國際標準化組織
- LinuxCNC G 程式碼快速參考LinuxCNC.org
- G碼維基百科(RS-274概述及歷史)
相關文章
- 了解車床和銑床加工的基礎知識這些程式碼運作所在的機器是如何實際運作的?
- 初學者必備的車床切割工具將合適的工具與您的車削程序相匹配
- CNC立式車床詳解車削大直徑零件
- 你可以用車床製作的項目讓你的程式發揮作用
經ANTISHICNC工程團隊審核,該團隊擁有超過25年的CNC車床和加工中心製造經驗。如果您對我們機器的程式有任何疑問,歡迎諮詢。 聯絡我們的工程團隊.













