คลังบทเรียน / การเขียนโปรแกรม CNC

บทที่ 11

โครงสร้างโปรแกรม — ลำดับของโปรแกรม CNC ทั้งโปรแกรม

โครงสร้างของโปรแกรม CNC ทั้งโปรแกรม ตั้งแต่เครื่องหมาย % หมายเลขโปรแกรม หัวโปรแกรม บรรทัดเตรียมความปลอดภัย ชุดคำสั่งของเครื่องมือแต่ละตัวที่เริ่มต้นได้ด้วยตัวเอง หมายเลขบรรทัด จนถึงการจบโปรแกรม พร้อมโปรแกรมตัวอย่างและตัวจำลองของ Machining center และ Turning center

บทที่ 7 อธิบายว่าโปรแกรมประกอบจากคำและบรรทัด และบทที่ 8 ถึงบทที่ 10 อธิบายคำสั่ง G และ M ทีละกลุ่ม บทนี้นำทั้งหมดมาเรียงเป็นโปรแกรมที่ใช้งานจริง ว่าโปรแกรมทั้งโปรแกรมแบ่งเป็นส่วนใดบ้าง แต่ละส่วนเรียงลำดับอย่างไร และเพราะอะไร

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

11.1 โครงสร้างของโปรแกรมทั้งโปรแกรม

โปรแกรมที่ใช้ในการผลิตจริงแบ่งเป็นส่วนต่างๆ ตามลำดับดังนี้

  1. เครื่องหมายเริ่มไฟล์ %
  2. หมายเลขโปรแกรมและชื่อ เช่น O1101 (PLATE 4 HOLES)
  3. หัวโปรแกรม (Header) คำอธิบายที่บอกชิ้นงาน จุดศูนย์ชิ้นงาน และรายการเครื่องมือ
  4. บรรทัดเตรียมความปลอดภัย (Safety block) ยกเลิกสถานะที่ค้างและประกาศสถานะเริ่มต้น
  5. ชุดคำสั่งของเครื่องมือแต่ละตัว เรียงตามลำดับการตัดเฉือน เครื่องมือละหนึ่งชุด
  6. การจบโปรแกรม ถอยแกนไปตำแหน่งปลอดภัย และ M30
  7. เครื่องหมายจบไฟล์ %

11.1.1 เครื่องหมาย % หมายเลขโปรแกรม และชื่อ

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

หมายเลขโปรแกรม O ตามด้วยตัวเลขไม่เกินสี่หลักบนชุดควบคุมทั่วไป คือ O0001 ถึง O9999 ชุดควบคุมรุ่นใหม่บางรุ่นรับหมายเลขห้าหลักถึง O99999 หรือใช้ชื่อที่เป็นตัวอักษรได้ ข้อควรรู้มีดังนี้

  • หมายเลขต้องเป็นจำนวนเต็มบวกในช่วงที่ชุดควบคุมรับได้ หมายเลข 0 (O0 หรือ O0000) ใช้ไม่ได้ และใส่จุดทศนิยมหรือเครื่องหมายลบไม่ได้
  • เลขศูนย์นำหน้าจะเขียนหรือไม่เขียนก็ได้ O1 O01 O001 และ O0001 คือโปรแกรมหมายเลข 1 ตัวเดียวกัน
  • หมายเลขซ้ำจะเขียนทับหรือถูกปฏิเสธ เมื่อส่งโปรแกรมที่มีหมายเลขเดียวกับโปรแกรมที่มีอยู่แล้วในเครื่อง ชุดควบคุมจะขึ้น Alarm หรือเขียนทับโปรแกรมเดิม ขึ้นกับการตั้งค่า โรงงานควรมีระบบแบ่งช่วงหมายเลข เช่น O1000 ถึง O1999 สำหรับชิ้นงานของลูกค้ารายหนึ่ง
  • หมายเลขโปรแกรมใช้บอกที่มาของโปรแกรมได้ เมื่อวางระบบให้หลักของหมายเลขมีความหมาย เช่น หลักพันบอกเครื่องจักร และสามหลักท้ายบอกชิ้นงาน ผู้ปฏิบัติงานจะรู้จากหมายเลขว่าโปรแกรมนั้นเขียนสำหรับเครื่องใดหรือชิ้นงานใด
  • ช่วง O8000 ถึง O9999 มักถูกสงวนไว้สำหรับโปรแกรมของผู้ผลิตเครื่องและโปรแกรมมาโคร และถูกล็อกไม่ให้แก้ไขด้วยพารามิเตอร์ ไม่ควรใช้เป็นหมายเลขของโปรแกรมชิ้นงาน
  • ชื่อในวงเล็บต่อท้ายหมายเลข แสดงในหน้ารายการโปรแกรม ช่วยให้เลือกโปรแกรมถูกตัว
  • เครื่องหมาย : ใช้แทน O ได้เมื่อส่งโปรแกรมด้วยรหัสตัวอักษรแบบ ISO :1101 จึงมีความหมายเดียวกับ O1101 ส่วนรหัสตัวอักษรแบบ EIA ไม่มีเครื่องหมาย : จึงใช้ได้เฉพาะ O (บทที่ 1) เมื่อโปรแกรมอยู่ในหน่วยความจำแล้ว ชุดควบคุมแสดงหมายเลขโปรแกรมด้วย O เสมอ ตัวอักษร O ใช้ได้กับรหัสทั้งสองแบบ โปรแกรมที่เขียนใหม่จึงควรใช้ O ส่วน : เป็นสิ่งที่อาจพบในโปรแกรมเก่า

ไฟล์ที่ไม่มีหมายเลขโปรแกรม ก็ส่งเข้าเครื่องได้ ชุดควบคุม Fanuc กำหนดหมายเลขให้โปรแกรมที่รับเข้ามาตามลำดับดังนี้

  1. ถ้าผู้ปฏิบัติงานพิมพ์ O และหมายเลขที่แผงควบคุมก่อนสั่งรับโปรแกรม ชุดควบคุมใช้หมายเลขนั้น และไม่สนใจหมายเลขที่อยู่ในไฟล์
  2. ถ้าไม่ได้พิมพ์ ชุดควบคุมใช้หมายเลข O ที่อยู่ในไฟล์
  3. ถ้าไฟล์ไม่มีหมายเลข O ชุดควบคุมใช้หมายเลข N ของบรรทัดแรกเป็นหมายเลขโปรแกรม ยกเว้น N0 ซึ่งใช้ไม่ได้ เพราะไม่มีโปรแกรมหมายเลข 0
  4. ถ้าไม่มีทั้ง O และ N ผู้ปฏิบัติงานต้องกำหนดหมายเลขเองที่แผงควบคุม มิฉะนั้นชุดควบคุมบางรุ่นจะตั้งหมายเลขให้เอง โดยนำหมายเลขของโปรแกรมที่รับเข้ามาก่อนหน้ามาบวกหนึ่ง

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

