Mã lệnh gia công CNC là nền tảng quan trọng trong quá trình lập trình và vận hành máy CNC. Việc hiểu đúng ý nghĩa của từng lệnh G, lệnh M, lệnh tọa độ, lệnh tốc độ trục chính, lượng chạy dao giúp người lập trình tạo chương trình gia công chính xác, giảm sai sót và nâng cao hiệu quả sản xuất.
Trong bài viết này, chúng tôi tổng hợp các mã lệnh CNC thông dụng và quan trọng nhất, bao gồm mã G-code, M-code, các lệnh tọa độ, chu trình gia công và những lưu ý khi sử dụng chương trình CNC.
Lưu ý: Cú pháp và chức năng của một số mã có thể khác nhau tùy hệ điều khiển như Fanuc, Mitsubishi, Siemens, Haas, Mazak… Vì vậy, khi lập trình thực tế cần đối chiếu manual của đúng hệ điều khiển trên máy.
1. Mã lệnh CNC là gì?
Mã lệnh CNC là tập hợp các ký tự và câu lệnh được sử dụng để điều khiển máy công cụ CNC thực hiện một quá trình gia công cụ thể.
Một chương trình CNC thường bao gồm:
- G-code: điều khiển chuyển động và chức năng gia công.
- M-code: điều khiển các chức năng phụ của máy.
- X, Y, Z: tọa độ vị trí dao.
- F: lượng chạy dao.
- S: tốc độ quay trục chính.
- T: lựa chọn dao.
- H, D: bù chiều dài dao hoặc bù bán kính dao tùy hệ điều khiển.
- N: số thứ tự của block chương trình.
Ví dụ một dòng lệnh:
G01 X50.0 Y20.0 F200Có thể hiểu là dao thực hiện chuyển động thẳng đến vị trí X50, Y20 với lượng chạy dao F200.

