Phần lớn thời gian máy CNC chỉ làm hai việc: chạy nhanh tới chỗ cần cắt, rồi cắt. Hai việc đó ứng với hai lệnh cơ bản nhất của G-code là G00 và G01.
Nghe đơn giản, nhưng nhiều vụ đâm dao, gãy dao lại bắt đầu từ một dòng G00 đặt sai chỗ. Bài này giải thích hai lệnh khác nhau ở đâu và quy tắc nào giúp tiếp cận phôi an toàn.
Nếu anh em mới làm quen G-code, nên đọc trước bài G-code là gì? và bài tọa độ tuyệt đối G90 và tương đối G91. Mọi ví dụ dưới đây đều dùng G90 và hệ tọa độ phôi G54.
G00 là gì: chạy nhanh để định vị
G00 là lệnh định vị nhanh. Máy di chuyển dao tới điểm đích với tốc độ chạy nhanh tối đa do nhà sản xuất cài trong tham số máy. Lệnh này không dùng để cắt.
- Không cần F. Tốc độ G00 lấy từ tham số máy, giá trị F trong chương trình không ảnh hưởng tới nó.
- Tốc độ rất cao. Tùy máy, tốc độ chạy nhanh thường từ khoảng 10 tới vài chục mét mỗi phút. Một va chạm ở tốc độ này thường làm hỏng dao, đồ gá, có khi cả trục chính.
- Điều chỉnh bằng núm Rapid Override. Trên nhiều máy Fanuc, các nấc thường là F0, 25%, 50%, 100%. Núm Feed Override của G01 không quyết định tốc độ G00.
- Là lệnh modal. Đã viết
G00thì các dòng sau vẫn là G00 cho tới khi gặpG01,G02,G03hoặc lệnh khác cùng nhóm.
Đường đi của G00 không chắc là đường thẳng
Đây là điểm nhiều người mới hiểu sai. Khi một dòng G00 có nhiều trục, ví dụ G00 X100. Y50., máy có thể không đi theo đường thẳng tới đích.
Trên Fanuc, tùy cài đặt tham số, G00 có hai kiểu: kiểu nội suy thẳng (các trục cùng tới đích một lúc) và kiểu không nội suy (mỗi trục chạy hết tốc độ riêng, trục nào xong trước thì dừng trước). Kiểu thứ hai tạo ra đường gấp khúc kiểu “chân chó”. Dao có thể quét qua góc đồ gá mà nhìn chương trình không thấy. Hãy luôn giả định máy có thể đi gấp khúc, và kiểm tra sổ tay máy để biết chắc.
G01 là gì: cắt theo đường thẳng với tốc độ F
G01 là nội suy đường thẳng. Dao đi theo đúng một đường thẳng từ vị trí hiện tại tới điểm đích, với lượng chạy dao F do người lập trình chọn. Đây là lệnh dùng để cắt.
- Bắt buộc có F. Trên máy phay, F thường tính bằng mm/phút (chế độ
G94). F cũng là modal: viết một lần, các dòng G01 sau dùng tiếp cho tới khi đổi. - Thiếu F sẽ báo lỗi. Trên Fanuc, nếu chưa có F nào từ đầu chương trình, máy dừng và báo lỗi lượng chạy dao bằng 0 (alarm 011 trên nhiều đời máy). Mã alarm cụ thể xem sổ tay máy.
- Điều chỉnh bằng Feed Override. Thường từ 0% tới 150% hoặc 200%, tùy máy.
- Đường đi luôn thẳng. Kể cả khi chạy cả X, Y, Z trong một dòng, các trục được phối hợp để dao đi đúng đường thẳng.
Muốn tính F cho đúng, cần biết số vòng quay S, số răng dao và lượng ăn mỗi răng. Anh em có thể dùng nhanh máy tính chế độ cắt trên trang chủ.
So sánh nhanh G00 và G01
| Tiêu chí | G00 | G01 |
|---|---|---|
| Mục đích | Định vị nhanh, không cắt | Cắt theo đường thẳng |
| Tốc độ | Theo tham số máy | Theo F trong chương trình |
| Cần F không | Không | Có |
| Đường đi nhiều trục | Có thể gấp khúc, tùy tham số | Luôn thẳng |
| Núm điều chỉnh | Rapid Override | Feed Override |
| Dùng khi | Tới điểm bắt đầu, rút dao, đổi vị trí | Ăn dao Z, cắt rãnh, cắt biên dạng |
5 quy tắc tiếp cận phôi an toàn
1. Đi XY trước, hạ Z sau
Khi tiến vào phôi, chạy nhanh X, Y tới đúng vị trí ở độ cao an toàn, rồi mới hạ Z. Đừng viết chung X, Y, Z trong một dòng G00 khi dao đang hạ xuống gần phôi. Nếu máy đi gấp khúc, trục Z có thể xuống tới đáy trước khi X, Y kịp tới nơi.
2. Rút Z trước, đi XY sau
Khi rời phôi thì làm ngược lại: rút Z lên cao an toàn trước, sau đó mới chạy X, Y đi chỗ khác.
3. G00 chỉ xuống tới mặt phẳng an toàn
G00 dừng ở trên mặt phôi một khoảng hở, thường 2–5 mm, ví dụ Z5.. Nếu mặt phôi thô, chưa phay phẳng, hoặc chưa chắc chắn chiều cao, nên để khoảng hở lớn hơn. Từ đó trở xuống dùng G01 với F nhỏ.
4. Ăn dao Z bằng G01, ưu tiên ăn ngoài phôi
Dao phay ngón không phải dao khoan. Nếu được, hãy hạ Z ở vị trí ngoài phôi rồi cắt ngang vào. Nếu buộc phải ăn dao trong vật liệu, dùng dao có răng cắt qua tâm, giảm F khi xuống, hoặc ăn xoắn/ăn xiên.
5. Luôn viết dấu chấm thập phân
Trên Fanuc, với cài đặt thường gặp, X40 không có dấu chấm được hiểu là 0,040 mm, còn X40. mới là 40 mm. Với G00, sai một dấu chấm có thể đưa dao tới chỗ hoàn toàn khác dự định. Thói quen an toàn là luôn viết X40., Z5., F300..
Chương trình mẫu: phay rãnh thẳng
Bài toán: phôi thép 80 × 40 mm. Gốc G54 đặt ở góc trái dưới, Z0 ở mặt trên phôi. Cần phay một rãnh thẳng sâu 2 mm, chạy dọc hết chiều dài phôi, tâm rãnh ở Y20. Dùng dao phay ngón carbide D8, 4 răng, số dao T1, bù chiều dài H01.
Đọc lại từng bước theo hình minh họa đầu bài:
- X-10. Y20. Bán kính dao là 4 mm, nên mép dao ở X-6, cách mép phôi 6 mm. Dao đứng ngoài phôi, an toàn để hạ Z.
- G43 H01 Z50. Bật bù chiều dài dao, đưa dao về Z50 so với mặt phôi. Cách đo H01 xem bài bù chiều dài dao G43.
- G00 Z5. Chạy nhanh xuống còn 5 mm trên mặt phôi, rồi dừng.
- G01 Z-2. F100. Hạ dao với F100 tới độ sâu cắt. Vì đang ở ngoài phôi nên dao không phải khoan vào vật liệu.
- G01 X90. F300. Cắt hết rãnh. Mép phải dao ở X94, vượt mép phôi X80 là 14 mm, rãnh thông hết chiều dài.
- G00 Z50. Rút Z lên trước, không di chuyển X, Y cùng lúc.
Kiểm tra chế độ cắt: tốc độ cắt Vc = π × 8 × 3000 / 1000 ≈ 75 m/phút. Lượng ăn mỗi răng fz = 300 / (3000 × 4) = 0,025 mm/răng. Đây là mức nhẹ cho phay rãnh ngập dao trên thép, chỉ để tham khảo; cần chỉnh theo khuyến cáo hãng dao và độ cứng vững của máy.
Những lỗi hay gặp với G00 và G01
- Quên chuyển sang G01. Viết
G00 Z5.rồi dòng sau chỉ viếtZ-2.. Vì G00 là modal, dao lao thẳng vào phôi với tốc độ chạy nhanh. - Gộp X, Y, Z trong một dòng G00 khi hạ dao. Đường gấp khúc có thể quét qua ê tô hoặc bu lông kẹp.
- Mặt phẳng an toàn quá thấp. Z5. là an toàn trên mặt phôi phẳng, nhưng không an toàn nếu trên đường đi có đồ gá, kẹp cao hơn mặt phôi.
- Hiểu sai Override. Giảm Feed Override nhưng quên giảm Rapid Override, nên các đoạn G00 vẫn chạy rất nhanh khi chạy thử.
Câu hỏi thường gặp
Có thể viết F trong dòng G00 không?
Có thể viết, máy không báo lỗi, nhưng G00 vẫn chạy theo tốc độ trong tham số. Giá trị F đó được ghi nhớ và áp dụng cho các lệnh G01, G02, G03 phía sau. Để dễ đọc, nên viết F trên dòng G01.
G0 và G00, G1 và G01 có khác nhau không?
Trên Fanuc, G0 và G00 là một, G1 và G01 cũng vậy. Số 0 phía trước có thể bỏ. Nhiều xưởng vẫn viết đủ hai chữ số để chương trình thống nhất, dễ đọc.
Có nên dùng G01 với F rất lớn thay cho G00 để an toàn hơn?
Có thể. Cách này cho đường đi chắc chắn thẳng, nhưng tốc độ khi đó do Feed Override điều chỉnh chứ không phải Rapid Override, cần nhớ khi chạy thử. Cách phổ biến, dễ kiểm soát hơn vẫn là G00 tới mặt phẳng an toàn, tách riêng XY và Z.
Nắm chắc G00 và G01 là nền móng cho mọi lệnh sau, từ cung tròn G02/G03 tới các chu trình khoan. Một chương trình an toàn trước hết là chương trình mà mọi đoạn chạy nhanh đều đi qua vùng trống.

Để lại một bình luận