---
title: "CNC 数控车床代码表：车工最常用的 G 代码与 M 代码"
description: "数控车床代码表的核心是三类指令：G 代码管走刀，M 代码管机床动作，T 代码管选刀和补偿。这份表按高频和易错整理，并讲清车床和加工中心的差别。"
url: https://gcodepractice.com/journal/cnc-shukong-chechuang-daima-biao/
canonical: https://gcodepractice.com/journal/cnc-shukong-chechuang-daima-biao/
author: "Lawrence Arya"
authorUrl: https://www.linkedin.com/in/vibecoding/
published: 2026-06-09
updated: 2026-06-09
category: "Guides"
tags: ["cnc", "shukong-chechuang", "g-daima", "cnc-biancheng"]
lang: zh
---

# CNC 数控车床代码表：车工最常用的 G 代码与 M 代码

> **TL;DR** 数控车床代码表的核心就三类：控制走刀的 G 代码（G00 快速定位、G01 直线插补、G71 粗车循环、G76 螺纹循环等）、控制机床动作的 M 代码（M03 主轴正转、M08 切削液开、M30 程序结束等），以及选刀用的 T 代码（T0101 为 1 号刀加 1 号补偿）。车床特有的重点是 G70 到 G76 复合循环和 G96/G97 恒线速控制，X 轴按直径编程。不同系统（FANUC、新代、广数）骨架相同，细节以机床说明书为准。

