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

บทที่ 28

งานผลิตต่อเนื่อง — การจับงานหลายชิ้นในรอบเดียว ตัวนับชิ้นงาน อายุเครื่องมือ งานป้อนเพลา และรอบเวลา

สิ่งที่เปลี่ยนไปเมื่อโปรแกรม CNC ที่ผ่านการทดสอบต้องเดินผลิตจริงต่อเนื่องหลายร้อยชิ้น การจับงานหลายชิ้นในรอบเดียวบนฟิกซ์เจอร์และเลือกลำดับระหว่างทีละเครื่องมือกับทีละชิ้น การใช้ตัวนับชิ้นงาน Fanuc

บทที่ 21 จบลงเมื่อชิ้นงานแรกผ่านการตรวจสอบและปล่อยเข้าสู่สายการผลิตจริง บทนี้เริ่มจากจุดนั้น เมื่อโปรแกรมที่ผ่านการทดสอบแล้วต้องเดินตัดซ้ำต่อเนื่องหลายร้อยหรือหลายพันชิ้นโดยไม่มีผู้ปฏิบัติงานคอยเฝ้าดูทีละบรรทัด สิ่งที่โปรแกรมสำหรับงานผลิตจริง (Production machining) ต้องจัดการเพิ่มจากโปรแกรมที่ตัดได้ถูกต้องมีสามเรื่อง คือ ใช้รอบเวลาต่อชิ้นให้น้อยที่สุด (Minimum cycle time) หยุดทำงานเองโดยอัตโนมัติเมื่อถึงเงื่อนไขที่กำหนด (Automatic interruption) เช่น ผลิตครบยอดหรือถึงรอบสุ่มตรวจขนาด และ รักษาขนาดชิ้นงานให้อยู่ในพิกัดความเผื่ออย่างสม่ำเสมอ (Dimensional consistency) ตลอดอายุการใช้งานของเครื่องมือตัด

