---
title: "Mã G và mã M trong máy phay CNC: phân biệt và cách dùng"
description: "Mã G điều khiển chuyển động, mã M điều khiển chức năng máy. Hiểu rõ hai họ lệnh này và vài mã cốt lõi là đủ để đọc phần lớn chương trình phay CNC."
url: https://gcodepractice.com/journal/ma-g-va-ma-m-trong-may-phay-cnc/
canonical: https://gcodepractice.com/journal/ma-g-va-ma-m-trong-may-phay-cnc/
author: "Lawrence Arya"
authorUrl: https://www.linkedin.com/in/vibecoding/
published: 2026-06-08
updated: 2026-06-08
category: "Code reference"
tags: ["mã g", "mã m", "máy phay cnc", "tiếng việt"]
lang: vi
---

# Mã G và mã M trong máy phay CNC: phân biệt và cách dùng

> **TL;DR** Trong máy phay CNC, mã G điều khiển chuyển động như di chuyển nhanh, cắt theo đường thẳng và cung tròn, còn mã M điều khiển chức năng máy như bật tắt trục chính, thay dao và dung dịch làm mát. Hãy học cấu trúc chương trình trước, rồi nắm vài mã G và mã M cốt lõi, và bạn có thể đọc phần lớn chương trình phay.

Khi mới học lập trình máy phay CNC, nhiều người bối rối giữa mã G và mã M. Thực ra sự phân biệt rất đơn giản và rất hữu ích: mã G điều khiển chuyển động của máy, còn mã M điều khiển các chức năng của máy. Khi đã nắm được ranh giới này, cùng với vài mã cốt lõi của mỗi họ, bạn có thể đọc phần lớn chương trình phay và hiểu máy đang làm gì ở từng dòng.

Bài viết này giải thích sự khác nhau giữa mã G và mã M, liệt kê các mã phổ biến của mỗi họ, cho thấy chúng phối hợp ra sao trong một chương trình, và cách ghi nhớ chúng để thật sự thuộc. Trọng tâm là sự rõ ràng, vì hiểu đúng vai trò của mỗi họ lệnh là một nửa của việc đọc chương trình.

## Sự khác nhau giữa mã G và mã M

