Chuyển đến nội dung chính
CƠ KHÍ.NET

G-code

Còn gọi là: mã G, chương trình NC, gcode

Biên soạn: Ban Biên tập cokhi.net · Cập nhật · 9 phút đọc

G-code là ngôn ngữ lập trình tiêu chuẩn của máy CNC, gồm các lệnh chữ–số xác định chuyển động dao cụ, tốc độ trục chính, bù dao và chức năng phụ trợ. Chương trình G-code có thể viết tay cho chi tiết đơn giản hoặc sinh tự động từ phần mềm CAM.

Nguyên lý hoạt động

G-code giao tiếp với bộ điều khiển CNC thông qua một chuỗi khối lệnh tuần tự, mỗi khối tương ứng với một hành động cụ thể của máy. Các lệnh nhóm G (preparatory function) điều khiển chế độ chuyển động: nội suy thẳng, nội suy cung tròn, chu trình cố định khoan-tarô-doa. Các lệnh nhóm M (miscellaneous function) đảm nhiệm chức năng phụ trợ như khởi động/dừng trục chính, đóng mở dung dịch trơn nguội, kết thúc chương trình.

Bộ điều khiển đọc từng khối, tính toán quỹ đạo nội suy rồi phát xung đến các trục động cơ servo hoặc bước. Bù dao (tool offset) và bù bán kính dao được khai báo trong chương trình hoặc gọi từ bảng bù của máy, cho phép hiệu chỉnh mà không cần sửa lại toàn bộ code khi thay dao mới.

Phân loại lệnh thường gặp

Trong thực tế gia công, G-code được nhóm theo chức năng:

  • Lệnh định vị và nội suy: G00 (định vị nhanh), G01 (nội suy thẳng có ăn dao), G02/G03 (nội suy cung tròn thuận/ngược chiều kim đồng hồ).
  • Chu trình cố định (canned cycle): Nhóm G80–G89 trên phay, G70–G76 trên tiện — đóng gói các bước lặp như khoan nhiều lỗ, tiện ren, tiện thô nhiều lần vào một lệnh gọn.
  • Thiết lập hệ tọa độ và bù: G54–G59 (hệ tọa độ phôi), G41/G42 (bù bán kính dao trái/phải), G43/G44 (bù chiều dài dao).
  • Lệnh M phụ trợ: M03/M04/M05 (quay trục chính), M08/M09 (tưới nguội), M30 (kết thúc và về đầu chương trình).

Cú pháp cụ thể có thể khác nhau tùy hãng bộ điều khiển — Fanuc, Siemens Sinumerik, Heidenhain — vì vậy kỹ thuật viên cần đối chiếu tài liệu của từng dòng máy.

Lưu ý khi sử dụng

Với chi tiết đơn giản, lập trình tay giúp người vận hành kiểm soát từng khối lệnh, dễ tinh chỉnh chiến lược cắt tại máy. Với chi tiết phức tạp, phần mềm CAM như Mastercam sinh G-code tự động, giảm sai sót và rút ngắn thời gian lập trình đáng kể.

Dù viết tay hay xuất từ CAM, bước mô phỏng (verify/backplot) trước khi chạy thật là bắt buộc — giúp phát hiện va chạm dao–phôi–đồ gá, kiểm tra thứ tự bước gia công và xác nhận chiều quay bù dao đúng phía. Một lỗi nhỏ trong khối G-code có thể dẫn đến gãy dao, hỏng phôi hoặc nguy hiểm cho máy, đặc biệt ở bước chạy dao nhanh G00 khi không có nội suy kiểm soát.

Loại lệnhHành viHệ quả khi đọc chương trình
ModalGiữ hiệu lực cho tới khi có lệnh cùng nhóm thay thếMột dòng không ghi G01 vẫn có thể đang chạy ở chế độ G01 do dòng trước để lại
Non-modalChỉ có hiệu lực đúng khối lệnh chứa nóMuốn lặp lại thì phải ghi lại ở mỗi khối

Đối chiếu: phân biệt modal / non-modal và cấu trúc chương trình NC — G-code là gì: cấu trúc chương trình NC và phân biệt modal / non-modal. Tra cứu 02/09/2026.

Đây là nguồn hiểu nhầm phổ biến nhất khi đọc chương trình của người khác: nhìn một dòng đơn lẻ và tưởng nó nói hết mọi thứ đang xảy ra. Trạng thái thật của máy tại một dòng là tích lũy của tất cả lệnh modal phía trên.

Vì sao G-code của mỗi hãng lại khác nhau

Nhóm lệnh chuyển động cơ bản gần như thống nhất giữa các hãng, nhưng chu trình cố định, lệnh gọi chương trình con và cú pháp tham số thì khác nhau đáng kể giữa Fanuc, Siemens, Mitsubishi và Haas. Hệ quả thực tế: chương trình chạy tốt trên máy này không đảm bảo chạy đúng trên máy khác, kể cả khi hai máy cùng hình dạng và cùng số trục.

Vì vậy khi CAM xuất chương trình, bộ hậu xử lý (post-processor) phải khớp đúng bộ điều khiển của máy đích, chứ không chỉ khớp loại máy.

Chương trình G-code chạy sai vì nguyên nhân gì

Lỗi G-code ít khi là lỗi cú pháp — máy bắt được cú pháp sai và báo ngay. Nguy hiểm nằm ở chương trình đúng cú pháp nhưng sai ý đồ: máy chạy trơn tru đúng thứ nó được bảo, chỉ có điều đó không phải thứ người lập trình định làm.

