G-Code là gì? ý nghĩa lệnh G-Code và M-Code trong máy CNC

G-Code được hiểu đơn giản là ngôn ngữ lập trình cho máy tính điều khiển số (Computer Numerical Control). Sử dụng mã G-code để chỉ thị vị trí cho máy CNC đi đến đâu và cách thức di chuyển…

1. G-Code là gì?

Nếu bạn đang dấn thân có ý định dấn thân vào ngành công nghệ gia công cắt gọt cơ khí CNC và lập trình gia công CAM, hoặc chỉ tìm hiểu về các bộ phận cơ bản của máy CNC cho người mới bắt đầu, bạn có thể đã nghe nói về thuật ngữ G-code, thì G-code ở đây được hiểu đơn giản là ngôn ngữ lập trình cho máy tính điều khiển số (Computer Numerical Control). Trong bài viết này, tôi sẽ giới thiệu cho bạn những điều cơ bản về mã G-code và cách bắt đầu tìm hiểu về nó.

Người vận hành máy CNC sử dụng mã G-code này để chỉ thị vị trí cho máy CNC đi đến đâu và cách thức di chuyển. Mã này ra lệnh cho máy nên di chuyển theo hướng nào, nên di chuyển nhanh như thế nào, nên cắt sâu bao nhiêu, v.v.

Ban đầu, ta sẽ lập trình trên chi tiết theo yêu cầu và sẽ được nạp vào máy. Sau đó, làm theo các hướng dẫn được cung cấp bởi mã G-code, công cụ cắt sẽ tiến hành cắt gọt nguyên liệu ra khỏi khối để tạo ra sản phẩm hoàn chỉnh.

Mã G-code là một trong những ngôn ngữ lập trình được sử dụng rộng rãi nhất được sử dụng để điều khiển các máy cơ khí tự động. Hầu hết các máy CNC xuất hiện trên thị trường thường sử dụng mã lệnh G-code để lập trình, mặc dù còn có sự xuất hiện của các ngôn ngữ CNC khác, chẳng hạn như Heidenhain, Mazak và các định dạng độc quyền khác.

Các thợ máy CNC có thể viết mã G-code từ đầu bằng tay, chỉnh sửa mã G-code hiện có trên bộ nhớ của máy CNC hoặc tạo đoạn mã G-code bằng các phần mềm lập trình gia công CAM như MasterCAM, Siemens NX, vv. Các phần mềm CAM có thể tạo mã G-code từ hình ảnh hoặc tệp CAD. Trong ngành công nghiệp CAD rộng lớn ngày nay, cũng có các chương trình chỉnh sửa CAD tự động chuyển đổi các tệp CAD thành mã G-code.

2. Ý nghĩa và cách thức lập trình G-Code

Một dòng mã G-code điển hình khá khó hiểu đối với người mới, phải mất nhiều năm để một thợ máy CNC thành thạo ngôn ngữ. Trong khi toàn bộ ngôn ngữ được gọi là mã G-code, về mặt kỹ thuật nói “mã” chỉ nói đến một hướng dẫn duy nhất trong ngôn ngữ. Mỗi “mã” bao gồm một địa chỉ chữ cái và một số và đưa ra một hướng dẫn cụ thể cho máy.

Hầu hết các dòng mã G-code sẽ bắt đầu bằng chữ G – do đó tại sao ngôn ngữ có tên! Điều này là do chữ G biểu thị mã chuẩn bị. Chúng báo cho máy biết loại chuyển động nào là bắt buộc hoặc sử dụng giá trị bù nào. Do đó, các mã bắt đầu bằng G hầu như luôn được tìm thấy khi bắt đầu một dòng mã G. Ví dụ: G00 (lệnh định vị dao nhanh, dụng cụ cắt sẽ di chuyển với tốc độ tối đa); G01 (lệnh nội suy cắt gọt di chuyển theo đường thẳng với tốc độ tiến dao F do người vận hành thiết lập); G02 (lệnh nội suy cắt gọt cung tròn cùng chiều kim đồng hồ) và G03 (lệnh nội suy cung tròn ngược chiều kim đồng hồ).