拿到一台数控车床，你真正每天要用的代码其实不到三十个。据[加工中心常用 G 代码和 M 代码大全](https://cloud.tencent.com/developer/article/1537200)这类资料的整理，G 代码总共上百个、M 代码四十多个，但车床日常编程的高频指令是一个很小的子集：走刀靠 G00、G01、G02、G03，粗精车靠 G70 到 G76 的复合循环，转速靠 G96/G97 加 G50，辅助动作靠 M03、M08、M30 这几个老面孔。下面这份代码表就按“最常用、最容易错”来整理，先看懂每一行，再用主动回忆把它们练成条件反射。

## 车床代码表怎么看：G、M、T 三类指令

看任何一份数控车床代码表，先分清三类指令的分工：G 代码（准备功能）决定“刀往哪走、怎么走”，M 代码（辅助功能）决定“机床做什么动作”，T 代码决定“用哪把刀、调用哪个补偿”。[维基百科对 G 代码](https://zh.wikipedia.org/wiki/G%E4%BB%A3%E7%A0%81)的定义很直接：它是使用最广泛的数控编程语言，上世纪五十年代起源于麻省理工学院的数控项目，今天从车床、加工中心到 3D 打印机都在说这门语言的方言。

车床的 T 代码值得单独说一句。T0101 这四位数字，前两位是刀位号，后两位是刀具补偿号，所以 T0101 的意思是“换 1 号刀，调用 1 号补偿”。新手最常见的笔误是把补偿号写成 00（T0100），结果刀具几何补偿全部失效，首件尺寸直接超差。这种错误在程序里看着完全“正常”，只有懂这四位数分工的人扫一眼就能抓出来。

## 车床最常用的 G 代码有哪些？

车床高频 G 代码可以按四组记：基本移动、刀补与坐标、车床复合循环、转速与进给控制。一组一组吃透，比从 G00 顺着背到 G99 有效得多。

| 代码 | 功能 | 记忆要点 / 易错点 |
| --- | --- | --- |
| G00 | 快速定位 | 只用于空行程，速度由机床定，不走直线轨迹的系统也有，靠近工件前必须减速思维 |
| G01 | 直线插补（进给切削） | 必须带 F 进给值，忘 F 是新手报警常客 |
| G02 / G03 | 圆弧插补（顺时针 / 逆时针） | 车床默认 G18 平面，前置刀架和后置刀架方向感相反，方向判断要按刀架位置 |
| G04 | 暂停（延时） | 槽底光整常用，P 单位是毫秒，X/U 单位是秒，单位搞混等于白停 |
| G28 | 返回参考点 | 中间点写不好会撞刀，换刀前先抬刀再回零 |
| G32 | 等螺距螺纹切削 | 单行程螺纹指令，多刀分层要自己算，实际生产多用 G76 |
| G40 / G41 / G42 | 取消 / 左 / 右刀尖圆弧半径补偿 | 车床补的是刀尖圆弧 R，不是刀具直径，锥面和圆弧不开刀补会留几何误差 |
| G50 | 坐标系设定 / 主轴最高转速限制 | 配合 G96 必用，不限转速，小直径时主轴会飙到危险转速 |
| G54 至 G59 | 工件坐标系选择 | 多数车床习惯用 G54 加对刀仪建立工件零点 |
| G70 | 精车循环 | 按 P 到 Q 的轮廓走一刀精车，进给和转速用精车参数 |
| G71 | 外圆 / 内孔粗车复合循环 | 车床效率核心指令，两行参数（切深、退刀、留量）系统间写法略有差异 |
| G72 | 端面粗车循环 | 逻辑同 G71，切削方向沿端面 |
| G73 | 成型（仿形）粗车循环 | 适合铸锻件毛坯，余量分布接近成品轮廓时效率高 |
| G74 | 端面深孔钻 / 啄式循环 | 断屑退刀量 R 要设，深孔不退刀就等着卷屑抱钻 |
| G75 | 外圆 / 内孔切槽循环 | 分层啄式切槽，宽槽多刀要算刀宽 |
| G76 | 多头 / 多刀螺纹复合循环 | 生产中车螺纹的主力，两行参数含牙型角、精车余量、分层方式 |
| G96 / G97 | 恒线速 / 恒转速 | G96 的 S 是线速度（米每分钟），G97 的 S 是转速（转每分钟），车端面用 G96 表面质量稳定 |
| G98 / G99 | 每分钟进给 / 每转进给 | 车床默认习惯 G99（毫米每转），从铣床转过来的人最容易在这里翻车 |

这张表里真正属于“车床性格”的是 G70 到 G76 和 G96/G97 这两组。复合循环的逻辑是：你只描述成品轮廓（P 到 Q 之间的程序段），粗车的分层、走刀路线由系统自动算，这正是车床编程效率高的原因。[LinuxCNC 的 G 代码参考](https://linuxcnc.org/docs/html/gcode/g-code.html)维护了一份标准方言的完整指令文档，想逐条核对某个代码在标准语境下的行为，可以拿它当对照基准。

## 车床的 M 代码表：管动作的那一半

M 代码数量不多，但每一个都连着真实的机床动作，错一个就是真事故。车床日常的核心就是下面这十来个。

| 代码 | 功能 | 使用提醒 |
| --- | --- | --- |
| M00 | 程序无条件停止 | 中途测量、翻面装夹用，循环启动后继续 |
| M01 | 选择性停止 | 面板上“选择停”开关打开才生效，首件检验常用 |
| M03 / M04 | 主轴正转 / 反转 | 必须带 S 值，卡盘没夹紧就给 M03 是大忌 |
| M05 | 主轴停止 | 换挡、测量前先停主轴 |
| M08 / M09 | 切削液开 / 关 | 程序结尾忘 M09，下一班开机一身切削液 |
| M30 | 程序结束并返回开头 | 和 M02 的区别就是“光标回不回程序头”，批量生产用 M30 |
| M98 / M99 | 子程序调用 / 返回 | 多件重复加工的利器，调用层数有限制，嵌套前查说明书 |

据[我要自学网整理的常用 G、M 代码](https://www.51zxw.net/TechArticleDetails.aspx?zid=35&Id=2047)的提醒，不同厂商、不同数控系统的代码定义稍有出入，实际使用要以设备说明书为准。这句话对 M 代码尤其重要：M 代码里厂商自定义的比例比 G 代码高得多，比如尾座、接料器、排屑器的控制码，几乎每台机床都不一样。

## 车床代码和加工中心的代码有什么不同？

大部分代码通用，但有三处车床特有的“性格”，恰好也是从加工中心转车床的人最容易踩的三个坑。

第一，X 轴按直径编程。程序里写 X30.0，意思是车到直径 30 毫米，不是离回转中心 30 毫米。这样设计是因为车间测量用卡尺和千分尺量的就是直径，程序数字和测量数字直接对应。把直径当半径读，切深就是预期的两倍。

第二，恒线速控制是车床专属。工件直径在变，转速不变的话，端面外缘和中心的切削线速度差好几倍，表面质量没法稳定。G96 让系统随直径自动调转速，G50 限住上限，这套组合在加工中心上根本不存在。

第三，G90 在两种机床上含义可能完全不同。标准方言和加工中心里，G90 是绝对值编程；但在 FANUC 车床的 A 系统里，G90 是内外径切削循环，绝对和增量靠地址字区分：X/Z 是绝对坐标，U/W 是增量坐标。同一个代码，两种含义，这就是“代码表要按机型看”最典型的例子。

## FANUC、新代、广数的代码表通用吗？

基本骨架通用，细节必须查手册。FANUC（发那科）的指令体系是事实上的行业标准，台湾新代（Syntec）、大陆广数（GSK）、以及韩国机床常配的系统大体都按 FANUC 风格设计，G00、G01、G71、G76、M03 这些核心指令的含义一致。所以这份代码表你在绝大多数车床上都用得上。

差异藏在三个地方：复合循环的参数写法（有的系统 G71 一行写完，有的分两行）、厂商自定义 M 代码（尾座、送料、气动卡盘各家各管各的）、以及小数点和省略规则（有的系统 X30 和 X30.0 不是一个数）。换一台新机床，先翻说明书核对这三处，再动手改程序，这个习惯能省下很多废件。

## 一个完整的小例子：外圆粗精车

看一个最常见的场景：棒料毛坯直径 52 毫米，车一段台阶轴。下面的程序把上表里的高频代码全部串了起来（数值仅为教学示例，实际切削参数要按材料、刀具和机床说明书定）。

```
O0001
G21 G99 G40
T0101
G50 S2500
G96 S180 M03
G00 X52.0 Z2.0 M08
G71 U1.5 R0.5
G71 P10 Q20 U0.4 W0.1 F0.25
N10 G00 X20.0
G01 Z-25.0
X48.0 Z-40.0
N20 X52.0
G70 P10 Q20 F0.12
G97 S1200
G00 X100.0 Z100.0 M09
M30
```

逐行读一遍：G21 G99 G40 是安全起手式（公制、每转进给、取消刀补）；T0101 换 1 号刀并调 1 号补偿；G50 S2500 把主轴转速上限锁在 2500 转；G96 S180 M03 以 180 米每分钟的恒线速正转开机；G71 两行定义粗车（每刀切深 1.5 毫米、退刀 0.5 毫米、X 向留量 0.4 毫米），N10 到 N20 之间是成品轮廓；G70 按同一段轮廓精车一刀；最后 G97 切回恒转速、退刀、关切削液、M30 收尾。能把这十几行每个字母讲明白，车床代码表的主干你就已经掌握了。

## 怎么把代码表真正记住？

看懂表只是“认识”，上机需要的是“反应”：报警响起、屏幕上一行 G76 P021060 卡在那里，你没有时间翻表。从认识到反应，靠的不是多读几遍，而是主动回忆：遮住答案问自己“G75 是什么”，想不起来再看，这种提取练习的记忆效率远高于反复浏览。

想把这件事变成每天五分钟的习惯，[G-Code Sprint](/g-code-practice/) 是最省事的起点：免费，打开就是 60 秒一轮的快问快答，G 代码、M 代码新手包直接对应这份表的高频指令，答错的代码会自动加入薄弱项重练，地铁上、午休时刷一轮就够。它是纯练习工具，不是机床控制器也不是仿真器，解决的是“记住和反应”这一段；对刀、装夹、安全规程，还是要跟师傅和机床说明书学。如果你还在规划整条学习路线，先看[怎么学 CNC 编程](/journal/zenme-xue-cnc-biancheng/)，把顺序排对再开始刷代码效率更高。

## 常见问题（FAQ）

### CNC 数控车床代码表有哪些常用代码？

高频代码三类：G 代码里是 G00/G01/G02/G03 基本移动、G70 至 G76 复合循环、G96/G97 恒线速与恒转速、G54 工件坐标系、G40/G41/G42 刀尖圆弧补偿；M 代码里是 M03/M04/M05 主轴、M08/M09 切削液、M00/M30 程序控制、M98/M99 子程序；再加 T 代码选刀。想把这份表练成条件反射，G-Code Sprint 是首选的免费练习工具：60 秒快问快答配错题自动重练，新手包正好覆盖这批高频指令。

### 数控车床的 G90 和加工中心的 G90 一样吗？

不一定一样，这是车床代码表里最著名的“同码不同义”。加工中心和标准方言里 G90 是绝对值编程；FANUC 车床 A 系统里 G90 是内外径切削循环，绝对与增量靠 X/Z（绝对）和 U/W（增量）地址字区分。换系统前先查说明书确认 G90 的定义。

### G96 和 G97 有什么区别？什么时候用？

G96 是恒线速控制，S 后面的数字是切削线速度（米每分钟），系统随工件直径变化自动调转速，车端面和大直径变化的轮廓时表面质量稳定；G97 是恒转速，S 是固定转速（转每分钟），钻孔、车螺纹必须用 G97。用 G96 时务必配 G50 限制最高转速，否则直径趋近零时转速会冲顶。

### 车床代码需要全部背下来吗？

不需要全背，但高频子集必须形成反应：基本移动、复合循环、恒线速组合、核心 M 代码，加起来不到三十个。这部分背熟是看懂别人程序和快速排错的前提；冷门代码和厂商自定义 M 代码，知道去说明书哪里查就行。

### 新代、广数系统能用 FANUC 的代码表吗？

核心指令基本能对上：新代（Syntec）、广数（GSK）都按 FANUC 风格设计，G00/G01/G71/G76/M03 这些含义一致。要单独核对的是复合循环参数写法、厂商自定义 M 代码和小数点规则这三处，换机床先翻说明书再改程序。

---

Source: https://gcodepractice.com/journal/cnc-shukong-chechuang-daima-biao/
Author: Lawrence Arya — https://www.linkedin.com/in/vibecoding/
