G-Code คืออะไร? ทำยังไงให้เครื่อง CNC ทำงานแม่นยำขึ้น

G-Code_CNC

ลองนึกภาพว่าคุณต้องการสั่งให้หุ่นยนต์ตัดชิ้นส่วนโลหะที่มีรูปทรงซับซ้อนออกมาได้อย่างแม่นยำถึงระดับ 0.01 มิลลิเมตร โดยไม่ผิดพลาดแม้แต่ครั้งเดียว ไม่ว่าจะผลิตชิ้นที่ 1 หรือชิ้นที่ 10,000 — นั่นคือสิ่งที่ G-Code ทำให้เป็นไปได้

G-Code คือภาษาเขียนโปรแกรมเบื้องหลังอุตสาหกรรมการผลิตสมัยใหม่ ตั้งแต่ชิ้นส่วนอากาศยาน ไปจนถึงงานแพทย์ อุปกรณ์อิเล็กทรอนิกส์ และแม้แต่โมเดล 3D Printing ที่คุณพิมพ์อยู่ที่บ้าน หากคุณทำงานด้านวิศวกรรม การผลิต หรือสนใจ CNC อย่างจริงจัง บทความนี้จะพาคุณเข้าใจ G-Code ตั้งแต่รากฐาน ไปจนถึงเทคนิคเขียน G-Code ให้เครื่องทำงานได้แม่นยำและมีประสิทธิภาพสูงสุด

G-Code คืออะไร? (G-Code Definition)

G-Code (ย่อมาจาก Geometric Code) คือภาษาโปรแกรมมาตรฐานที่ใช้ควบคุมเครื่องจักร CNC (Computer Numerical Control) ทั้งหมด โดยบอกให้เครื่องจักรรู้ว่า “ต้องเคลื่อนที่ไปที่ไหน อย่างไร และด้วยความเร็วเท่าไร”

ชื่อเต็มอย่างเป็นทางการคือ RS-274 ซึ่งถูกพัฒนาโดย MIT ในทศวรรษ 1950 และกลายมาเป็นมาตรฐาน ISO 6983 ที่ใช้งานทั่วโลกมาจนถึงปัจจุบัน

G-Code ต่างจากภาษาโปรแกรมทั่วไปอย่างไร?

ประเด็นG-Codeภาษาโปรแกรมทั่วไป (Python, C++)
จุดประสงค์ควบคุมการเคลื่อนที่ทางกายภาพประมวลผลข้อมูล / ตรรกะ
ผลลัพธ์ชิ้นงานที่ถูกตัด กัด หรือพิมพ์ซอฟต์แวร์ / ผลลัพธ์ดิจิทัล
มาตรฐานISO 6983 (มาตรฐานสากล)หลากหลายมาตรฐาน
การ Debugต้องระวังเรื่องความเสียหายของเครื่องRollback ง่าย ไม่มีผลทางกายภาพ
ผู้ใช้หลักวิศวกร CNC, Machinist, นักออกแบบ CAMนักพัฒนาซอฟต์แวร์

เครื่องจักร CNC คืออะไร? และทำงานร่วมกับ G-Code อย่างไร?

CNC (Computer Numerical Control) คือระบบที่ใช้คอมพิวเตอร์ควบคุมการเคลื่อนที่ของเครื่องจักรด้วยตัวเลขและพิกัด แทนที่จะให้ช่างควบคุมด้วยมือโดยตรง

ประเภทเครื่อง CNC ที่ใช้ G-Code

  • CNC Milling Machine — กัดชิ้นงานโลหะหรือพลาสติกด้วยหัวกัด (End Mill)
  • CNC Lathe (เครื่องกลึง) — หมุนชิ้นงานและตัดด้วยใบมีด
  • CNC Router — กัดไม้ อะคริลิก และวัสดุนุ่ม
  • CNC Plasma / Laser Cutter — ตัดด้วยลำแสงหรือพลาสม่า
  • 3D Printer (FDM) — พิมพ์โดยวางวัสดุทีละชั้น (ใช้ G-Code เช่นกัน)
  • EDM (Electrical Discharge Machining) — ตัดด้วยประกายไฟฟ้า

วงจรการทำงาน: จาก CAD สู่ชิ้นงานวงจรการทำงาน: จาก CAD สู่ชิ้นงาน

โครงสร้างพื้นฐานของ G-Code