บางโรงงานจะไม่ใส่หมายเลขโปรแกรมในไฟล์ และให้ผู้ปฏิบัติงานพิมพ์หมายเลขเองทุกครั้งตามข้อ 1 เพื่อเลือกหมายเลขที่ยังว่างในเครื่องนั้น และไม่เขียนทับโปรแกรมที่มีอยู่ ข้อเสียคือหมายเลขในเครื่องอาจไม่ตรงกับใบสั่งงานและเอกสารประกอบโปรแกรม และไฟล์ที่ขึ้นต้นด้วย N100 จะกลายเป็นโปรแกรม O0100 โดยไม่มีใครตั้งใจ ตัวอย่างในหนังสือเล่มนี้ใส่หมายเลขโปรแกรมไว้ในไฟล์ทุกโปรแกรม

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

ชื่อโปรแกรมต้องสั้นพอที่หน้าจอแสดงได้ครบ หน้ารายการโปรแกรมแสดงชื่อได้จำกัดจำนวนตัวอักษร ชื่อที่ยาวเกินไม่ทำให้เกิด Alarm แต่ตัวอักษรส่วนที่เกินจะไม่แสดง ถ้าสองโปรแกรมมีชื่อต่างกันเฉพาะตอนท้าย ชื่อที่แสดงบนหน้าจอจะเหมือนกันทุกตัวอักษร ตัวอย่างบนหน้าจอที่แสดงได้ 16 ตัวอักษร

O1105 (MOTOR BRACKET LEFT OP1)      (หน้าจอแสดง MOTOR BRACKET LE)
O1106 (MOTOR BRACKET LEFT OP2)      (หน้าจอแสดง MOTOR BRACKET LE)
FANUC Series 0i-F PROGRAM DIRECTORY O1105 N00000 PROGRAM(NUM.) USED 7 FREE 393 MEMORY(CHAR.) USED 14260 FREE 497740 NO. SIZE COMMENT UPDATE TIME O0001 420 SPINDLE WARM UP 2026/09/02 07:30 O1003 1860 COVER PLATE OP1 2026/10/01 15:12 O1004 1540 COVER PLATE OP2 2026/10/01 15:40 O1105 2210 MOTOR BRACKET LE 2026/10/07 09:05 O1106 2185 MOTOR BRACKET LE 2026/10/07 10:22 O1901 3460 5-TOOL COMPONENT 2026/10/09 14:48 O0806 2585 PALLET CHANGE 2026/08/20 11:03 >_ EDIT **** *** *** 09:31:58 ◁ PROGRM FOLDER NEXT CHECK (OPRT) ▷ 1 2 3 4 5 6 1 หน้ารายการโปรแกรม PROG แล้วซอฟต์คีย์ FOLDER รุ่นเก่าใช้ซอฟต์คีย์ DIR 2 จำนวนโปรแกรมและหน่วยความจำ ที่ใช้ไปแล้วและที่ยังเหลือ 3 NO. หมายเลขโปรแกรม แยกโปรแกรมได้เสมอ 4 COMMENT comment แรกต่อจากหมายเลข เครื่องนี้แสดง 16 ตัวอักษรแรก 5 O1105 O1106 ชื่อเต็มต่างกันที่ OP1 OP2 บนจอเหมือนกันทุกตัวอักษร 6 UPDATE TIME เวลาที่แก้ไขครั้งล่าสุด คอลัมน์ต่างกันตามรุ่น
รูปที่ 11.1 หน้ารายการโปรแกรมที่แสดงชื่อ 16 ตัวอักษร

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

O1105 (MTR BRKT L OP1)
O1106 (MTR BRKT L OP2)

จำนวนตัวอักษรที่แสดงได้ต่างกันตามรุ่นและการตั้งค่าของชุดควบคุม คู่มือของ Fanuc Series 16i/18i ระบุว่าแสดงได้ 31 ตัวอักษร และเหลือ 16 ตัวอักษรแรกเมื่อหน้ารายการโปรแกรมแสดงเวลาตัดเฉือนของโปรแกรมด้วย บางรุ่นต้องตั้งพารามิเตอร์ก่อนจึงจะแสดงชื่อ ส่วน Series 0 รุ่นเก่าแสดงเฉพาะหมายเลขโปรแกรม ไม่แสดงชื่อเลย ถ้าโปรแกรมเดียวกันต้องใช้กับเครื่องหลายรุ่น ให้ตั้งชื่อตามเครื่องที่แสดงได้น้อยที่สุด และตรวจจำนวนที่แสดงได้จริงจากหน้ารายการโปรแกรมของเครื่องนั้น

11.1.2 หัวโปรแกรม

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

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

ตัวอย่างต้นโปรแกรมที่มีหมายเลขโปรแกรม ชื่อ และหัวโปรแกรมครบ

%
O1101 (PLATE 4 HOLES)
(DWG P-1101 REV A  MAT S45C)
(G54 X0 Y0 = LOWER LEFT CORNER  Z0 = TOP FACE)
(T01 SPOT DRILL D10 90DEG)
(T02 DRILL D8.5 HSS)
(PROG S.K.  DATE 2026-10-07)
ตารางที่ 11.1 ส่วนต่างๆ ของหัวโปรแกรมตัวอย่าง
บรรทัด ส่วน บอกอะไร
O1101 (PLATE 4 HOLES) หมายเลขโปรแกรมและชื่อ โปรแกรมหมายเลข 1101 ชื่อ PLATE 4 HOLES ยาว 13 ตัวอักษร แสดงได้ครบในหน้ารายการโปรแกรม
(DWG P-1101 REV A MAT S45C) ชิ้นงาน เลขที่แบบงาน P-1101 ฉบับแก้ไข A วัสดุ S45C
(G54 X0 Y0 = ... Z0 = TOP FACE) จุดศูนย์ชิ้นงาน ใช้ G54 ตั้งที่มุมซ้ายล่าง และ Z0 อยู่ที่ผิวบน
(T01 ...) (T02 ...) รายการเครื่องมือ ดอกนำศูนย์ Ø10 มุม 90° และดอกสว่าน Ø8.5
(PROG S.K. DATE 2026-10-07) ผู้เขียนและวันที่ ชื่อย่อผู้เขียนและวันที่เขียนหรือแก้ไขล่าสุด

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

ซอฟต์แวร์ CAM ส่วนใหญ่สร้างหัวโปรแกรมให้อัตโนมัติจากข้อมูลเครื่องมือและการตั้งค่า ถ้าตั้งค่าตัวแปลงโปรแกรม (Post-processor) ให้ส่งรายการเครื่องมือออกมาในหัวโปรแกรม ก็ไม่ต้องพิมพ์เอง

11.1.3 บรรทัดเตรียมความปลอดภัย (Safety Line / Safe Start Block)

บรรทัดเตรียมความปลอดภัยคือบรรทัดแรกที่ชุดควบคุมจะเริ่มอ่านและประมวลผลคำสั่งจริง มีหน้าที่สำคัญสูงสุดคือ ประกาศโหมดการทำงานมาตรฐานที่โปรแกรมต้องการอย่างชัดเจน และล้างค่าโหมดคำสั่งคงสถานะ (Modal commands) ที่อาจตกค้างมาจากการรันโปรแกรมก่อนหน้า หรือการสั่งงานด้วยมือ (MDI) ตามที่ได้เน้นย้ำไว้ในบทที่ 0 และบทที่ 7

ตัวอย่างบรรทัดเตรียมความปลอดภัยสำหรับเครื่องกัด Machining Center:

G17 G21 G40 G49 G80 G90 G94
ตารางที่ 11.2 ความหมายของบรรทัดเตรียมความปลอดภัยของเครื่องกัด
คำสั่ง ความหมายและหน้าที่ด้านความปลอดภัย
G17 บังคับเลือกระนาบ XY สำหรับการเดินส่วนโค้ง (G02/G03) และการชดเชยรัศมีเครื่องมือ
G21 บังคับหน่วยวัดพิกัดเป็นระบบมิลลิเมตร (Metric) ป้องกันไม่ให้เครื่องอ่านค่ามิลลิเมตรเป็นนิ้ว (ใหญ่ขึ้น 25.4 เท่า) หากเครื่องค้างในโหมด G20
G40 สั่งยกเลิกการชดเชยรัศมีเครื่องมือตัด (Cutter radius compensation cancel)
G49 สั่งยกเลิกค่าชดเชยความยาวเครื่องมือเดิม (Tool length offset cancel) เพื่อเตรียมรับค่า H ใหม่
G80 สั่งยกเลิกคำสั่งเจาะสำเร็จรูป (Canned cycle cancel) ป้องกันไม่ให้แกน Z พุ่งเจาะอัตโนมัติเมื่ออ่านพิกัด X Y
G90 บังคับระบบพิกัดสัมบูรณ์ (Absolute mode) ป้องกันการหลงทางหากมีโหมดระยะสัมพัทธ์ G91 ตกค้างอยู่
G94 บังคับหน่วยอัตราป้อนเป็น มิลลิเมตรต่อนาที (mm/min) สำหรับงานกัด

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

11.2 ชุดคำสั่งของเครื่องมือแต่ละตัว (Tool Section)

หลักสำคัญของการจัดโครงสร้างโปรแกรม CNC คือ การแบ่งโปรแกรมออกเป็นบล็อกชุดคำสั่งของเครื่องมือแต่ละตัว (Tool Sections) อย่างเป็นอิสระต่อกัน โดยเครื่องมือตัดแต่ละตัวจะมีชุดคำสั่ง 1 ชุดที่มีโครงสร้างเป็นมาตรฐานเหมือนกันทุกประการ:

ตารางที่ 11.3 ลำดับมาตรฐานในชุดคำสั่งของเครื่องมือบน Machining center
ขั้นตอน ตัวอย่างคำสั่ง หน้าที่และคำอธิบาย
1. บรรทัดหมายเหตุ (T02 DRILL D8.5) ระบุหมายเลขเครื่องมือ ชนิด ขนาด และหน้าที่ เพื่อให้ผู้ปฏิบัติงานอ่านเข้าใจทันที
2. หมุนเปลี่ยนเครื่องมือ N200 T02 M06 สั่งให้แขนกล ATC ดึงเครื่องมือเบอร์ 2 เข้าสู่หัวสปินเดิล (กำหนดหมายเลข N200 ตามหมายเลขเครื่องมือ)
3. เคลื่อนเข้าจุดแรกพร้อมเปิดรอบ G90 G54 G00 X15. Y15. S900 M03 กำหนดจุดศูนย์งาน G54, เคลื่อนที่เร็วไปเหนือตำแหน่งแรก และสั่งหมุนสปินเดิล 900 รอบ/นาที
4. ลงแกน Z พร้อมชดเชยความยาว G43 H02 Z50. M08 เรียกชดเชยความยาวเครื่องมือด้วย H02, เลื่อนปลายเครื่องมือลงมาที่ระดับปลอดภัย Z50 และเปิดน้ำหล่อเย็น
5. เริ่มตัดเฉือนเนื้องาน G99 G83 Z-25. R2. Q5. F120. ทำงานตัดเฉือน เจาะ กัด หรือปาดหน้า ตามหน้าที่ของเครื่องมือตัวนี้
6. ถอยเครื่องมือ ยกเลิกคำสั่ง และหยุดรอบ G80 M09
G91 G28 Z0 G49 M05
ยกเลิกวัฏจักรเจาะ, ปิดน้ำหล่อเย็น, ถอยแกน Z ขึ้นสุดจุดอ้างอิงเครื่อง, ยกเลิกค่า H และดับสปินเดิล
7. บรรทัดหยุดตรวจงาน M01 คำสั่งหยุดโปรแกรมแบบมีเงื่อนไข (Optional stop) ให้ช่างตรวจดูความเรียบร้อยของเครื่องมือและชิ้นงาน

11.2.1 กฎสำคัญ: ทุกชุดคำสั่งต้องเริ่มต้นได้ด้วยตัวเอง (Self-Contained Tool Section)

ทำไมในขั้นตอนที่ 3 และ 4 จึงต้องสั่ง G90, G54, ความเร็วรอบ S... M03 และ G43 H... ซ้ำใหม่ทุกครั้ง ทั้งๆ ที่เครื่องมือก่อนหน้าก็เพิ่งสั่งค่าเหล่านี้ไปแล้ว?

คำตอบคือ ในงานผลิตจริง ช่างต้องสามารถสั่งเริ่มเดินเครื่องจากกลางโปรแกรมได้เสมอ

ตัวอย่างเช่น:

  • ดอกเอ็นมิลล์ตัวที่ 3 เกิดสึกหรือหักระหว่างกัดงาน ช่างต้องเปลี่ยนเครื่องมือใหม่ แล้วสั่งเดินเครื่องต่อเฉพาะชุดคำสั่งของเครื่องมือตัวนั้นได้ทันที
  • หรือหลังเจาะรูเสร็จ เมื่อวัดชิ้นงานแล้วพบว่าความลึกของรูยังขาดไป 0.5 มม. ช่างก็สามารถปรับแก้ค่าแล้วสั่งเจาะซ้ำเฉพาะดอกสว่านตัวนั้นได้ โดยไม่ต้องเริ่มเดินเครื่องใหม่ตั้งแต่ต้นชิ้นงาน

หากชุดคำสั่งของเครื่องมือตัวนั้นไม่ได้ระบุคำสั่งเปิดสปินเดิล S... M03 หรือไม่ได้เรียกค่าชดเชยความยาว G43 ไว้ในบล็อกของตัวเอง เมื่อสั่งเดินเครื่องจากหัวชุดคำสั่งนั้น สปินเดิลจะไม่หมุน และแกน Z จะเคลื่อนที่ลงไปด้วยค่าความยาวเดิมจนชนกระแทกชิ้นงานเสียหายทันที

ดังนั้น ชุดคำสั่งของเครื่องมือแต่ละตัวจึงต้องเขียนให้สมบูรณ์ในตัวเอง (Self-contained) โดยประกอบด้วย:

  1. เลือกระบบพิกัดชิ้นงาน (G54)
  2. กำหนดความเร็วรอบสปินเดิลและทิศทางหมุน (S____ M03)
  3. เรียกค่าชดเชยความยาวเครื่องมือและระดับความสูงปลอดภัย (G43 H__ Z50.)
  4. เปิดน้ำหล่อเย็น (M08)

11.2.2 การเตรียมเรียกเครื่องมือตัวถัดไปมารอล่วงหน้า (Pre-staging Tools)

บนเครื่องจักรที่ใช้ระบบเปลี่ยนเครื่องมืออัตโนมัติ (ATC) แบบมีแขนกลคู่ (Twin-arm type) คำสั่ง T และ M06 จะทำงานแยกส่วนกัน:

  • คำสั่ง T__ คือการสั่งให้แม็กกาซีนหมุนช่องเก็บเครื่องมือเบอร์นั้นๆ มารอเตรียมพร้อมอยู่ที่ตำแหน่งพร้อมเปลี่ยน
  • คำสั่ง M06 คือการสั่งให้แขนกลสลับเครื่องมือระหว่างแม็กกาซีนกับหัวสปินเดิล

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

N200 T02 M06            (แขนกลสลับเครื่องมือหมายเลข 2 เข้าหัวสปินเดิล)
N205 T03                (สั่งแม็กกาซีนหมุนเตรียมเครื่องมือหมายเลข 3 มารอไว้ล่วงหน้า ระหว่างที่เครื่องมือ 2 กำลังเจาะงาน)

เทคนิคนี้เรียกว่า Pre-staging ซึ่งช่วยลดเวลารอเปลี่ยนเครื่องมือ (Chip-to-chip time) ลงได้ 2 ถึง 5 วินาทีในทุกๆ เครื่องมือ แต่มีข้อสังเกตคือ บนหน้าจอแสดงสถานะของเครื่องจักร ช่องแสดง “Next Tool” จะโชว์หมายเลขเครื่องมือที่กำลังจอดรออยู่ (T03) ไม่ใช่เครื่องมือที่กำลังตัดเฉือนอยู่ในสปินเดิล (T02) ผู้ปฏิบัติงานหน้าเครื่องจึงต้องเข้าใจความแตกต่างนี้เป็นอย่างดี

11.3 หมายเลขบรรทัด

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

  • ค้นหาและเริ่มโปรแกรมใหม่ ทั้งการค้นหาบรรทัดในหน้าแก้ไขโปรแกรม และ Program restart ในบทที่ 3
  • เป็นเป้าหมายของคำสั่งบางคำสั่ง เช่น คำสั่งกลึงหยาบสำเร็จรูปของเครื่องกลึงที่อ้างถึงบรรทัดแรกและบรรทัดสุดท้ายของรูปร่างด้วยหมายเลข N ซึ่งจะอธิบายในบทต่อๆ ไป
  • อ่านโปรแกรมง่ายขึ้น ทั้งบนหน้าจอขณะเครื่องทำงานและบนกระดาษ ผู้เขียนโปรแกรมและผู้ปฏิบัติงานอ้างถึงบรรทัดเดียวกันได้ด้วยหมายเลข

ข้อเสียคือหมายเลขบรรทัดใช้หน่วยความจำของชุดควบคุม ตัวอักษรทุกตัวของ N และตัวเลขนับเป็นขนาดของโปรแกรม เครื่องที่หน่วยความจำน้อยจึงเก็บโปรแกรมได้น้อยลง และโปรแกรมยาวอาจเก็บได้ไม่ครบทั้งโปรแกรม

