บทความ / งาน CNC

ทำไมยังต้องเข้าใจการเขียนโปรแกรม CNC ด้วยมือ — ในวันที่มี CAM และ AI เขียนโปรแกรมให้

แม้ CAM และ AI จะสร้างโปรแกรม CNC ได้อย่างรวดเร็ว แต่เครื่องจักรยังคงทำงานตามคำสั่ง G-code ทีละบรรทัดอย่างเคร่งครัด บทความนี้อธิบายว่าความเข้าใจการเขียนโปรแกรมด้วยมือช่วยตรวจโปรแกรมก่อนเดินเครื่อง แก้โปรแกรมหน้าเครื่อง เริ่มกลางโปรแกรมอย่างปลอดภัย อ่าน alarm และใช้ความสามารถของชุดควบคุมได้อย่างไร พร้อมตัวอย่างโปรแกรมจาก CAM ที่มีจุดผิดสองจุด

ทุกวันนี้โปรแกรม CNC ส่วนใหญ่สร้างจาก CAM (Computer-aided manufacturing) บางเครื่องมีหน้าจอสร้างโปรแกรมแบบถามตอบ (Conversational programming) และ AI ก็เริ่มเขียน G-code ได้แล้ว คำถามที่ได้ยินบ่อยจึงเป็น “ยังต้องเรียนเขียนโปรแกรมด้วยมือ (Manual programming) อยู่อีกหรือ” คำตอบคือ ไม่จำเป็นต้องเขียนทุกโปรแกรมด้วยมือ แต่ ต้องอ่านและเข้าใจทุกบรรทัดได้ เพราะไม่ว่าโปรแกรมจะมาจากที่ใด สิ่งที่ชุดควบคุมทำตามคือ G-code ไม่ใช่ภาพในจอ CAM บทความนี้อธิบายว่าความเข้าใจนี้ใช้ทำอะไรบ้างในงานจริง โดยใช้โปรแกรมกัดหลุมจาก CAM สั้นๆ ด้านล่างเป็นตัวอย่างตลอดบทความ

%
O2001 (POCKET 40X20)
N10 G90 G17 G40 G49 G80
N20 T3 M06 (D10 END MILL)
N30 G54 G00 X-12. Y5. S3000 M03
N40 G43 Z50. H1 M08
N50 Z2.
N60 G01 Z-5. F800
N70 X12.
N80 Y-5.
N90 X-12.
N100 Y5.
N110 G00 Z50. M09
N120 G91 G28 Z0
N130 M30
%

โปรแกรมนี้ดูเรียบร้อย และภาพเส้นทางในจอ CAM ก็ถูกต้อง แต่มีจุดที่จะทำให้เครื่องชนหรือดอกหักอยู่สองจุด ผู้ที่อ่าน G-code เป็นจะเห็นได้ในไม่กี่วินาที

เครื่องทำตาม G-code ไม่ใช่ภาพในจอ

CAM สร้างเส้นทางเครื่องมือจากแบบจำลอง แล้วส่งต่อให้ โพสต์โพรเซสเซอร์ (Post processor) แปลงเป็น G-code ของเครื่องแต่ละรุ่น ความผิดพลาดเกิดได้หลายจุดระหว่างทาง เช่น เลือกเครื่องมือผิดในตารางเครื่องมือ โพสต์โพรเซสเซอร์ไม่ตรงกับเครื่อง หรือค่าที่ตั้งไว้ในโปรแกรม CAM ไม่ตรงกับที่ตั้งจริงบนเครื่อง ภาพจำลองใน CAM ไม่เห็นความผิดพลาดเหล่านี้ เพราะจำลองจากข้อมูลของ CAM เอง ไม่ได้อ่าน G-code ที่ส่งเข้าเครื่องจริง

