Hai chương trình có thể giống nhau đến từng con số, nhưng một cái chạy đúng, một cái đâm dao. Khác biệt đôi khi chỉ nằm ở một chữ: G90 hay G91.
Đây là cặp lệnh chọn cách hiểu tọa độ. Với G90, con số sau X, Y, Z là vị trí điểm đích. Với G91, con số đó là quãng đường phải đi thêm. Người mới thường thuộc định nghĩa, nhưng vẫn quên chuyển lại G90 sau một đoạn G91. Bài này giải thích hai chế độ, khi nào dùng cái nào, và cách viết để không bị “kẹt” ở G91. Ví dụ viết cho Fanuc phay. Nếu anh em chưa rõ gốc G54 là gì, nên đọc trước bài Hệ tọa độ máy và hệ tọa độ phôi.
G90 là gì? Tọa độ tuyệt đối
Ở chế độ G90, mọi tọa độ được tính từ gốc phôi đang dùng (G54, G55…). Lệnh G01 X50. Y10. nghĩa là: đưa tâm dao tới điểm có X = 50 mm, Y = 10 mm so với gốc phôi. Dao đang ở đâu không quan trọng.
Ưu điểm lớn nhất là đọc thẳng được từ bản vẽ. Bản vẽ ghi kích thước từ một chuẩn, người lập trình đặt G54 trùng chuẩn đó, rồi chép tọa độ vào chương trình. Mỗi dòng độc lập với dòng trước. Một dòng sai chỉ làm sai đúng điểm đó.
G91 là gì? Tọa độ tương đối
Ở chế độ G91, con số sau X, Y, Z là khoảng dịch chuyển tính từ vị trí hiện tại. Dao đang ở X10. thì G91 G01 X40. đưa dao tới X50. Còn X-40. đưa dao lùi về 40 mm.
Công thức nhớ nhanh: giá trị G91 = điểm đích − điểm hiện tại, tính riêng cho từng trục. Trục nào không ghi trong dòng thì trục đó đứng yên, ở cả hai chế độ.
G90vàG91đều là lệnh modal: có hiệu lực cho tới khi gặp lệnh kia.- Hai lệnh cùng nhóm 03, nên một dòng chỉ nên có một trong hai.
- Lúc bật máy hoặc reset, máy ở G90 hay G91 là do tham số. Trên Fanuc, anh em kiểm tra sổ tay của máy mình. Vì vậy luôn ghi
G90ở dòng đầu chương trình.
Cùng một đường chạy dao, hai cách viết
Lấy ví dụ ở hình trên: phay rãnh vuông, tâm dao đi hình chữ nhật 40 x 30 mm, bắt đầu từ điểm A (X10. Y10.). Bảng dưới so sánh tọa độ phải viết cho từng đoạn.
| Đoạn | Điểm đích | Viết G90 | Viết G91 |
|---|---|---|---|
| A → B | X50 Y10 | X50. | X40. |
| B → C | X50 Y40 | Y40. | Y30. |
| C → D | X10 Y40 | X10. | X-40. |
| D → A | X10 Y10 | Y10. | Y-30. |
Kiểm tra lại cột G91: B → C có Y từ 10 lên 40, nên 40 − 10 = 30. C → D có X từ 50 về 10, nên 10 − 50 = −40. Cộng cả bốn đoạn theo X: 40 + 0 − 40 + 0 = 0. Theo Y: 0 + 30 + 0 − 30 = 0. Tổng bằng 0 nghĩa là dao quay về đúng điểm xuất phát. Đây là cách tự soát nhanh một biên dạng khép kín viết bằng G91.
Chương trình mẫu: phay rãnh vuông dùng G91 cho đường biên
Chương trình dưới dùng G90 cho mọi chuyển động tiếp cận và rút dao. Chỉ bốn đoạn chạy biên dùng G91. Ngay sau đoạn cuối, chương trình chuyển lại G90 trên cùng dòng với lệnh rút dao.
Vài điểm cần để ý:
- Trục Z luôn ở G90. Chương trình đặt Z50., Z5., Z-2. khi đang tuyệt đối. Ăn dao Z bằng G01 với F thấp. Không bao giờ để một lệnh Z âm chạy ở G91 mà không chắc dao đang ở đâu.
G91 G28 Z0.là cách viết quen thuộc trên Fanuc. G28 đi qua một điểm trung gian rồi về gốc máy. Ở G91, Z0. nghĩa là điểm trung gian chính là vị trí hiện tại, nên dao đi thẳng lên về gốc máy. Nếu viếtG90 G28 Z0., điểm trung gian là Z0 của phôi, tức mặt phôi. Dao có thể cắm xuống mặt phôi trước khi lên.- Dòng cuối trả lại
G90để chương trình sau không thừa hưởng G91. - Ví dụ này chạy theo đường tâm dao, chưa dùng bù bán kính. Bù bán kính G41/G42 sẽ có bài riêng.
Khi nào nên dùng G91?
Phần lớn chương trình nên viết bằng G90. G91 có chỗ đứng riêng ở vài tình huống:
- Lặp một mẫu hình ở nhiều vị trí. Viết một biên dạng bằng G91, đặt trong chương trình con, rồi gọi ở nhiều điểm bắt đầu khác nhau. Chương trình con M98/M99 sẽ có bài riêng.
- Dãy lỗ cách đều. 5 lỗ bước 15 mm bắt đầu từ X12.: viết G90 là X12., X27., X42., X57., X72. Viết G91 thì sau lỗ đầu chỉ cần
X15.lặp lại 4 lần. - Thao tác MDI. Cần nhấc dao lên thêm 10 mm mà không cần biết Z hiện tại là bao nhiêu.
- Về gốc máy bằng
G91 G28như ví dụ trên.
Nhược điểm của G91: sai số và lỗi bị cộng dồn
Ở G91, mỗi điểm phụ thuộc điểm trước. Một dòng gõ sai sẽ làm lệch toàn bộ các điểm phía sau, không chỉ một điểm.
Sai số làm tròn cũng cộng dồn. Ví dụ chia đoạn 31 mm thành 3 khoảng đều: mỗi khoảng là 10,3333… mm. Viết G91 X10.333 ba lần thì dao đi được 30,999 mm, thiếu 0,001 mm. Nhỏ, nhưng với 30 khoảng thì đã thiếu 0,01 mm. Viết G90 bằng tọa độ tính từ gốc thì không có lỗi cộng dồn này.
Những lỗi G90/G91 hay gặp
- Quên chuyển về G90. Dòng
Z5.tiếp theo không đưa dao tới Z5. mà nâng thêm 5 mm. Nguy hiểm hơn, một dòngZ-2.sẽ hạ thêm 2 mm mỗi lần chạy lại. - Chạy lại giữa chương trình. Bắt đầu từ một dòng nằm trong đoạn G91 thì máy không biết điểm xuất phát đúng. Chỉ khởi động lại ở dòng có G90 và tọa độ đầy đủ.
- Gõ thiếu dấu trừ hoặc dấu chấm. Trên Fanuc,
X40không có dấu chấm có thể bị hiểu là 0,040 mm tùy tham số. Luôn viếtX40. - Lẫn quy ước trên máy tiện. Xem câu hỏi thường gặp bên dưới.
Khi nhờ AI viết hoặc soát chương trình, anh em nên yêu cầu nó chỉ ra từng dòng đang ở G90 hay G91. Cách làm cụ thể có trong bài Nhờ AI viết và kiểm tra G-code.
DISTANCE TO GO và so với quãng đường anh em dự tính. Thấy Z còn đi xuống nhiều hơn dự kiến là dừng máy ngay.Câu hỏi thường gặp
Máy bật lên mặc định là G90 hay G91?
Trên Fanuc, chế độ mặc định khi bật máy hoặc reset được chọn bằng tham số, đa số máy đặt G90. Đừng dựa vào mặc định. Dòng an toàn đầu chương trình luôn có G90.
G90/G91 có ảnh hưởng tới I, J, K của G02/G03 không?
Trên Fanuc phay, I, J, K là khoảng cách từ điểm đầu cung tới tâm cung, luôn tính tương đối, dù đang ở G90 hay G91. Còn X, Y điểm cuối cung thì theo G90/G91. Một số bộ điều khiển khác có chế độ tâm cung tuyệt đối, cần xem sổ tay máy.
Máy tiện CNC có dùng G91 không?
Tùy hệ G-code. Trên tiện Fanuc dùng hệ A (khá phổ biến), không dùng G91. Tọa độ tuyệt đối viết bằng X, Z, còn tương đối viết bằng U, W. Ở hệ này G90 lại là chu trình tiện trục, không phải lệnh tuyệt đối. Hệ B và C thì dùng G90/G91 như máy phay. Xưởng tôi có cả máy tiện CNC và trung tâm gia công Okuma, Matsuura, nên luôn dặn thợ: đổi máy là đối chiếu lại sổ tay, không mang thói quen từ máy này sang máy kia.

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