Bảng tra M-code chuẩn FANUC dưới đây tổng hợp các mã lệnh phụ trợ (M-code) dùng phổ biến nhất trong lập trình CNC — khác với G-code (điều khiển chuyển động trục), M-code điều khiển các chức năng máy: bật/tắt trục chính, dung dịch làm nguội, đổi dao, dừng chương trình.
Nội dung thuộc chuyên trang CAD – CAM – CAE của cokhi.net, cụm Lập trình CAM — theo chuẩn Fanuc và tương thích. M-code là nhóm mã KÉM CHUẨN HÓA NHẤT trong lập trình NC: không như G-code (khung ISO 6983-1 tương đối thống nhất), phần lớn M-code do nhà sản xuất máy tự định nghĩa — cùng một số M có thể mang ý nghĩa khác nhau giữa các dòng máy, đặc biệt từ M10 trở lên. Bảng dưới chỉ gồm các mã cơ bản đã thống nhất rộng rãi; M-code riêng của máy phải tra đúng sổ tay của máy đó.
Bảng tra M-code cơ bản (thống nhất rộng rãi)
| M-code | Ý nghĩa |
|---|---|
| M00 | Dừng chương trình (program stop) — dừng hẳn, phải bấm Start lại thủ công |
| M01 | Dừng tùy chọn (optional stop) — chỉ dừng nếu người vận hành đã bật chế độ này |
| M03 | Quay trục chính — chiều thuận kim đồng hồ (CW) |
| M04 | Quay trục chính — chiều ngược kim đồng hồ (CCW) |
| M05 | Dừng quay trục chính |
| M06 | Đổi dao (tool change) |
| M08 | Bật dung dịch làm nguội (coolant on) |
| M09 | Tắt dung dịch làm nguội (coolant off) |
| M30 | Kết thúc chương trình, tua lại về đầu (end of program, rewind) |
Vì sao M-code không "chuẩn" như G-code
G-code cơ bản (chuyển động, chọn mặt phẳng, đơn vị đo...) được định nghĩa trong khung ISO 6983-1, nên tương đối nhất quán giữa các hệ điều khiển. M-code lại gắn trực tiếp với phần cứng cụ thể của từng máy (số trục chính, kiểu ổ dao, số vòi làm nguội, các chức năng phụ trợ riêng như cửa an toàn, băng tải phoi...) — mỗi hãng máy tự định nghĩa thêm M-code theo cấu hình máy của mình. M00–M09 và M30 là nhóm hiếm hoi đã thống nhất đủ rộng để coi là "chuẩn ngầm định", còn lại đều cần tra đúng sổ tay máy.
Sai lầm thường gặp
- Copy chương trình có M-code riêng của máy khác mà không đối chiếu sổ tay. M-code từ M10 trở lên rất dễ mang ý nghĩa hoàn toàn khác trên máy khác (ví dụ điều khiển kẹp/mở đồ gá, cửa an toàn) — chạy nhầm có thể gây va chạm hoặc mở cửa an toàn khi máy đang chạy.
- Nhầm M00 với M01. M00 luôn dừng; M01 chỉ dừng nếu công tắc "Optional Stop" trên bảng điều khiển đang bật — chương trình test dùng M01 để dừng kiểm tra từng đoạn, nhưng nếu công tắc tắt thì M01 bị bỏ qua hoàn toàn, dễ gây hiểu nhầm "sao chương trình không dừng".
- Quên M08 trước nguyên công cắt cần làm nguội. Nhất là khi copy-paste block giữa các đoạn chương trình, dễ sót lệnh bật dung dịch làm nguội cho nguyên công mới.
- Đặt M30 giữa chương trình do nhầm cấu trúc. M30 kết thúc và tua lại toàn bộ — nếu đặt nhầm vị trí, phần chương trình phía sau sẽ không bao giờ chạy.
Thuật ngữ
- M-code (miscellaneous function — lệnh phụ trợ): mã lệnh điều khiển chức năng máy không phải chuyển động trục.
- Optional stop: chế độ dừng có điều kiện, chỉ kích hoạt khi người vận hành bật công tắc tương ứng trên bảng điều khiển.
- Program stop / Program end: hai trạng thái dừng khác nhau — M00 dừng tạm (chạy tiếp được), M30 kết thúc và tua lại từ đầu.
Tài liệu tham khảo
- CNCCookBook, G-Code and M-Code List [Easy Examples & Tutorials] (định nghĩa M00–M30 theo bảng trên): https://www.cnccookbook.com/g-code-m-code-command-list-cnc-mills/
Cần đặt gia công CNC (phay/tiện) theo bản vẽ, xem dịch vụ gia công cơ khí. Xem thêm Bảng tra G-code chuẩn FANUC và G-code là gì? Cấu trúc chương trình NC.