Không phải tất cả các mã G đều bắt đầu bằng chữ G!

Trong khi các mã bắt đầu bằng G là cực kỳ phổ biến, tất cả 26 chữ cái của bảng chữ cái được sử dụng trong mã G. Ví dụ: S (thiết lập tốc độ quay cho trục chính); F (thiết lập tốc độ di chuyển tịnh tiến của bàn máy). Có một số điều cơ bản quan trọng khác cần biết, chẳng hạn như:

Chữ X chỉ thị sự di chuyển ngang trục X của bàn máy.

Chữ Y chỉ thị sự di chuyển dọc trục Y của bàn máy.

Chữ Z chỉ thị độ sâu di chuyển của trục Z.

Các số bên cạnh các chữ cái này xác định tọa độ di chuyển cho bàn máy.

Các bạn có thể tìm hiểu tất cả các mã lệnh G-code thường được sử dụng trong CNC.

3. Các mã lệnh dùng G-Code trong máy CNC

G90: Lập trình theo tọa độ tuyệt đối, lấy tọa độ so với điểm chuẩn đã chọn.

G91: Lập trình theo tọa độ tương đối, lấy tọa độ so với điểm phía trước.

G28: lùi dao về tham chiếu G91G28Z0;

G54: Lưu gốc tọa độ phôi

G00: Lệnh chạy dao nhanh không cắt gọt

  • Cú pháp: G00X_Y_Z_; (X, Y ,Z là tọa độ điểm cần di chuyển đến)
  • Khi đã sử dụng G00 trong chương trình, thì nó luôn có hiệu lực cho đến khi một mã G khác trong nhóm 01 (G00, G01, G02, G03) được sử dụng.
  • VD: G90G00X20.Y14.;
    G90G00X-15.Y-18.3;
    G91G00X-27.5Y20.;

G01: dùng để điều khiển dao dịch chuyển theo đường thằng, có cắt gọt.

  • Cú pháp: G01X_Y_Z_F;
  • Trong đó: G01 là mã lệnh. X, Y, Z là tọa độ điểm đến. F là lượng tiến dao (mm/phút)

Ví dụ:   G90G01X25.Y40.5F300;

X15.Y40.5;

X15.Y30.;

G91G01X30.Y40.F200;

X5.Y10.;

X-8.Y7.;

  • Lưu ý: lệnh G01 có thể dùng để vát cạnh

G02: điều khiển dụng cụ di chuyển theo cung tròn cùng chiều kim đồng hồ.

G03: điều khiển dụng cụ di chuyển theo cung tròn ngược chiều kim đồng hồ.

  • Lệnh nội suy cung tròn trên mp XY
    • G17G02(G03)X_Y_I_J_F_;
    • G17G02(G03)X_Y_R_F_;
  • Lệnh nội suy cung tròn trên mp XZ
    • G18G02(G03)X_Z_I_K_F_;
    • G18G02(G03)X_Z_R_F_;
  • Lệnh nội suy cung tròn trên mp YZ
    • G19G02(G03)Y_Z_J_K_F_;
    • G19G02(G03)Y_Z_R_F_;
  • Trong đó: I, J, K khoảng cách và chiều dài tính từ điểm bắt đầu đến tâm cung tròn, tính theo tọa độ tương đối, được xác định bằng cách đặt tọa độ tại điểm bắt đầu, rồi xác định các giá trị I, J, K so với tọa độ đó.

G04 lập trình với thời gian dừng ở cuối hành trình

  • Cú pháp:  G04X_; hoặc G04P_;
  • Trong đó:
    • X thời gian dừng được tính bằng giây, có thể biểu diễn số thập phân
    • P thời gian dừng được tính bằng phần ngàn của giây, không thể biểu diễn số thập phân
  • Ví dụ:
    • G04X3.5; dừng 3.5 giây
    • G04P3500; dừng 3.5 giây

