บทที่ 24
การอ่านล่วงหน้าของชุดควบคุม — ลำดับการทำงานของโปรแกรมและอัตราป้อนจริง
ชุดควบคุม CNC อ่านโปรแกรมนำหน้าการเคลื่อนที่เสมอ บทนี้อธิบายผลสองด้าน ด้านแรกคือบรรทัดที่อ่านไว้แล้วไม่รับรู้สวิตช์ที่เปลี่ยนภายหลัง และบรรทัดคำนวณของมาโครถูกทำก่อนเวลา ด้านที่สองคือการอ่านล่วงหน้าหลายบรรทัดเพื่อวางแผนอัตราป้อน ซึ่งทำให้อัตราป้อนจริงต่ำกว่า F ที่มุม ส่วนโค้งเล็ก และบรรทัดเดินสั้นจาก CAM พร้อมตัวเลขที่คำนวณได้และตารางอาการ สาเหตุ และวิธีแก้
บทนี้เป็นเนื้อหาเสริมต่อจากบทที่ 22 และบทที่ 23 ไม่จำเป็นสำหรับการเขียนโปรแกรมแรก แต่อธิบายอาการหลายอย่างที่พบเมื่อใช้มาโคร โปรแกรมจาก CAM และการส่งโปรแกรมทาง RS-232
ชุดควบคุม CNC ไม่ได้อ่านโปรแกรมทีละบรรทัดแล้วรอให้เครื่องทำเสร็จก่อนอ่านบรรทัดถัดไป แต่ อ่านนำหน้าการเคลื่อนที่ไปหลายบรรทัดเสมอ เรียกว่า การอ่านล่วงหน้า (Read-ahead หรือ Look-ahead) ผู้ปฏิบัติงานส่วนใหญ่ไม่ต้องคิดถึงเรื่องนี้ จนกว่าจะเจออาการที่อธิบายด้วยการอ่านโปรแกรมทีละบรรทัดไม่ได้ เช่น เปิดสวิตช์ BLOCK SKIP แล้วเครื่องยังทำบรรทัดถัดไป ตัวแปรมาโครได้ตำแหน่งที่ไม่ตรงกับที่สั่ง หรือโปรแกรมจาก CAM ที่สั่ง F2000 ใช้เวลานานกว่าที่ CAM ประเมินไว้เกือบเท่าตัว
บทนี้แบ่งเป็นสองส่วนตามผลของการอ่านล่วงหน้า ส่วนแรกคือ ลำดับเวลา ว่าอะไรถูกตัดสินตอนอ่านและอะไรเกิดตอนเครื่องเคลื่อนที่ ส่วนที่สองคือ อัตราป้อน ว่าการมองเห็นเส้นทางข้างหน้าทำให้ชุดควบคุมเร่งและชะลออย่างไร ตัวอย่างคำสั่งอ้างอิงชุดควบคุมแบบ Fanuc จำนวนบรรทัดที่อ่านล่วงหน้า คำสั่งที่หยุดการอ่านล่วงหน้า และวิธีเปิดฟังก์ชันต่างกันตามรุ่นและตัวเลือกที่ซื้อ จึงควรตรวจกับคู่มือของเครื่องเสมอ
24.1 การอ่านล่วงหน้ามีสองระดับ
| อ่านนำหน้าเพื่อเตรียมบรรทัด | อ่านล่วงหน้าเพื่อวางแผนอัตราป้อน | |
|---|---|---|
| ชื่อที่พบ | Block buffering, Read-ahead | Look-ahead, AI contour control, High-speed machining mode |
| อ่านล่วงหน้า | ไม่กี่บรรทัด | หลายสิบถึงหลายร้อยบรรทัด |
| มีอยู่ใน | ชุดควบคุมทุกเครื่อง เปิดตลอดเวลา | ชุดควบคุมรุ่นใหม่ มักเป็นตัวเลือกเสริม และต้องสั่งเปิดในโปรแกรม |
| ทำไปเพื่อ | ให้บรรทัดถัดไปพร้อมทันทีที่บรรทัดปัจจุบันจบ การเคลื่อนที่จึงต่อเนื่อง และคำนวณการชดเชยรัศมีได้ | ชะลอก่อนถึงมุมและส่วนโค้งเล็ก และรักษาความเร็วผ่านบรรทัดเดินสั้นจำนวนมาก |
| ผลที่ต้องระวัง | สวิตช์และบรรทัดคำนวณ ไม่ได้มีผลตามลำดับเวลาที่เห็นในโปรแกรม | อัตราป้อนจริงต่ำกว่า F และเวลาที่ใช้ยาวกว่าที่ประเมิน |
24.2 ส่วนที่ 1: ชุดควบคุมอ่านนำหน้าเครื่อง
ขณะเครื่องเคลื่อนที่ตามบรรทัดหนึ่ง ชุดควบคุมอ่านบรรทัดถัดไปมาแปลความหมาย คำนวณพิกัดหลังชดเชย และเก็บไว้ใน บัฟเฟอร์ (Buffer) พร้อมส่งให้ระบบขับแกนทันทีที่บรรทัดปัจจุบันจบ ถ้าไม่ทำเช่นนี้ เครื่องจะหยุดชั่วขณะระหว่างทุกบรรทัดเพื่อรอการคำนวณ
ภาพด้านบนเป็นภาพนิ่ง ณ วินาทีหนึ่งของการเก็บผิวด้วยการชดเชยรัศมี ให้อ่านโดยแยกสองเรื่องออกจากกัน คือ เครื่องกำลังเคลื่อนที่ตามบรรทัดไหน กับ ชุดควบคุมอ่านไปถึงบรรทัดไหนแล้ว บรรทัดในภาพแบ่งเป็นสี่สถานะ
N090ทำไปแล้ว เครื่องเดินบรรทัดนี้จบแล้ว และเปิดการชดเชยรัศมีG41ด้วยค่าD11N100กำลังเคลื่อนที่ เครื่องอยู่ที่ X63.2 ระหว่างทางไป X80. หน้าจอตำแหน่งแสดงค่านี้ แต่บรรทัดที่ไฮไลต์บนหน้าจอโปรแกรมอาจอยู่ถัดลงไปแล้วN110ถึงN140อ่านแล้ว รอเคลื่อนที่ ชุดควบคุมแปลความหมายและคำนวณบรรทัดเหล่านี้เสร็จแล้ว ทุกอย่างที่ตัดสินตอนอ่านจึงเปลี่ยนไม่ได้อีกN110และN120ตำแหน่งศูนย์กลางเครื่องมือหลังชดเชยคำนวณเสร็จแล้ว จุดมุมที่ปลายแต่ละบรรทัดคำนวณจากทิศของบรรทัดเคลื่อนที่ถัดไป การชดเชยรัศมีจึงต้องอาศัยการอ่านล่วงหน้า ตามที่อธิบายในหัวข้อการชดเชยรัศมีต้องอ่านล่วงหน้าN130ให้ตัวแปร#100เก็บค่าของ#5041ซึ่งเป็นตัวแปรระบบที่บอกตำแหน่ง X ปัจจุบันของเครื่อง (อธิบายเพิ่มในหัวข้อบรรทัดคำนวณของมาโคร) บรรทัดคำนวณแบบนี้ไม่ได้แค่ถูกอ่าน แต่ถูกทำไปแล้ว#100จึงได้ตำแหน่งของเครื่อง ณ ตอนนั้นคือ 63.2 แทนที่จะเป็นตำแหน่งหลังN120จบ ตามที่ผู้เขียนโปรแกรมตั้งใจ/N140ชุดควบคุมดูสวิตช์ BLOCK SKIP ตอนอ่าน ตอนนั้นสวิตช์ปิดอยู่ จึงตัดสินไปแล้วว่าจะเปิดน้ำหล่อเย็นด้วยM08ถ้าเปิดสวิตช์ตอนนี้ น้ำหล่อเย็นก็ยังเปิดที่N140
N150ถึงN170ยังไม่อ่าน บัฟเฟอร์ของชุดควบคุมในตัวอย่างนี้เก็บได้สี่บรรทัด และเต็มแล้วที่N140เมื่อN100จบ เครื่องเริ่มเดินN110บัฟเฟอร์จึงว่างหนึ่งบรรทัด ชุดควบคุมจึงอ่านN150เข้ามาแทน สวิตช์ที่เปลี่ยนก่อนถึงตอนนั้น เช่น BLOCK SKIP จึงมีผลตั้งแต่N150
ภาพนี้แสดงบรรทัดในบัฟเฟอร์สี่บรรทัดเพื่อให้อ่านง่าย จำนวนจริงขึ้นกับรุ่นของชุดควบคุมและฟังก์ชันที่เปิดอยู่ เมื่อเปิดการอ่านล่วงหน้าเพื่อวางแผนอัตราป้อนในส่วนที่ 2 อาจเป็นหลายสิบถึงหลายร้อยบรรทัด
หลักที่ต้องจำมีข้อเดียว คือ ทุกอย่างที่ชุดควบคุมตัดสินจากตัวโปรแกรม ถูกตัดสินตอนอ่าน ไม่ใช่ตอนเครื่องเคลื่อนที่ถึงบรรทัดนั้น ผลที่ตามมามีดังนี้
24.2.1 บรรทัดที่เห็นบนจอ
หน้าจอโปรแกรมของชุดควบคุมหลายรุ่นเลื่อนเคอร์เซอร์ตามบรรทัดที่อ่าน หรือแสดงบรรทัดถัดไปไว้ด้วย ขณะใช้การชดเชยรัศมีหรือการอ่านล่วงหน้าหลายบรรทัด บรรทัดที่ไฮไลต์จึงอาจอยู่ถัดลงไปจากบรรทัดที่เครื่องกำลังเคลื่อนที่หลายบรรทัด บทที่ 3 กล่าวถึงเรื่องนี้ไว้สั้นๆ ในข้อสุดท้ายของรายการในหัวข้อ SINGLE BLOCK: เดินทีละบรรทัด เมื่อต้องรู้ว่าเครื่องอยู่ที่ใด ให้ดูหน้าจอตำแหน่งและระยะที่เหลือ (Distance to go) แทนการดูบรรทัดบนจอ หน้า PROGRAM CHECK ในบทที่ 21 แสดงทั้งสองค่านี้ไว้ข้างบรรทัดของโปรแกรม
24.2.2 สวิตช์และค่าชดเชยที่เปลี่ยนระหว่างเดินโปรแกรม
- BLOCK SKIP และ OPT STOP ชุดควบคุมดูสถานะของสวิตช์ตอนอ่านบรรทัด ถ้าเปิดหรือปิดสวิตช์หลังบรรทัดนั้นเข้าบัฟเฟอร์แล้ว จะไม่มีผลกับบรรทัดนั้น ให้ตั้งสวิตช์ก่อนกด CYCLE START หรืออย่างน้อยก่อนเครื่องเดินมาใกล้บรรทัดที่เกี่ยวข้องหลายบรรทัด
- ค่าชดเชยความยาวและรัศมี ผู้ปฏิบัติงานแก้ค่าชดเชยขณะเครื่องหยุดหลังจบชิ้นงานอยู่แล้ว จึงไม่เกี่ยวกับการอ่านล่วงหน้า กรณีที่ค่าเปลี่ยนขณะโปรแกรมทำงานคือมาโครหรือ
G10ที่เขียนค่าชดเชยเอง เช่น เขียนค่าสึกหรอจากผลวัดด้วยโพรบ บนชุดควบคุมแบบ Fanuc ค่าใหม่ของหมายเลขDหรือHที่กำลังใช้อยู่ยังไม่มีผลจนกว่าโปรแกรมจะสั่งDหรือHนั้นอีกครั้ง ถ้าพารามิเตอร์ 5001 บิต 4 (EVR สำหรับรัศมี) และบิต 6 (EVO สำหรับความยาว) เป็น 0 ถ้าตั้งเป็น 1 ค่าใหม่มีผลตั้งแต่บรรทัดที่ชุดควบคุมอ่านถัดไป โปรแกรมที่เขียนค่าชดเชยแล้วต้องใช้ค่าใหม่ทันทีจึงควรสั่งDหรือHซ้ำหลังบรรทัดที่เขียนค่า - การปรับอัตราป้อนและความเร็วรอบด้วยปุ่ม Override มีผลทันทีกับการเคลื่อนที่ เพราะไม่ใช่ข้อมูลในโปรแกรม จึงไม่เกี่ยวกับการอ่านล่วงหน้า
24.2.3 บรรทัดคำนวณของมาโครถูกทำทันทีที่อ่าน
บรรทัดที่มีแต่การคำนวณหรือการกำหนดค่าตัวแปร ไม่มีการเคลื่อนที่ให้รอ ชุดควบคุมจึงทำทันทีที่อ่าน ซึ่งเกิดขึ้นก่อนบรรทัดเคลื่อนที่ที่อยู่ข้างหน้ามันจะจบ ตัวอย่างข้างล่างใช้ #5041 ซึ่งเป็นตัวแปรระบบของชุดควบคุมแบบ Fanuc ที่อ่านตำแหน่ง X ปัจจุบันของเครื่องในระบบพิกัดชิ้นงาน ณ วินาทีที่บรรทัดถูกทำ
N100 G01 X80. F600
N130 #100=#5041 (อ่านตำแหน่ง X ปัจจุบัน แต่ถูกทำขณะเครื่องยังไปไม่ถึง X80)
#100 จึงได้ตำแหน่งระหว่างทาง เช่น 63.2 แทนที่จะเป็น 80 ปัญหาเดียวกันเกิดกับทุกค่าที่เปลี่ยนตามเวลา คือตำแหน่งปัจจุบัน ตัวจับเวลา และสัญญาณเข้าจากภายนอก แนวทางแก้คือ ใช้ #5001 ถึง #5003 ถ้าต้องการตำแหน่งที่โปรแกรมสั่งไว้ และอ่านตำแหน่งจริงหลังบรรทัดที่หยุดการอ่านล่วงหน้าเท่านั้น
บนชุดควบคุมแบบ Fanuc ตามค่าเริ่มต้น บรรทัดมาโครยังไม่หยุดทีละบรรทัดเมื่อเปิด SINGLE BLOCK ด้วย การกดทีละบรรทัดเพื่อดูลำดับการทำงานของมาโครจึงเห็นเฉพาะบรรทัดเคลื่อนที่ ส่วนบรรทัดคำนวณถูกทำผ่านไปแล้ว
24.2.4 การชดเชยรัศมีต้องอ่านล่วงหน้า
การชดเชยรัศมีเครื่องมือ G41 G42 เป็นตัวอย่างของการอ่านล่วงหน้าที่จำเป็น ชุดควบคุมต้องรู้ทิศของบรรทัดถัดไป จึงจะรู้ว่าศูนย์กลางเครื่องมือต้องหยุดที่ใดที่มุม ถ้ามีบรรทัดที่ไม่เคลื่อนที่ในระนาบติดกันหลายบรรทัดจนชุดควบคุมมองไม่เห็นบรรทัดเคลื่อนที่ถัดไป จะคำนวณมุมผิด รายละเอียดอยู่ในบทที่ 13 บรรทัดที่หยุดการอ่านล่วงหน้า เช่น M00 M01 ในช่วงที่การชดเชยเปิดอยู่ ทำให้ชุดควบคุมมองไม่เห็นบรรทัดถัดไปเลย และอาจกัดเกินที่มุม ถ้าต้องหยุดวัดขนาดกลางโปรแกรม ให้ยกเลิกการชดเชยด้วย G40 ก่อน
24.2.5 บรรทัดที่หยุดการอ่านล่วงหน้า
บางบรรทัดทำให้ชุดควบคุม รอจนการเคลื่อนที่ก่อนหน้าจบ ก่อนอ่านบรรทัดถัดไป บนชุดควบคุมแบบ Fanuc ได้แก่
M00M01M02M30เพราะโปรแกรมอาจหยุดหรือจบที่บรรทัดนี้- รหัส M ที่ผู้ผลิตเครื่องตั้งไว้ว่าไม่อ่านล่วงหน้า ในพารามิเตอร์ 3411 เป็นต้นไป ผู้ผลิตมักตั้งรหัส M ของอุปกรณ์ที่ต้องรอผลไว้ในกลุ่มนี้
G31การเคลื่อนที่จนได้สัญญาณ (Skip) ซึ่งใช้กับโพรบ เพราะตำแหน่งปลายทางจริงยังไม่รู้จนกว่าจะได้สัญญาณG53บนเครื่องหลายรุ่น
เมื่อโปรแกรมต้องการลำดับเวลาที่แน่นอน เช่น อ่านตำแหน่งจริง อ่านสัญญาณเข้าหลังอุปกรณ์ทำงานเสร็จ หรือเขียนค่าชดเชยที่ได้จากการวัด ให้ใส่บรรทัดที่หยุดการอ่านล่วงหน้าไว้ข้างหน้าโดยตั้งใจ แต่ไม่ควรใส่โดยไม่จำเป็น เพราะทุกครั้งที่หยุดอ่าน เครื่องจะชะลอจนหยุดที่ปลายบรรทัดก่อนหน้า ทิ้งรอยบนผิวงานถ้าเครื่องมือยังสัมผัสชิ้นงานอยู่
24.3 ส่วนที่ 2: อ่านล่วงหน้าเพื่อวางแผนอัตราป้อน
24.3.1 ทำไมต้องมองไกลหลายบรรทัด
แกนของเครื่องมีมวล เร่งและชะลอได้จำกัด ถ้าชุดควบคุมต้องหยุดที่ปลายบรรทัดหนึ่ง จะต้องเริ่มชะลอก่อนถึงปลายบรรทัดเป็นระยะหนึ่ง ระยะชะลอจนหยุดคือ
เมื่อ คือความเร็ว และ คือความเร่งที่ชุดควบคุมยอมให้ใช้ ที่ F2000 ( = 33.3 มม./วินาที) และความเร่ง 1000 มม./วินาที² (ค่าตัวอย่าง) ระยะชะลอคือ ≈ 0.56 มม.
ถ้าโปรแกรมเป็นส่วนโค้งจาก CAM ที่แบ่งเป็นเส้นตรงยาว 0.1 มม. ระยะชะลอนี้ยาวเกือบ 6 บรรทัด ชุดควบคุมที่มองเห็นข้างหน้าได้เพียงหนึ่งหรือสองบรรทัด ไม่รู้ว่าอีก 6 บรรทัดข้างหน้าจะเป็นมุมแหลมหรือไม่ จึงต้องเดินช้าพอที่จะหยุดได้ภายในระยะที่มองเห็น การอ่านล่วงหน้าหลายสิบถึงหลายร้อยบรรทัดแก้ปัญหานี้ ชุดควบคุมรู้ล่วงหน้าว่ามุมอยู่ตรงไหน จึง เร่งเต็มที่ในช่วงที่ทำได้ และเริ่มชะลอก่อนถึงมุมตั้งแต่หลายบรรทัดก่อน และยังใช้ข้อมูลนี้ลดการตัดมุมมนที่อธิบายไว้ในหัวข้อหยุดตรงตำแหน่ง (Exact stop) ของบทที่ 8
24.3.2 ชื่อและคำสั่งตามยี่ห้อของชุดควบคุม
| ชุดควบคุม | ชื่อฟังก์ชัน | คำสั่งในโปรแกรม |
|---|---|---|
| Fanuc | AI contour control (AICC) | G05.1 Q1 เปิด G05.1 Q0 ปิด |
| Fanuc รุ่นเก่า | AI advanced preview control | G08 P1 เปิด G08 P0 ปิด |
| Haas | Look-ahead และการปรับความเรียบ | ทำงานตลอด ปรับด้วย G187 ร่วมกับ Setting 85 |
| Siemens | Continuous-path mode และ High speed settings | G64 G642 และรอบคำสั่ง CYCLE832 |
| Heidenhain | ค่าความคลาดเคลื่อนของเส้นทาง | Cycle 32 TOLERANCE |
บนเครื่อง Fanuc ที่ซื้อตัวเลือกนี้ไว้ โพสต์โปรเซสเซอร์ของ CAM มักใส่คำสั่งเปิดหลังเรียกค่าชดเชยความยาว และปิดก่อนเปลี่ยนเครื่องมือหรือจบโปรแกรม
T05 M06
G90 G54 G00 X0 Y0 S8000 M03
G43 H05 Z50. M08
G05.1 Q1 (เปิด AI contour control)
... (เส้นทางเก็บผิวจาก CAM)
G05.1 Q0 (ปิดก่อนเปลี่ยนเครื่องมือ)
G91 G28 Z0 M09
คำสั่งบางคำใช้ระหว่างเปิดฟังก์ชันนี้ไม่ได้ และพารามิเตอร์ที่ผู้ผลิตตั้งไว้ ให้ใช้ตามคู่มือของเครื่อง
24.3.3 AI contour control ทำอะไรบ้าง
คำว่า AI ในชื่อเป็นชื่อทางการค้าที่ Fanuc ใช้กับฟังก์ชันกลุ่มนี้ ไม่ใช่ปัญญาประดิษฐ์แบบที่มีการเรียนรู้จากข้อมูลใหม่ ฟังก์ชันนี้ทำงานตามกฎและพารามิเตอร์ที่ผู้ผลิตเครื่องตั้งไว้ และให้ผลเหมือนเดิมทุกครั้งกับโปรแกรมเดียวกัน
เมื่อสั่ง G05.1 Q1 ชุดควบคุมแบบ Fanuc ไม่ได้เพียงอ่านล่วงหน้ามากขึ้น แต่เปลี่ยนวิธีควบคุมการเคลื่อนที่หลายอย่างพร้อมกัน หัวข้อนี้อธิบายหลักการ ชื่อฟังก์ชันย่อย จำนวนบรรทัดที่อ่านล่วงหน้า และพารามิเตอร์ต่างกันตามรุ่นและตัวเลือกที่ซื้อ จึงควรตรวจกับคู่มือของเครื่อง
เร่งและชะลอก่อนแบ่งแกน
ชุดควบคุมสร้างการเคลื่อนที่เป็นสองขั้น ขั้นแรกคำนวณตำแหน่งบนเส้นทางทีละช่วงเวลาสั้นๆ แล้วแบ่งเป็นคำสั่งของแต่ละแกน เรียกว่า การประมาณช่วง (Interpolation) ขั้นที่สองคือการเร่งและชะลอให้เครื่องไม่กระชาก
- โหมดปกติ: เร่งและชะลอหลังแบ่งแกน (Acceleration/deceleration after interpolation) ชุดควบคุมเกลี่ยความเร็วของแต่ละแกนแยกกัน ที่มุม แกนหนึ่งยังชะลอไม่เสร็จขณะอีกแกนเริ่มเร่ง เครื่องมือจึงตัดมุมเข้าด้านใน และขณะเดินส่วนโค้ง รัศมีที่เครื่องมือเดินจริงจะเล็กกว่าที่โปรแกรมไว้ ความคลาดเคลื่อนนี้มากขึ้นตามอัตราป้อน และไม่มีค่าใดคอยจำกัด
- AI contour control: เร่งและชะลอก่อนแบ่งแกน (Acceleration/deceleration before interpolation) ชุดควบคุมวางแผนความเร็วตามเส้นทางก่อน แล้วจึงแบ่งเป็นแกน ทุกแกนจึงเร่งและชะลอพร้อมกันตามสัดส่วน รูปร่างของเส้นทางคงอยู่ ส่วนที่ต้องช้าลงก็ช้าลงทั้งเส้นทาง ไม่ใช่เฉพาะแกนใดแกนหนึ่ง
ชะลอเองตามรูปร่างของเส้นทาง
เพราะอ่านล่วงหน้าหลายบรรทัด ชุดควบคุมรู้ก่อนว่าข้างหน้ามีอะไร จึงเริ่มชะลอได้ตั้งแต่หลายบรรทัดก่อนถึง
- ที่มุม ลดอัตราป้อนตามขนาดของการเปลี่ยนทิศ ให้ความเร็วของแต่ละแกนที่เปลี่ยนทันทีที่มุมไม่เกินค่าที่ตั้งไว้ มุมแหลมจึงช้ากว่ามุมป้าน
- บนส่วนโค้ง จำกัดอัตราป้อนตามความเร่งที่ยอมให้ ตามสมการ ในหัวข้ออัตราป้อนจริงต่ำกว่า F
- การเปลี่ยนอัตราป้อนระหว่างบรรทัด เช่น จาก
F2000เป็นF500เริ่มชะลอก่อนถึงบรรทัดที่อัตราป้อนต่ำกว่า ไม่ใช่ชะลอหลังเข้าบรรทัดนั้นแล้ว
ลดค่าตามหลังและเร่งอย่างนุ่มนวล
- การส่งคำสั่งล่วงหน้า (Feed-forward) ชุดควบคุมส่งคำสั่งให้มอเตอร์ล่วงหน้าเผื่อค่าตามหลังของเซอร์โว ค่าตามหลังจึงเหลือน้อยมาก เส้นทางจริงจึงใกล้เส้นทางที่ชุดควบคุมวางแผนไว้
- การเร่งแบบรูประฆัง (Bell-shaped acceleration) ในรุ่นที่มีฟังก์ชันนี้ ความเร่งค่อยๆ เพิ่มและค่อยๆ ลด แทนการเปลี่ยนทันที เครื่องจึงสั่นน้อยลง และผิวงานมีรอยน้อยลงตรงที่อัตราป้อนเปลี่ยน
AI contour control I และ II
Fanuc มีฟังก์ชันนี้หลายระดับ ตัวที่พบบ่อยคือ AI contour control I ซึ่งอ่านล่วงหน้าหลายสิบบรรทัด และ AI contour control II ซึ่งอ่านล่วงหน้าได้หลายร้อยบรรทัด และมีฟังก์ชันเสริมมากกว่า เช่น การเลือกระดับความแม่นยำกับความเร็วที่อธิบายในหัวข้อความแม่นยำกับความเร็ว โปรแกรมเก็บผิวจาก CAM ที่มีบรรทัดเดินสั้นจำนวนมากได้ประโยชน์จาก AI contour control II มากกว่า เพราะมองเห็นข้างหน้าได้ไกลพอที่จะไม่ต้องชะลอโดยไม่จำเป็น
เครื่องมีตัวเลือกใดดูได้จากรายการตัวเลือกของเครื่อง หรือถามผู้ขาย ถ้าสั่ง G05.1 Q1 บนเครื่องที่ไม่มีตัวเลือกนี้ ชุดควบคุมจะแจ้ง Alarm ที่บรรทัดนั้น
สิ่งที่ต้องรู้เมื่อเปิดใช้
- SINGLE BLOCK ไม่แสดงการเคลื่อนที่จริง เครื่องต้องหยุดที่ปลายทุกบรรทัด การเร่งและชะลอจึงต่างจากตอนเดินต่อเนื่อง ใช้ตรวจเส้นทางได้ แต่ดูอัตราป้อนจริงและผิวงานไม่ได้
- ปุ่มปรับอัตราป้อนยังใช้ได้ แต่การจำกัดที่มุมและส่วนโค้งยังทำงานอยู่ การเพิ่มเกิน 100% จึงไม่ทำให้ช่วงที่ถูกจำกัดเร็วขึ้น
- การหยุดตรงตำแหน่งยังจำเป็นเฉพาะจุดที่ต้องหยุดจริง เช่น ความลึกที่ต้องถึงก่อนเลี้ยว เมื่อเปิดฟังก์ชันนี้ มุมทั่วไปอยู่ในค่าความคลาดเคลื่อนที่ตั้งไว้แล้ว ตามตารางวิธีทำมุมให้คมในบทที่ 8
- พารามิเตอร์เป็นของผู้ผลิตเครื่อง ความเร่งที่ยอมให้และค่าความคลาดเคลื่อนที่มุมถูกปรับให้เข้ากับโครงสร้างของเครื่อง การแก้เองโดยไม่ปรึกษาผู้ผลิตอาจทำให้เครื่องสั่นหรือผิวงานแย่ลง ให้เลือกระดับความแม่นยำที่ผู้ผลิตตั้งไว้แทน
24.3.4 อัตราป้อนจริงต่ำกว่า F
เมื่อเปิดการอ่านล่วงหน้า ค่า F ในโปรแกรมกลายเป็น อัตราป้อนสูงสุด ที่ชุดควบคุมจะใช้ ไม่ใช่อัตราป้อนที่เครื่องเดินตลอดทาง ชุดควบคุมจะลดอัตราป้อนเองในสามกรณี
1. ที่มุม ชุดควบคุมชะลอก่อนถึงมุมจนเหลือความเร็วที่เลี้ยวได้ภายในค่าความคลาดเคลื่อนที่ตั้งไว้ มุมยิ่งแหลมและค่าความคลาดเคลื่อนยิ่งเล็ก ความเร็วที่มุมยิ่งต่ำ
2. ในส่วนโค้งรัศมีเล็ก การเดินบนส่วนโค้งต้องใช้ความเร่งเข้าหาศูนย์กลาง เมื่อความเร่งถูกจำกัด ความเร็วสูงสุดบนส่วนโค้งจึงเป็น
ที่ความเร่ง 1000 มม./วินาที² (ค่าตัวอย่าง)
| รัศมี R (มม.) | (มม./วินาที) | อัตราป้อนสูงสุด (มม./นาที) | ที่ F2000 |
|---|---|---|---|
| 5 | 70.7 | 4243 | เดินได้เต็ม F |
| 2 | 44.7 | 2683 | เดินได้เต็ม F |
| 1 | 31.6 | 1897 | ถูกลดลงเล็กน้อย |
| 0.5 | 22.4 | 1342 | ถูกลดลงเหลือประมาณสองในสาม |
3. ในบรรทัดเดินสั้นจำนวนมาก บรรทัดเดินสั้นคือบรรทัดที่เคลื่อนที่เป็นระยะสั้น ชุดควบคุมใช้เวลาประมวลผลบรรทัดละช่วงหนึ่ง เรียกว่า เวลาประมวลผลต่อบรรทัด (Block processing time) ถ้าเครื่องเดินจบบรรทัดเร็วกว่าที่ชุดควบคุมเตรียมบรรทัดถัดไปทัน ชุดควบคุมต้องลดอัตราป้อนลง อัตราป้อนสูงสุดในช่วงนี้คือ
เมื่อ มีหน่วยมม./นาที คือระยะเคลื่อนที่ต่อบรรทัดเป็นมม. และ คือเวลาประมวลผลต่อบรรทัดเป็นวินาที
| ระยะเคลื่อนที่ต่อบรรทัด L (มม.) | = 1 มิลลิวินาที | = 4 มิลลิวินาที |
|---|---|---|
| 0.02 | 1200 | 300 |
| 0.05 | 3000 | 750 |
| 0.1 | 6000 | 1500 |
| 0.5 | 30000 | 7500 |
ค่า ในตารางเป็นค่าสมมติเพื่อแสดงแนวโน้ม ค่าจริงขึ้นกับรุ่นของชุดควบคุม ตัวเลือกความเร็วสูงที่ซื้อ และฟังก์ชันที่เปิดอยู่ เช่น การชดเชยรัศมีและมาโคร ซึ่งเพิ่มงานต่อบรรทัด สิ่งที่ควรจำคือ แปรตามระยะเคลื่อนที่ต่อบรรทัด ระยะที่สั้นลงครึ่งหนึ่งทำให้ ลดลงครึ่งหนึ่ง ถ้า F ที่สั่งสูงกว่า เครื่องจะเดินได้เพียง การเพิ่ม F ในโปรแกรมจึงไม่ช่วย ส่วนถ้า F ต่ำกว่า อยู่แล้ว ข้อจำกัดนี้ไม่มีผล
24.3.5 ผลต่อเวลาและผิวงาน
- เวลาจริงยาวกว่าที่ CAM ประเมิน CAM ส่วนใหญ่คำนวณเวลาจากค่า F โปรแกรมเก็บผิวที่มีบรรทัดเดินสั้นและมุมจำนวนมากอาจใช้เวลาจริงมากกว่าที่ประเมินไว้หลายสิบเปอร์เซ็นต์ ดูอัตราป้อนจริงได้จากค่า F จริงบนหน้าจอตำแหน่ง (ACT.F หรือ Actual feed) ขณะเครื่องเดิน ตัวอย่างการตรวจและแก้หน้าเครื่องอยู่ในบทความโปรแกรมจาก CAM เดินช้ากว่าที่ประเมิน
- ภาระต่อคมต่ำกว่าที่คำนวณ ความเร็วรอบไม่ลดตามอัตราป้อน ในช่วงที่อัตราป้อนเหลือสองในสาม ภาระต่อคมก็เหลือสองในสามด้วย ถ้าค่าเดิมต่ำอยู่แล้ว คมตัดจะเริ่มถูแทนการตัด ผิวด้านและเครื่องมือสึกเร็วขึ้น
- ผิวเป็นแถบมันและด้านสลับกัน บนผิวโค้งที่ระยะเคลื่อนที่ต่อบรรทัดไม่สม่ำเสมอ อัตราป้อนจะขึ้นลงตามระยะนั้น ภาระต่อคมเปลี่ยนตามไปด้วย ผิวงานจึงเป็นแถบตามช่วงที่อัตราป้อนต่างกัน
24.3.6 ส่งโปรแกรมเข้าเครื่องทาง RS-232
เมื่อเดินโปรแกรมแบบส่งเข้าเครื่องไปพร้อมกับเดิน (DNC หรือ Drip feed) ความเร็วของสายส่งข้อมูลจำกัดจำนวนบรรทัดต่อวินาทีอีกชั้นหนึ่ง ถ้าข้อมูลมาไม่ทัน บัฟเฟอร์จะหมด เครื่องชะลอจนหยุดแล้วเร่งใหม่ทุกครั้งที่ได้ข้อมูลชุดถัดไป เรียกว่า ข้อมูลป้อนไม่ทัน (Data starvation) เห็นเป็นอาการเครื่องกระตุกและมีรอยหยุดบนผิวงาน
RS-232 ที่ 9600 baud ตั้งแบบที่ใช้กับ Fanuc ทั่วไป (7 บิตข้อมูล Even parity 2 บิตหยุด) ส่งตัวอักษรละ 11 บิต (บิตเริ่ม 7 บิตข้อมูล บิต parity และบิตหยุด 2 บิต) จึงได้ 9600 / 11 ≈ 870 ตัวอักษรต่อวินาที บรรทัดอย่าง X12.345 Y-23.456 Z-1.234 รวมรหัสจบบรรทัดมี 25 ตัวอักษร จึงส่งได้ประมาณ 35 บรรทัดต่อวินาที ถ้าแต่ละบรรทัดเคลื่อนที่ 0.1 มม. เครื่องเดินได้เพียง 35 × 0.1 = 3.5 มม./วินาที หรือประมาณ 210 มม./นาที แม้โปรแกรมจะสั่ง F สูงกว่านั้น
วิธีแก้เรียงจากได้ผลมากไปน้อย
- เดินจากหน่วยความจำ การ์ดหน่วยความจำ หรือเซิร์ฟเวอร์ข้อมูลผ่าน Ethernet แทน RS-232 ถ้าเครื่องรองรับ
- ลดจำนวนบรรทัด ให้ CAM ส่งส่วนโค้งเป็น
G02G03แทนเส้นตรงสั้นๆ จำนวนมาก (Arc fitting) และใช้ค่าความคลาดเคลื่อนของ CAM ที่ไม่เล็กเกินความจำเป็น - ลดจำนวนตัวอักษรต่อบรรทัด ตัดเลข N ช่องว่าง และศูนย์ท้ายทศนิยมที่ไม่จำเป็นออกในโพสต์โปรเซสเซอร์
- เพิ่ม Baud rate ให้สูงสุดที่ทั้งเครื่องและคอมพิวเตอร์รองรับได้อย่างเสถียร ดูการต่อสายและการตั้งค่าได้ที่การต่อสาย RS-232 และโปรแกรมส่งไฟล์ DNC
24.3.7 ความแม่นยำกับความเร็ว
เมื่อปิดการอ่านล่วงหน้า เส้นทางจริงก็ไม่ได้ตรงกับโปรแกรม แกนของเครื่องตามตำแหน่งที่สั่งไม่ทันเล็กน้อยเสมอ ที่มุม บรรทัดถัดไปเริ่มก่อนแกนตามทัน มุมจึงมนตามที่อธิบายในหัวข้อหยุดตรงตำแหน่ง (Exact stop) ของบทที่ 8 และบนส่วนโค้งรัศมีเล็ก เครื่องมือเดินเข้าด้านในของส่วนโค้งเล็กน้อย ความคลาดเคลื่อนนี้มากขึ้นเมื่ออัตราป้อนสูงขึ้น และไม่มีค่าที่ตั้งไว้คอยจำกัด เมื่อเปิดการอ่านล่วงหน้า ชุดควบคุมรู้ล่วงหน้าว่ามุมและส่วนโค้งอยู่ตรงไหน จึงชะลอก่อนถึงและคุมความคลาดเคลื่อนให้อยู่ในค่าที่ตั้งไว้ ที่อัตราป้อนเท่ากัน เส้นทางเมื่อเปิดการอ่านล่วงหน้าจึงตรงกับโปรแกรมมากกว่าเมื่อปิด สิ่งที่ต้องเลือกคือค่าความคลาดเคลื่อนที่ยอมให้
การตั้งค่าของฟังก์ชันอ่านล่วงหน้าเป็นการแลกกันระหว่างความแม่นยำของเส้นทางกับความเร็ว ถ้าตั้งค่าความคลาดเคลื่อนที่ยอมให้ไว้มาก เช่น 0.05 มม. ชุดควบคุมตัดมุมและปรับเส้นทางให้เรียบได้มาก จึงเดินเร็ว ถ้าตั้งไว้น้อย เช่น 0.005 มม. เส้นทางตรงกับโปรแกรมมากขึ้น แต่ช้าลง ชุดควบคุมหลายยี่ห้อให้เลือกค่าเหล่านี้เป็นระดับ แทนการตั้งพารามิเตอร์ทีละตัว ผู้ผลิตเครื่องตั้งค่าของแต่ละระดับไว้แล้ว ผู้เขียนโปรแกรมเลือกระดับตามขั้นตอนของงาน คือระดับเน้นความเร็วสำหรับงานหยาบ และระดับเน้นความแม่นยำสำหรับงานเก็บผิว
| ชุดควบคุม | ระดับที่เลือกได้ | วิธีเลือก |
|---|---|---|
| Fanuc ที่มีตัวเลือก Machining condition selecting | ระดับ 1 (เน้นความเร็ว) ถึง 10 (เน้นความแม่นยำ) | หน้าจอ PRECI LEVEL หรือในโปรแกรมด้วย R ในบรรทัด G05.1 Q1 |
| Haas | P1 งานหยาบ P2 งานกึ่งละเอียด P3 งานละเอียด |
G187 เช่น G187 P3 และกำหนดค่าความคลาดเคลื่อนที่มุมด้วย E |
| Siemens | งานหยาบ งานกึ่งละเอียด และงานละเอียด | ค่าความคลาดเคลื่อนและชนิดงานใน CYCLE832 |
| Heidenhain | งานละเอียดหรืองานหยาบ | ค่า T และ HSC-MODE ใน Cycle 32 TOLERANCE |
ในทางปฏิบัติ โพสต์โปรเซสเซอร์ของ CAM ใส่คำสั่งเลือกระดับให้ตามชนิดของขั้นตอนงานใน CAM เช่น ขั้นตอนกัดหยาบได้ระดับเน้นความเร็ว และขั้นตอนเก็บผิวได้ระดับเน้นความแม่นยำ ผู้เขียนโปรแกรมควรตรวจว่าโพสต์โปรเซสเซอร์ใส่คำสั่งนี้จริง และค่าที่ใส่ตรงกับขั้นตอนงาน
ความคลาดเคลื่อนของเส้นทางสุดท้ายเป็นผลรวมของค่าความคลาดเคลื่อนของ CAM ที่ใช้แบ่งผิวโค้งเป็นเส้นตรง กับค่าที่ชุดควบคุมยอมให้ตัดมุม ถ้าตั้งทั้งสองค่าไว้ที่ 0.01 มม. ผิวงานอาจเบี่ยงจากผิวจริงได้ถึงประมาณ 0.02 มม. ค่าความคลาดเคลื่อนใน CAM ที่เล็กเกินจำเป็นยังทำให้บรรทัดเดินสั้นลงและกลับไปเจอข้อจำกัดของเวลาประมวลผลต่อบรรทัด
24.4 อาการ สาเหตุ และวิธีแก้
| อาการ | สาเหตุที่เป็นไปได้ | วิธีแก้ |
|---|---|---|
| เปิด BLOCK SKIP หรือ OPT STOP แล้วเครื่องยังทำบรรทัดถัดไปตามสถานะเดิม | บรรทัดนั้นอยู่ในบัฟเฟอร์แล้วตอนเปลี่ยนสวิตช์ | ตั้งสวิตช์ก่อนเริ่มโปรแกรม หรือก่อนเครื่องเดินมาถึงหลายบรรทัด |
| มาโครเขียนค่าสึกหรอใหม่แล้ว แต่บรรทัดถัดไปยังตัดด้วยค่าเดิม | ค่าใหม่ของ D หรือ H ที่ใช้อยู่รอให้สั่ง D หรือ H อีกครั้ง |
สั่ง D หรือ H ซ้ำหลังบรรทัดที่เขียนค่า หรือตรวจพารามิเตอร์ 5001 บิต 4 และ 6 |
| ตัวแปรมาโครที่อ่านตำแหน่งปัจจุบันได้ค่าระหว่างทาง | บรรทัดคำนวณถูกทำตอนอ่าน ก่อนการเคลื่อนที่ข้างหน้าจะจบ | ใช้ #5001 ถึง #5003 หรืออ่านหลังบรรทัดที่หยุดการอ่านล่วงหน้า |
| กด SINGLE BLOCK ทีละบรรทัดแล้วบรรทัดคำนวณของมาโครไม่หยุด | บรรทัดมาโครไม่หยุดทีละบรรทัดตามค่าเริ่มต้น | ดูค่าตัวแปรระหว่างทดสอบ หรือตั้งพารามิเตอร์ตามคู่มือถ้าต้องการให้หยุด |
| มุมในที่ชดเชยรัศมีตัดเกินหรือเหลือเนื้อ เมื่อมีบรรทัด Z หรือคำสั่ง M ติดกัน | ชุดควบคุมมองไม่เห็นบรรทัดเคลื่อนที่ถัดไปในระนาบ | ไม่ใส่บรรทัดที่ไม่เคลื่อนที่ในระนาบติดกันขณะชดเชย |
| เวลาจริงนานกว่าที่ CAM ประเมินมาก | อัตราป้อนถูกลดที่มุม ส่วนโค้งเล็ก และบรรทัดเดินสั้น | ดูค่า F จริงบนจอ ส่งส่วนโค้งเป็น G02 G03 ใช้ค่าความคลาดเคลื่อนที่เหมาะกับขั้นตอนงาน |
| ผิวโค้งเป็นแถบมันและด้านสลับกัน | ระยะเคลื่อนที่ต่อบรรทัดไม่สม่ำเสมอ อัตราป้อนจึงขึ้นลง | ปรับค่าความคลาดเคลื่อนและการเกลี่ยจุดใน CAM ให้ระยะเคลื่อนที่ต่อบรรทัดใกล้เคียงกัน |
| เครื่องกระตุกและมีรอยหยุดเมื่อเดินโปรแกรมแบบ DNC | ข้อมูลส่งเข้าเครื่องไม่ทันการเคลื่อนที่ | เดินจากหน่วยความจำหรือ Ethernet ลดจำนวนบรรทัดและตัวอักษร เพิ่ม Baud rate |
| มุมมนเกินพิกัดความเผื่อเมื่อเปิดโหมดความเร็วสูง | ค่าความคลาดเคลื่อนที่ยอมให้ที่มุมมากเกินไปสำหรับงานนี้ | เลือกระดับงานละเอียด หรือใช้ G09 ที่มุมนั้น |
| ผิวมีรอยหยุดที่ตำแหน่งเดิมทุกชิ้น | มีบรรทัดที่หยุดการอ่านล่วงหน้าขณะเครื่องมือยังสัมผัสชิ้นงาน | ย้ายบรรทัดนั้นไปไว้ตอนเครื่องมืออยู่นอกชิ้นงาน |
สรุป
- ชุดควบคุมอ่านโปรแกรม นำหน้าการเคลื่อนที่เสมอ ทุกอย่างที่ตัดสินจากตัวโปรแกรม รวมถึงสถานะของ BLOCK SKIP OPT STOP และบรรทัดคำนวณของมาโคร ถูกตัดสินตอนอ่าน ไม่ใช่ตอนเครื่องเคลื่อนที่ถึง
- เปลี่ยนสวิตช์ก่อนเริ่มโปรแกรม หรือขณะหยุดที่
M00M01และอ่านตำแหน่งจริงในมาโครหลังบรรทัดที่หยุดการอ่านล่วงหน้าเท่านั้น - บรรทัดที่หยุดการอ่านล่วงหน้า เช่น
M00M01G31และรหัส M ที่ผู้ผลิตกำหนด ทำให้ลำดับเวลาแน่นอน แต่ทำให้เครื่องหยุดที่ปลายบรรทัดก่อนหน้า จึงไม่ควรใส่ขณะเครื่องมือสัมผัสชิ้นงาน - การอ่านล่วงหน้าหลายบรรทัดทำให้เครื่องเร่งและชะลอได้ถูกจังหวะ แต่ F ในโปรแกรมกลายเป็นค่าสูงสุด อัตราป้อนจริงลดลงที่มุม ในส่วนโค้งเล็กตาม และในบรรทัดเดินสั้นตามระยะเคลื่อนที่ต่อบรรทัดหารด้วยเวลาประมวลผลต่อบรรทัด
- AI contour control เร่งและชะลอก่อนแบ่งแกน รูปร่างของเส้นทางจึงคงอยู่ที่มุมและบนส่วนโค้ง ชะลอเองก่อนถึงมุม ส่วนโค้งเล็ก และบรรทัดที่อัตราป้อนต่ำกว่า และส่งคำสั่งล่วงหน้าเผื่อค่าตามหลัง SINGLE BLOCK จึงไม่แสดงการเคลื่อนที่จริงของโหมดนี้
- โปรแกรม CAM ที่มีบรรทัดเดินสั้นจำนวนมากควรเดินจากหน่วยความจำหรือ Ethernet ไม่ใช่ RS-232 และควรส่งส่วนโค้งเป็น
G02G03เมื่อทำได้ - ค่าความคลาดเคลื่อนของ CAM และของชุดควบคุมรวมกันเป็นความคลาดเคลื่อนของผิวงาน เลือกค่าให้เหมาะกับขั้นตอนงาน ค่าที่เล็กเกินจำเป็นทำให้ช้าโดยไม่ได้ผิวที่ดีขึ้น
พบข้อผิดพลาดหรือมีข้อเสนอแนะ? ส่งอีเมลแจ้งเรา