ในตัวอย่างข้างต้น

  • บรรทัด N40 ใช้ H1 กับเครื่องมือตัวที่ 3 (T3) ชุดควบคุมจะชดเชยความยาวด้วยค่าของเครื่องมือตัวที่ 1 ถ้าเครื่องมือตัวที่ 3 ยาวกว่าตัวที่ 1 อยู่ 30 มม. ปลายดอกจะอยู่ต่ำกว่าระดับที่ระบบควบคุมรับรู้ถึง 30 มม. บรรทัด N50 ที่สั่ง Z2. จะพาปลายดอกพุ่งลงไปถึงระดับจริง Z-28 ด้วยความเร็วเคลื่อนที่เร็ว (G00) และชนเข้ากับชิ้นงาน ความผิดพลาดแบบนี้มักเกิดจากการตั้งหมายเลขค่าชดเชยในตารางเครื่องมือของ CAM ไม่ตรงกับหมายเลขเครื่องมือ ดูเรื่องค่า H ได้ในบทที่ 12 และค่าชดเชยรัศมีในบทที่ 13
  • บรรทัด N60 กินลงตรงๆ ในแนวดิ่ง 5 มม. ด้วยอัตราป้อน 800 มม./นาที ดอกเอ็นมิลล์ทั่วไปที่ไม่ใช่แบบตัดผ่านจุดศูนย์กลาง (Non-center cutting) จะไม่มีคมตัดที่แกนกึ่งกลางหน้าดอก การกดดิ่งตรงๆ (ZZ plunge) จะทำให้เนื้อแกนกลางที่ไม่มีคมตัดถูกบดอัดเข้ากับชิ้นงาน แรงต้านในแนวแกนจะพุ่งสูงจนก้านดอกโก่งและหัก แม้จะเป็นดอกแบบเจาะได้ (Center-cutting) การคายเศษในแนวดิ่งก็ทำได้ยากและทำให้เศษอัดแน่นที่หน้าดอก การกัดลงจึงควรใช้การเดินลาดเอียง (Ramping) หรือเดินวนเกลียว (Helical interpolation) เสมอ

ทั้งสองจุดไม่ใช่ความผิดของรูปร่างชิ้นงาน ภาพเส้นทางใน CAM จึงถูกต้องทุกอย่าง มีเพียงการอ่าน G-code เท่านั้นที่จับได้ก่อนกด Cycle start

ระบบควบคุมแบบคงสภาพ (Modal State Machine)

ความสำคัญของการอ่าน G-code ด้วยตนเองยังเกี่ยวข้องกับสถาปัตยกรรมของชุดควบคุม CNC ซึ่งทำงานเป็นระบบจดจำสถานะ (State machine):

  • อันตรายจากสถานะตกค้าง: หากชิ้นงานก่อนหน้าถูกผู้ปฏิบัติงานกดปุ่ม Reset หยุดกลางคันขณะที่เครื่องมือกำลังชดเชยรัศมีมีด (G41/G42) หรือค้างวัฏจักรเจาะ (G83) ชุดควบคุมบางรุ่นอาจยังคงจดจำสถานะ modal นั้นไว้ในหน่วยความจำ
  • หน้าที่ของบรรทัดเริ่มความปลอดภัย (Safety Block): บรรทัด N10 G90 G17 G40 G49 G80 ทำหน้าที่ล้างสถานะตกค้างทั้งหมดกลับสู่สภาวะเริ่มต้นที่ปลอดภัย หากไม่มีบรรทัดนี้แล้วโปรแกรมก่อนหน้าค้างโหมดชดเชยรัศมีไว้ การเคลื่อนที่แรกของโปรแกรมใหม่อาจเบี่ยงออกจากพิกัดจริงไปเท่ากับรัศมีของมีดเดิมทันที

ตรวจโปรแกรมก่อนเดินเครื่องจริง

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

สิ่งที่ควรตรวจในโปรแกรมก่อนเดินเครื่องครั้งแรก
ตรวจ สิ่งที่มองหา
บรรทัดเตรียมความปลอดภัย มีการยกเลิกชดเชยรัศมี ชดเชยความยาว และคำสั่งเจาะสำเร็จรูปค้าง เช่น G40 G49 G80 และเลือก G90 ระนาบ และหน่วยวัดครบ
เครื่องมือกับค่าชดเชย หมายเลข T ค่า H และค่า D ตรงกันทุกเครื่องมือ
จุดศูนย์ชิ้นงาน ใช้ G54 ถึง G59 ตรงกับที่ตั้งไว้บนเครื่อง
การเข้าหาชิ้นงาน เคลื่อนที่เร็วลงมาที่ระดับปลอดภัยก่อน แล้วจึงเข้าใกล้ชิ้นงานด้วยอัตราป้อน ไม่เคลื่อนที่เร็วผ่านเนื้องาน
การกินลง กินลงแบบเอียงหรือเป็นเกลียว หรือใช้อัตราป้อนขาลงที่เหมาะกับดอก
ความเร็วรอบและอัตราป้อน ค่าสมเหตุสมผลกับเครื่องมือและวัสดุ ไม่มีค่าที่ผิดหลักการใช้จุดทศนิยม
การจบโปรแกรม ยกเครื่องมือขึ้น ปิดน้ำหล่อเย็น และกลับจุดอ้างอิงตามลำดับที่ปลอดภัย