G15, G16 lập trình trong hệ tọa độ cực, thông qua bán kính và góc xoay, G16 (khởi động hệ tọa độ cực), G15 (hủy lập trình tọa độ cực).

  • Chú ý: Một số lệnh không dùng trong hệ tọa độ cực: G40, G52, G92, G53, G22, G68, G51.
  • Cú pháp:
    • G17G90G16;
    • X_Y_;
  • Trong đó:
    • X: bán kính xoay
    • Y: Góc xoay
  • Ví dụ:
    • Tuyệt đối:
      G17G90G16;G81X20Y60Z-30R5F300;Y120;Y180;Y240;G15G80;
    • Tuyệt đối cho bán kính, tương đối cho góc:
      G17G90G16;

G81X20Y60Z-30R5F300;

G90Y60;

Y60;

Y60;

G15G80;

G40, G41, G42 Bù trừ bán kính dao, hay offset dao, dùng để cắt đúng biên dạng chi tiết gia công để không lẹm vào chi tiết.

G41: Bù trừ dao bên trái

G42: Bù trừ dao bên phải

G40: Hủy bù trừ dao.

Để xác định bù trừ dao bên trái hay phải bằng cách, đứng tại điểm tiếp xúc để xét, nếu dao nằm bên trái thì dùng G41, dao nằm bên phải dùng G42.

  • Cú pháp:          G01G41(G42)X_Y_D_;
  • Trong đó:         X, Y là tọa độ điểm đến. D là số offset dao (trên máy phải cho tham số No.36#6 là 1)

G43, G49 Bù trừ chiều dài dao, mỗi dao có chiều dài khác nhau, vì vậy ta dùng bù trừ chiều dài dao tại một điểm để dễ gia công.

G43 Thiết lập bù trừ chiều dài dao

G49 Lệnh hủy bù trừ chiều dài dao

  • Cú pháp:          G00G43Z_H_;
  • Trong đó:         Z là tọa độ điểm xét bù trừ theo phương Z.  H là số offset dao

G50, G51 Dùng để phóng to và thu nhỏ đường dịch chỉnh của dao

G51 Thiết lập lệnh phóng to, thu nhỏ.

G50 Lệnh hủy phóng to, thu nhỏ.

  • Cú pháp:          N1G51X_Y_Z_P_;

N2……

N3……       vùng lệnh khuếch đại có hiệu lực

N4……

N5G50        kết thúc khuếch đại

  • Trong đó:         X, Y, Z là tọa độ tâm khuếch đại (tính theo tuyệt đối). P là hệ số khuếch đại chung cho tất cả các trục, không có dấu chấm thập phân. P1000 ứng với hệ số khuếch đại là 1.
  • Ví dụ:        G51X10Y10P2000;

G90G01X5Y5F200;

X15Y5;

X10Y15;

X5Y5;

G50;

  • Để khuếch đại riêng cho từ trục, ta viết cú pháp như sau:

N1G51X_Y_Z_I_J_K_;

N2……..

N3……..     vùng khuếch đại có hiệu lực

N4……..

N5G50        kết thúc khuếch đại

  • Trong đó:    X, Y, Z là tâm khuếch đại. I, J, K là hệ số khuếch đại tương ứng với từng trục X, Y, Z
  • Ví dụ:             G51X10Y10I2000J500;

G90G00X5Y5;

X15Y5;

X10Y15;

X5Y5;

G50;

Chú ý:

  • Khuếch đại phải được hủy trước khi dùng các lệnh G27, G28, G29, G30, G92.
  • Việc phóng tó thu nhỏ sẽ không ảnh hương tới tham số Z, R, Q, P trong các chu trình đã lập sẵn.
  • Việc phóng to thu nhỏ sẽ không ảnh hưởng đến offset dao theo bán kính.
  • Có thể dùng G51 để lấy đối xứng theo các trục nếu hệ số khuếch đại là -1.

G68, G69  Lệnh xoay tọa độ

G68          Thiết lập xoay tọa độ

G69          Hủy xoay tọa độ

  • Cú pháp:          G68X_Y_R_;
  • Trong đó:         X,Y là tâm xoay

R là góc xoay giới hạn từ -360đến 360o

  • Ví dụ:

Chú ý:

  • Nếu không chỉ ra X, Y trong lệnh G68 thì tâm xoay sẽ là vị trí mà dụng cụ đang đứng.
  • Nếu góc xoay bị bỏ qua trong lệnh G68 thì giá trị thiết lập bởi tham số No730 sẽ là góc xoay.
  • Lệnh G69 có thể đứng chung với các lệnh khác trong một dòng lệnh, sau khi xoay offset dao có hiệu lực. Nếu G69 đứng chung với các lệnh chuyển động thì các lệnh này phải lập trình tuyệt đối.

Các chu trình khoan lỗ:

Chú ý:

  • Không dùng các lệnh G00, G01, G02, G03 trong các chu trình gia công lỗ, nếu có các lệnh này thì chu trình gia công lỗ sẽ bị hủy
  • Để hủy các chu trình khoan lỗ ta dùng G80
  • Dùng G98 thì sau khi khoan dao sẽ lùi về cao độ xuất phát, dùng G99 thì dao sẽ lùi về cao độ an toàn R.

G83, G73 chu trình khoan lỗ

G83 dùng để khoan lỗ sâu, hay khoan mồi. Quá trình khoan: dao sẽ di chuyển đến cách bề mặt gia công một khoảng R , từ cao độ R sẽ khoang xuống 1 lượng Q, sau đó lùi về vị trí R để thoát phoi, sau đó di chuyển xún cách mặt vừa gia công 1 khoảng d, rồi gia công tiếp, cứ thế cho đến hết lỗ, giá trị d được thiết lập bởi tham sô No532.

G73 Chu trình khoan lỗ có bẻ phôi, cũng giống như G83 nhưng khác ở chỗ sau khi khoan nó sẽ ko lùi dao về vị trí cắt mặt khoảng R mà lùi về cách bề mặt đang gia công một đoạn d rồi gia công tiếp.

  • Cú pháp:          G83(G73)X_Y_Z_Q_R_F_;
  • Trong đó:         X, Y là tọa độ tâm lỗ

Z là cao độ Z của điểm cuối lỗ

Q chiều sâu mỗi lần cắt

R khoảng cách an toàn

F lượng ăn dao mm/phút

Ví dụ: G83X20.Y30.Z30.Q2R5F200;

G81 Chu trinh khoét hay doa lỗ không dừng ở cuối hành trình

  • Cú pháp:           G81X_Y_Z_R_F_;
  • Trong đó:         X,Y tọa độ tâm lỗ

Z cao độ của điểm cuối lỗ

R khoảng cách an toàn

F lượng ăn dao mm/phút

Ví dụ: G81X20Y20Z25R5F200;

G82 Chu trình doa lỗ có dừng ở cuối hành trình

  • Cú pháp:          G82X_Y_Z_R_P_F_;
  • Trong đó:         X, Y là tọa độ tâm lỗ

Z cao độ của điểm cuối lỗ

R khoảng cách mặt an toàn

P thời gian dừng ở cuối hành trình x1000

F lượng ăn dao

  • Ví dụ:        G82X15Y35Z40R5P3000F300;

G84, G74 Chu trình taro ren

G84 Chu trình taro ren phải.

G74 chu trình taro ren trái.

  • Cú pháp:          G84(G74)X_Y_Z_R_P_F_;
  • Trong đó:         X, Y tọa độ tâm lỗ

Z cao độ điểm cuối hành trình

R khoảng cách an toàn

P thời gian dừng ở cuối hành trình x1000

F là lượng ăn dao, khi ta taro thì giữa F và số vòng quay trục chính S có mỗi quan hệ với nhau.

F = S x P

Trong đó:

F lượng ăn dao

S số vòng quay trục chính

P bước ren ( được tính theo công thức h = 0,625P với h là chiều cao ren)

G85, G86 chu trình doa lỗ.

G85 dùng để doa tinh lỗ, đặc điểm là dụng cụ đi từ điểm an toàn R đến cao độ Z, và từ cao độ Z về lại khoảng an toàn R với cùng một lượng ăn dao F.

G86 đặc điểm: khi dụng cụ đến cao độ Z thì trục chính ngừng quay và quay về cao độ R.

  • Cú pháp:          G85(G86)X_Y_Z_R_F_;
  • Trong đó:         X, Y tọa độ tâm lỗ

Z cao độ điểm cuối lỗ

R khoảng cách an toàn

F lượng ăn dao

G76 Chu trình doa lỗ tinh

  • Cú pháp:          G76X_Y_Z_R_Q_P_F_;
  • Trong đó:         X, Y là tọa độ tâm lỗ

Z cao độ điểm cuối

R khoảng cách an toàn

Q khoảng lùi dao ngang tại đáy lỗ

P thời gian dừng cuối hành trình

F lượng ăn dao

Chu trình con

  • Cấu trúc của chương trình con

O0001;                 tên chương trình con

….

….                        Vùng thân chương trình

….

M99;                    kết thúc chương trình con

  • Cách gọi chương trình con

M98Pxxxxyyyy;

  • Trong đó: xxxx là số lần gọi chương trình con. yyyy là tên chương trình con
  • Ví dụ: M98P200010 (gọi chương trình con 0010 ra 20 lần)
    • Khi không chỉ ra số lần gọi thì máy mặc định là gọi ra 1 lần
    • Số thế hệ tối đa có thể lồng nhau là 4, chương trình chính gọi chương trình con, chương trình con gọi chương trình cháu, chương trình cháu gọi chương trình chắc. Số lần gọi tối đa là 999 và có thể gọi chương trình con tại mọi thời điểm.
    • Sau khi thực hiện xong chương trình con xong, hệ thống không trở về nơi đã gọi mà có thể nhảy đến dòng khác, câu lệnh như sau:
    • M99Pzzzz (zzzz là số thứ tự dòng cần đến)
  • Ví dụ: M99P1010   –  sau khi thực hiện xong chương trình con thì nó sẽ nhảy đến dòng N1010 .

4. Các mã lệnh dùng M-Code trong máy CNC

M00 – Tạm dừng chương trình

M01 – Tạm dừng chương trình có lựa chọn

M02,M30 – kết thúc chương trình, quay lại đầu chương trình

M03 – Trục chính quay thuận

M04 – Trục chính quay ngược

M05 – Dừng quay trục chính

M08 – Bật tước nguội

M09 – Tắt tưới nguội

M10 – Đóng thủy lực với máy tiện là chấu cặp (máy FEELLER hệ fanuc series oi-MD)

M11 – Mở thủy lực máy tiện là chấu cặp ( máy FEELLER hệ fanuc series oi-MD)

M12 – Đóng thủy lực máy tiện là chấu cặp ( GSK 945, STK T200… )

M13 – Mở thủy lực máy tiện là chấu cặp( GSK 945, STK T200… ) (Đối với máy Feeler hệ fanuc series -oi MD thì M12 và M13 là lệnh đóng mở thủy lực của ụ động )

M32 – Bật động cơ bơm dầu

M33 – Tắt động cơ bơm dầu

M97 – Đếm số chi tiết

M98 – Gọi chương trình phụ

M99 – Kết thúc chương trình phụ, tiếp tục gia công theo chương trình chính

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *