& Software Engineer Co., Ltd. ผู้นำด้านการจัดจำหน่ายอะไหล่เครื่องจักร CNC (New Parts) พร้อมศูนย์บริการซ่อมบำรุง (Repair), อัปเกรดระบบ (Retrofit), และดัดแปลงเครื่องจักรครบวงจรด้วยทีมวิศวกรผู้เชี่ยวชาญ
© 2026 SP AUTOMATION & SOFTWARE ENGINEER CO., LTD. All rights reserved.
Back to Knowledge Base
เรียนรู้หลักการและวิธีจัดการปัญหาแบบเจาะลึก โดยวิศวกรผู้เชี่ยวชาญ
ปรึกษาปัญหาทางเทคนิคฟรี บทนำ: หัวใจของการควบคุมเครื่องจักร CNC ในโลกของระบบอัตโนมัติทางอุตสาหกรรม โดยเฉพาะอย่างยิ่งในเครื่องจักรควบคุมเชิงตัวเลขด้วยคอมพิวเตอร์ (CNC) การทำความเข้าใจภาษาที่ใช้สื่อสารกับเครื่องจักรเป็นสิ่งสำคัญอย่างยิ่ง สองคำสั่งหลักที่เปรียบเสมือนหัวใจและสมองในการควบคุมเครื่องจักร CNC คือ G-code และ M-code แม้ทั้งคู่จะทำหน้าที่เป็นคำสั่งในโปรแกรมเดียวกัน แต่บทบาทและหลักการทำงานกลับแตกต่างกันอย่างสิ้นเชิง การเรียนรู้ความแตกต่างและหลักการใช้งานที่ถูกต้องจะช่วยให้วิศวกรและช่างเทคนิคสามารถเขียนโปรแกรมได้อย่างมีประสิทธิภาพ ลดข้อผิดพลาด และเพิ่มความปลอดภัยในการปฏิบัติงาน
G-code คืออะไร? ภาษาแห่งการเคลื่อนที่และเรขาคณิต G-code หรือ Preparatory Functions เป็นคำสั่งหลักที่บอกให้เครื่องจักร CNC รู้ว่าจะต้องเคลื่อนที่อย่างไร และด้วยรูปแบบใด คำสั่งเหล่านี้ควบคุมการเคลื่อนที่ของแกนเครื่องจักร (เช่น X, Y, Z) กำหนดความเร็วในการป้อน (feed rate) และการเคลื่อนที่แบบต่างๆ เช่น การเคลื่อนที่เชิงเส้นตรง การเคลื่อนที่แบบวงกลม หรือการกำหนดจุดอ้างอิง
Was this guide helpful? Share Article
ประเมินอาการเสียและปรึกษาช่างผู้เชี่ยวชาญฟรี! บริการซ่อมบอร์ด, เปลี่ยนอะไหล่ (New Part) และดัดแปลงเครื่องจักร ซ่อมจบใน 3 วัน พร้อมรับประกัน 3 เดือน
Test kit after repair No fix, no feeModal G-code: คำสั่งที่ยังคงทำงานอยู่จนกว่าจะมี G-code อื่นในกลุ่มเดียวกันมาแทนที่ เช่น G01 (การเคลื่อนที่เชิงเส้น) จะยังคงทำงานอยู่จนกว่าจะมี G00 (การเคลื่อนที่เร็ว) หรือ G02/G03 (การเคลื่อนที่แบบวงกลม) มาแทนNon-Modal G-code: คำสั่งที่ทำงานเพียงครั้งเดียวในบล็อกที่ถูกเรียกใช้เท่านั้น เช่น G04 (หยุดชั่วคราว) หรือ G65 (เรียกใช้มาโคร)Absolute (G90) vs. Incremental (G91) Positioning: กำหนดว่าพิกัดที่ระบุเป็นการอ้างอิงจากจุดศูนย์ของชิ้นงาน (Absolute) หรือจากตำแหน่งปัจจุบันของเครื่องจักร (Incremental)ข้อควรรู้เกี่ยวกับ G-code Group G-code ถูกจัดกลุ่มตามหน้าที่การทำงาน โดยปกติแล้วในหนึ่งบล็อกโปรแกรมจะสามารถมี G-code ที่เป็น Modal ได้เพียงหนึ่งตัวจากแต่ละกลุ่มเท่านั้น ตัวอย่างเช่น คุณไม่สามารถสั่ง G00 และ G01 ในบล็อกเดียวกันได้ เพราะทั้งคู่เป็นคำสั่งการเคลื่อนที่หลักที่ขัดแย้งกัน
ตัวอย่าง G-code ที่พบบ่อยและการใช้งาน gcode
G00: Rapid Traverse (เคลื่อนที่เร็วโดยไม่ตัดงาน)
G01: Linear Interpolation (เคลื่อนที่เชิงเส้นตรงแบบตัดงาน)
G02: Circular Interpolation CW (เคลื่อนที่แบบวงกลมตามเข็มนาฬิกา)
G03: Circular Interpolation CCW (เคลื่อนที่แบบวงกลมทวนเข็มนาฬิกา)
G90: Absolute Positioning (กำหนดพิกัดแบบสัมบูรณ์)
G91: Incremental Positioning (กำหนดพิกัดแบบเพิ่มขึ้นจากจุดปัจจุบัน)
G20: Inch Input (กำหนดหน่วยเป็นนิ้ว)
G21: Metric Input (กำหนดหน่วยเป็นมิลลิเมตร)
G40: Cutter Compensation Cancel (ยกเลิกการชดเชยรัศมีทูล)
G41: Cutter Compensation Left (ชดเชยรัศมีทูลด้านซ้าย)
G42: Cutter Compensation Right (ชดเชยรัศมีทูลด้านขวา)Pro-Tip: การเลือกใช้ G90/G91 การทำความเข้าใจความแตกต่างระหว่าง G90 และ G91 เป็นสิ่งสำคัญอย่างยิ่ง การใช้ผิดประเภทอาจนำไปสู่การเคลื่อนที่ที่ไม่คาดคิดและอาจทำให้เครื่องจักรชนได้ (crash) ควรใช้ G90 เป็นค่าเริ่มต้นสำหรับโปรแกรมส่วนใหญ่ และใช้ G91 เฉพาะเมื่อต้องการเคลื่อนที่สัมพันธ์กับตำแหน่งปัจจุบันเท่านั้น
M-code คืออะไร? คำสั่งเสริมการทำงานของเครื่องจักร M-code หรือ Miscellaneous Functions เป็นคำสั่งเสริมที่ควบคุมการทำงานที่ไม่เกี่ยวข้องกับการเคลื่อนที่โดยตรงของแกนเครื่องจักร แต่เป็นการควบคุมฟังก์ชันเสริมต่างๆ เช่น การเปิด-ปิด Spindle, การเปิด-ปิดระบบหล่อเย็น, การเปลี่ยนเครื่องมือ (Tool Change) หรือการหยุดโปรแกรม คำสั่งเหล่านี้มักจะส่งสัญญาณไปยัง PLC (Programmable Logic Controller) ของเครื่องจักรเพื่อสั่งงานอุปกรณ์ภายนอก
Non-geometric functions: M-code ไม่ส่งผลต่อพิกัดหรือการเคลื่อนที่ของทูล แต่ควบคุมการทำงานเสริมของเครื่องจักรSingle-block execution: โดยส่วนใหญ่ M-code จะทำงานเพียงครั้งเดียวในบล็อกที่ถูกเรียกใช้ ไม่ได้เป็น Modal เหมือน G-code บางตัวPLC Interaction: M-code มักจะถูกประมวลผลโดย PLC ของเครื่องจักร ซึ่งจะควบคุมรีเลย์ โซลินอยด์ หรือมอเตอร์เพื่อทำหน้าที่เฉพาะ
ตัวอย่าง M-code ที่พบบ่อยและการใช้งาน gcode
M00: Program Stop (หยุดโปรแกรมชั่วคราว รอการยืนยันเพื่อเริ่มใหม่)
M01: Optional Program Stop (หยุดโปรแกรมชั่วคราวแบบเลือกได้)
M02: Program End (จบโปรแกรม)
M03: Spindle ON Clockwise (เปิด Spindle หมุนตามเข็มนาฬิกา)
M04: Spindle ON Counter-Clockwise (เปิด Spindle หมุนทวนเข็มนาฬิกา)
M05: Spindle OFF (ปิด Spindle)
M06: Tool Change (คำสั่งเปลี่ยนเครื่องมือ)
M08: Coolant ON (เปิดระบบหล่อเย็น)
M09: Coolant OFF (ปิดระบบหล่อเย็น)
M30: Program End and Reset (จบโปรแกรมและรีเซ็ตกลับสู่จุดเริ่มต้น)ข้อควรระวังในการใช้ M-code M-code บางตัว เช่น M06 (Tool Change) มีความสำคัญต่อความปลอดภัยอย่างยิ่ง การเขียนโปรแกรมที่ไม่ถูกต้องเกี่ยวกับลำดับการทำงานของ M-code อาจนำไปสู่ความเสียหายต่อเครื่องจักรหรืออันตรายต่อผู้ปฏิบัติงานได้ ควรศึกษาคู่มือเครื่องจักรสำหรับ M-code เฉพาะรุ่นอย่างละเอียด
ความแตกต่างที่สำคัญ: G-code vs M-code หน้าที่หลัก: G-code ควบคุมการเคลื่อนที่และเรขาคณิตของเครื่องจักร (เช่น การเดินเครื่อง, ตำแหน่ง) ในขณะที่ M-code ควบคุมฟังก์ชันเสริมและการทำงานของเครื่องจักร (เช่น Spindle, Coolant, Tool Change)ผลกระทบ: G-code ส่งผลโดยตรงต่อเส้นทางการตัดชิ้นงานและตำแหน่งของเครื่องมือ ส่วน M-code ส่งผลต่อสถานะการทำงานของอุปกรณ์รอบข้างลักษณะการทำงาน: G-code บางตัวเป็นแบบ Modal (คงสถานะ) และบางตัวเป็น Non-Modal ส่วน M-code ส่วนใหญ่เป็น Non-Modal (ทำงานครั้งเดียวในบล็อกนั้น) และไม่ส่งผลต่อสถานะของแกนเครื่องจักรตัวอย่าง: G01 (เคลื่อนที่เชิงเส้น) คือคำสั่งให้ทูลเคลื่อนที่จากจุดหนึ่งไปอีกจุดหนึ่ง ในขณะที่ M03 (เปิด Spindle) คือคำสั่งให้ Spindle เริ่มหมุน
หลักการเขียนโปรแกรม CNC เบื้องต้น: การผสาน G-code และ M-code การเขียนโปรแกรม CNC ที่มีประสิทธิภาพต้องอาศัยความเข้าใจในการจัดลำดับและการผสาน G-code และ M-code เข้าด้วยกันอย่างเหมาะสม นี่คือลำดับขั้นตอนพื้นฐานที่มักพบในโปรแกรม CNC ทั่วไป:
Header/Safety Lines: กำหนดหมายเลขโปรแกรมและคำสั่งความปลอดภัยเริ่มต้น (เช่น G90 G21 G17 G40 G80 G49) เพื่อให้เครื่องจักรอยู่ในสถานะปลอดภัยและพร้อมทำงานTool Selection (M06): เลือกเครื่องมือที่ต้องการใช้งานWork Offset (G54-G59): กำหนดจุดอ้างอิงชิ้นงานSpindle ON & Coolant ON (M03/M04, M08): เปิด Spindle ด้วยความเร็วและทิศทางที่ต้องการ และเปิดระบบหล่อเย็นRapid Positioning (G00): เคลื่อนที่เครื่องมือไปยังตำแหน่งเริ่มต้นของการตัดอย่างรวดเร็ว (เหนือชิ้นงาน)Cutting Path (G01, G02, G03): ดำเนินการตัดชิ้นงานตามรูปทรงที่ต้องการด้วย G-code การเคลื่อนที่ต่างๆSpindle OFF & Coolant OFF (M05, M09): ปิด Spindle และระบบหล่อเย็นเมื่อการตัดสิ้นสุดลงTool Park/Home Position (G28/G30): เคลื่อนที่เครื่องมือกลับไปยังตำแหน่งปลอดภัยหรือตำแหน่ง HomeProgram End and Reset (M30): สิ้นสุดโปรแกรมและรีเซ็ตเครื่องจักรเพื่อเตรียมพร้อมสำหรับโปรแกรมถัดไปgcode
O0001 (EXAMPLE PROGRAM)
N10 G90 G21 G17 G40 G80 G49 (Safety Line: Absolute, Metric, XY Plane, Cutter Comp Cancel, Canned Cycle Cancel, Tool Length Comp Cancel)
N20 T01 M06 (Tool 1 Change)
N30 G54 (Select Work Offset 1)
N40 G00 G90 X0 Y0 S1500 M03 (Rapid to X0 Y0, Spindle ON CW 1500 RPM)
N50 G43 H01 Z50.0 (Tool Length Compensation H01, Rapid Z to 50mm above part)
N60 G00 Z2.0 (Rapid to Z2mm above part surface)
N70 G01 Z-5.0 F100 (Linear cut into part to Z-5mm at Feed Rate 100)
N80 G01 X50.0 Y0 F200 (Cut to X50 Y0 at Feed Rate 200)
N90 G02 X70.0 Y20.0 R20.0 F150 (Arc cut to X70 Y20 with Radius 20 at Feed Rate 150)
N100 G00 Z50.0 M09 (Rapid Z up to 50mm, Coolant OFF)
N110 M05 (Spindle OFF)
N120 G28 X0 Y0 Z0 (Return to Home Position)
N130 M30 (Program End and Reset)
การแก้ไขปัญหาและข้อผิดพลาดที่พบบ่อย การเขียนโปรแกรม CNC ไม่ได้ปราศจากข้อผิดพลาดเสมอไป การทำความเข้าใจสาเหตุของปัญหาที่เกิดจาก G-code และ M-code จะช่วยให้การแก้ไขทำได้รวดเร็วและมีประสิทธิภาพ
G-code Contradictions: การใช้ G-code ที่ขัดแย้งกันในบล็อกเดียว (เช่น G00 และ G01) จะทำให้เครื่องจักรหยุดทำงานหรือแสดงข้อผิดพลาด (Alarm) ตรวจสอบกลุ่ม G-code และแก้ไขให้มีเพียงหนึ่งคำสั่ง Modal จากแต่ละกลุ่มIncorrect M-code Sequence: ลำดับของ M-code ที่ไม่ถูกต้อง เช่น สั่งให้ Spindle หมุนก่อนเปลี่ยนทูล หรือเปิด Coolant ก่อน Spindle อาจทำให้เกิดปัญหาหรือความเสียหาย ตรวจสอบลำดับการทำงานและแก้ไขให้ถูกต้องตามคู่มือเครื่องจักรMissing Safety G-codes: การละเลย G-code ความปลอดภัย เช่น G40 (ยกเลิกการชดเชยรัศมีทูล) หรือ G80 (ยกเลิก Canned Cycle) ก่อนจบโปรแกรม อาจทำให้เกิดการเคลื่อนที่ที่ไม่คาดคิดเมื่อเริ่มโปรแกรมใหม่M-code Not Executing: หาก M-code ไม่ทำงานตามที่คาดไว้ อาจเกิดจากปัญหาที่ PLC ของเครื่องจักร การตั้งค่าพารามิเตอร์ M-code ที่ไม่ถูกต้อง หรือปัญหาการเดินสาย (wiring) ตรวจสอบสถานะของ PLC และสัญญาณ I/O ที่เกี่ยวข้องCoordinate System Errors: การสับสนระหว่าง G90 (Absolute) และ G91 (Incremental) หรือการตั้งค่า Work Offset (G54-G59) ไม่ถูกต้อง จะทำให้ทูลเคลื่อนที่ผิดตำแหน่ง ตรวจสอบการตั้งค่าพิกัดและทดสอบการเคลื่อนที่ในโหมด Manual Data Input (MDI) ก่อนรันโปรแกรมจริง
ผลกระทบจากการเขียนโปรแกรมผิดพลาด ข้อผิดพลาดในการเขียนโปรแกรม G-code และ M-code ไม่เพียงแต่ทำให้งานเสียหาย แต่ยังอาจนำไปสู่ความเสียหายร้ายแรงต่อเครื่องจักร (เช่น Spindle หัก, ชิ้นส่วนเครื่องจักรชนกัน) และเป็นอันตรายต่อผู้ปฏิบัติงานได้ การตรวจสอบโปรแกรมอย่างละเอียดและการจำลองการทำงาน (simulation) จึงเป็นขั้นตอนที่สำคัญมาก
บทสรุป: ก้าวสู่การเป็นผู้เชี่ยวชาญ CNC การทำความเข้าใจความแตกต่างและหลักการทำงานของ G-code และ M-code เป็นรากฐานสำคัญในการควบคุมเครื่องจักร CNC ได้อย่างเชี่ยวชาญ ไม่ใช่แค่การจดจำคำสั่ง แต่คือการเข้าใจว่าแต่ละคำสั่งสื่อสารอะไรกับเครื่องจักร และจะผสานการทำงานของทั้งสองประเภทเข้าด้วยกันเพื่อสร้างโปรแกรมที่แม่นยำ ปลอดภัย และมีประสิทธิภาพได้อย่างไร การฝึกฝน การศึกษาจากคู่มือ และการเรียนรู้จากประสบการณ์จริง จะช่วยให้คุณก้าวสู่การเป็นผู้เขียนโปรแกรม CNC ที่มีความสามารถและแก้ไขปัญหาได้อย่างรวดเร็ว
หากคุณต้องการคำปรึกษาเชิงลึก หรือเผชิญกับความท้าทายที่ซับซ้อนในการเขียนโปรแกรม CNC ทีมวิศวกรผู้เชี่ยวชาญของ SP Automation ยินดีให้คำแนะนำและบริการด้านเทคนิคขั้นสูง เพื่อให้มั่นใจว่าเครื่องจักรของคุณทำงานได้อย่างเต็มประสิทธิภาพและปลอดภัย
G-code vs M-code: ความแตกต่างและหลักการใช้งานใน CNC | SP Automation