2. Bảng mã lệnh G-code CNC đầy đủ và thông dụng
G-code CNC là nhóm lệnh quan trọng nhất trong lập trình máy CNC. Các mã G thường quy định chế độ chuyển động, hệ tọa độ, chế độ gia công hoặc chu trình.
| Mã G | Chức năng |
|---|---|
| G00 | Chạy dao nhanh |
| G01 | Nội suy đường thẳng |
| G02 | Nội suy cung tròn theo chiều kim đồng hồ |
| G03 | Nội suy cung tròn ngược chiều kim đồng hồ |
| G04 | Dừng tạm thời |
| G17 | Chọn mặt phẳng XY |
| G18 | Chọn mặt phẳng XZ |
| G19 | Chọn mặt phẳng YZ |
| G20 | Lập trình theo inch |
| G21 | Lập trình theo mm |
| G28 | Về điểm chuẩn máy |
| G40 | Hủy bù bán kính dao |
| G41 | Bù bán kính dao trái |
| G42 | Bù bán kính dao phải |
| G43 | Bù chiều dài dao |
| G49 | Hủy bù chiều dài dao |
| G54 | Hệ tọa độ phôi số 1 |
| G55 | Hệ tọa độ phôi số 2 |
| G56 | Hệ tọa độ phôi số 3 |
| G57 | Hệ tọa độ phôi số 4 |
| G58 | Hệ tọa độ phôi số 5 |
| G59 | Hệ tọa độ phôi số 6 |
| G80 | Hủy chu trình cố định |
| G81 | Chu trình khoan |
| G82 | Chu trình khoan có thời gian dừng |
| G83 | Chu trình khoan nhấp |
| G84 | Chu trình taro |
| G85 | Chu trình doa |
| G90 | Lập trình tuyệt đối |
| G91 | Lập trình tương đối |
| G94 | Lượng chạy dao theo phút |
| G95 | Lượng chạy dao theo vòng |
Đây là những mã G CNC cơ bản xuất hiện rất thường xuyên trong chương trình gia công.
3. G00 – Chạy dao nhanh
G00 được sử dụng để đưa dao đến vị trí mong muốn với tốc độ chạy nhanh của máy.
Ví dụ:
G00 X100 Y50Dao di chuyển nhanh đến vị trí X100, Y50.
G00 thường được sử dụng khi:
- Đưa dao đến vị trí bắt đầu gia công.
- Rút dao khỏi phôi.
- Di chuyển giữa các vị trí gia công.
- Đưa dao về vị trí an toàn.
Lưu ý: Không nên sử dụng G00 để cắt trực tiếp vật liệu vì tốc độ chạy nhanh có thể gây va chạm hoặc làm hỏng dao.
4. G01 – Nội suy đường thẳng
G01 dùng để điều khiển dao chạy theo đường thẳng với lượng chạy dao được xác định bởi F.
Ví dụ:
G01 X50 Y20 F200Trong đó:
- G01: chạy thẳng.
- X50: tọa độ X.
- Y20: tọa độ Y.
- F200: lượng chạy dao.
Đây là một trong những lệnh CNC cơ bản được sử dụng nhiều nhất trong gia công.
5. G02 và G03 – Nội suy cung tròn
G02 – Cung tròn chiều kim đồng hồ
G02 X50 Y50 I20 J0 F150G03 – Cung tròn ngược chiều kim đồng hồ
G03 X50 Y50 I20 J0 F150G02 và G03 thường được sử dụng để gia công:
- Cung tròn.
- Bo góc.
- Biên dạng cong.
- Đường tròn.
- Các chi tiết có biên dạng phức tạp.
Khi lập trình G02/G03 cần đặc biệt chú ý đến mặt phẳng gia công, điểm đầu, điểm cuối, tâm cung và hướng chuyển động.
6. G04 – Lệnh dừng tạm thời
G04 tạo khoảng thời gian dừng tại vị trí hiện tại.
Ví dụ:
G04 X2.0Tùy hệ điều khiển, tham số thời gian của G04 có thể được hiểu khác nhau. Vì vậy cần kiểm tra tài liệu của hệ điều khiển đang sử dụng.
G04 thường được dùng trong các trường hợp:
- Chờ dao ổn định.
- Dừng tại đáy lỗ.
- Hỗ trợ gia công một số vật liệu đặc biệt.
- Kiểm soát thời gian trong chu trình.
7. G17, G18, G19 – Chọn mặt phẳng gia công
Ba lệnh này xác định mặt phẳng nội suy cung tròn.
| Mã | Mặt phẳng |
|---|---|
| G17 | XY |
| G18 | XZ |
| G19 | YZ |
Ví dụ, khi sử dụng G02/G03 trên mặt phẳng XY thường chọn:
G17Việc chọn đúng mặt phẳng rất quan trọng khi lập trình G02 và G03.
8. G20 và G21 – Đơn vị lập trình
G20
Sử dụng đơn vị inch.
G20G21
Sử dụng đơn vị milimet.
G21Trong nhiều chương trình CNC tại Việt Nam, G21 thường được sử dụng để lập trình theo mm.
Một chương trình có thể bắt đầu bằng:
G21
G90Trong đó G21 thiết lập đơn vị mm và G90 thiết lập chế độ tọa độ tuyệt đối.
9. G28 – Về điểm chuẩn máy
G28 thường được sử dụng để đưa các trục máy về vị trí chuẩn/reference.
Ví dụ:
G28 G91 Z0Tuy nhiên, cách sử dụng G28 cần được thực hiện cẩn thận vì tùy cấu hình máy và hệ điều khiển, đường chạy về reference có thể khác nhau.
10. G40, G41, G42 – Bù bán kính dao
Đây là nhóm mã lệnh CNC quan trọng khi gia công biên dạng.
G40 – Hủy bù bán kính dao
G40G41 – Bù dao bên trái
G41 D01G42 – Bù dao bên phải
G42 D01Bù bán kính dao giúp chương trình có thể gia công đúng biên dạng khi đường tâm dao không trùng với biên dạng lý thuyết.
11. G43 – Bù chiều dài dao
G43 thường được sử dụng trên máy phay CNC để bù chiều dài dao.
Ví dụ:
G43 H01 Z50Trong đó:
- G43: bật bù chiều dài dao.
- H01: gọi giá trị bù chiều dài dao số 1.
- Z50: di chuyển đến vị trí Z50.
Sau khi hoàn thành công việc, thường sử dụng:
G49để hủy bù chiều dài dao.
12. G54 đến G59 – Hệ tọa độ phôi
Các lệnh:
G54
G55
G56
G57
G58
G59dùng để lựa chọn các hệ tọa độ làm việc.
Ví dụ:
G54
G00 X0 Y0Máy sử dụng hệ tọa độ phôi G54 để xác định vị trí X0 Y0.
Việc thiết lập chính xác điểm zero phôi là yếu tố rất quan trọng trong gia công CNC.
13. G80 – Hủy chu trình cố định
Sau khi sử dụng các chu trình như G81, G82, G83 hoặc G84, thường cần hủy chu trình bằng:
G80Ví dụ:
G81 Z-20 R2 F100
X20
X40
G8014. G81 – Chu trình khoan CNC
G81 là chu trình khoan cơ bản.
Ví dụ:
G81 Z-20 R2 F100
X20 Y20
X40 Y20
X60 Y20
G80Ý nghĩa cơ bản:
- Z-20: chiều sâu khoan.
- R2: mặt phẳng bắt đầu chu trình.
- F100: lượng chạy dao.
Ưu điểm của chu trình cố định là giúp chương trình ngắn gọn hơn so với việc lập trình từng chuyển động khoan bằng G00/G01.
15. G82 – Khoan có dừng tại đáy
G82 tương tự G81 nhưng có thêm thời gian dừng ở đáy lỗ.
Ví dụ:
G82 Z-15 R2 P1000 F100Thời gian của P cần được hiểu theo quy ước của hệ điều khiển cụ thể.
G82 có thể hữu ích khi cần tạo đáy lỗ ổn định hơn hoặc trong một số ứng dụng gia công đặc thù.
16. G83 – Chu trình khoan nhấp
G83 thường dùng để khoan sâu theo từng bước, giúp đưa phoi ra ngoài và hỗ trợ làm mát.
Ví dụ:
G83 Z-50 R2 Q5 F100Trong đó Q thường đại diện cho lượng ăn dao mỗi bước, nhưng cách diễn giải có thể thay đổi theo hệ điều khiển.
G83 đặc biệt hữu ích khi:
- Khoan lỗ sâu.
- Phoi khó thoát.
- Cần hạn chế nhiệt.
- Cần tăng độ ổn định khi khoan.
17. G84 – Chu trình taro
G84 thường được dùng để thực hiện taro trên máy phay CNC.
Ví dụ:
G84 Z-20 R2 F500Tuy nhiên, F phải được tính phù hợp với bước ren và tốc độ trục chính, đồng thời phụ thuộc vào chế độ taro của máy.
Không nên sao chép trực tiếp một thông số F từ chương trình khác nếu chưa kiểm tra tốc độ S, bước ren và chế độ điều khiển.
18. G90 và G91 – Tọa độ tuyệt đối và tương đối
Đây là hai mã G CNC cực kỳ quan trọng.
G90 – Tọa độ tuyệt đối
G90
G01 X50
G01 X100Các tọa độ được hiểu theo gốc tọa độ đang được chọn.
G91 – Tọa độ tương đối
G91
G01 X20Dao di chuyển thêm 20 đơn vị tính từ vị trí hiện tại.
Khi chuyển từ G90 sang G91 hoặc ngược lại, người lập trình phải đặc biệt cẩn thận để tránh sai vị trí và gây va chạm.
19. Các mã M-code CNC phổ biến
Nếu G-code chủ yếu điều khiển chuyển động và chế độ gia công thì M-code CNC thường điều khiển các chức năng phụ của máy.
| M-code | Chức năng phổ biến |
|---|---|
| M00 | Dừng chương trình |
| M01 | Dừng tùy chọn |
| M02 | Kết thúc chương trình |
| M03 | Trục chính quay thuận |
| M04 | Trục chính quay ngược |
| M05 | Dừng trục chính |
| M06 | Thay dao |
| M08 | Bật dung dịch làm mát |
| M09 | Tắt dung dịch làm mát |
| M19 | Định hướng trục chính |
| M30 | Kết thúc và quay lại đầu chương trình |
| M98 | Gọi chương trình con |
| M99 | Kết thúc chương trình con/quay về chương trình gọi |
Quan trọng: Không phải mọi M-code đều giống nhau trên tất cả máy CNC. Một số mã được nhà sản xuất máy tùy biến để điều khiển chức năng riêng.
20. M03, M04, M05 – Điều khiển trục chính
M03 – Quay thuận
S1500 M03Trục chính quay theo chiều thuận với tốc độ S1500.
M04 – Quay ngược
S1500 M04M05 – Dừng trục chính
M05Thông thường M03/M04 được kết hợp với S-code để xác định tốc độ quay.
21. M06 – Thay dao
Trên máy phay CNC, một câu lệnh thường gặp là:
T01 M06Trong đó:
- T01: lựa chọn dao số 1.
- M06: thực hiện thay dao.
Một chương trình thực tế có thể sử dụng:
T01 M06
S2000 M03Sau đó thiết lập bù chiều dài dao phù hợp.
22. M08 và M09 – Dung dịch làm mát
M08
M08Bật dung dịch làm mát.
M09
M09Tắt dung dịch làm mát.
Việc sử dụng coolant đúng cách giúp kiểm soát nhiệt, hỗ trợ thoát phoi và kéo dài tuổi thọ dao trong nhiều điều kiện gia công.
23. M00, M01, M02 và M30
M00 – Dừng chương trình
M00Máy dừng để người vận hành kiểm tra hoặc thực hiện thao tác cần thiết.
M01 – Dừng tùy chọn
M01Có hiệu lực khi chế độ Optional Stop được bật trên máy.
M02 – Kết thúc chương trình
M02M30 – Kết thúc chương trình
M30M30 thường được sử dụng ở cuối chương trình CNC.
24. Các ký hiệu quan trọng trong lập trình CNC
Ngoài G-code và M-code, người lập trình cần nắm rõ các địa chỉ thường gặp.
| Ký hiệu | Ý nghĩa |
|---|---|
| X | Tọa độ trục X |
| Y | Tọa độ trục Y |
| Z | Tọa độ trục Z |
| A | Trục quay A |
| B | Trục quay B |
| C | Trục quay C |
| F | Lượng chạy dao |
| S | Tốc độ trục chính |
| T | Số dao |
| H | Bù chiều dài dao |
| D | Bù bán kính dao |
| I/J/K | Thông số tâm cung trong nhiều hệ điều khiển |
| R | Bán kính hoặc mặt phẳng R tùy câu lệnh |
| Q | Thông số bước trong một số chu trình |
| P | Thời gian hoặc tham số chu trình tùy lệnh |
| N | Số thứ tự block |
25. Ví dụ một chương trình CNC phay cơ bản
Dưới đây là ví dụ minh họa đơn giản:
%
O1001
G21 G17 G90 G40 G49 G80
T01 M06
S2000 M03
G54
G00 X0 Y0
G43 H01 Z50
M08
G00 Z5
G01 Z-2 F100
G01 X50 F300
G01 Y30
G01 X0
G01 Y0
G00 Z50
M09
M05
G49
G80
G30
M30
%Đây chỉ là ví dụ học tập, không nên đưa trực tiếp vào máy sản xuất nếu chưa kiểm tra hệ điều khiển, gốc phôi, chiều dài dao, offset, giới hạn hành trình, tốc độ cắt và điều kiện gá đặt.
26. Trình tự xây dựng một chương trình CNC chuẩn
Một chương trình CNC hoàn chỉnh thường được xây dựng theo trình tự:
Bước 1: Xác định bản vẽ
Đọc kích thước, dung sai, vật liệu và yêu cầu kỹ thuật.
Bước 2: Chọn phương pháp gia công
Xác định:
- Dao sử dụng.
- Thứ tự nguyên công.
- Chiều sâu cắt.
- Tốc độ trục chính.
- Lượng chạy dao.
Bước 3: Thiết lập hệ tọa độ
Chọn vị trí zero phôi và xác định G54/G55 hoặc hệ tọa độ tương ứng.
Bước 4: Viết chương trình
Sử dụng các mã G-code, M-code và thông số tọa độ.
Bước 5: Kiểm tra chương trình
Có thể kiểm tra bằng phần mềm mô phỏng CNC trước khi chạy trên máy.
Bước 6: Chạy thử
Thực hiện dry run/single block và kiểm tra khoảng cách an toàn trước khi gia công thực tế.
27. Những lỗi thường gặp khi sử dụng mã lệnh CNC
Ngay cả người đã có kinh nghiệm cũng cần kiểm tra kỹ chương trình trước khi chạy máy. Một số lỗi phổ biến gồm:
Quên G90/G91: Có thể khiến tọa độ được hiểu sai.
Quên G40: Bù bán kính dao còn hoạt động và ảnh hưởng đến đường chạy dao tiếp theo.
Quên G49: Bù chiều dài dao chưa được hủy trong trường hợp cần thiết.
Sai G54: Dao chạy theo một gốc tọa độ khác với dự kiến.
Sai chiều quay M03/M04: Có thể ảnh hưởng nghiêm trọng đến dao và quá trình cắt.
Sai tốc độ S hoặc lượng chạy dao F: Có thể gây rung, cháy dao, gãy dao hoặc giảm chất lượng bề mặt.
Không kiểm tra G02/G03: Sai chiều cung hoặc tâm cung có thể khiến dao chạy sai quỹ đạo.
Không kiểm tra chương trình trước khi chạy: Đây là một trong những nguyên nhân dễ dẫn tới va chạm máy.
28. Phân biệt G-code và M-code CNC
Nhiều người mới học CNC thường nhầm lẫn giữa hai nhóm lệnh này.
| Tiêu chí | G-code | M-code |
|---|---|---|
| Chức năng chính | Điều khiển chuyển động/chế độ gia công | Chức năng phụ của máy |
| Ví dụ | G00, G01, G02, G03 | M03, M05, M06, M08 |
| Điều khiển tọa độ | Có | Thường không |
| Điều khiển trục chính | Thông qua chế độ/lệnh liên quan | Có các lệnh bật/tắt |
| Chu trình gia công | Có | Không phải chức năng chính |
Có thể hiểu đơn giản: G-code quyết định dao di chuyển và gia công như thế nào, còn M-code điều khiển nhiều chức năng phụ trợ của máy.
29. Mã lệnh CNC tiện và CNC phay có giống nhau không?
CNC tiện và CNC phay có nhiều mã lệnh giống nhau, chẳng hạn G00, G01, G02, G03, G90, G91, M03, M05…
Tuy nhiên, cách sử dụng tọa độ và các chu trình chuyên dụng có thể khác nhau đáng kể.
Đặc biệt với CNC tiện, thường gặp các nhóm lệnh và chu trình liên quan đến:
- Tiện ngoài.
- Tiện mặt đầu.
- Tiện ren.
- Tiện rãnh.
- Tiện côn.
- Khoan trên máy tiện.
- Chu trình tiện tự động.
Trong khi đó, CNC phay tập trung nhiều hơn vào:
- Nội suy XY.
- Nội suy cung.
- Khoan.
- Taro.
- Pocket.
- Contour.
- Bù chiều dài dao.
- Bù bán kính dao.
30. Cách học mã lệnh CNC hiệu quả
Không nên cố gắng học thuộc toàn bộ mã lệnh CNC cùng một lúc. Người mới nên chia thành từng nhóm:
Nhóm 1: G00, G01, G02, G03.
Nhóm 2: G17, G18, G19, G20, G21.
Nhóm 3: G40, G41, G42, G43, G49.
Nhóm 4: G54–G59.
Nhóm 5: G80–G84.
Nhóm 6: G90, G91, G94, G95.
Nhóm 7: M03, M04, M05, M06, M08, M09, M30.
Sau khi hiểu từng nhóm, hãy thực hành bằng những chương trình đơn giản trước khi chuyển sang chương trình gia công phức tạp.
Kết luận
Nắm vững mã lệnh gia công CNC là bước quan trọng để học lập trình và vận hành máy CNC hiệu quả. Trong đó, G00, G01, G02, G03, G40, G41, G42, G43, G54, G81, G83, G84, G90, G91 và các M-code như M03, M04, M05, M06, M08, M09, M30 là những lệnh nền tảng mà người học CNC nên hiểu rõ.
Tuy nhiên, không có một bảng mã CNC duy nhất áp dụng tuyệt đối cho mọi máy. Fanuc, Mitsubishi, Siemens, Haas, Mazak và từng nhà sản xuất máy có thể bổ sung hoặc thay đổi một số chức năng. Vì vậy, khi đưa chương trình vào máy thực tế, cần luôn đối chiếu tài liệu kỹ thuật của hệ điều khiển cụ thể, mô phỏng đường chạy dao và chạy thử ở chế độ an toàn trước khi gia công.

