1. Block (บรรทัดคำสั่ง)

G-Code เขียนเป็น Block ทีละบรรทัด แต่ละบรรทัดประกอบด้วย Word หลายตัว:

ส่วนประกอบความหมาย
N10หมายเลขบรรทัด (Sequence Number)
G01คำสั่ง G-Code (Linear Interpolation)
X50.000 Y25.000 Z-5.000พิกัดปลายทาง
F200อัตราป้อน (Feed Rate) หน่วย mm/min
S1200ความเร็วรอบสปินเดิล (RPM)
M03คำสั่ง M-Code (เปิดสปินเดิลหมุนซ้าย)

2. ระบบพิกัด (Coordinate System)

G-Code ใช้ระบบพิกัดคาร์ทีเซียน 3 แกน:

  • แกน X — เคลื่อนที่ซ้าย-ขวา
  • แกน Y — เคลื่อนที่หน้า-หลัง
  • แกน Z — เคลื่อนที่ขึ้น-ลง (ลึก-ตื้น)
  • แกน A, B, C — หมุนรอบแกน X, Y, Z (เครื่อง 4-5 แกน)

Absolute vs. Incremental ModeAbsolute vs. Incremental Mode

คำสั่ง G-Code ที่สำคัญที่สุด (Essential G-Codes)

กลุ่มคำสั่งเคลื่อนที่ (Motion Commands)

G00 — Rapid Positioning (การเคลื่อนที่เร็ว)

ใช้เคลื่อนหัวเครื่องไปยังจุดเริ่มต้นโดยไม่ตัดชิ้นงาน ด้วยความเร็วสูงสุดของเครื่อง

คำเตือน: G00 ไม่ควรใช้ขณะสัมผัสชิ้นงาน เพราะเคลื่อนด้วยความเร็วสูงสุด


G01 — Linear Interpolation (การเคลื่อนที่เป็นเส้นตรง)

เคลื่อนหัวตัดเป็นเส้นตรงด้วยอัตราป้อนที่กำหนด — คำสั่งที่ใช้บ่อยที่สุดในการตัดชิ้นงาน


G02 — Circular Interpolation CW (วงกลมตามเข็มนาฬิกา)

G03 — Circular Interpolation CCW (วงกลมทวนเข็มนาฬิกา)


G04 — Dwell (หยุดนิ่งชั่วคราว)

ใช้เพื่อให้ความร้อนระบาย หรือรอให้สปินเดิลถึงความเร็วเต็ม


กลุ่มคำสั่งตั้งค่า (Setup Commands)

คำสั่งชื่อการใช้งาน
G17XY Plane Selectionกำหนดระนาบทำงานเป็น XY (ค่าเริ่มต้นทั่วไป)
G18XZ Plane Selectionระนาบ XZ (ใช้กับเครื่องกลึง)
G19YZ Plane Selectionระนาบ YZ
G20Inch Modeหน่วยวัดเป็นนิ้ว
G21Metric Modeหน่วยวัดเป็นมิลลิเมตร
G28Return to Homeคืนหัวเครื่องสู่ตำแหน่ง Home
G40Cancel Cutter Compensationยกเลิกการชดเชยรัศมีเครื่องมือ
G41Cutter Comp Leftชดเชยรัศมีไปทางซ้าย
G42Cutter Comp Rightชดเชยรัศมีไปทางขวา
G43Tool Length Offsetชดเชยความยาวเครื่องมือ
G54G59Work Coordinate Systemsระบบพิกัดชิ้นงาน (WCS) 1–6
G80Cancel Canned Cycleยกเลิก Canned Cycle
G90Absolute Positioningโหมดพิกัดสัมบูรณ์
G91Incremental Positioningโหมดพิกัดส่วนเพิ่ม
G94Feed per Minuteอัตราป้อนหน่วย mm/min
G95Feed per Revolutionอัตราป้อนต่อรอบ mm/rev

Canned Cycles — วงจรซ้ำสำเร็จรูป

Canned Cycle คือคำสั่ง G-Code สำเร็จรูปที่รวมลำดับการเคลื่อนที่หลายขั้นตอนไว้ในคำสั่งเดียว ช่วยย่นโปรแกรมได้มาก

G81 — Simple Drill Cycle