ช่วงของหมายเลขที่ใช้ได้ บนชุดควบคุม Fanuc รุ่นใหม่ หมายเลขบรรทัดเขียนด้วย N ตามด้วยตัวเลขไม่เกินห้าหลัก คือ N1 ถึง N99999 ส่วนรุ่นเก่าอย่าง Series 0 รับได้ถึง N9999 จึงควรตรวจสอบกับคู่มือของเครื่องที่ใช้ N0 ไม่ควรใช้ เพราะบางรุ่นไม่รับ และใช้เป็นหมายเลขโปรแกรมไม่ได้เมื่อไฟล์ไม่มีหมายเลข O ชุดควบคุม Fanuc ไม่บังคับลำดับของหมายเลข จะเรียงจากน้อยไปมาก จากมากไปน้อย หรือสลับกันก็ได้ ข้ามหมายเลขได้ ซ้ำกันได้ หรือไม่ใส่เลยทั้งโปรแกรมก็ได้ โดยไม่เกิด Alarm แต่สิ่งที่เครื่องยอมรับไม่ใช่สิ่งที่ควรทำทั้งหมด การเรียงจากน้อยไปมากและไม่ซ้ำกันทำให้ค้นหาบรรทัดได้ถูกต้อง ตามแนวทางด้านล่าง

แนวทางที่ใช้กันทั่วไป

  • เว้นทีละ 10 เช่น N10 N20 N30 เพื่อแทรกบรรทัดใหม่ภายหลังได้โดยไม่ต้องเรียงหมายเลขใหม่ทั้งโปรแกรม
  • ไม่ต้องเขียนเลขศูนย์นำหน้า N00008 เขียนเป็น N8 ได้ และควรเขียนแบบนั้นเพื่อลดจำนวนตัวอักษรของโปรแกรม ส่วนเลขศูนย์ท้ายต้องเขียนเสมอ เพราะ N80 กับ N08 เป็นคนละหมายเลข N08 คือ N8
  • ขึ้นหลักร้อยใหม่ที่ต้นชุดคำสั่งของเครื่องมือ ตามหมายเลขเครื่องมือดังตัวอย่างข้างต้น
  • ใส่ N เฉพาะบรรทัดสำคัญก็ได้ เช่น เฉพาะต้นชุดคำสั่งของเครื่องมือ โปรแกรมจาก CAM ที่มีหลายหมื่นบรรทัดมักใส่ N เฉพาะต้นชุดคำสั่งของเครื่องมือ เพื่อประหยัดหน่วยความจำของชุดควบคุม
  • หลีกเลี่ยงหมายเลขซ้ำ เพราะการค้นหาจะหยุดที่ตัวแรกที่พบ ซึ่งอาจไม่ใช่บรรทัดที่ต้องการ
  • ไม่ควรใช้หมายเลขซ้ำกันระหว่างโปรแกรมหลักกับโปรแกรมย่อย ชุดควบคุมไม่ถือว่าผิด เพราะแต่ละโปรแกรมมีหมายเลขบรรทัดของตัวเอง แต่ถ้าโปรแกรมหลักและโปรแกรมย่อยเริ่มที่ N1 เหมือนกัน ผู้ปฏิบัติงานที่เห็น N1 บนหน้าจอจะไม่รู้ทันทีว่าเครื่องกำลังทำงานอยู่ในโปรแกรมใด ให้แบ่งช่วงหมายเลข เช่น โปรแกรมหลักใช้ N10 ถึง N990 และโปรแกรมย่อยเริ่มที่ N1000

11.4 การหยุดและจบโปรแกรม

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

ขั้นตอนที่ต้องทำซ้ำ เช่น รูปร่างเดียวกันบนหลายตำแหน่ง หรือชิ้นงานหลายชิ้นบนปากกาหลายตัว ไม่ต้องเขียนซ้ำในโปรแกรมหลัก แต่แยกเป็นโปรแกรมย่อยที่เรียกด้วย M98 และจบด้วย M99 ตามตัวอย่างในบทที่ 10

11.5 ตัวอย่างโปรแกรม Machining center

ชิ้นงานเป็นแผ่นเหล็ก 100 × 70 หนา 20 มม. ต้องการรูทะลุ Ø8.5 สี่รู ที่ตำแหน่ง (15, 15) (85, 15) (85, 55) และ (15, 55) มม. จากมุมซ้ายล่าง จุดศูนย์ชิ้นงาน G54 อยู่ที่มุมซ้ายล่างของผิวบน ใช้เครื่องมือสองตัว คือดอกนำศูนย์ Ø10 มุม 90° เจาะนำและลบมุมปากรู แล้วตามด้วยดอกสว่าน Ø8.5 เจาะทะลุ

อ่านตัวอย่างนี้เพื่อดูรูปร่างของทั้งโปรแกรม ว่ามีหัวโปรแกรม บรรทัดเตรียมความปลอดภัย ชุดคำสั่งของเครื่องมือแต่ละตัว และท้ายโปรแกรมอย่างไร ทุกบรรทัดมีคำอธิบายสั้นๆ ในตารางถัดไป คำสั่งส่วนใหญ่อธิบายไว้แล้ว คือ ค่าชดเชยความยาว G43 ซึ่งกล่าวถึงสั้นๆ ในบทที่ 6 และอธิบายเต็มในบทที่ 12 การเคลื่อนที่ G00 G01 ในบทที่ 8 โหมดต่างๆ เช่น G17 G21 G90 G94 ในบทที่ 9 และคำสั่ง M เช่น M03 M06 M08 ในบทที่ 10 ส่วนคำสั่งเจาะสำเร็จรูป G81 และ G83 จะอธิบายในบทต่อๆ ไป

โปรแกรมด้านล่างเขียนแบบที่ส่งเข้าเครื่องจริง คำอธิบายจึงเป็นภาษาอังกฤษ ความเร็วรอบและอัตราป้อนเป็นค่าตัวอย่าง