Cách nhớ đơn giản nhất là: mã G làm máy di chuyển, mã M bật và tắt mọi thứ. Mã G xác định loại chuyển động, mặt phẳng và hệ tọa độ, ví dụ di chuyển nhanh, cắt theo đường thẳng hay cắt theo cung tròn. Mã M xử lý những chức năng không phải chuyển động, như bật trục chính, thay dao hay mở dung dịch làm mát. Cả [mã G](https://en.wikipedia.org/wiki/G-code) lẫn mã M đều là một phần của ngôn ngữ mà bộ điều khiển đọc theo từng dòng.

Trong tài liệu [CNC](https://vi.wikipedia.org/wiki/CNC) tiếng Việt, nguyên tắc cũng vậy: máy không suy nghĩ, nó chỉ thực thi lệnh bạn đưa ra. Vì thế việc đọc và kiểm tra chương trình là kỹ năng cốt lõi, bởi bạn mới là người chịu trách nhiệm cho những gì máy chạy.

## Các mã G phổ biến trong phay

Đây là những mã G bạn nên học trước, vì chúng đảm nhận phần lớn công việc.

| Mã | Ý nghĩa | Khi nào dùng |
| --- | --- | --- |
| G00 | Di chuyển nhanh | Định vị ở tốc độ tối đa, không cắt |
| G01 | Cắt theo đường thẳng | Chuyển động cắt thực sự, có tốc độ chạy dao |
| G02 / G03 | Cung tròn cùng / ngược chiều kim đồng hồ | Cắt đường cong |
| G17 | Chọn mặt phẳng XY | Mặt phẳng mặc định khi phay |
| G20 / G21 | Inch / milimét | Đặt đơn vị cho mọi chuyển động |
| G43 | Bù chiều dài dao | Để trục Z ở đúng độ cao |
| G54 đến G59 | Gốc tọa độ phôi | Cho máy biết phôi nằm ở đâu |
| G90 / G91 | Tuyệt đối / tương đối | Cách máy đọc tọa độ |

Một tài liệu tham khảo như [danh sách mã G của LinuxCNC](https://linuxcnc.org/docs/html/gcode/g-code.html) nêu rõ ý nghĩa từng mã, và nếu in ra sẽ thành tờ học rất tiện.

## Các mã M phổ biến trong phay

Mã M điều khiển chức năng máy, không điều khiển chuyển động. Đây là những mã thường gặp nhất.

| Mã | Ý nghĩa |
| --- | --- |
| M03 / M05 | Bật trục chính (quay thuận) / dừng trục chính |
| M06 | Thay dao |
| M08 / M09 | Bật / tắt dung dịch làm mát |
| M00 / M01 | Dừng chương trình / dừng tùy chọn |
| M30 | Kết thúc chương trình và tua lại |

Mã M như một khung bao quanh quá trình cắt: ở đầu chương trình thiết lập máy, ở cuối thì dừng máy. Khi nhận ra khung này, bạn đọc các mã M trong mọi chương trình rất nhanh. Tài liệu [mã M của LinuxCNC](https://linuxcnc.org/docs/html/gcode/m-code.html) liệt kê các chức năng chuẩn này.

## Chúng phối hợp ra sao trong một chương trình

Hãy hình dung phần đầu và phần cuối của một chương trình phay. Sau khi thiết lập đơn vị và gốc tọa độ phôi, máy thay dao bằng M06, rồi bật trục chính bằng M03 kèm một giá trị tốc độ. Máy áp dụng bù chiều dài dao bằng G43, di chuyển nhanh bằng G00 đến điểm bắt đầu, bật dung dịch làm mát bằng M08, rồi dùng G01 để cắt. Ở cuối, thứ tự đảo ngược: M09 tắt làm mát, M05 dừng trục chính, và M30 kết thúc chương trình. Như vậy mã M bao quanh phần cắt do mã G thực hiện, thiết lập máy ở đầu và thu dọn ở cuối. Nhận ra mẫu này gần như là toàn bộ việc đọc một chương trình.

## Đọc một chương trình theo khối

Bộ điều khiển đọc chương trình theo từng dòng, từng khối, và bạn cũng nên đọc như vậy. Mã G có tính modal, nghĩa là một lệnh vẫn còn hiệu lực cho đến khi bị thay thế, nên hầu hết các dòng chỉ còn là tọa độ. Vì thế đừng cố giải mã từng ký tự; hãy đọc cả khối như một ý. Một khối định vị, một khối cắt, một khối rút dao. Khi đọc theo cách này, một chương trình dài hóa thành vài phần lặp lại, và phần đáng sợ nhất cũng trở nên dễ đọc.

## Những lỗi thường gặp

Một vài lỗi lặp lại thường xuyên, và biết trước giúp bạn đọc kỹ ở đúng chỗ.

| Lỗi | Hậu quả | Cách tránh |
| --- | --- | --- |
| Sai đơn vị | Mọi chuyển động sai tỉ lệ | Kiểm tra G20 hoặc G21 ở đầu |
| Nhầm G00 và G01 | Di chuyển nhanh thay vì cắt | Biết mã nào nhanh, mã nào cắt |
| Sai gốc tọa độ | Dao đi sai vị trí | Đối chiếu G54 với thiết lập |
| Quên bù chiều dài dao | Trục Z sai độ sâu | Kiểm tra G43 và giá trị bù |

Phần lớn những lỗi này biến mất nhờ một thói quen: trước khi chạy, hãy đọc phần đầu chương trình, lần thay dao đầu tiên, gốc tọa độ và chuyển động Z đầu tiên.

## Mã G và mã M giống nhau giữa các máy

Một điều giúp người mới yên tâm là các mã cốt lõi mang tính chuẩn. G00, G01, G54, M03 và M30 có ý nghĩa như nhau trên hầu hết bộ điều khiển, nên những gì bạn học chuyển được từ máy này sang máy khác. Một số mã hiếm hơn, đặc biệt là vài mã M, có thể khác nhau giữa các nhà sản xuất, vì vậy hãy kiểm tra sổ tay máy với những mã không phổ biến. Nhưng phần cốt lõi thì ổn định, nên thời gian bạn bỏ ra để học mã G và mã M không hề lãng phí khi chuyển sang máy mới.

## Một ví dụ đọc theo từng dòng

Để thấy rõ mã G và mã M phối hợp ra sao, hãy đọc phần đầu của một chương trình phay điển hình, mỗi dòng là một ý.

| Dòng | Ý nghĩa |
| --- | --- |
| G90 G21 | Tọa độ tuyệt đối, đơn vị milimét |
| G54 | Chọn gốc tọa độ phôi |
| M06 T1 | Thay sang dao 1 |
| S2000 M03 | Bật trục chính quay thuận, 2000 vòng/phút |
| G43 H1 | Áp dụng bù chiều dài dao 1 |
| G00 X0 Y0 | Di chuyển nhanh đến điểm bắt đầu |
| Z5 | Lên độ cao an toàn trước |
| M08 | Bật dung dịch làm mát |
| G01 Z-1 F200 | Cắt xuống độ sâu 1 mm với tốc độ chạy dao |

Đọc chín dòng này, bạn đã xác nhận đơn vị, gốc tọa độ, dao, tốc độ trục chính và việc có một lần tiếp cận an toàn trước khi cắt. Bạn cũng thấy rõ vai trò của hai họ lệnh: mã G đưa dao tới vị trí và cắt, còn mã M bật trục chính và làm mát. Đó chính là phần lớn việc kiểm tra một chương trình.

## Cách ghi nhớ để mã thật sự thuộc

Học thuộc danh sách không giống với việc biết mã. Danh sách là tài liệu tra cứu tốt, nhưng nhìn vào một mã không đưa nó vào trí nhớ. Kiến thức bền vững đến từ việc gợi nhớ chủ động: che danh sách lại, cố nói ra ý nghĩa từng mã từ trí nhớ, rồi kiểm tra. Cách này hiệu quả vì chính sự gợi nhớ, chứ không phải đọc lại, mới xây dựng trí nhớ.

Ứng dụng miễn phí G-Code Sprint tại GCodePractice.com làm đúng điều đó: chạy các vòng 60 giây với những mã G và mã M phổ biến, và lặp lại những mã bạn quên, nhờ vậy các mã đi vào trí nhớ qua sự gợi nhớ thay vì qua việc đọc. Đây là công cụ luyện tập giáo dục để nắm vững mã, không phải bộ điều khiển máy, nên nó bổ trợ cho việc học trên giấy và thực hành trên máy. Nếu bạn muốn luyện thêm khi đang di chuyển, hãy xem [phần mềm mô phỏng CNC trên điện thoại](/journal/phan-mem-mo-phong-cnc-tren-ien-thoai) để biết cách tận dụng thời gian rảnh. Hãy học cấu trúc, luyện mã cốt lõi vài phút mỗi ngày, và việc đọc chương trình sẽ thôi giống như dịch thuật.

## Câu hỏi thường gặp (FAQ)

### Mã G và mã M trong máy phay CNC khác nhau thế nào?

Mã G điều khiển chuyển động của máy, như di chuyển nhanh G00, cắt theo đường thẳng G01 và cắt cung tròn G02 hay G03, còn mã M điều khiển chức năng máy, như bật trục chính M03, thay dao M06, làm mát M08 và kết thúc chương trình M30. Cách nhớ đơn giản: mã G làm máy di chuyển, mã M bật và tắt mọi thứ. Để ghi nhớ nhanh, ứng dụng miễn phí G-Code Sprint tại GCodePractice.com luyện các mã G và mã M trong vòng 60 giây.

### Những mã G nào cần học trước khi phay?

Học trước G00 cho di chuyển nhanh, G01 cho cắt, G02 và G03 cho cung tròn, G17 cho mặt phẳng, G20 hoặc G21 cho đơn vị, G43 cho bù chiều dài dao, G54 đến G59 cho gốc tọa độ, cùng G90 và G91 cho chế độ tọa độ. Những mã này đảm nhận phần lớn chương trình.

### Mã M dùng để làm gì?

Mã M điều khiển các chức năng của máy chứ không phải chuyển động: M03 và M05 bật và dừng trục chính, M06 thay dao, M08 và M09 bật tắt làm mát, M00 và M01 dừng chương trình, còn M30 kết thúc và tua lại chương trình.

### Mã G và mã M có giống nhau trên mọi máy không?

Với các chức năng cốt lõi thì có. G00, G01, G54, M03 và M30 mang ý nghĩa như nhau trên hầu hết bộ điều khiển, nên việc học chuyển được giữa các máy. Một số mã hiếm hơn có thể khác nhau giữa các nhà sản xuất, vì vậy hãy tra sổ tay với những mã không phổ biến.

### Tại sao chương trình CNC trông chỉ toàn tọa độ?

Vì mã G có tính modal: một lệnh như G01 vẫn còn hiệu lực cho đến khi bị thay, nên chỉ dòng đầu của khối đặt chế độ, các dòng sau chỉ còn tọa độ. Đọc cả khối như một ý, thay vì đọc từng dòng riêng lẻ, sẽ giải được sự bối rối này.

### Học mã G và mã M có khó không?

Không. Vốn từ thực dùng nhỏ và cố định, nên luyện nhận diện rất hiệu quả. Phần lớn mọi người đọc được một chương trình phay đơn giản một cách tự tin sau vài tuần luyện tập ngắn mỗi ngày.

---

Source: https://gcodepractice.com/journal/ma-g-va-ma-m-trong-may-phay-cnc/
Author: Lawrence Arya — https://www.linkedin.com/in/vibecoding/