เครื่องจะทำงานดังนี้อัตโนมัติ:

  1. เคลื่อน Rapid ไปที่ X10 Y10
  2. ลงมาที่ระนาบ R (Z2) ด้วย Rapid
  3. เจาะลงถึง Z-15 ด้วยอัตราป้อน F80
  4. ยกหัวกลับที่ R2 อัตโนมัติ

G83 — Peck Drilling (เจาะแบบจิก)

เหมาะกับการเจาะลึก เพราะยกหัวออกมาทุก Q มม. เพื่อปล่อยเศษและระบายความร้อน

G84 — Tapping Cycle (ต๊าปเกลียว)


M-Code: คำสั่งเสริมที่ต้องรู้คู่กัน

M-Code (Miscellaneous Code) ควบคุมฟังก์ชันเสริมของเครื่อง ไม่ใช่การเคลื่อนที่

M-Codeชื่อการทำงาน
M00Program Stopหยุดโปรแกรมรอการยืนยัน
M01Optional Stopหยุดถ้าสวิตช์ Optional Stop เปิด
M02End of Programสิ้นสุดโปรแกรม
M03Spindle CWเปิดสปินเดิลหมุนตามเข็ม (Cutting)
M04Spindle CCWเปิดสปินเดิลทวนเข็ม
M05Spindle Stopหยุดสปินเดิล
M06Tool Changeเปลี่ยนเครื่องมือ
M07Mist Coolant Onเปิดน้ำหล่อเย็นแบบหมอก
M08Flood Coolant Onเปิดน้ำหล่อเย็นแบบน้ำท่วม
M09Coolant Offปิดน้ำหล่อเย็น
M30End & Rewindสิ้นสุดและ Reset โปรแกรม

ตัวอย่างโปรแกรม G-Code เต็มรูปแบบ

ตัวอย่างที่ 1: กัดสี่เหลี่ยม 40×30mm ลึก 3mm

ตัวอย่างที่ 2: เจาะรูวงกลม 4 รู บนวงกลม Bolt Circle

เทคนิคเขียน G-Code ให้เครื่อง CNC ทำงานแม่นยำขึ้น

เทคนิคที่ 1: ใช้ Work Coordinate System (WCS) ให้ถูกต้อง

ปัญหาที่พบบ่อยที่สุด ในงาน CNC คือการตั้ง Work Zero (จุดอ้างอิง 0,0,0) ผิด

เหตุใดสำคัญ: ถ้า WCS ผิด 0.1mm ชิ้นงานทั้งชิ้นจะผิดตาม — ในชิ้นงานที่ต้องประกอบกัน นั่นหมายถึงของเสียทันที


เทคนิคที่ 2: คำนวณ Feed Rate และ Spindle Speed อย่างถูกต้อง

การตั้ง Feed Rate (F) และ Spindle Speed (S) ที่ผิดพลาดเป็นสาเหตุอันดับหนึ่งที่ทำให้งานไม่ได้คุณภาพ

สูตรคำนวณ Cutting Speed และ RPM

เคล็ดลับ: เริ่มต้นที่ 70-80% ของค่าที่คำนวณได้ แล้วค่อยๆ ปรับขึ้นจนชิ้นงานมีผิวดีและไม่สึกหรอผิดปกติ


เทคนิคที่ 3: ใช้ Tool Length Compensation (G43) ทุกครั้ง

ทำไมต้องทำ: เครื่องมือแต่ละชิ้นมีความยาวต่างกัน G43 บอกให้ Controller รู้ว่าปลายดอกมีดอยู่ที่ไหนจริงๆ ป้องกันการชนชิ้นงานหรือโต๊ะจับยึด


เทคนิคที่ 4: เขียน Safety Block ที่จุดเริ่มต้นเสมอ


เทคนิคที่ 5: กำหนด Safe Z Height ให้ชัดเจน

จุดสำคัญ: ไม่ควรเคลื่อน XY และ Z พร้อมกันด้วย G00 เมื่อยังไม่รู้แน่ว่าทางนั้นโล่งหรือไม่


เทคนิคที่ 6: ใช้ Subprogram สำหรับรูปแบบที่ซ้ำ