เครื่องมือช่วยตรวจอย่าง Backplot แสดงเส้นทางจาก G-code จริง ช่วยให้เห็นการเคลื่อนที่เร็วที่ผ่านชิ้นงานหรือการกินลงที่ผิดปกติได้ง่าย แต่ Backplot ไม่รู้ว่าการป้อนงานควรทำอย่างไร ความผิดพลาดแบบบรรทัด N60 จึงต้องอาศัยคนที่อ่านโปรแกรมเป็น

แก้โปรแกรมหน้าเครื่อง

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

ในตัวอย่างข้างต้น การแก้บรรทัด N60 ให้ปลอดภัยทำได้โดยลดอัตราป้อนขาลง แล้วสั่งอัตราป้อนสำหรับกัดด้านข้างในบรรทัดถัดไป

N60 G01 Z-5. F100        (กินลงช้า)
N70 X12. F800            (กัดด้านข้างด้วยอัตราป้อนเดิม)

ถ้าลืมใส่ F800 ในบรรทัด N70 อัตราป้อน 100 จะค้างไปถึงบรรทัดสุดท้าย ชิ้นงานไม่เสีย แต่เวลาตัดเพิ่มขึ้นแปดเท่า ผู้ที่เข้าใจเรื่องสถานะที่ค้างอยู่จะไม่พลาดจุดนี้

การเริ่มกลางโปรแกรมอย่างปลอดภัย

เมื่อเครื่องมือตัดหักกลางโปรแกรม หรือต้องตัดซ้ำเฉพาะเครื่องมือตัวเดียว ผู้ปฏิบัติงานต้องเริ่มโปรแกรมจากกลางทาง การเริ่มที่บรรทัดใดโดยไม่มีความเข้าใจก็ได้เป็นอันตราย เพราะสถานะที่บรรทัดก่อนหน้าตั้งไว้ เช่น G90 G43 ความเร็วรอบ หรือน้ำหล่อเย็น อาจยังไม่ถูกสั่ง ผู้ที่เข้าใจโครงสร้างโปรแกรมจะรู้ว่าต้องเริ่มที่จุดเปลี่ยนเครื่องมือ ซึ่งในโปรแกรมที่ดีทุกชุดคำสั่งของเครื่องมือเริ่มต้นได้ด้วยตัวเอง ตามที่อธิบายในบทที่ 11 และรู้ว่าต้องตรวจอะไรถ้าโปรแกรมจาก CAM ไม่ได้เขียนไว้แบบนั้น

อ่าน alarm และหาสาเหตุ

เมื่อชุดควบคุมหยุดด้วย alarm จะบอกหมายเลข alarm และบรรทัดที่เกิด แต่ไม่ได้บอกวิธีแก้ ตัวอย่างที่พบบ่อย

  • รัศมีของส่วนโค้งไม่ตรงกับจุดเริ่มและจุดปลาย เกิดจากค่า R หรือ I J K ที่ปัดเศษ หรือระนาบที่เลือกไม่ตรงกับแกนของส่วนโค้ง
  • การชดเชยรัศมีมีข้อผิดพลาด เช่น Interference เกิดเมื่อมุมด้านในเล็กกว่ารัศมีเครื่องมือ หรือเส้นเข้าและออกจากการชดเชยสั้นเกินไป
  • คำสั่งที่ไม่มีในเครื่อง เกิดเมื่อโพสต์โพรเซสเซอร์สร้างรหัสที่ชุดควบคุมรุ่นนั้นไม่รองรับ

ผู้ที่เข้าใจคำสั่งการเคลื่อนที่และคำสั่งเตรียมการ อ่านบรรทัดที่เกิด alarm แล้วรู้ทันทีว่าเกิดจากอะไร และแก้ได้ตรงจุด แทนที่จะส่งโปรแกรมกลับไปให้คนทำ CAM แล้วรอ

ใช้ความสามารถของชุดควบคุม

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

คุยกับคนทำ CAM และแก้โพสต์โพรเซสเซอร์

ปัญหาที่เกิดซ้ำทุกโปรแกรม เช่น บรรทัดเตรียมความปลอดภัยไม่ครบ ใช้ G28 ผิดลำดับ หรือไม่ใช้คำสั่งเจาะสำเร็จรูปที่เครื่องมี ต้องแก้ที่โพสต์โพรเซสเซอร์ ไม่ใช่แก้ทีละโปรแกรมหน้าเครื่อง ผู้ที่อ่าน G-code เป็นบอกได้ชัดว่าต้องการผลลัพธ์แบบใด คนทำ CAM หรือผู้ขาย CAM จึงแก้ได้ตรงจุด การสื่อสารระหว่างหน้าเครื่องกับห้องโปรแกรมก็ง่ายขึ้นมาก เพราะใช้ภาษาเดียวกัน