%
O1101 (PLATE 100X70 4 HOLES)
(DWG P-1101 REV A  MAT S45C)
(G54 X0 Y0 = LOWER LEFT CORNER  Z0 = TOP FACE)
(T01 SPOT DRILL D10 90DEG)
(T02 DRILL D8.5 HSS)
N10 G17 G21 G40 G49 G80 G90 G94
N20 G91 G28 Z0
N30 G90
(T01 SPOT DRILL D10)
N100 T01 M06
N110 G90 G54 G00 X15. Y15. S800 M03
N120 G43 H01 Z50. M08
N130 G99 G81 X15. Y15. Z-4.8 R3. F80
N140 X85.
N150 Y55.
N160 X15.
N170 G80 M09
N180 G91 G28 Z0
N185 G49
N190 M05
N195 M01
(T02 DRILL D8.5)
N200 T02 M06
N210 G90 G54 G00 X15. Y15. S900 M03
N220 G43 H02 Z50. M08
N230 G99 G83 X15. Y15. Z-24. R3. Q5. F130
N240 X85.
N250 Y55.
N260 X15.
N270 G80 M09
N280 G91 G28 Z0
N290 M05
N300 G49
N310 G28 X0 Y0
N320 G90
N330 M30
%

ดูเครื่องมือเดินตั้งแต่ N10 ถึง N330 ได้ในตัวจำลองการตัด และBackplot

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

ตารางที่ 11.4 ส่วนต่างๆ ของโปรแกรมตัวอย่าง O1101
บรรทัด โค้ด สิ่งที่เกิดขึ้น
% ถึงคำอธิบาย T02 %
O1101 (PLATE 100X70 4 HOLES)
(DWG P-1101 REV A MAT S45C)
(G54 X0 Y0 = LOWER LEFT CORNER Z0 = TOP FACE)
(T01 SPOT DRILL D10 90DEG)
(T02 DRILL D8.5 HSS)
% เริ่มไฟล์
O1101 หมายเลขโปรแกรม ชื่อในวงเล็บแสดงในหน้ารายการโปรแกรม
คำอธิบายบอกแบบงาน วัสดุ ตำแหน่ง G54 และรายการเครื่องมือ
N10 ถึง N30 N10 G17 G21 G40 G49 G80 G90 G94
N20 G91 G28 Z0
N30 G90
G17 ระนาบ XY · G21 มิลลิเมตร · G40 ยกเลิกชดเชยรัศมี
G49 ยกเลิกชดเชยความยาว · G80 ยกเลิกคำสั่งเจาะสำเร็จรูป
G90 แบบสัมบูรณ์ · G94 อัตราป้อน มม./นาที
G91 G28 Z0 ถอยแกน Z ขึ้นจุดอ้างอิง เผื่อเครื่องมืออยู่ต่ำ
G90 กลับโหมดแบบสัมบูรณ์
N100 ถึง N195 (T01 SPOT DRILL D10)
N100 T01 M06
N110 G90 G54 G00 X15. Y15. S800 M03
N120 G43 H01 Z50. M08
N130 G99 G81 X15. Y15. Z-4.8 R3. F80
N140 X85.
N150 Y55.
N160 X15.
N170 G80 M09
N180 G91 G28 Z0
N185 G49
N190 M05
N195 M01
T01 M06 เปลี่ยนเป็นดอกนำศูนย์
G90 G54 G00 X15. Y15. เคลื่อนที่เร็วไปเหนือรูแรก · S800 M03 สปินเดิล 800 รอบ/นาที
G43 H01 Z50. เปิดชดเชยความยาวแล้วลงมาเหนือชิ้นงาน 50 มม. · M08 เปิดน้ำหล่อเย็น
G99 G81 Z-4.8 R3. F80 เจาะนำลึก 4.8 มม. ได้ขอบลบมุม Ø9.6 แล้วถอยถึงระดับ R
X85. Y55. X15. เจาะรูที่เหลือ เพราะ G81 ยังคงสถานะ
G80 M09 ยกเลิกคำสั่งเจาะสำเร็จรูป ปิดน้ำหล่อเย็น
G91 G28 Z0 ถอยแกน Z · G49 ยกเลิกชดเชยความยาว · M05 หยุดสปินเดิล · M01 หยุดตรวจ
N200 ถึง N290 (T02 DRILL D8.5)
N200 T02 M06
N210 G90 G54 G00 X15. Y15. S900 M03
N220 G43 H02 Z50. M08
N230 G99 G83 X15. Y15. Z-24. R3. Q5. F130
N240 X85.
N250 Y55.
N260 X15.
N270 G80 M09
N280 G91 G28 Z0
N290 M05
T02 M06 เปลี่ยนเป็นดอกสว่าน
G90 G54 G00 X15. Y15. S900 M03 ประกาศระบบพิกัดและจุดศูนย์ใหม่ ไปเหนือรูแรก และหมุนสปินเดิล
G43 H02 Z50. M08 ชดเชยความยาวของเครื่องมือตัวนี้ และเปิดน้ำหล่อเย็น
G99 G83 Z-24. R3. Q5. F130 เจาะถอนเศษทีละ 5 มม. ถึงลึก 24 มม. เผื่อปลายดอกสว่านให้ทะลุพ้นผิวล่าง
X85. Y55. X15. เจาะรูที่เหลือ เพราะ G83 ยังคงสถานะ
G80 M09 ยกเลิกคำสั่งเจาะสำเร็จรูป · G91 G28 Z0 ถอยแกน Z · M05 หยุดสปินเดิล
N300 ถึง N330 N300 G49
N310 G28 X0 Y0
N320 G90
N330 M30
%
G49 ยกเลิกชดเชยความยาว
G28 X0 Y0 ถอยแกน X Y กลับจุดอ้างอิง (G91 ยังคงสถานะจาก N280)
G90 กลับโหมดแบบสัมบูรณ์
M30 จบโปรแกรมและย้อนกลับต้นโปรแกรม · % จบไฟล์