รหัส G และตัวแปรระบบในบทนี้อิงตามชุดควบคุม Fanuc Series 0i-F เช่นเดียวกับบทอื่นในหนังสือ ส่วนรหัส M สำหรับควบคุมหัวจับไฮดรอลิก เครื่องป้อนเพลา และถาดรับชิ้นงานนั้นขึ้นอยู่กับการกำหนดของผู้ผลิตเครื่องจักรแต่ละราย (Machine Tool Builder — MTB) โปรแกรมตัวอย่างจึงเขียนกำกับบรรทัดเหล่านี้เป็นหมายเหตุ เช่น (CHUCK OPEN: MAKER'S M CODE) เพื่อให้แทนที่ด้วยรหัสจริงจากคู่มือเครื่องจักรที่ใช้งาน และในบางหัวข้อมีการใช้คำสั่งเงื่อนไข IF ร่วมกับตัวแปรของ Custom Macro B เช่น IF [#501 GE 20] GOTO 100 คือถ้าค่าในตัวแปร #501 ถึง 20 ให้กระโดดไปทำบรรทัด N100 ก่อนใช้ตัวอย่างในหัวข้อเหล่านั้น ให้ตรวจว่าเครื่องเปิดใช้ Custom Macro อยู่ เครื่องรุ่นเก่าบางรุ่นต้องซื้อเป็นออปชัน

28.1 การจับงานหลายชิ้นในรอบเดียว

งานผลิตปริมาณมากบนMachining center (Machining center) นิยมจับงานหลายชิ้นในรอบเดียว (Multi-part setup) ไม่ว่าจะเป็นการติดตั้งปากกาจับชิ้นงานเรียงต่อกันบนโต๊ะงาน (Multi-vise setup), การสร้างฟิกซ์เจอร์เฉพาะงานแบบหลายสถานี (Multi-station fixture) หรือการจับชิ้นงานบนทาวเวอร์สี่เหลี่ยม (Tombstone) บนเครื่องแนวนอน (HMC)

ประโยชน์หลักของการจับงานหลายชิ้นในรอบเดียวมี 2 ประการ:

  1. เพิ่มสัดส่วนเวลาตัดเฉือนจริงของเครื่องจักร (Spindle Running Time / Machine Utilization): ลดเวลาสูญเปล่าที่เครื่องต้องหยุดนิ่งรอผู้ปฏิบัติงานเปิดประตูเปลี่ยนชิ้นงานทุกๆ 2 ถึง 3 นาที ช่างสามารถปล่อยให้เครื่องตัดต่อเนื่องยาวนานขึ้นต่อการกดปุ่ม CYCLE START หนึ่งครั้ง
  2. สร้างเวลาว่างให้ผู้ปฏิบัติงานทำงานอื่นควบคู่ (Walk-away Time): ช่วงเวลาที่เครื่องจักรตัดงานทั้งชุดเป็นเวลา 20–40 นาที เปิดโอกาสให้ช่างมีเวลาลบคมชิ้นงาน (Deburring), ตรวจวัดขนาดตามแผนควบคุมคุณภาพ หรือควบคุมดูแลเครื่องจักรเครื่องอื่นในเซลล์การผลิตเดียวกัน (Multi-machine handling)

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

28.1.1 ทีละเครื่องมือหรือทีละชิ้น

เมื่อต้องผลิตชิ้นงาน NpartsN_{\text{parts}} ชิ้น โดยใช้เครื่องมือตัด NtoolsN_{\text{tools}} ตัวบนฟิกซ์เจอร์เดียวกัน วิศวกรและผู้เขียนโปรแกรมต้องเลือกระหว่างสองลำดับการขึ้นรูปหลัก:

ตารางที่ 28.1 ลำดับการขึ้นรูปของการจับงานหลายชิ้นในรอบเดียว
ลำดับ วิธีการทำงาน เปลี่ยนเครื่องมือต่อรอบ ลักษณะงานที่เหมาะสม
ทีละเครื่องมือ (Tool-by-tool) เครื่องมือแต่ละตัวตัดชิ้นงานทุกสถานีจนครบทั้งชุด จึงเปลี่ยนเป็นเครื่องมือถัดไป NtoolsN_{\text{tools}} ครั้ง งานที่ต้องการรอบเวลารวมสั้นที่สุด และชิ้นงานโหลด-ปลดพร้อมกันทั้งชุด
ทีละชิ้น (Part-by-part) เครื่องมือทุกตัวตัดชิ้นงานสถานีแรกจนเสร็จสมบูรณ์ แล้วจึงย้ายไปทำสถานีถัดไป Nparts×NtoolsN_{\text{parts}} \times N_{\text{tools}} ครั้ง งานที่ต้องการให้ได้ชิ้นงานสำเร็จทีละชิ้น เช่น การโหลดชิ้นงานทีละสถานีขณะเครื่องกำลังตัดสถานีอื่น หรือเครื่องที่มีสองพาเลตสลับกัน

การเปรียบเทียบเชิงเวลา

ความแตกต่างของจำนวนครั้งในการเปลี่ยนเครื่องมือระหว่างสองลำดับคำนวณได้จาก:

ΔNtool change=(Nparts−1)×Ntools\Delta N_{\text{tool change}} = (N_{\text{parts}} - 1) \times N_{\text{tools}}

ในตัวอย่างชิ้นงาน 4 ชิ้นที่ใช้เครื่องมือ 3 ตัว การเดินแบบทีละเครื่องมือเปลี่ยนมีดเพียง 3 ครั้ง ขณะที่แบบทีละชิ้นต้องเปลี่ยนถึง 4×3=124 \times 3 = 12 ครั้ง ประหยัดการเปลี่ยนเครื่องมือไปได้ (4−1)×3=9(4 - 1) \times 3 = 9 ครั้ง

เวลาในการเปลี่ยนเครื่องมือหนึ่งครั้งไม่ได้มีเพียงเวลาหมุนแม็กกาซีนเท่านั้น แต่ยังรวมถึงเวลาถอยแกน Z สู่ระดับอ้างอิงเปลี่ยนเครื่องมือ (ATC reference point), เวลาชะลอสปินเดิลจนหยุดนิ่ง, จังหวะแขนกลสลับเครื่องมือ (Tool-to-tool time), เวลาเร่งรอบสปินเดิลใหม่ และการเปิด-ปิดน้ำหล่อเย็น ซึ่งเวลารวมนี้เรียกว่า Chip-to-chip time โดยเฉลี่ยกินเวลา 6 ถึง 10 วินาทีบน VMC ทั่วไป

  • การประหยัด 9 ครั้งจึงลดรอบเวลาลงได้ 1 ถึง 1.5 นาทีต่อรอบ
  • หากเป็นงานที่ซับซ้อนขึ้น เช่น ชิ้นงาน 8 ชิ้นบน Tombstone ที่ใช้เครื่องมือ 6 ตัว ลำดับทีละเครื่องมือจะประหยัดการเปลี่ยนมีดได้ถึง (8−1)×6=42(8 - 1) \times 6 = 42 ครั้ง คิดเป็นเวลาที่ลดลงได้ประมาณ 4 ถึง 7 นาทีในทุกๆ รอบของการกด CYCLE START

ความเสี่ยงและงานระหว่างผลิต

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

  • ความเสี่ยงของงานค้างในกระบวนการ (Work-In-Process: WIP): หากเครื่องมือตัวท้ายๆ ชำรุดหรือหักกลางรอบ ชิ้นงานทุกชิ้นบนฟิกซ์เจอร์จะค้างอยู่ที่ขั้นเดียวกันทั้งหมด เช่น หากดอกต๊าปหักคาอยู่ที่สถานีที่ 2 ชิ้นงานสถานีที่ 1 จะเสร็จสมบูรณ์เพียงชิ้นเดียว ส่วนสถานีที่ 2 มีเศษดอกต๊าปหักคาในรู และสถานีที่ 3 กับ 4 ก็ยังไม่ได้ต๊าปเกลียว ทำให้ต้องเสียเวลาหยุดเครื่องเพื่อแก้ปัญหาทั้งชุด
  • การเริ่มงานใหม่ (Restarting): ในลำดับทีละเครื่องมือ หากต้องการเริ่มเดินต่อเฉพาะสถานีที่ยังไม่เสร็จ ผู้เขียนโปรแกรมต้องเตรียมจุดกระโดดหรือเขียนโปรแกรมให้รองรับการข้ามสถานีอย่างปลอดภัย เช่น ใช้สวิตช์ Block Skip (/) หน้าบรรทัดเรียกสถานีที่ 1 เพื่อสั่งข้ามสถานีที่ทำเสร็จแล้ว
  • ข้อได้เปรียบของลำดับทีละชิ้น: แม้จะเสียเวลาเปลี่ยนเครื่องมือมากกว่า แต่เมื่อเกิดปัญหา คมตัดจะหักเสียหายเฉพาะชิ้นงานที่กำลังตัดอยู่เพียงชิ้นเดียว ส่วนชิ้นงานก่อนหน้านั้นทำเสร็จสมบูรณ์ 100% และพร้อมนำไปประกอบหรือส่งมอบได้ทันที ลำดับนี้จึงเหมาะอย่างยิ่งกับงานกัดที่มีความเสี่ยงสูง (เช่น ดอกต๊าปหรือดอกเอ็นมิลล์ขนาดจิ๋ว) หรืองานบนเครื่องกลึงกัด/เครื่องสองพาเลตที่ผู้ปฏิบัติงานสามารถถอดชิ้นงานสำเร็จออกทีละชิ้นขณะที่เครื่องกำลังตัดชิ้นถัดไป
ฟิกซ์เจอร์สี่สถานี (โปรแกรม O2801) มองจากด้านบน ตามมาตราส่วน · สถานีห่างกัน 100 มม. ชิ้นงาน 60 × 40 มม. G54 สถานี 1 G55 สถานี 2 G56 สถานี 3 G57 สถานี 4 ทีละเครื่องมือ เปลี่ยนเครื่องมือ 3 ครั้งต่อรอบ 1 2 3 4 1 2 3 4 1 2 3 4 แต่ละช่องคือสถานีที่เครื่องมือทำ เส้นตั้งคือการเปลี่ยนเครื่องมือ บวกครั้งแรกที่ต้นรอบ ทีละชิ้น เปลี่ยนเครื่องมือ 12 ครั้งต่อรอบ 1 1 1 2 2 2 3 3 3 4 4 4 แต่ละช่องคือสถานีที่เครื่องมือทำ เส้นตั้งคือการเปลี่ยนเครื่องมือ บวกครั้งแรกที่ต้นรอบ สีของช่อง: T01 ดอกนำศูนย์ (เขียว) · T02 ดอกสว่าน Ø8.5 (ส้ม) · T03 ดอกต๊าป M10 (ขาว)
รูปที่ 28.1 ฟิกซ์เจอร์สี่สถานี ลำดับทีละเครื่องมือเปลี่ยนเครื่องมือ 3 ครั้งต่อรอบ ลำดับทีละชิ้น 12 ครั้ง

28.1.2 การจัดการจุดศูนย์ชิ้นงานเมื่อมีหลายสถานี

การเขียนโปรแกรมสำหรับหลายสถานีมีแนวทางการจัดการระบบพิกัด 3 รูปแบบหลัก ตามจำนวนสถานีและความเที่ยงตรงของฟิกซ์เจอร์:

  1. ใช้ระบบพิกัดงานมาตรฐาน G54 ถึง G59: เหมาะกับงานที่มี 2 ถึง 6 สถานี ดังเช่นในตัวอย่างฟิกซ์เจอร์สี่สถานี ซึ่งกำหนดสถานีที่ 1 ถึง 4 เป็น G54, G55, G56 และ G57 ตามลำดับ แต่ละสถานีสามารถตั้งค่า X, Y, Z แยกอิสระเพื่อชดเชยความคลาดเคลื่อนในการติดตั้งของแต่ละช่องจับยึดได้อย่างแม่นยำ
  2. ใช้ระบบพิกัดงานเสริม G54.1 P1 ถึง P48 (Extended Work Coordinate Systems): สำหรับงานผลิตบนเครื่องแนวนอน (HMC) หรือฟิกซ์เจอร์ขนาดใหญ่ที่มีมากกว่า 6 สถานี (เช่น ทาวเวอร์ 4 หน้า แต่ละหน้าจับ 4 ชิ้น รวม 16 ชิ้น) สามารถเรียกใช้ระบบพิกัดเสริมของ Fanuc เช่น G54.1 P1 สำหรับสถานีที่ 1 ไปจนถึง G54.1 P16
  3. ใช้การเลื่อนพิกัดเฉพาะที่ด้วย G52 (Local Coordinate System Shift): หากฟิกซ์เจอร์สร้างขึ้นด้วยความแม่นยำสูงและมีระยะห่างระหว่างสถานีเท่ากันทุกช่อง (เช่น ห่างกันช่องละ 100.0 มม. ในแนวแกน X) สามารถตั้งจุดศูนย์งานหลักไว้ที่ G54 เพียงจุดเดียว แล้วสั่งเลื่อนจุดศูนย์ย่อยด้วย G52 X0, G52 X100., G52 X200. และ G52 X300. ก่อนเรียกโปรแกรมย่อยเดิม วิธีนี้ช่วยลดเวลาการเซ็ตออฟเซ็ตหน้าเครื่องได้อย่างมาก

28.1.3 การควบคุมความสูงปลอดภัยและเส้นทางข้ามสถานี

การเดินข้ามระหว่างสถานีบนฟิกซ์เจอร์มีความเสี่ยงต่อการชนกระแทกสูง เพราะฟิกซ์เจอร์มักมีแคลมป์กดชิ้นงาน (Toe clamp), น็อตยึด หรือสตัดเกลียวที่ยื่นสูงกว่าผิวหน้าชิ้นงานเสมอ

หลักการควบคุมความสูงปลอดภัยมีดังนี้:

  • แยกหน้าที่ของระนาบอย่างชัดเจน:
    • ระนาบจุด R (R-plane): กำหนดไว้ต่ำเหนือผิวชิ้นงานเพียง 2 ถึง 3 มม. และใช้คำสั่ง G99 สำหรับการเจาะรูที่อยู่บนระนาบเดียวกัน เพื่อประหยัดเวลาการเคลื่อนที่
    • ระนาบเริ่มต้น (Initial plane): กำหนดไว้ที่ความสูงปลอดภัย (เช่น Z50.) ซึ่งสูงพ้นสิ่งกีดขวางและแคลมป์ทุกตัวบนฟิกซ์เจอร์ และต้องบังคับให้รูสุดท้ายของแต่ละชิ้นงานจบด้วยคำสั่ง G98 เสมอ เพื่อยกแกน Z กลับสู่ระดับความปลอดภัยนี้ก่อนที่เครื่องมือจะเคลื่อนที่เร็ว (G00) ข้ามไปยังสถานีถัดไป
  • วางเส้นทางเดินข้ามสถานีให้กระชับ: เรียงลำดับสถานีจากซ้ายไปขวา (หรือวนรอบหน้าทาวเวอร์บน HMC) เพื่อไม่ให้แกนวิ่งตัดสลับย้อนไปย้อนมา ลดระยะทางรวมในการเคลื่อนที่เร็ว (Rapid traverse distance)

28.1.4 ตัวอย่าง: ฟิกซ์เจอร์สี่สถานี

ชิ้นงานหนา 30 มม. จำนวน 4 ชิ้นติดตั้งบนฟิกซ์เจอร์ กำหนดจุดศูนย์งาน G54 ถึง G57 ไว้ที่กึ่งกลางผิวบนของชิ้นงานแต่ละสถานี แต่ละชิ้นมีรูเกลียว M10 × 1.5 ลึก 20 มม. สองรูที่พิกัด X−15. และ X15. ขึ้นรูปด้วยดอกนำศูนย์ (Spot drill), ดอกสว่าน Ø8.5 และดอกต๊าป ตามลำดับทีละเครื่องมือ โปรแกรมหลักนี้ยังผสานโปรแกรมมาโครนับชิ้นงานและการหยุดสุ่มวัดขนาดตามรอบ ซึ่งจะอธิบายโดยละเอียดในหัวข้อถัดไป

%
O2801 (FOUR PARTS ON A FOUR-STATION FIXTURE)
(G54 TO G57 = STATIONS 1 TO 4  X0 Y0 = PART CENTER  Z0 = TOP  PART 30 THICK)
(TWO M10 X 1.5 HOLES PER PART AT X-15. AND X15.  THREAD 20 DEEP)
N10 G17 G21 G40 G49 G80 G90 G94
N12 IF [#3902 EQ 0] GOTO 100      (ไม่ได้ตั้งจำนวนเป้าหมาย ให้ทำงานต่อเนื่อง)
N14 IF [#3901 LT #3902] GOTO 100  (ยังไม่ครบยอดเป้าหมาย ให้เริ่มตัดงาน)
N16 #3000=1 (PART COUNT REACHED)  (ครบจำนวนแล้ว สั่งแจ้งเตือนและหยุดเครื่อง)
(T01 SPOT DRILL D12 90DEG)
N100 T01 M06
N102 G54 G00 X-15. Y0 S1800 M03 T02
N104 G43 H01 Z50. M08
N106 M98 P2802                    (สถานีที่ 1: G54)
N108 G55 M98 P2802                (สถานีที่ 2: G55)
N110 G56 M98 P2802                (สถานีที่ 3: G56)
N112 G57 M98 P2802                (สถานีที่ 4: G57)
N114 M09
N116 M05
N118 G91 G28 Z0
N120 G90 M01
(T02 DRILL D8.5)
N200 T02 M06
N202 G54 G00 X-15. Y0 S1500 M03 T03
N204 G43 H02 Z50. M08
N206 M98 P2803
N208 G55 M98 P2803
N210 G56 M98 P2803
N212 G57 M98 P2803
N214 M09
N216 M05
N218 G91 G28 Z0
N220 G90 M01
(T03 TAP M10 X 1.5)
N300 T03 M06
N302 G54 G00 X-15. Y0 S200 M03 T01
N304 G43 H03 Z50. M08
N306 M98 P2804
N308 G55 M98 P2804
N310 G56 M98 P2804
N312 G57 M98 P2804
N314 M09
N316 M05
N318 G91 G28 Z0
N320 G90
N322 #3901=#3901+3                (สี่ชิ้นต่อรอบ คำสั่ง M30 จะนับเพิ่มอีกหนึ่ง)
N324 #501=#501+1                  (นับรอบเพื่อหยุดสุ่มวัดขนาด)
N326 IF [#501 LT 5] GOTO 332
N328 #501=0
N330 M00 (MEASURE THE FOUR PARTS)
N332 M30
%
O2802 (SPOT TWO HOLES)
N10 G99 G81 X-15. Y0 Z-5.5 R3. F150
N20 G98 X15.                      (รูสุดท้ายถอยกลับระดับเริ่มต้น Z50)
N30 G80
N40 M99
%
O2803 (DRILL TWO HOLES THROUGH)
N10 G99 G83 X-15. Y0 Z-33. R3. Q6. F160
N20 G98 X15.
N30 G80
N40 M99
%
O2804 (TAP TWO HOLES M10 X 1.5)
N10 G99 G84 X-15. Y0 Z-20. R5. F300
N20 G98 X15.
N30 G80
N40 M99
%

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

ตารางที่ 28.2 ส่วนต่างๆ ของโปรแกรม O2801
บรรทัด สิ่งที่เกิดขึ้น
N102 เลือก G54 และสั่งเตรียมเครื่องมือ T02 ล่วงหน้า (Pre-staging) ตามที่อธิบายในบทที่ 11 เพื่อให้แม็กกาซีนหมุนพ็อตมีดมารอระหว่างที่ T01 กำลังทำงาน
N104 ระดับ Z50. ทำหน้าที่เป็นระดับระนาบเริ่มต้น (Initial plane) ของวัฏจักรงานเจาะสำเร็จรูป (Canned cycle) และต้องตั้งให้สูงกว่าแคลมป์หรือตัวจับยึดของฟิกซ์เจอร์ทุกตัว เพราะเครื่องมือจะเคลื่อนที่เร็ว (G00) ข้ามระหว่างแต่ละสถานีที่ระดับความสูงนี้
N108 ถึง N112 สลับจุดศูนย์ชิ้นงานเป็นสถานีถัดไป (G55 ถึง G57) ในบรรทัดเดียวกับการเรียก M98 เครื่องมือจะย้ายข้ามสถานีไปยังพิกัด X-15. Y0 ของสถานีใหม่ที่ระดับความสูง Z50. (ซึ่งยกค้างไว้จาก G98 ของโปรแกรมย่อยก่อนหน้า) อย่างปลอดภัย
O2802 N10 N20 รูแรกสั่ง G99 ให้ถอยมีดเพียงระดับ R (Z3.) เพื่อลดเวลาเคลื่อนที่เพราะรูที่สองอยู่บนระนาบเดียวกัน ส่วนรูที่สองสั่ง G98 ให้ถอยกลับสู่ระดับเริ่มต้น (Z50.) เพื่อเตรียมข้ามสถานี
N120 N220 คำสั่ง M01 ที่ท้ายการทำงานของเครื่องมือแต่ละตัว เปิดโอกาสให้ผู้ปฏิบัติงานหยุดตรวจเช็กสภาพคมตัดได้เมื่อเปิดสวิตช์ OPT STOP บนหน้าตู้ควบคุม
O2804 N10 ต๊าปเกลียว M10 × 1.5 ด้วยความเร็วรอบ S200 อัตราป้อนจึงกำหนดเป็น 1.5×200=300 มม./นาที1.5 \times 200 = 300\text{ มม./นาที} ตามหลักวัฏจักรต๊าปในบทที่ 15

ระยะความลึกเจาะของดอกสว่านคำนวณจากความหนาของชิ้นงาน 30 มม. บวกความยาวของส่วนปลายแหลมสว่าน 0.3×D=0.3×8.5≈2.55 มม.0.3 \times D = 0.3 \times 8.5 \approx 2.55\text{ มม.} และเผื่อระยะพ้นปลายสว่านอีกเล็กน้อย จึงกำหนดความลึกเจาะทะลุที่ Z-33. สำหรับดอกนำศูนย์มุมรวม 90° เมื่อเจาะลงไปลึก 5.5 มม. จะได้ขนาดเส้นผ่านศูนย์กลางปากหลุมเท่ากับ 2×5.5=∅11 มม.2 \times 5.5 = \varnothing 11\text{ มม.} ซึ่งโตกว่าขนาดเกลียว M10 เล็กน้อย ทำหน้าที่ลบมุมปากรู (Chamfer) ล่วงหน้า ทำให้เกลียวที่ต๊าปตามมาไม่ปลิ้นทะลักนูนขึ้นเหนือผิวหน้าชิ้นงาน

28.2 ตัวนับชิ้นงาน

ชุดควบคุม Fanuc มีระบบนับชิ้นงานในตัว (Parts counter) ซึ่งจะเพิ่มค่าขึ้น 1 โดยอัตโนมัติเมื่อโปรแกรมทำงานมาถึงคำสั่ง M30, M02 หรือรหัส M พิเศษที่กำหนดไว้ในพารามิเตอร์ของเครื่อง (เช่น Parameter 6710) โปรแกรมสามารถอ่านและเขียนค่าตัวนับนี้ได้โดยตรงผ่านตัวแปรระบบ

ตารางที่ 28.3 ตัวแปรของตัวนับชิ้นงาน
ตัวแปร ความหมาย
#3901 จำนวนชิ้นที่ผลิตเสร็จแล้ว (Parts completion counter)
#3902 จำนวนชิ้นงานเป้าหมายที่ต้องการ (Parts required counter)

เมื่อจำนวนที่ทำแล้ว (#3901) ครบตามจำนวนที่ต้องการ (#3902) ชุดควบคุมจะส่งสัญญาณบอกวงจรเครื่องจักร แต่ เครื่องจะหยุดทำงานทันทีหรือไม่นั้นขึ้นอยู่กับการออกแบบของผู้ผลิตเครื่องแต่ละราย ในหลายเครื่อง ระบบเพียงแค่แสดงข้อความเตือนเล็กๆ ที่แถบสถานะแต่ยังยอมให้กด CYCLE START ทำงานต่อได้ โปรแกรมสำหรับงานผลิตจำนวนมากที่ต้องการป้องกันการผลิตเกิน (Overproduction) จึงนิยมเขียนบล็อกตรวจสอบเงื่อนไขด้วยตนเองไว้ที่ต้นโปรแกรม ดังบรรทัด N12 ถึง N16 ของโปรแกรม O2801:

  • ถ้า #3902 มีค่าเป็น 0 แสดงว่าไม่ได้ตั้งจำนวนเป้าหมาย โปรแกรมจะข้ามไปทำงานต่อทันที
  • ถ้า #3901 ยังน้อยกว่า #3902 (ยังไม่ครบยอด) โปรแกรมจะกระโดดข้ามไปยัง N100 เพื่อเริ่มตัดงาน
  • ถ้าครบจำนวนแล้ว บรรทัด N16 จะสั่ง #3000=1 (PART COUNT REACHED) เพื่อหยุดเครื่องทันทีพร้อมขึ้นสัญญาณเตือน Alarm บนหน้าจอ ก่อนที่แกนจะขยับหรือสปินเดิลจะเริ่มหมุน ป้องกันการกดเดินเครื่องซ้ำโดยไม่ตั้งใจ

ข้อควรระวังสำคัญคือ ตัวนับของเครื่องจักรโดยค่าเริ่มต้นจะนับ จำนวนรอบของโปรแกรม (Number of cycles) ไม่ใช่จำนวนชิ้นงานจริง สำหรับฟิกซ์เจอร์ 4 สถานีนี้ การทำงานครบหนึ่งรอบจะได้ชิ้นงานสำเร็จ 4 ชิ้น แต่คำสั่ง M30 ที่ท้ายโปรแกรมจะเพิ่มตัวนับเพียง 1 บรรทัด N322 จึงต้องใส่คำสั่ง #3901 = #3901 + 3 ล่วงหน้า เพื่อให้ผลรวมของการบวกในโปรแกรม (+3) กับการบวกอัตโนมัติของ M30 (+1) ได้ผลลัพธ์เป็น +4 ชิ้นต่อรอบอย่างแม่นยำ (หากเครื่องจักรถูกตั้งค่าพารามิเตอร์ไม่ให้ M30 นับชิ้นงาน ให้เปลี่ยนเป็นบวกครบสี่ #3901 = #3901 + 4 ในโปรแกรม หรือตั้งจำนวนเป้าหมาย #3902 เป็นจำนวนรอบของโปรแกรมแทน)

28.2.1 หยุดวัดเป็นระยะ

ชิ้นงานชิ้นแรกที่วัดผ่าน ไม่ได้รับประกันว่าชิ้นงานที่ 100 หรือ 500 จะยังคงได้ขนาดที่ถูกต้องเสมอไป เพราะคมตัดมีการสึกหรอ อุณหภูมิของเครื่องจักรและน้ำหล่อเย็นเพิ่มสูงขึ้นจากการทำงานต่อเนื่อง และเศษโลหะอาจสะสมในฟิกซ์เจอร์ แผนการควบคุมคุณภาพ (Control Plan) ในโรงงานจึงมักกำหนดความถี่ในการสุ่มตรวจ เช่น สุ่มวัดทุกๆ 20 ชิ้น การให้โปรแกรมหยุดทำงานโดยอัตโนมัติเมื่อถึงรอบที่ต้องวัด ย่อมแม่นยำและปลอดภัยกว่าการพึ่งพาความจำของผู้ปฏิบัติงาน

บรรทัด N324 ถึง N330 ของโปรแกรม O2801 ใช้ตัวแปรสาธารณะถาวร #501 (Permanent common variable ซึ่งค่าจะไม่สูญหายแม้ปิดสวิตช์เครื่อง) เพื่อนับรอบการทำงาน เมื่อตัดครบ 5 รอบ (ผลิตได้ 5×4=20 ชิ้น5 \times 4 = 20\text{ ชิ้น}) มาโครจะรีเซ็ต #501 = 0 แล้วสั่งหยุดเครื่องด้วยคำสั่ง M00 พร้อมแสดงข้อความเตือนให้ผู้ปฏิบัติงานหยิบชิ้นงานทั้ง 4 ชิ้นไปวัดขนาด เมื่อวัดและบันทึกผลเรียบร้อยแล้วจึงกด CYCLE START เพื่อเริ่มรอบการผลิตถัดไป

ข้อควรระวังในการใช้ตัวแปร: ตัวแปรตั้งแต่ #500 ขึ้นไปเป็นตัวแปรที่ใช้ร่วมกันทุกโปรแกรมในเครื่อง (Global scope) ในโรงงานจึงต้องมี ตารางจัดสรรตัวแปรมาโคร (Macro variable assignment table) เพื่อระบุหมายเลขตัวแปรที่แต่ละโปรแกรมสามารถใช้งานได้ เช่น #500 ถึง #509 เป็นของโปรแกรมสุ่มตรวจ และติดตารางนี้ไว้ที่เครื่อง ตัวแปรช่วงนี้เก็บค่าไว้แม้ปิดเครื่อง ค่าที่ค้างจากงานก่อนจึงยังอยู่จนกว่าจะมีคนล้าง หากโปรแกรมอื่นมาเขียนทับค่า #501 รอบการหยุดสุ่มตรวจจะคลาดเคลื่อนทันทีโดยที่ไม่มีใครรู้

อีกวิธีหนึ่งที่ไม่ต้องอาศัยตัวแปรมาโคร คือการใช้คำสั่ง /M00 ร่วมกับสวิตช์ BLOCK SKIP บนหน้าตู้ควบคุม ตามบทที่ 3 เมื่อเปิดสวิตช์ BLOCK SKIP เป็น ON เครื่องจะข้ามบรรทัด /M00 และทำงานต่อเนื่องโดยไม่หยุด และเมื่อผู้ปฏิบัติงานเห็นว่าใกล้ถึงรอบเวลาตรวจวัด ก็เพียงปิดสวิตช์ BLOCK SKIP เป็น OFF เครื่องจะหยุดที่คำสั่ง M00 เมื่อจบรอบนั้น วิธีนี้เหมาะกับการสุ่มตรวจตามช่วงเวลาที่ยืดหยุ่น แต่ต้องอาศัยวินัยและการจดจำของผู้ปฏิบัติงาน

28.3 งานป้อนเพลาบนเครื่องกลึง

เครื่องกลึง CNC ที่ติดตั้งเครื่องป้อนเพลาอัตโนมัติ (Bar feeder) สามารถกลึงชิ้นงานต่อเนื่องจากเพลายาว 3 เมตรได้หลายสิบหรือหลายร้อยชิ้นโดยไม่ต้องมีคนคอยเปิดประตูเปลี่ยนชิ้นงาน บทที่ 5 ได้แนะนำหลักการทำงานของเครื่องป้อนเพลาและอุปกรณ์ดึงเพลา (Bar puller) ไว้อย่างสังเขปแล้ว หัวข้อนี้จะแสดงโครงสร้างโปรแกรมที่สมบูรณ์ของงานกลึงสลัก ซึ่งใช้ตัวหยุดเพลาบนป้อมมีด (Turret bar stop / Work stop) เป็นตัวกำหนดระยะยื่น (เครื่องที่ใช้อุปกรณ์ดึงเพลาก็ใช้โครงสร้างโปรแกรมลักษณะเดียวกัน เพียงเปลี่ยนจากการดันเพลามาชนตัวหยุด เป็นการสั่งให้อุปกรณ์ดึงเพลาจับปลายแล้วลากดึงออกมา)

หนึ่งรอบของงานป้อนเพลา (โปรแกรม O2805) มองจากด้านข้าง เพลา Ø40 สลัก Ø30 ยาว 25 มม. มีดตัดขาดกว้าง 3 มม. 1 ดันเพลาชนตัวหยุด M05 · หัวจับเปิด · Z1. เครื่องป้อนเพลา ตัวหยุด 2 ปาดหน้า เหลือหน้าที่ Z0 Z0 3 กลึง Ø30 ยาว 25 มม. Z0 4 ตัดขาดลงถาด มีดที่ Z-28. ถาด 5 นับแล้ววน #3901+1 · M99 P20 ดันออก 29 เพลาต่อชิ้น 25 + 3 + 1 = 29 มม. · เพลา 3,000 มม. ที่เหลือเศษท้าย 250 มม. ทำได้ 94 ชิ้น
รูปที่ 28.2 หนึ่งรอบของงานป้อนเพลา ดันเพลาชนตัวหยุด ปาดหน้า กลึง ตัดขาดลงถาด แล้ววนกลับ

28.3.1 ตัวอย่าง: สลักจากเพลาที่ป้อนอัตโนมัติ

สลัก Ø30 ยาว 25 มม. จากเพลา Ø40 ใช้ตัวหยุดเพลาบนป้อมมีด (Bar stop) กำหนดความยาวที่ดันออกมา มีดตัดขาดกว้าง 3 มม. ตั้งจุดอ้างอิงไว้ที่ขอบด้านหัวจับ

%
O2805 (BAR FED PIN WITH A PART COUNTER)
(BAR D40  PIN D30 X 25 LONG  Z0 = FACE)
N10 G18 G21 G40 G99
N12 G50 S2500                     (ความเร็วรอบสูงสุดของ G96)
N20 IF [#3902 EQ 0] GOTO 100
N22 IF [#3901 LT #3902] GOTO 100
N24 #3000=1 (PART COUNT REACHED)
(T05 BAR STOP)
N100 T0505
N102 M05                          (หัวจับเปิดได้เมื่อสปินเดิลหยุดเท่านั้น)
N104 G00 X0 Z1.                   (ตัวหยุดอยู่หน้าชิ้นถัดไป เผื่อปาดหน้า 1 มม.)
N106 (CHUCK OPEN: MAKER'S M CODE)
N108 G04 P1000                    (รอเครื่องป้อนเพลาดันเพลาชนตัวหยุด)
N110 (CHUCK CLOSE: MAKER'S M CODE)
N112 G00 X100. Z50.
(T01 TURNING TOOL)
N200 T0101
N202 G96 S200 M03
N204 G00 X42. Z0
N206 G01 X-1.6 F0.15              (ปาดหน้า)
N208 G00 X42. Z2.
N210 G90 X36. Z-25. F0.25         (กลึงหยาบ)
N212 X32.
N214 X30. F0.12                   (เที่ยวเก็บผิว)
N216 G00 X100. Z50.
(T03 PART-OFF BLADE 3 WIDE  REFERENCE ON THE CHUCK SIDE)
N300 T0303
N302 G96 S120 M03
N304 G00 X42. Z-28.               (ขอบด้านหน้าของมีดอยู่ที่ Z-25)
N306 (PART CATCHER IN: MAKER'S M CODE)
N308 G01 X-0.5 F0.06              (ตัดขาด ชิ้นงานตกลงถาด)
N310 G00 X42.
N312 (PART CATCHER OUT: MAKER'S M CODE)
N314 G00 X100. Z50.
N316 #3901=#3901+1                (M99 ไม่นับชิ้นงาน จึงนับเอง)
N318 M99 P20                      (วนกลับไปตรวจตัวนับแล้วเริ่มชิ้นถัดไป)
%
ตารางที่ 28.4 ส่วนต่างๆ ของโปรแกรม O2805
บรรทัด สิ่งที่เกิดขึ้น
N102 สั่งหยุดสปินเดิล (M05) ก่อนสั่งเปิดหัวจับเสมอ เพราะตั้งแต่รอบที่สองเป็นต้นไป สปินเดิลจะยังหมุนอยู่ต่อเนื่องจากการตัดขาด แม้ชุดควบคุมส่วนใหญ่จะมีวงจรอินเตอร์ล็อกป้องกัน แต่โปรแกรมที่ดีต้องมีคำสั่งยืนยันความปลอดภัยในตัวเอง
N104 เคลื่อนตัวหยุดเพลาไปรอที่ตำแหน่ง Z1. หน้าเพลาที่ถูกดันออกมาชนตัวหยุดจึงอยู่ที่พิกัด Z1. เหลือเนื้อโลหะไว้สำหรับปาดหน้าเก็บผิว 1 มม.
N108 คำสั่งหน่วงเวลา G04 P1000 (1,000 มิลลิวินาที คือ 1 วินาที) เพื่อรอให้แรงดันของเครื่องป้อนเพลาดันหน้าตัดเพลาเข้ามาชิดกับตัวหยุด ก่อนที่หัวจับจะบีบตัวล็อก เวลาที่ต้องรอขึ้นอยู่กับความยาวเพลาและแรงดันของเครื่องป้อน
N304 จุดอ้างอิงของมีดตัดขาดตั้งไว้ที่ขอบด้านหัวจับ (Chuck-side reference edge) เมื่อมีดกว้าง 3 มม. การสั่งเคลื่อนที่ไปที่ Z-28. จะทำให้ขอบตัดด้านหน้าของมีดอยู่ที่ Z-25. พอดี ได้ความยาวชิ้นงาน 25 มม. ตามแบบงาน
N306 N312 สั่งกางถาดรับชิ้นงาน (Part catcher) เข้ามารองรับใต้ชิ้นงานก่อนตัดขาด และพับเก็บกลับเข้าที่หลังมีดถอยออก ชิ้นงานจึงตกลงในตะกร้าอย่างปลอดภัย ไม่ร่วงหล่นลงไปในกองเศษกลึงก้นเครื่อง
N316 N318 คำสั่ง M99 จะไม่กระตุ้นตัวนับชิ้นงานของเครื่อง โปรแกรมจึงต้องบวกค่า #3901 ด้วยตนเอง แล้วสั่ง M99 P20 เพื่อวนลูปกลับไปที่บรรทัด N20 ตรวจสอบจำนวนเป้าหมาย แล้วเริ่มกลึงชิ้นถัดไป โดยข้ามบรรทัดตั้งค่าความปลอดภัยที่ต้นโปรแกรม

เมื่อมีดตัดขาดชิ้นงานเสร็จสิ้น หน้าตัดใหม่ของเพลาที่เหลืออยู่ในหัวจับจะอยู่ที่พิกัด Z-28. ในรอบถัดไปตัวหยุดเพลาจะเคลื่อนไปรอที่ Z1. และเครื่องป้อนเพลาจะดันเพลายื่นออกมาอีก 28+1=29 มม.28 + 1 = 29\text{ มม.} ดังนั้นความยาวเพลาที่ใช้จริงต่อชิ้นงานหนึ่งชิ้นจึงเท่ากับ ความยาวชิ้นงาน (25 มม.) + ความกว้างของมีดตัดขาด (3 มม.) + เนื้อปาดหน้า (1 มม.) = 29 มม. ค่านี้ใช้คำนวณจำนวนชิ้นงานที่จะได้ต่อเพลาหนึ่งเส้น ตัวอย่างเช่น เพลายาว 3,000 มม. และเครื่องป้อนเพลาต้องเหลือเศษท้ายเพลา (Bar remnant) สำหรับจับยึดไว้ในปลอกคอลเล็ต 250 มม. จะผลิตชิ้นงานได้:

จำนวนชิ้นงาน=⌊3000−25029⌋=⌊275029⌋=94 ชิ้น\text{จำนวนชิ้นงาน} = \left\lfloor \frac{3000 - 250}{29} \right\rfloor = \left\lfloor \frac{2750}{29} \right\rfloor = 94\text{ ชิ้น}

เมื่อเพลาถูกดันจนหมดเส้น เซนเซอร์ของเครื่องป้อนเพลาจะส่งสัญญาณ End-of-Bar (EOB) ไปยังชุดควบคุม CNC เพื่อให้เครื่องจักรหยุดทำงานอัตโนมัติเมื่อจบรอบ หรือเรียกมาโครเปลี่ยนเพลาเส้นใหม่ขึ้นมาโหลดแทน ทั้งนี้ชิ้นงานชิ้นแรกของเพลาเส้นใหม่ต้องได้รับการตรวจสอบอย่างละเอียดเหมือนการเริ่มตั้งงานใหม่เสมอ เพราะปลายเพลาที่ตัดมาจากโรงงานมักขรุขระ ไม่ได้ฉาก และระยะยื่นในการดันเพลาครั้งแรกอาจไม่เท่ากับรอบการป้อนปกติ

28.4 รักษาขนาดตลอดอายุเครื่องมือ

28.4.1 ปรับค่าสึกหรอตามแนวโน้ม

ขนาดของชิ้นงานในสายการผลิตจะค่อยๆ คลาดเคลื่อนไปทีละน้อยตามความสึกหรอบนหน้าประชิดของคมตัด (Flank wear): มีดกลึงปอกผิวนอกที่สึกหรอจะทำให้เส้นผ่านศูนย์กลางงานกลึงโตขึ้นทีละไมครอน ส่วนดอกเอ็นมิลล์ที่สึกหรอจะทำให้ขนาดร่องหรือหลุมเล็กลง และทำให้ขนาดบ่าหรือเกาะผิวนอกโตขึ้น วิธีการแก้ไขที่ถูกต้องตามมาตรฐานสากลคือ การปรับแต่งค่าชดเชยการสึกหรอ (Wear offset) ตามที่อธิบายในบทที่ 21 โดย ไม่แก้ตัวเลขพิกัดในโปรแกรม เพราะโปรแกรมต้องสะท้อนขนาดตามแบบงานเสมอ คำถามสำคัญในสายการผลิตคือ ควรปรับเมื่อใด และปรับเป็นปริมาณเท่าใด?

ปรับค่าสึกหรอตามแนวโน้มของขนาด ตัวอย่าง: เส้นผ่านศูนย์กลาง Ø30 ±0.02 ของชิ้นที่ 1 ถึง 40 ขณะมีดกลึงสึก 30.020 ขอบพิกัดบน 30.010 ปรับเมื่อเลย 30.000 กลางพิกัด 29.980 ขอบพิกัดล่าง 1 10 20 24 30 40 ชิ้นที่ 29.98 30.00 30.02 ปรับค่าสึกหรอ X −0.011 ปรับเมื่อขนาดเลยครึ่งหนึ่งของพิกัด และปรับกลับไปที่กลางพิกัด ไม่ใช่แค่ให้พอเข้าพิกัด ค่าที่วัดแกว่งขึ้นลงเล็กน้อยทุกชิ้น ให้ดูแนวโน้มจากหลายชิ้น ไม่ปรับตามชิ้นเดียว
รูปที่ 28.3 ปรับค่าสึกหรอเมื่อขนาดเลยครึ่งหนึ่งของพิกัด กลับไปที่กลางพิกัด ไม่ต้องรอให้ชิ้นงานใกล้ขอบพิกัด

กฎปฏิบัติสำคัญในการปรับชดเชยค่าสึกหรอมีสามข้อ

  • 1. ปรับชดเชยกลับเข้าสู่กึ่งกลางพิกัดความเผื่อ (Aim for Nominal/Mid-tolerance): ไม่ใช่ปรับเพียงแค่ให้พอผ่านขอบพิกัด เช่น ชิ้นงานแบบกำหนดขนาด ∅30±0.02\varnothing 30 \pm 0.02 (ขอบเขต 29.980 ถึง 30.020 มม.) เมื่อวัดได้ 30.011 มม. ให้ปรับค่าสึกหรอลดลง 0.011 มม. เต็มจำนวน เพื่อดึงขนาดชิ้นงานกลับมาที่ 30.000 มม. พอดี การทำเช่นนี้ทำให้คมตัดมีช่วงความเผื่อเหลือให้สึกหรอได้อีกยาวนานก่อนจะต้องหยุดปรับในครั้งถัดไป หากปรับเพียงเล็กน้อย (เช่น ปรับลงแค่ 0.002 มม.) ขนาดก็จะล้นพิกัดอีกภายในไม่กี่ชิ้น
  • 2. ปรับเมื่อแนวโน้มขนาดแตะระดับครึ่งหนึ่งของพิกัดความเผื่อ (Action limit at 50% tolerance): อย่ารอจนขนาดชิ้นงานเฉียดใกล้ขอบพิกัดสูงสุด เพราะเครื่องมือวัดทุกชนิดมีความไม่แน่นอนในการวัด (Gage repeatability) และชิ้นงานที่กำลังตัดต่อเนื่องระหว่างรอบการวัดจะยังคงสึกหรอโตขึ้นไปอีก หากรอจนใกล้ขอบ อาจเกิดชิ้นงานเสีย (Scrap) หลุดรอดไปก่อนที่จะตรวจพบ
  • 3. ไม่ปรับชดเชยตามผลการวัดเพียงชิ้นเดียว (Do not chase normal variation): การรีบปรับค่าทุกครั้งที่ตัวเลขบนไมโครมิเตอร์ขยับเพียง 1–2 ไมครอน เรียกว่าการปรับเกินควร (Tampering / Hunting) ซึ่งจะยิ่งทำให้ขนาดชิ้นงานแกว่งผันผวนมากขึ้น ควรสังเกตทิศทางแนวโน้ม (Trend) จากชิ้นงานที่วัดต่อเนื่องกัน 2 ถึง 3 ชิ้น หรือใช้ค่าเฉลี่ยในการตัดสินใจ

ข้อแตกต่างทางคณิตศาสตร์ระหว่างเครื่องกลึงกับMachining center:

  • บนเครื่องกลึง: เครื่องที่เขียนแกน X เป็นเส้นผ่านศูนย์กลาง ซึ่งเป็นแบบที่ใช้ทั่วไป ป้อนค่าสึกหรอแกน X ในตาราง Offset เป็น เส้นผ่านศูนย์กลาง (Diameter) หากกลึงผิวนอกแล้วโตเกินไป 0.011 มม. ให้ป้อนค่าชดเชยแกน X ติดลบ -0.011 เข้าไปที่ค่า X Wear ได้โดยตรง
  • บนMachining center: ค่าชดเชยรัศมีมีด (D offset หรือ Tool Radius Wear) กำหนดเป็น รัศมี (Radius) การปรับจึงต้องใช้เพียง ครึ่งหนึ่ง ของผลต่างเส้นผ่านศูนย์กลางที่วัดได้ และต้องคำนึงถึงทิศทางของขอบงาน: หากเป็นขอบนอก (Boss) ที่โตเกินไป ให้ปรับค่า D ติดลบลงครึ่งหนึ่ง แต่หากเป็นหลุมใน (Pocket) ที่ขนาดเล็กเกินไป ก็ต้องปรับค่า D ติดลบลงครึ่งหนึ่งเช่นกัน เพื่อให้รัศมีประสิทธิผลของมีดเล็กลงและเดินกินเนื้อเปิดหลุมได้กว้างขึ้น ตามรายละเอียดในบทที่ 13

28.4.2 เครื่องมือสำรองและการจัดการอายุเครื่องมือ

ในงานผลิตที่ต้องเดินเครื่องต่อเนื่องข้ามกะ (Lights-out machining) หรือทำงานโดยไม่มีผู้ปฏิบัติงานคอยเฝ้า การรอให้มีดหักคางานหรือปล่อยให้ขนาดหลุดพิกัดทำให้ชิ้นงานเสียหรือเครื่องมือหักต่อเนื่อง จึงจำเป็นต้องติดตั้ง เครื่องมือสำรอง (Sister tool) ชนิด ขนาด และเบอร์มีดเดียวกันเตรียมไว้ในแม็กกาซีนหลายตัว เพื่อให้ผลัดเปลี่ยนมาทำงานแทนกันได้โดยอัตโนมัติ

ชุดควบคุม Fanuc มีออปชัน ระบบจัดการอายุเครื่องมือ (Tool life management) ซึ่งทำงานตามหลักการดังนี้:

  • จัดกลุ่มเครื่องมือ (Tool grouping): เครื่องมือที่ทำงานเหมือนกันจะถูกจัดรวมไว้ในกลุ่มเดียวกัน (Group) โดยแต่ละตัวมีหมายเลขพ็อต (Tool pocket) และตารางชดเชยพิกัด (Offset register) เป็นของตัวเองอย่างอิสระ
  • เกณฑ์การนับอายุ (Life counter): สามารถกำหนดอายุการใช้งานของเครื่องมือล่วงหน้าได้ 2 แบบ คือ นับตาม จำนวนครั้งที่ใช้งาน (Count) เช่น เจาะได้ 500 รู หรือนับตาม เวลาตัดเฉือนจริง (Feed time) เช่น กัดงานได้ 45 นาที
  • การเรียกใช้งานในโปรแกรม: โปรแกรมจะเรียกใช้ด้วยรหัสของกลุ่มเครื่องมือแทนหมายเลขเครื่องมือเดี่ยว ชุดควบคุมจะตรวจสอบสถานะและเลือกเครื่องมือตัวที่ยังไม่หมดอายุในกลุ่มนั้นมาทำงานโดยอัตโนมัติ พร้อมทั้งเรียกตารางค่าชดเชยที่ถูกต้องของเครื่องมือตัวนั้นมาใช้
  • การสลับเครื่องมืออัตโนมัติ: เมื่อเครื่องมือตัวปัจจุบันใช้งานจนครบอายุที่ตั้งไว้ ในรอบถัดไปชุดควบคุมจะหยิบเครื่องมือสำรองตัวถัดไปในกลุ่มเดียวกันขึ้นมาทำงานแทน และหากเครื่องมือทุกตัวในกลุ่มหมดอายุลงทั้งหมด เครื่องจะหยุดทำงานพร้อมแจ้งเตือนให้ผู้ปฏิบัติงานมาเปลี่ยนเครื่องมือ

รูปแบบคำสั่งเรียกกลุ่มเครื่องมือในโปรแกรมจะขึ้นอยู่กับรุ่นของชุดควบคุมและการตั้งค่าพารามิเตอร์ของผู้ผลิตเครื่องจักร สำหรับเครื่องจักรที่ไม่มีออปชันจัดการอายุเครื่องมือติดตั้งมา สามารถเขียนโปรแกรมมาโคร Custom Macro B เพื่อตรวจนับจำนวนครั้งและสั่งเปลี่ยนเครื่องมือทดแทนได้เช่นกัน หลักการคือบวกค่าตัวแปรที่เก็บค่าไว้แม้ปิดเครื่อง เช่น #510 = #510 + 1 ทุกครั้งที่ใช้เครื่องมือนั้น และเมื่อค่าถึงจำนวนที่กำหนด ให้เรียกเครื่องมือสำรองแทน หรือหยุดเครื่องพร้อมข้อความเตือนด้วยตัวแปร #3000 เช่น #3000 = 1 (T05 LIFE OVER) เพื่อให้ผู้ปฏิบัติงานเปลี่ยนเครื่องมือ แล้วตั้ง #510 กลับเป็น 0

อายุการใช้งานที่กำหนดไว้ในระบบ ควรได้จากการเก็บสถิติและบันทึกผลการตัดเฉือนจริงในสายการผลิต ไม่ควรนำตัวเลขสูงสุดจากแค็ตตาล็อกผู้ผลิตเครื่องมือมาใช้โดยตรง เพราะอายุมีดย่อมผันแปรตามความแข็งแรงของเครื่องจักร การสั่นสะท้าน คุณภาพน้ำหล่อเย็น และความแข็งของผิววัสดุ ในช่วงแรกของการผลิตควรตั้งค่าอายุไว้เพียง 70% ถึง 80% ของค่าที่คาดการณ์ไว้ แล้วจึงค่อยๆ ปรับเพิ่มขึ้นหลังจากตรวจสอบแล้วว่าสภาพความสึกหรอบนคมตัด (Flank wear VB≤0.2 มม.VB \le 0.2\text{ มม.}) และคุณภาพผิวงานยังอยู่ในเกณฑ์ที่กำหนด

28.5 การลดรอบเวลา

รอบเวลา (Cycle time) คือระยะเวลาทั้งหมดตั้งแต่ผู้ปฏิบัติงานกดปุ่ม CYCLE START จนกระทั่งเครื่องจักรทำงานเสร็จสิ้นและพร้อมรับชิ้นงานถัดไป ในสายการผลิตระดับ 10,000 ชิ้น การลดเวลาได้เพียง 1 วินาทีต่อรอบ จะช่วยประหยัดเวลาการทำงานของเครื่องจักรได้เกือบ 3 ชั่วโมง และลดต้นทุนต่อชิ้นลง

เวลาในหนึ่งรอบการผลิตแบ่งออกเป็น 2 ส่วนหลัก คือ เวลาตัดเฉือนเนื้อโลหะจริง (Cutting time) และ เวลาสูญเปล่าที่ไม่ได้ตัดเนื้อโลหะ (Non-cutting time หรือ Air-cut time) ในทางปฏิบัติ การมุ่งลดเวลาในส่วน Non-cutting time มักทำได้ง่ายกว่า ปลอดภัยกว่า และไม่ส่งผลเสียต่ออายุเครื่องมือตัด ต่างจากการเร่งความเร็วตัดหรืออัตราป้อน ซึ่งหากเพิ่มเกินจุดเหมาะสมจะทำให้อายุคมตัดสั้นลงอย่างรวดเร็ว

ตารางที่ 28.5 รอบเวลาแบ่งตามกลุ่มของเวลา
องค์ประกอบเวลา รายละเอียดที่เกิดขึ้น วิธีการปรับลดเวลาอย่างมีประสิทธิภาพ
เปลี่ยนเครื่องมือ ยกแกน Z ขึ้นจุดอ้างอิง หมุนแม็กกาซีน สลับเครื่องมือ จัดลำดับงานแบบทีละเครื่องมือ, สั่งเรียกเครื่องมือถัดไปมารอไว้ล่วงหน้า (Pre-staging), รวมลำดับงานที่ใช้เครื่องมือขนาดเดียวกันเข้าด้วยกัน
เร่งและหยุดสปินเดิล สั่ง M05 แล้วสั่ง M03 ซ้ำระหว่างเปลี่ยนเครื่องมือ ใส่คำสั่งความเร็วรอบและทิศทางหมุน S... M03 ไว้ในบรรทัดเดียวกับการเคลื่อนที่เร็วเข้าหาชิ้นงาน ตามบทที่ 10 เพื่อให้สปินเดิลเร่งความเร็วระหว่างที่แกนกำลังวิ่ง
เคลื่อนที่เร็ว (G00) ยกแกนสูงเกินความจำเป็น เคลื่อนที่ข้ามไปมาหลายรอบ ใช้ G99 ระหว่างรูบนระนาบเดียวกัน, ตั้งระยะความสูงปลอดภัยให้พอดีกับสิ่งกีดขวางจริง, จัดเรียงลำดับพิกัดหลุมให้เดินเป็นเส้นทางที่สั้นที่สุด (Shortest path)
ตัดอากาศ (Air cut) ระนาบจุด R อยู่สูงเกินไป, ทางเดินกัดหยาบเริ่มกินจากจุดที่ไกลจากเนื้อชิ้นงาน ปรับลดระดับระนาบ R เหลือเพียง 1.5 ถึง 2 มม. เหนือผิวงาน, วางเส้นทางเดินมีดกัดหยาบโดยอิงตามขอบเขตเนื้อวัสดุดิบจริง (Stock boundary)
หยุดรอค้าง (Dwell) คำสั่ง G04 นานเกินไป, หน่วงเวลารอน้ำหล่อเย็นหรือหัวจับ ตัดคำสั่ง G04 ที่ไม่จำเป็นออก, ปรับเวลาหน่วงที่ก้นรูเจาะให้พอดีกับรอบหมุน (1–2 รอบ), สั่งเปิดน้ำหล่อเย็น M08 ร่วมในบรรทัดเคลื่อนที่เร็ว
ตัดเฉือนจริง ความเร็วตัดและอัตราป้อนต่ำกว่าศักยภาพของคมตัด เปลี่ยนมาใช้เครื่องมือประสิทธิภาพสูง เช่น ดอกสว่านคาร์ไบด์ที่มีรูน้ำหล่อเย็นในตัว (Through-coolant drill) เพื่อยกเลิกการถอยคายเศษ (Peck drilling), ปรับพารามิเตอร์การตัดขึ้นตามขีดจำกัดของคมตัดและกำลังสปินเดิล

ฟังก์ชันจำลองเวลาของ Backplot ช่วยวิเคราะห์ได้อย่างแม่นยำว่าเวลาในแต่ละรอบสูญหายไปกับขั้นตอนใด โดยจำแนกเวลาตัดเฉือนจริง เวลาเคลื่อนที่เร็ว เวลาหยุดหน่วง และเวลาเปลี่ยนเครื่องมือของแต่ละเครื่องมือแยกออกจากกันอย่างชัดเจน ช่วยให้ผู้เขียนโปรแกรมเปรียบเทียบเวลาก่อนและหลังปรับแต่งได้อย่างรวดเร็ว อย่างไรก็ดี รอบเวลาจริงจะต้องจับเวลาที่หน้าเครื่องจักรเสมอ เพราะอัตราเร่งและชะลอของแกน (Acceleration/Deceleration curve) และเวลาทำงานของระบบแมคคานิกส์ในแต่ละเครื่องย่อมแตกต่างกัน วิธีการสอบเทียบเวลาประมาณการให้ตรงกับเวลาจริงสามารถศึกษาเพิ่มเติมได้จากบทความประมาณรอบเวลาจากโปรแกรม NC ให้แม่น

สองสิ่งที่ต้องไม่ลดเพื่อแลกกับเวลา:

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

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

ตารางที่ 28.6 ข้อผิดพลาดที่พบบ่อยของงานผลิตต่อเนื่อง
ข้อผิดพลาด ผลที่ตามมา แนวทางป้องกัน
ระดับที่ข้ามระหว่างสถานีต่ำกว่าตัวจับของฟิกซ์เจอร์ เครื่องมือชนแคลมป์หรือฟิกซ์เจอร์ขณะเคลื่อนที่เร็วข้ามสถานี ให้รูสุดท้ายของแต่ละชิ้นงานถอยด้วย G98 ไปยังระดับเริ่มต้น (Initial plane) ที่สูงพ้นสิ่งกีดขวางทั้งหมด
ลืมเลือกจุดศูนย์ของสถานีก่อนเรียกโปรแกรมย่อย ตัดซ้ำที่สถานีเดิม และสถานีเป้าหมายไม่ได้ตัด สั่งเปลี่ยนระบบพิกัดจุดศูนย์งาน (G55 ถึง G57) ในบรรทัดเดียวกับคำสั่ง M98 เสมอ
พึ่งพาตัวนับของเครื่องเพียงอย่างเดียวโดยไม่ใส่เงื่อนไขป้องกันการเดินเครื่องซ้ำ ผู้ปฏิบัติงานอาจเผลอกด CYCLE START ผลิตงานเกินเป้าหมาย (Overproduction) เพราะเครื่องหลายรุ่นไม่ล็อกการทำงานเมื่อครบยอด เขียนบล็อกตรวจสอบ #3901 เทียบกับ #3902 ที่ต้นโปรแกรม เพื่อแจ้งเตือนและล็อกไม่ให้เริ่มรอบถัดไป
ใช้ M99 วนลูปโปรแกรมแต่ลืมเพิ่มตัวนับในโปรแกรม ตัวนับชิ้นงานไม่เพิ่มขึ้น เครื่องไม่ยอมหยุดแม้จะผลิตครบจำนวนแล้ว ใส่คำสั่งเพิ่มค่า #3901 = #3901 + 1 ในโปรแกรมก่อนหน้าคำสั่ง M99 เสมอ
สั่งเปิดหัวจับไฮดรอลิกขณะที่สปินเดิลยังหมุนอยู่ แท่งเพลาเหวี่ยงหลุด ชิ้นงานกระเด็น หรือเครื่องล็อกด้วย Alarm ใส่คำสั่งหยุดสปินเดิล M05 ก่อนคำสั่งเปิดหัวจับทุกครั้ง
ใช้ตัวแปรมาโคร #500 ขึ้นไปซ้ำซ้อนกับโปรแกรมอื่น ตัวนับจำนวนหรือรอบการหยุดตรวจวัดคลาดเคลื่อนโดยไม่มีใครสังเกตเห็น จัดทำตารางจัดสรรตัวแปรมาโครของโรงงานและลงทะเบียนหมายเลขที่ใช้ให้ชัดเจน
ปรับค่าสึกหรอเพียงแค่ให้พอผ่านขอบพิกัดความเผื่อ ต้องหยุดเครื่องปรับค่าบ่อยครั้ง ขนาดชิ้นงานสุ่มเสี่ยงหลุดพิกัดตลอดเวลา ปรับชดเชยค่าสึกหรอกลับเข้าสู่จุดกึ่งกลางของพิกัดความเผื่อ (Nominal size) เสมอ
รีบปรับค่าสึกหรอทุกครั้งที่ตัวเลขการวัดขยับเพียงเล็กน้อย ขนาดชิ้นงานแกว่งผันผวนมากขึ้นจากปัญหา Over-compensation สังเกตแนวโน้มขนาด (Trend) จากชิ้นงานหลายชิ้นต่อเนื่องกันก่อนตัดสินใจปรับ
แก้ไขตัวเลขพิกัดในโปรแกรม G-code แทนการปรับค่าสึกหรอ โปรแกรมไม่ตรงกับแบบงาน เกิดข้อผิดพลาดทันทีเมื่อเปลี่ยนเครื่องมือตัวใหม่ ปรับชดเชยที่ตาราง Wear offset ในหน้าจอควบคุมเสมอ ห้ามแก้โปรแกรม
กำหนดอายุเครื่องมือโดยอิงจากตัวเลขสูงสุดในแค็ตตาล็อก คมตัดหักคางานก่อนครบอายุ หรือเปลี่ยนทิ้งทั้งที่ยังใช้งานได้ดี เริ่มต้นตั้งค่าอายุแบบระมัดระวัง (70–80%) แล้วปรับเพิ่มตามสถิติที่บันทึกจริงหน้าเครื่อง
พยายามลดรอบเวลาด้วยการตัดขั้นตอนการตรวจสอบคุณภาพ ชิ้นงานขนาดหลุดพิกัดต่อเนื่องจำนวนมากก่อนจะตรวจพบ มุ่งลดเวลาสูญเปล่าในส่วนการเปลี่ยนเครื่องมือ การเคลื่อนที่เร็ว และการตัดอากาศก่อนเสมอ

สรุป

  • การจับงานหลายชิ้นในรอบเดียว: กำหนดจุดศูนย์งานแยกอิสระหนึ่งชุดต่อหนึ่งสถานี (G54 ถึง G59) และเรียกใช้โปรแกรมย่อยร่วมกัน ลำดับแบบทีละเครื่องมือ (Tool-by-tool) ช่วยลดเวลาเปลี่ยนมีดได้มากที่สุด ส่วนลำดับแบบทีละชิ้น (Part-by-part) ช่วยจำกัดความเสียหายเมื่อเครื่องมือหัก
  • การควบคุมระดับความสูงในการเจาะ: ใช้ G99 ถอยมีดแค่ระดับ R เพื่อความรวดเร็วระหว่างรูที่อยู่บนระนาบเดียวกัน และใช้ G98 ในรูสุดท้ายของชิ้นงาน เพื่อถอยมีดกลับสู่ระดับเริ่มต้นที่ปลอดภัยก่อนข้ามสถานี
  • ตัวนับชิ้นงาน #3901 และ #3902: ตรวจสอบยอดผลิตที่ต้นโปรแกรมและหยุดเครื่องด้วย #3000 ทันทีเมื่อครบเป้าหมาย อย่าลืมบวกชดเชยในโปรแกรมหากหนึ่งรอบผลิตได้หลายชิ้น และต้องบวกค่าเองเสมอเมื่อโปรแกรมวนลูปด้วย M99
  • งานป้อนเพลาอัตโนมัติ: สั่งหยุดสปินเดิล (M05) ก่อนเปิดหัวจับเสมอ ดันเพลาชนตัวหยุด ตัดขาดชิ้นงานลงถาดรับ แล้ววนลูปด้วย M99 P กลับไปหลังบล็อกตั้งค่าเริ่มต้น โดยความยาวเพลาที่ใช้ต่อชิ้นคิดจาก: ความยาวชิ้นงาน + ความกว้างมีดตัดขาด + เนื้อปาดหน้า
  • การปรับชดเชยค่าสึกหรอ: ปรับเมื่อแนวโน้มขนาดแตะครึ่งหนึ่งของพิกัดความเผื่อ โดยปรับกลับเข้าสู่กึ่งกลางพิกัดเสมอ และตัดสินใจจากแนวโน้มของชิ้นงานหลายชิ้น ไม่ปรับตามผลการวัดเพียงชิ้นเดียว
  • เครื่องมือสำรองและระบบจัดการอายุเครื่องมือ: ช่วยให้เครื่องจักรผลิตงานต่อเนื่องข้ามกะได้อย่างปลอดภัย โดยควรกำหนดอายุการใช้งานจากสถิติที่บันทึกจริงในสายการผลิต
  • การลดรอบเวลา: มุ่งลดเวลาสูญเปล่า (Non-cutting time) เช่น การเคลื่อนที่เร็ว การตัดอากาศ และการรอคอยก่อนเป็นอันดับแรก และไม่ลดระดับความสูงปลอดภัยหรือตัดขั้นตอนการตรวจวัด

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