เทคนิคที่ 7: ใช้ Variables (#) แทนตัวเลขตายตัว


เทคนิคที่ 8: ป้อนลงชิ้นงานแบบ Ramp หรือ Helical เพื่อถนอมดอกมีด


เทคนิคที่ 9: ใช้ Cutter Radius Compensation (G41/G42) สำหรับงาน Finish

ข้อดี: เมื่อเปลี่ยนดอกมีด ขนาดต่างกันเล็กน้อย แค่เปลี่ยนค่า D ใน Tool Table โดยไม่ต้องแก้โปรแกรม


เทคนิคที่ 10: เขียน Comment อย่างสม่ำเสมอ

ข้อผิดพลาดที่พบบ่อยใน G-Code และวิธีป้องกัน

1. Modal Code ค้างจากโปรแกรมก่อน

Modal Code คือคำสั่งที่ยังคงมีผลอยู่จนกว่าจะถูกยกเลิก เช่น G91 (Incremental Mode) ถ้าลืม Reset จะทำให้พิกัดผิดหมดทั้งโปรแกรมถัดไป

ป้องกัน: ใส่ Safety Block ทุกครั้ง และระบุ G90/G91 ให้ชัดเจนเมื่อเปลี่ยน Mode

2. ลืมยก Z ก่อนเคลื่อน XY

3. Feed Rate เป็นศูนย์

ถ้าใช้ G01/G02/G03 โดยไม่มี F-Word และไม่มี F จากบรรทัดก่อน เครื่องบางรุ่นจะหยุดทำงาน บางรุ่นจะ Error

ป้องกัน: ระบุ F ทุกครั้งที่เริ่ม Cutting Move

4. Arc Endpoint ไม่ตรงกับ Radius ที่กำหนด

5. ทศนิยมหาย


G-Code สำหรับ 3D Printer: ความแตกต่างที่ต้องรู้

แม้ 3D Printer จะใช้ G-Code เช่นกัน แต่มีความแตกต่างสำคัญ:

คุณสมบัติCNC Milling3D Printer (FDM)
คำสั่งพิเศษG41/G42 (Cutter Comp)E-axis (ปริมาณ Filament)
FirmwareFanuc, Siemens, HeidenhainMarlin, Klipper, RepRap
Temperatureไม่มีM104 (Nozzle), M140 (Bed)
HomingG28 Z (อ้างอิง Machine Zero)G28 (Home ทุกแกน)
Layerไม่มีแนวคิดนี้Z เพิ่มทีละ Layer Height

เครื่องมือที่ช่วยในการเขียนและตรวจสอบ G-Code

CAM Software (สร้าง G-Code อัตโนมัติ)

ซอฟต์แวร์ระดับข้อดี
Fusion 360กลางฟรี (Personal), ครบฟีเจอร์, Cloud-based
Mastercamมืออาชีพมาตรฐานอุตสาหกรรม, Post Processor ครบ
SolidCAMมืออาชีพIntegrated กับ SolidWorks, iMachining
HSMWorksกลางใน SolidWorks, ใช้ Engine เดียวกับ Fusion
Estlcamเริ่มต้นถูก เหมาะ CNC Router งานไม้
Cura / PrusaSlicerเริ่มต้นสำหรับ 3D Printer โดยเฉพาะ

G-Code Simulator (จำลองก่อนรันจริง)

  • CNCSimulator Pro — จำลอง 3 มิติครบ ตรวจ Collision ได้
  • Vericut — มาตรฐานอุตสาหกรรมการบิน ตรวจ Simulation ละเอียดมาก
  • NC Viewer (Online) — ฟรี ใช้ Browser เปิดได้เลย
  • G-Wizard Editor — วิเคราะห์ Cutting Parameter และ Simulate

สรุปบทความหลักการสำคัญ 10 ข้อในการเขียน G-Code ที่ดี

การเขียน G-Code ที่ดีไม่ได้มีแค่การทำให้เครื่อง CNC ทำงานได้เท่านั้น แต่ยังต้องคำนึงถึงความปลอดภัย ความแม่นยำ และความสะดวกในการตรวจสอบโปรแกรมในระยะยาว โดยหลักการสำคัญที่ควรมีในทุกโปรแกรม เริ่มจากการใส่ Safety Block ตั้งแต่ต้นโปรแกรม เช่น G21, G90, G17, G40, G49 และ G80 เพื่อรีเซ็ตสถานะต่าง ๆ ของเครื่องให้พร้อมทำงานอย่างถูกต้อง ลดความเสี่ยงจากค่าที่ค้างมาจากโปรแกรมก่อนหน้า

อีกเรื่องที่สำคัญคือการระบุหน่วยวัดให้ชัดเจนทุกครั้ง ไม่ว่าจะเป็น G20 สำหรับนิ้ว หรือ G21 สำหรับมิลลิเมตร เพื่อป้องกันความผิดพลาดด้านขนาดชิ้นงาน รวมถึงควรยกแกน Z ขึ้นก่อนเคลื่อนที่แกน X และ Y เสมอ เพื่อหลีกเลี่ยงการชนชิ้นงานหรือฟิกซ์เจอร์ระหว่างการเคลื่อนที่

ในการตั้งตำแหน่งอ้างอิง ควรเลือกใช้ Work Coordinate System เช่น G54-G59 แทนการอ้างอิงจาก Machine Zero โดยตรง เพราะช่วยให้การตั้งงานยืดหยุ่น ปลอดภัย และสะดวกต่อการเปลี่ยนชิ้นงานมากกว่า ขณะเดียวกัน การตั้งค่า Feed Rate และ Spindle Speed ก็ควรคำนวณตามชนิดวัสดุ ขนาด Tool และลักษณะงาน ไม่ควรใช้ค่าเดิมซ้ำทุกงาน เพราะอาจทำให้ Tool สึกเร็วหรือผิวงานเสียได้

นอกจากนี้ โปรแกรมที่ดีควรมี Comment อธิบายแต่ละ Operation เพื่อให้ง่ายต่อการตรวจสอบ แก้ไข และส่งต่อให้ผู้ใช้งานคนอื่นเข้าใจได้รวดเร็ว หากเป็นงานที่มีค่าซ้ำกันหลายจุด การใช้ Variables (#) แทนตัวเลขคงที่ก็จะช่วยลดเวลาแก้ไขและลดความผิดพลาดของโปรแกรมได้มาก

ก่อนรันงานจริงทุกครั้ง ควร Simulate โปรแกรมเพื่อตรวจสอบเส้นทางการเดิน Tool และลดโอกาสเกิด Crash ที่อาจสร้างความเสียหายให้กับเครื่องจักรหรือชิ้นงาน และหากมีรูปแบบการทำงานซ้ำ ๆ ก็ควรใช้ Subprogram เพื่อทำให้โปรแกรมสั้นลง อ่านง่าย และจัดการได้สะดวกขึ้น

สุดท้าย สำหรับการทดลองโปรแกรมใหม่ หรือเมื่อต้อง Machining กับวัสดุที่ไม่คุ้นเคย ควรเริ่มทดสอบด้วย Feed Rate ต่ำประมาณ 10–20% ก่อนเสมอ เพื่อเช็กความถูกต้องของ Tool Path และลดความเสี่ยงจากความผิดพลาดที่อาจเกิดขึ้นระหว่างการทำงานจริง

คำถามที่พบบ่อย (FAQ)

Q: G-Code กับ M-Code ต่างกันอย่างไร?
A: G-Code ควบคุมการเคลื่อนที่และเรขาคณิต (Geometric) ส่วน M-Code ควบคุมฟังก์ชันเครื่อง (Miscellaneous) เช่น สปินเดิล น้ำหล่อเย็น การเปลี่ยนเครื่องมือ

Q: ต้องเรียน CAD/CAM ก่อนถึงจะเขียน G-Code ได้ไหม?
A: ไม่จำเป็น สำหรับงานง่ายๆ เขียน G-Code โดยตรงได้เลย แต่สำหรับชิ้นงานซับซ้อน CAM จะช่วยประหยัดเวลาได้มาก

Q: G-Code ของ Fanuc ใช้กับเครื่อง Siemens ได้ไหม?
A: ส่วนใหญ่ไม่ได้โดยตรง เพราะแต่ละ Controller มี Dialect ของตัวเอง ต้องใช้ Post Processor ที่ถูกต้องเมื่อ Export จาก CAM

Q: จะเรียนรู้ G-Code จากที่ไหนได้บ้าง?
A: คู่มือเครื่อง (Programming Manual) ของ Controller ที่ใช้ คือแหล่งข้อมูลที่แม่นยำที่สุด รองลงมาคือ Coursera, Udemy, และเว็บไซต์ CNC Cookbook

ใส่ความเห็น

อีเมลของคุณจะไม่แสดงให้คนอื่นเห็น ช่องข้อมูลจำเป็นถูกทำเครื่องหมาย *