ข้อสังเกตจากโปรแกรมนี้

  • ชุดคำสั่งของเครื่องมือทั้งสองมีหน้าตาเหมือนกัน ต่างกันเพียงหมายเลขเครื่องมือ ความเร็วรอบ และบรรทัดตัดเฉือน โปรแกรมที่มีสิบเครื่องมือก็มีสิบชุดที่หน้าตาเหมือนกันแบบนี้
  • บรรทัด N130 และ N230 เขียนพิกัดของรูแรกซ้ำ ทั้งที่เครื่องมืออยู่เหนือตำแหน่งนั้นแล้ว เพื่อให้บรรทัดคำสั่งเจาะสำเร็จรูปอ่านเข้าใจได้ด้วยตัวเอง บรรทัดถัดมาเขียนเพียงแกนที่เปลี่ยน เพราะคำสั่งเจาะสำเร็จรูปเป็นคำสั่งคงสถานะ ทุกบรรทัดที่มีพิกัดจึงเจาะรูใหม่จนกว่าจะพบ G80
  • G91 G28 Z0 ตามด้วย G90 เสมอ ในบรรทัด N20 ถึง N30 และ N310 ถึง N320 ส่วนระหว่างชุดคำสั่งของเครื่องมือ บรรทัด N210 ประกาศ G90 ใหม่เองอยู่แล้ว
  • ชุดคำสั่งของเครื่องมือตัวที่ 2 เริ่มได้เองที่ N200 โดยไม่ต้องเดินชุดคำสั่งของเครื่องมือตัวที่ 1 ก่อน เพราะบรรทัด N200 ถึง N220 สั่งทุกอย่างที่ต้องใช้ใหม่เอง ได้แก่ เปลี่ยนเครื่องมือ (T02 M06) โหมดตำแหน่งและจุดศูนย์ชิ้นงาน (G90 G54) ความเร็วรอบและทิศหมุน (S900 M03) ค่าชดเชยความยาว (G43 H02) และน้ำหล่อเย็น (M08) ไม่มีค่าใดที่อาศัยสถานะค้างจากเครื่องมือตัวก่อน

11.6 ตัวอย่างโปรแกรม Turning center

โครงสร้างบนเครื่องกลึงเหมือนกัน แต่รายละเอียดของแต่ละส่วนต่างไปตามที่อธิบายในบทที่ 5 และบทที่ 6 ได้แก่ คำสั่ง T สี่หลักที่เรียกค่าชดเชยพร้อมกับหมุนป้อมมีด การจำกัดรอบสูงสุดก่อนใช้ความเร็วผิวคงที่ และอัตราป้อนเป็น มม./รอบ คำสั่งของเครื่องกลึง เช่น G50 G96 G99 อธิบายไว้ในบทที่ 9

ตัวอย่างนี้ปาดหน้าและกลึงผิวนอกเพลาเหล็กจาก Ø34 เป็น Ø30 ยาว 40 มม. แล้วเจาะนำศูนย์ที่หน้างาน จุดศูนย์ชิ้นงาน Z0 อยู่ที่หน้างานที่กลึงเสร็จ

%
O1102 (SHAFT D30 FACE TURN CENTER)
(Z0 = FINISHED FACE)
(T0101 OD TURNING CNMG R0.8)
(T0303 CENTER DRILL D3.15)
N10 G18 G21 G40 G99
N20 G28 U0.
N30 G28 W0.
(T0101 FACE AND TURN)
N100 T0101
N110 G50 S2500
N120 G97 S1590 M03
N130 G00 X36. Z0 M08
N135 G96 S180
N140 G01 X-1.6 F0.15
N150 G00 Z2.
N160 X30.
N170 G01 Z-40. F0.2
N180 X36.
N190 G00 X150. Z100. M09
N195 M01
(T0303 CENTER DRILL)
N300 T0303
N310 G97 S1200 M03
N320 G00 X0 Z5. M08
N330 G01 Z-5. F0.08
N340 G00 Z5.
N350 X150. Z100. M09
N360 M05
N370 M30
%

ดูเครื่องมือเดินตั้งแต่ N10 ถึง N370 ได้ในตัวจำลองการตัด และBackplot

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

ตารางที่ 11.5 ส่วนต่างๆ ของโปรแกรมตัวอย่าง O1102
บรรทัด โค้ด สิ่งที่เกิดขึ้น
N10 N10 G18 G21 G40 G99 G18 ระนาบ ZX · G21 มิลลิเมตร · G40 ยกเลิกชดเชยรัศมีปลายมีด · G99 อัตราป้อน มม./รอบ
N20 N30 N20 G28 U0.
N30 G28 W0.
G28 U0. ถอยแกน X ขึ้นจุดอ้างอิงก่อน
G28 W0. แล้วจึงถอยแกน Z เพื่อไม่ให้มีดลากผ่านหน้าชิ้นงาน
U และ W เป็นระยะแบบสัมพัทธ์ จึงให้ผลเหมือน G91 G28 ของเครื่องกัด
N100 (T0101 FACE AND TURN)
N100 T0101
T0101 หมุนป้อมมีดไปสถานีที่ 1 และใช้ค่าชดเชยชุดที่ 1
N110 N120 N110 G50 S2500
N120 G97 S1590 M03
G50 S2500 จำกัดรอบสูงสุด 2500 รอบ/นาที ก่อน
G97 S1590 M03 หมุนสปินเดิลด้วยรอบคงที่เท่ากับรอบที่ Ø36 จุดเริ่มตัด (1000 × 180 ÷ (π × 36) ≈ 1590) สปินเดิลจึงเร่งรอบไปพร้อมกับที่มีดเคลื่อนเข้าหาชิ้นงาน
N130 ถึง N180 N130 G00 X36. Z0 M08
N135 G96 S180
N140 G01 X-1.6 F0.15
N150 G00 Z2.
N160 X30.
N170 G01 Z-40. F0.2
N180 X36.
G00 X36. Z0 M08 เคลื่อนที่เร็วไปที่หน้างาน เปิดน้ำหล่อเย็น
G96 S180 เปลี่ยนเป็นความเร็วผิวคงที่ 180 ม./นาที ที่จุดเริ่มตัด รอบแทบไม่เปลี่ยนเพราะสปินเดิลหมุนที่รอบของ Ø36 อยู่แล้ว
G01 X-1.6 F0.15 ปาดหน้าผ่านแนวศูนย์กลาง
G00 Z2. X30. ถอยออกจากหน้างาน แล้วไปที่ Ø30
G01 Z-40. F0.2 กลึงผิวนอก Ø30 ยาว 40 มม.
X36. ถอยมีดขึ้นจากผิวงาน
N190 N195 N190 G00 X150. Z100. M09
N195 M01
G00 X150. Z100. M09 ถอยไปตำแหน่งเปลี่ยนมีดที่ปลอดภัย ปิดน้ำหล่อเย็น
M01 หยุดตรวจ
N300 ถึง N350 (T0303 CENTER DRILL)
N300 T0303
N310 G97 S1200 M03
N320 G00 X0 Z5. M08
N330 G01 Z-5. F0.08
N340 G00 Z5.
N350 X150. Z100. M09
T0303 หมุนป้อมมีดไปดอกนำศูนย์
G97 S1200 M03 ความเร็วรอบคงที่ 1200 รอบ/นาที
G00 X0 Z5. M08 ไปที่แนวศูนย์กลางหน้าชิ้นงาน เปิดน้ำหล่อเย็น
G01 Z-5. F0.08 เจาะลึก 5 มม.
G00 Z5. X150. Z100. M09 ถอยออกไปตำแหน่งเปลี่ยนมีด ปิดน้ำหล่อเย็น
N360 N370 N360 M05
N370 M30
%
M05 หยุดสปินเดิล
M30 จบโปรแกรมและย้อนกลับต้นโปรแกรม · % จบไฟล์