Hiện tượngHướng nguyên nhânChỗ kiểm trước
Dao lao vào phôi ở đoạn chạy dao nhanhLệnh định vị nhanh đi qua vùng có vật cảnMô phỏng toàn đường chạy, không chỉ đoạn cắt
Chi tiết lệch đúng một lượng cố định theo trụcSai hệ tọa độ phôi, hoặc chuẩn đặt saiHệ tọa độ đang gọi và giá trị chuẩn
Biên dạng lệch đều đúng bằng bán kính daoSai bù bán kính, hoặc bù nhầm phía trái/phảiLệnh bù và hướng vòng quanh biên dạng
Dao cắm sâu hơn dự tínhSai bù chiều dài dao sau khi thay daoBảng bù, quy trình đo chiều dài dao
Một dòng chạy khác hẳn dự đoán khi đọc riêng nóLệnh modal từ dòng trên còn hiệu lựcĐọc ngược lên tìm lệnh modal đang chi phối
Chương trình chạy tốt trên máy cũ, lỗi trên máy mớiChu trình cố định và cú pháp tham số khác giữa các hãng điều khiểnXuất lại bằng bộ hậu xử lý đúng của máy đích

Giới hạn cần nói rõ: mô phỏng kiểm được va chạm và hình học, nhưng không kiểm được chế độ cắt có hợp lý hay không. Một chương trình qua mô phỏng sạch vẫn có thể làm gãy dao nếu bước tiến và chiều sâu vượt sức dao ở độ vươn đang dùng.

Mẹo sai hay gặp: sửa nhanh tại máy rồi chạy luôn. Sửa tay tại máy không quay ngược về file CAM, nên lần xuất chương trình sau mất hết phần sửa đó — và lỗi cũ quay lại đúng như cũ.

Đối chiếu: so sánh G-code và M-code giữa các hãng điều khiển — Bảng tra G-code, M-code Siemens, Mitsubishi, Haas khác Fanuc. Tra cứu 16/09/2026.

Chương trình chạy được trên máy này, đem sang máy hãng khác thì sửa ở đâu

Đây là câu tốn giờ máy nhiều nhất trong nhóm lập trình, và nó không giải bằng cách đọc kỹ hơn chương trình cũ.

Phần lệnh chuyển động cơ bản gần như dùng chung. Phần lệnh phụ trợ và chu trình đóng gói của từng hãng thì không — đó mới là chỗ chương trình đứng máy hoặc chạy sai. Biết ranh giới giữa hai phần là biết chỗ nào phải rà tay khi đổi máy.

Và câu đi kèm: khi phát hiện sai, sửa ở G-code hay sửa ở CAM rồi xuất lại. Sửa tay nhanh cho lần này nhưng lần xuất sau mất hết — nên nó chỉ đúng khi chương trình đó không chạy lại nữa.

⇒ So sánh G-code giữa các hãng: Fanuc, Siemens, Mitsubishi, Haas · Bảng tra G-code chuẩn FANUC.

FAQ

G-code là gì? Là ngôn ngữ điều khiển máy CNC, gồm các khối lệnh chữ–số quy định chuyển động dao, tốc độ trục chính, bù dao và các chức năng phụ trợ. Bộ điều khiển đọc tuần tự từng khối và chuyển thành tín hiệu điều khiển các trục.

G-code và M-code khác nhau thế nào? Lệnh G điều khiển chuyển động và chế độ gia công (chạy nhanh, nội suy thẳng, nội suy cung, chu trình cố định). Lệnh M điều khiển chức năng phụ trợ của máy: quay và dừng trục chính, bật tắt tưới nguội, thay dao, kết thúc chương trình.

Modal nghĩa là gì trong G-code? Nghĩa là lệnh giữ hiệu lực cho tới khi bị một lệnh cùng nhóm thay thế. Vì vậy nhiều dòng trong chương trình không ghi lại lệnh chuyển động mà vẫn chạy đúng chế độ — chế độ đó do dòng phía trên đặt và còn hiệu lực.

Có cần biết viết tay G-code khi đã dùng CAM không? Có. CAM sinh phần lớn chương trình, nhưng đọc hiểu G-code là điều kiện để soát lỗi trước khi chạy, để sửa nhanh tại máy và để biết post-processor có xuất đúng ý đồ hay không.

Vì sao phải mô phỏng trước khi chạy thật? Vì một lỗi nhỏ trong khối lệnh có thể dẫn tới va chạm dao – phôi – đồ gá, gãy dao hoặc hỏng trục chính. Mô phỏng phát hiện va chạm, sai thứ tự nguyên công và sai chiều bù dao trước khi máy thực sự chuyển động — đặc biệt ở đoạn chạy dao nhanh, nơi máy đi hết tốc độ.

Chương trình chạy máy này đem sang máy khác có chạy được không? Không đảm bảo. Lệnh chuyển động cơ bản thì giống, nhưng chu trình cố định và cú pháp tham số khác nhau giữa các hãng điều khiển. Phải kiểm lại hoặc xuất lại từ CAM bằng post-processor đúng của máy đích.

Đọc sâu trên chuyên trang CAD – CAM – CAE

Trang thuật ngữ này trả lời nhanh "G-code là gì". Nội dung đầy đủ theo từng tình huống nằm ở chuyên trang CAD – CAM – CAE:

Chuyên mục gốc: Gia công CNC & cắt gọt

Thuật ngữ liên quan

  • G-code được dùng trong CNC
  • Mastercam được dùng trong G-code