โปรแกรมจาก AI ก็ต้องตรวจเหมือนกัน

AI เขียน G-code ได้ถูกต้องเป็นส่วนใหญ่ โดยเฉพาะโปรแกรมสั้นๆ แต่ AI ไม่รู้ค่าชดเชยในเครื่อง ไม่รู้ว่าเครื่องเป็นชุดควบคุมรุ่นใด และอาจเขียนคำสั่งที่ดูถูกแต่ความหมายต่างไปในเครื่องของคุณ เช่น G90 บนเครื่องกลึงระบบ G-code แบบ A ไม่ใช่โหมดแบบสัมบูรณ์ แต่เป็นคำสั่งกลึงสำเร็จรูป ตามที่อธิบายในบทที่ 9 โปรแกรมจาก AI จึงต้องผ่านการตรวจแบบเดียวกับโปรแกรมจาก CAM ทุกประการ และผู้ที่ตรวจได้ต้องเข้าใจการเขียนโปรแกรมด้วยมือ วิธีสั่งงาน AI ให้ได้โปรแกรมที่ใช้ได้และวิธีตรวจ อธิบายไว้ในใช้ AI ช่วยเขียนโปรแกรม CNC

งานแบบใดควรใช้ CAM

การเข้าใจการเขียนโปรแกรมด้วยมือไม่ได้แปลว่าต้องเขียนทุกอย่างเอง ผิวโค้งสามมิติ งานแม่พิมพ์ งานห้าแกน และรูปร่างที่ซับซ้อนควรใช้ CAM เพราะคำนวณด้วยมือไม่ได้ และ CAM สมัยใหม่ให้เส้นทางที่ดีกว่า เช่น การกัดแบบรักษาภาระดอกให้คงที่ ความรู้การเขียนโปรแกรมด้วยมือเป็นสิ่งที่ทำงานคู่กับ CAM ไม่ใช่สิ่งที่แทน CAM

งานที่เหมาะกับ CAM และงานที่ใช้ความรู้การเขียนโปรแกรมด้วยมือ
งาน เหมาะกับ
ผิวโค้งสามมิติ แม่พิมพ์ งานห้าแกน CAM
รูปร่างสองมิติที่มีหลายส่วนโค้งต่อเนื่องกัน CAM
เจาะรู ปาดหน้า เซาะร่องตรง งานหยาบง่ายๆ เขียนด้วยมือหรือ MDI
แก้อัตราป้อน ระยะกินลึก หรือเพิ่มเที่ยวหน้าเครื่อง แก้ด้วยมือ
ตรวจโปรแกรมก่อนเดินครั้งแรก เริ่มกลางโปรแกรม อ่าน alarm ความรู้การเขียนโปรแกรมด้วยมือ ไม่ว่าโปรแกรมมาจากที่ใด

สรุป

  • ไม่จำเป็นต้องเขียนทุกโปรแกรมด้วยมือ แต่ต้อง อ่านและเข้าใจทุกบรรทัดได้ เพราะเครื่องทำตาม G-code ไม่ใช่ภาพในจอ CAM
  • ความผิดพลาดที่อันตรายที่สุด เช่น ค่า H ไม่ตรงกับเครื่องมือ หรือการกินลงที่ผิด ไม่เห็นในภาพจำลองของ CAM ต้องอ่าน G-code จึงจะจับได้
  • ความรู้นี้ใช้ตรวจโปรแกรมก่อนเดินเครื่อง แก้โปรแกรมหน้าเครื่อง เดินงานต่อกลางโปรแกรมอย่างปลอดภัย อ่าน alarm ใช้ความสามารถของชุดควบคุม และคุยกับคนทำ CAM
  • โปรแกรมจาก AI ต้องตรวจแบบเดียวกับโปรแกรมจาก CAM
  • ใช้ CAM กับงานที่ซับซ้อน และใช้ความรู้การเขียนโปรแกรมด้วยมือคู่กันไปเสมอ เริ่มเรียนได้จากคลังบทเรียนการเขียนโปรแกรม CNC

พบข้อผิดพลาดหรือมีข้อเสนอแนะ? ส่งอีเมลแจ้งเรา