ข้อสังเกตเฉพาะของเครื่องกลึง

  • เลือกวิธีกำหนดความเร็วรอบใหม่ทุกชุดคำสั่ง มีดกลึงใช้ G96 ความเร็วผิวคงที่ แต่ดอกนำศูนย์ที่อยู่บนแนวศูนย์กลางต้องใช้ G97 ความเร็วรอบคงที่ ถ้าใช้ G96 ที่ X0 ชุดควบคุมจะเร่งรอบไปจนถึงค่าที่จำกัดไว้ และถ้าสั่ง G97 โดยไม่มี S ชุดควบคุมจะคงความเร็วรอบ ณ ขณะนั้นไว้ ซึ่งขึ้นกับว่ามีดตัวก่อนหยุดที่เส้นผ่านศูนย์กลางใด ดังนั้นต้องเขียน G97 S__ คู่กันเสมอ
  • ปาดหน้าเลยแนวศูนย์กลาง บรรทัด N140 ปาดไปที่ X-1.6 ซึ่งเลยศูนย์กลางไป 0.8 มม. เท่ากับรัศมีปลายมีด เพราะค่า X เป็นเส้นผ่านศูนย์กลาง ปลายมีดที่โค้งจึงปาดผ่านศูนย์กลางได้หมดโดยไม่เหลือแกนเล็กๆ ที่ศูนย์กลาง
  • ตำแหน่งเปลี่ยนมีด ตัวอย่างนี้ถอยมีดไปที่ X150. Z100. ซึ่งต้องห่างพอให้ป้อมมีดหมุนได้โดยไม่ชนชิ้นงานหรือหัวจับ บางโรงงานใช้ G28 U0. และ G28 W0. แทน หรือใช้ G30 จุดอ้างอิงที่สองที่ตั้งไว้เป็นตำแหน่งเปลี่ยนมีด ถ้าใช้ ต้องยกเลิกการชดเชยรัศมีปลายมีดด้วย G40 ก่อน และห้ามเขียนคำสั่ง T ในบรรทัดเดียวกัน ตามบทที่ 14
  • G99 บนเครื่องกลึงกับเครื่องกัดคนละความหมาย บนเครื่องกลึงระบบ A คืออัตราป้อน มม./รอบ แต่บนเครื่องกัดคือการถอยถึงระดับ R ในคำสั่งเจาะสำเร็จรูป ผู้ที่เขียนโปรแกรมทั้งสองเครื่องต้องอ่านบรรทัดเตรียมความปลอดภัยให้ตรงกับเครื่อง
  • หมายเลขบรรทัดตามสถานีป้อมมีด ชุดคำสั่งของ T0303 เริ่มที่ N300 แม้เป็นเครื่องมือตัวที่สองในโปรแกรม เพื่อให้หมายเลข N บอกสถานีของมีดได้ทันที

11.7 ข้อผิดพลาดที่พบบ่อย

ตารางที่ 11.6 ข้อผิดพลาดของโครงสร้างโปรแกรมที่พบบ่อย
ข้อผิดพลาด ผลที่เกิด ป้องกันโดย
ไม่มีบรรทัดเตรียมความปลอดภัย โปรแกรมทำงานด้วยสถานะที่ค้างจากโปรแกรมก่อนหน้าหรือจาก MDI ประกาศทุกกลุ่มที่มีผลต่อการเคลื่อนที่ไว้ต้นโปรแกรม
ชุดคำสั่งของเครื่องมือไม่สั่ง S F หรือ G43 เอง เริ่มกลางโปรแกรมแล้วใช้ค่าที่ค้างอยู่ ทำให้ทุกชุดคำสั่งเริ่มต้นได้ด้วยตัวเอง
ไฟล์ไม่มี % ส่งเข้าเครื่องไม่ได้ หรือค้างรอข้อมูล ตรวจต้นและท้ายไฟล์ก่อนส่ง
หมายเลขโปรแกรมซ้ำ เขียนทับโปรแกรมเดิมในเครื่อง จัดระบบช่วงหมายเลขโปรแกรมของโรงงาน

สรุป

  • โปรแกรมเรียงเป็น % หมายเลขโปรแกรม หัวโปรแกรม บรรทัดเตรียมความปลอดภัย ชุดคำสั่งของเครื่องมือแต่ละตัว การจบโปรแกรมด้วย M30 และ %
  • ทุกชุดคำสั่งของเครื่องมือต้องเริ่มต้นได้ด้วยตัวเอง โดยประกาศระบบพิกัด จุดศูนย์ชิ้นงาน ความเร็วรอบ ค่าชดเชย และน้ำหล่อเย็นใหม่ทุกครั้ง และใช้หมายเลข N หลักร้อยตามหมายเลขเครื่องมือ
  • ใส่ M01 ท้ายชุดคำสั่งของเครื่องมือทุกตัว และใช้หมายเลข N เพื่อค้นหาและเริ่มโปรแกรมใหม่ ไม่ใช่เพื่อกำหนดลำดับการทำงาน

บทต่อไปจะพูดถึงค่าชดเชยความยาวเครื่องมือ (Tool length offset) ซึ่งทำให้โปรแกรมเขียนค่า Z เป็นตำแหน่งปลายเครื่องมือได้โดยไม่ต้องรู้ความยาวของเครื่องมือ แล้วบทที่ 13 จะต่อด้วยค่าชดเชยรัศมีและค่าชดเชยของมีดกลึง

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