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

บทที่ 9

คำสั่งเตรียมการ — โหมดที่กำหนดความหมายของทุกบรรทัด

คำสั่งเตรียมการที่กำหนดโหมดของชุดควบคุม ค่าแบบสัมบูรณ์และแบบสัมพัทธ์ G90 G91 U W ระนาบ G17 G18 G19 หน่วยวัด G20 G21 หน่วยของอัตราป้อน G94 G95 G98 G99 โหมดความเร็วรอบ G96 G97 G50 การรวมคำสั่ง G หลายตัวในบรรทัดเดียว สถานะเมื่อเปิดเครื่อง และระบบ G-code แบบ A B C ของเครื่องกลึง

บทที่ 8 อธิบายคำสั่งที่ทำให้เครื่องมือเคลื่อนที่ แต่บรรทัด X40. บรรทัดเดียวกันอาจพาเครื่องมือไปที่ X40 มม. เมื่อเทียบจุดอ้างอิง หรือไปอีก 40 มม. จากจุดเดิม หรือไปอีก 40 นิ้ว ขึ้นกับโหมดที่ประกาศไว้ก่อนหน้า บทนี้อธิบาย คำสั่งเตรียมการ (Preparatory function) ที่กำหนดโหมดเหล่านี้ คำสั่งเกือบทั้งหมดในบทนี้เป็นคำสั่งคงสถานะ ตามที่อธิบายในบทที่ 7 จึงมีผลต่อทุกบรรทัดที่ตามมาจนกว่าจะมีคำสั่งมาเปลี่ยน

แต่ละหัวข้อมีตัวอย่างว่า ถ้าโหมดผิดจะเกิดอะไรขึ้น เพราะความผิดพลาดของโหมดมักไม่ทำให้เกิด Alarm โปรแกรมทำงานได้ตามปกติ เพียงแต่ทำงานผิดจากที่ตั้งใจ

ตารางที่ 9.1 คำสั่งเตรียมการที่อธิบายในบทนี้
กลุ่ม คำสั่ง กำหนดอะไร
ระบบพิกัด G90 G91 (เครื่องกลึงใช้ X Z กับ U W) ค่า X Y Z เป็นตำแหน่งจากจุดศูนย์หรือเป็นระยะที่จะไปต่อจากจุดเดิม
ระนาบ G17 G18 G19 ระนาบของส่วนโค้ง การชดเชยรัศมี และแกนเจาะ
หน่วยวัด G20 G21 นิ้วหรือมิลลิเมตร
หน่วยของอัตราป้อน G94 G95 (เครื่องกลึงระบบ A ใช้ G98 G99) F ต่อนาทีหรือต่อรอบ
ความเร็วรอบ (เครื่องกลึง) G96 G97 และ G50 S เป็นความเร็วตัดหรือเป็นความเร็วรอบ และรอบสูงสุด

9.1 แบบสัมบูรณ์และแบบสัมพัทธ์

9.1.1 G90 และ G91 บนเครื่องกัด

  • G90 แบบสัมบูรณ์ (Absolute) ค่า X Y Z คือ ตำแหน่งปลายทาง ซึ่งเป็นพิกัดในระบบพิกัดชิ้นงาน X40. คือไปที่ตำแหน่ง X40 ไม่ว่าเครื่องมืออยู่ที่ใดก่อนหน้า
  • G91 แบบสัมพัทธ์ (Incremental) ค่า X Y Z คือ ระยะจากตำแหน่งปัจจุบัน X40. คือเลื่อนไปทาง +X อีก 40 มม. และ X0 คือไม่เคลื่อนที่ในแกนนั้น
บรรทัดเดียวกัน อ่านได้สองแบบ เริ่มจาก X0 Y0 ทั้งสองแบบ X20. Y10. X40. Y30. G90 ค่าคือตำแหน่งปลายทาง (20, 10) → (40, 10) → (40, 30) G91 ค่าคือระยะจากจุดเดิม (20, 10) → (60, 10) → (60, 40) X Y 204060 10203040 G90 จบที่ (40, 30) G91 จบที่ (60, 40)
รูปที่ 9.1 บรรทัดเดียวกันในโหมด G90 และ G91

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

  • G91 G28 Z0 กลับจุดอ้างอิงโดยผ่านจุดกึ่งกลางที่ตำแหน่งปัจจุบัน ตามที่อธิบายในบทที่ 6
  • โปรแกรมย่อยที่ทำรูปร่างเดิมซ้ำหลายตำแหน่ง เช่น ร่องเดียวกันห่างกันทีละ 20 มม. โปรแกรมย่อยที่เขียนด้วย G91 จะทำรูปร่างเดียวกันได้ทุกที่ที่เรียก ซึ่งจะอธิบายในบทที่ 10
  • การเลื่อนเพียงเล็กน้อยใน MDI เช่น ถอยแกน Z ขึ้น 5 มม. ด้วย G91 G00 Z5.

ถ้าโหมดผิด กรณีที่พบบ่อยที่สุดคือลืมกลับ G90 หลัง G91 G28 ค่า X Y Z ทุกค่าหลังจากนั้นกลายเป็นระยะ เครื่องมือจะไปคนละที่กับที่ตั้งใจทั้งหมด และระยะที่คลาดเคลื่อนจะสะสมไปทุกบรรทัด ตัวจำลองในบทที่ 11 แสดงให้เห็นว่า G91 ค้างอยู่จนกว่าจะสั่ง G90

9.1.2 สลับ G90 G91 กลางบรรทัด

บางโปรแกรมแทรกคำสั่งโหมดไว้ระหว่างพิกัด โดยตั้งใจให้แกนหนึ่งเป็นตำแหน่ง อีกแกนหนึ่งเป็นระยะ เช่น เครื่องมืออยู่ที่ X10. Y10. ในโหมด G90 แล้วพบบรรทัดนี้

X50. G91 Y20.

ชุดควบคุมแต่ละรุ่นอ่านบรรทัดนี้ไม่เหมือนกัน

ตารางที่ 9.2 บรรทัด X50. G91 Y20. เมื่อเริ่มจาก X10. Y10.
วิธีที่ชุดควบคุมอ่าน X Y เครื่องมือไปที่
อ่านคำจากซ้ายไปขวา คำก่อน G91 เป็นแบบสัมบูรณ์ คำหลัง G91 เป็นแบบสัมพัทธ์ ตำแหน่ง X50 เพิ่มอีก 20 มม. X50 Y30
ใช้โหมดเดียวกันกับทั้งบรรทัด เพิ่มอีก 50 มม. เพิ่มอีก 20 มม. X60 Y30
ไม่รับการผสมโหมดในบรรทัดเดียว — — หยุดด้วย Alarm

ไม่ว่าชุดควบคุมจะอ่านแบบใด G91 จะค้างสถานะอยู่หลังบรรทัดนี้ จนกว่าจะสั่ง G90 ค่า X Y Z ทุกบรรทัดถัดไปจึงเป็นระยะทั้งหมด

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

X50. Y30.               (ยังเป็น G90 ค่า Y คือ 10 + 20)

บางตำราแนะนำเทคนิคนี้สำหรับโปรแกรมย่อยที่ตัดรูปร่างเดิมหลายระดับความลึก พิกัด X Y เป็นตำแหน่งเพื่อให้รูปร่างอยู่ที่เดิม ส่วน Z ลึกลงเท่ากันทุกครั้งที่เรียก เช่น ขึ้นต้นโปรแกรมย่อยด้วย X0 Y-10. G91 Z-2. เพื่อกลับไปจุดเริ่มและลงลึกอีก 2 มม. ในบรรทัดเดียว บนชุดควบคุมที่อ่านตามลำดับของคำ บรรทัดนี้ทำงานตามที่ตั้งใจ แต่บนชุดควบคุมที่ใช้โหมดเดียวกันกับทั้งบรรทัด เครื่องมือจะเลื่อนไปทาง −Y อีก 10 มม. ขณะลงลึก และกินเข้าเนื้องาน ทั้งที่ประหยัดได้เพียงบรรทัดเดียว ให้แยกการเปลี่ยนโหมดเป็นบรรทัดของตัวเองซึ่งจะทำให้ได้ผลเหมือนกันทุกเครื่องจะปลอดภัยกว่า

(โปรแกรมหลัก)
G90 G00 X0 Y-10. Z2.
G01 Z0 F100.
M98 P0901 L5            (ตัด 5 ระดับ ระดับละ 2 มม. ถึง Z-10.)
G90 G00 Z50.

O0901 (ตัดรูปร่างหนึ่งระดับ เริ่มและจบที่ X0 Y-10.)
G91 Z-2.                (ลึกลงอีก 2 มม. แบบสัมพัทธ์)
G90 X40.                (กลับเป็นแบบสัมบูรณ์ แล้วตัดรูปร่าง)
Y20.
X0
Y-10.
M99

ในโหมดทีละบรรทัดยังเห็นการลงลึกแยกจากการตัดรูปร่างด้วย ถ้าชุดควบคุมมี Custom Macro B ใช้ตัวแปรเก็บความลึกแล้วสั่ง Z แบบสัมบูรณ์ก็ได้ เช่น สั่ง #100 = #100 - 2. ก่อนแล้วสั่ง G01 Z#100 ความลึกของแต่ละระดับก็คือ 2 มม. ตามค่าที่ลบออกจากตัวแปร

ถ้าต้องการรู้ว่าเครื่องที่ใช้อ่านแบบใด ให้ลองใน MDI ขณะเครื่องมืออยู่ห่างชิ้นงาน เดินทีละบรรทัด แล้วดูตำแหน่งบนจอ และสั่ง G90 ทุกครั้งหลังลองเสร็จ ส่วนเครื่องกลึงระบบ A การผสมตำแหน่งกับระยะในบรรทัดเดียวทำได้ด้วยการใช้ X Z กับ U W ที่อธิบายในหัวข้อถัดไป

9.1.3 X Z กับ U W บนเครื่องกลึง

เครื่องกลึงแบบ Fanuc ในระบบ G-code แบบ A ซึ่งพบมากที่สุด ไม่ใช้ G90 G91 เป็นโหมด แต่ใช้ตัวอักษรแยก X และ Z คือตำแหน่งแบบสัมบูรณ์ ส่วน U และ W คือระยะแบบสัมพัทธ์ ในแกน X และ Z ตามลำดับ ใช้ผสมกันในบรรทัดเดียวได้

G01 X30. Z-20.          (ไปที่ Ø30 ที่ Z-20)
U4. W-5.                (Ø เพิ่มอีก 4 มม. และเลื่อนไปทาง -Z อีก 5 มม.)
X40. W-10.              (ไปที่ Ø40 และเลื่อนไปทาง -Z อีก 10 มม.)

ค่า U เป็นเส้นผ่านศูนย์กลางเช่นเดียวกับค่า X U4. จึงทำให้รัศมีเพิ่ม 2 มม.

ข้อควรระวังที่สำคัญมาก บนเครื่องกลึงระบบ A G90 ไม่ใช่โหมดแบบสัมบูรณ์ แต่เป็นคำสั่งกลึงสำเร็จรูปแบบหนึ่ง ผู้ที่เคยเขียนโปรแกรมเครื่องกัดแล้วใส่ G90 ไว้ในบรรทัดเตรียมความปลอดภัยของเครื่องกลึง จะได้คำสั่งกลึงที่ไม่ได้ตั้งใจ ดูหัวข้อระบบ G-code ของเครื่องกลึงท้ายบท

9.2 ระนาบ G17 G18 G19

คำสั่งระนาบบอกชุดควบคุมว่างานสองมิติทำในระนาบใด

ตารางที่ 9.3 ระนาบและแกนที่ตั้งฉาก
คำสั่ง ระนาบ แกนที่ตั้งฉาก ใช้บ่อยที่
G17 XY Z เครื่องกัดแนวตั้ง ค่าเริ่มต้นของเครื่องกัด
G18 ZX Y เครื่องกลึง ค่าเริ่มต้นของเครื่องกลึง
G19 YZ X ด้านข้างของชิ้นงานบนเครื่องห้าแกนหรือเครื่องที่มีหัวหมุนได้
G17 +Z G18 +Y ชี้เข้าไป ด้านหลังหน้านี้ G19 +X +X +Y +Z ระนาบบนหน้าทั้งสามของชิ้นงาน G17 ระนาบ XY (ด้านบน) แกนตั้งฉาก Z · ศูนย์กลาง I J เจาะสำเร็จรูปตามแกน Z G18 ระนาบ ZX (ด้านหน้า) แกนตั้งฉาก Y · ศูนย์กลาง I K เจาะสำเร็จรูปตามแกน Y G19 ระนาบ YZ (ด้านขวา) แกนตั้งฉาก X · ศูนย์กลาง J K เจาะสำเร็จรูปตามแกน X ลูกศร G02 คือทิศตามเข็มนาฬิกา เมื่อมองจากปลายด้านบวกของแกนตั้งฉาก ด้านหน้าเห็นจากฝั่ง −Y ลูกศร G18 จึงดูทวนเข็มนาฬิกา
รูปที่ 9.2 ระนาบ G17 G18 G19 บนหน้าทั้งสามของชิ้นงาน

ระนาบมีผลต่อสามเรื่อง

  • ส่วนโค้ง G02 G03 เกิดในระนาบที่เลือก และทิศทางมองจากด้านบวกของแกนที่ตั้งฉาก ตามที่อธิบายในบทที่ 8 ตัวอักษรของศูนย์กลางก็เปลี่ยนตาม คือ I J ใน G17 I K ใน G18 และ J K ใน G19
  • การชดเชยรัศมีเครื่องมือ เลื่อนเส้นทางในระนาบที่เลือก
  • คำสั่งเจาะสำเร็จรูป เจาะตามแกนที่ตั้งฉากกับระนาบ ใน G17 จึงเจาะตามแกน Z
G17 มองจาก +Z +X +Y +Z ชี้ออกจากจอ G02 I J ศูนย์กลาง เริ่ม ปลาย G17 G02 X.. Y.. I.. J.. I ตามแกน X · J ตามแกน Y G18 มองจาก +Y +Z +X +Y ชี้ออกจากจอ G02 K I ศูนย์กลาง เริ่ม ปลาย G18 G02 X.. Z.. I.. K.. K ตามแกน Z · I ตามแกน X G19 มองจาก +X +Y +Z +X ชี้ออกจากจอ G02 J K ศูนย์กลาง เริ่ม ปลาย G19 G02 Y.. Z.. J.. K.. J ตามแกน Y · K ตามแกน Z เครื่องกัดที่มองจากหน้าเครื่องเห็นระนาบ ZX จากด้าน −Y ส่วนโค้ง G18 จึงดูกลับทิศ แต่ใช้รหัสเดียวกัน
รูปที่ 9.3 ทิศของ G02 และตัวอักษรของศูนย์กลางในแต่ละระนาบ

บนเครื่องกัดแนวตั้ง ผู้ปฏิบัติงานที่ยืนหน้าเครื่องมองระนาบ ZX จากด้าน −Y ซึ่งตรงข้ามกับด้านที่ชุดควบคุมใช้กำหนดทิศ ส่วนโค้ง G18 G02 ที่เห็นจริงจึงหมุนทวนเข็มนาฬิกา ให้คิดทิศจากด้าน +Y ตามภาพเสมอ

ถ้าโหมดผิด เช่น บนเครื่องกัดที่ G18 ค้างมาจากโปรแกรมก่อนหน้า บรรทัด G02 X.. Y.. R.. จะถูกคำนวณในระนาบ ZX ซึ่งไม่มีแกน Y เครื่องจะขึ้น Alarm หรือเดินส่วนโค้งในระนาบที่ไม่ได้ตั้งใจ จึงต้องมี G17 ในบรรทัดเตรียมความปลอดภัยของเครื่องกัดเสมอ

เกร็ดเทคนิค การเขียนโปรแกรมหัวกัดมุมฉาก (Right-Angle Head) บนเครื่องกัด 3 แกน

ตัวอย่างการใช้ระนาบ G18 หรือ G19 บนเครื่องกัดแนวตั้งที่พบบ่อย คือการติดตั้ง หัวกัดมุมฉาก (Right-angle head) เพื่อเจาะหรือกัดด้านข้างของชิ้นงานโดยไม่ต้องถอดชิ้นงานมาตั้งใหม่ การเขียนโปรแกรมมีข้อแตกต่างสำคัญดังนี้:

  • การเลือกระนาบตามทิศทางของหัวกัด: หากหัวกัดหันปลายเครื่องมือไปในแนวแกน X ให้ประกาศระนาบ G19 (ระนาบทำงานคือ YZ และเจาะเข้าออกในแกน X) หากหันไปในแนวแกน Y ให้ประกาศระนาบ G18 (ระนาบทำงานคือ ZX และเจาะเข้าออกในแกน Y)
  • วัฏจักรการเจาะสำเร็จรูป: คำสั่งเจาะจะทำงานตามแกนที่ตั้งฉากกับระนาบโดยอัตโนมัติ เช่น ใน G19 คำสั่ง G81 จะเคลื่อนที่เข้าหาชิ้นงานตามแกน X โดยค่าพิกัดความลึกจะระบุด้วยแกน X (และใช้ระยะถอย R ในแกน X) แทนที่แกน Z ตามปกติ
  • การชดเชยความยาวเครื่องมือ: บนชุดควบคุมส่วนใหญ่ G43 จะชดเชยในแกน Z เท่านั้น การใช้หัวกัดมุมฉากจึงต้องระวังว่าความยาวของตัวหัวฉากเองจะอยู่ในแกน Z ขณะที่ความยาวของดอกกัดจะยื่นออกไปในแกน X หรือ Y ชุดควบคุมขั้นสูงบางรุ่นมีคำสั่งชดเชยความยาวตามทิศทางแกน เช่น G43.1 หรือยอมให้ระบุแกน G43 H__ X__ แต่หากเครื่องไม่รองรับ ผู้เขียนโปรแกรมมักตั้งพิกัดจุดศูนย์งาน (G54–G59) แยกสำหรับหัวฉาก หรือคำนวณระยะยื่นของเครื่องมือรวมเข้าไปในพิกัดการเดินโดยตรง
  • ทิศทางการหมุนของสปินเดิล (M03/M04): หัวกัดมุมฉากส่งกำลังผ่านชุดเฟืองดอกจอก ซึ่งในหลายรุ่นจะกลับทิศทางการหมุนของเครื่องมือตัด ทำให้เมื่อสั่ง M03 (สปินเดิลหมุนตามเข็ม) ปลายดอกกัดอาจหมุนทวนเข็ม ต้องตรวจสอบทิศทางการหมุนจริงของหัวกัดแต่ละรุ่นก่อนตั้งค่าคำสั่ง M
  • จบงานแล้วต้องกลับเป็น G17 เสมอ: เมื่อทำงานด้านข้างเสร็จ ต้องสั่งกลับมาระนาบ G17 ก่อนเรียกเครื่องมือตัวถัดไปทุกครั้ง

9.3 หน่วยวัด G20 G21

  • G20 หน่วยเป็นนิ้ว
  • G21 หน่วยเป็นมิลลิเมตร

หน่วยมีผลกับค่าพิกัด อัตราป้อน F และค่าระยะอื่นในโปรแกรม X10. ใน G20 คือ 10 นิ้วหรือ 254 มม. ส่วนใน G21 คือ 10 มม.

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

ถ้าโหมดผิด โปรแกรมหน่วยมิลลิเมตรที่เดินในโหมดนิ้ว ทุกระยะจะยาวขึ้น 25.4 เท่า เครื่องมือที่ตั้งใจลงไปที่ Z2. เหนือผิวงาน จะพยายามไปที่ 50.8 มม. ในทิศเดียวกัน ถ้าเป็นค่าลบ เช่น ความลึกของร่อง ก็จะพุ่งลงลึกกว่าที่ตั้งใจหลายสิบเท่า

9.4 หน่วยของอัตราป้อน

9.4.1 G94 และ G95 บนเครื่องกัด

  • G94 อัตราป้อนต่อนาที F คือ มม./นาที เป็นค่าเริ่มต้นของเครื่องกัด เพราะงานกัดส่วนใหญ่คิดอัตราป้อนจากอัตราป้อนต่อคม จำนวนคม และความเร็วรอบ
  • G95 อัตราป้อนต่อรอบ F คือ มม./รอบของสปินเดิล ใช้กับงานที่ระยะป้อนต้องสัมพันธ์กับรอบพอดี

ความสัมพันธ์ของทั้งสองคือ

Fมม./นาที=fมม./รอบ×nF_{\text{มม./นาที}} = f_{\text{มม./รอบ}} \times n

เช่น ดอกสว่านที่ป้อน 0.15 มม./รอบ ที่ 900 รอบ/นาที มีอัตราป้อน 135 มม./นาที คำนวณได้ที่ เครื่องคำนวณความเร็วรอบและอัตราป้อน

9.4.2 G98 และ G99 บนเครื่องกลึง

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

ถ้าโหมดผิด ผลรุนแรงมากทั้งสองแบบ

  • F0.2 ที่ตั้งใจเป็น มม./รอบ แต่เครื่องอยู่ในโหมดต่อนาที เครื่องมือจะเดินเพียง 0.2 มม./นาที แทบไม่เคลื่อนที่ และเสียดสีผิวงานจนคมตัดเสีย
  • F200 ที่ตั้งใจเป็น มม./นาที แต่เครื่องอยู่ในโหมดต่อรอบ ที่ 1000 รอบ/นาที เครื่องมือจะพยายามเดิน 200,000 มม./นาที ชุดควบคุมจะจำกัดไว้ที่ความเร็วตัดสูงสุดของเครื่อง ซึ่งยังเร็วพอที่จะหักเครื่องมือหรือทำชิ้นงานหลุด

9.5 โหมดความเร็วรอบของเครื่องกลึง (Spindle Speed Modes)

บนเครื่องกัด ค่า S ในโปรแกรมจะหมายถึงความเร็วรอบของหัวสปินเดิลตรงๆ เสมอ (เช่น S1500 คือ 1,500 รอบ/นาที) แต่บนเครื่องกลึง ตัวอักษร S สามารถมีความหมายได้ 2 รูปแบบหลัก ขึ้นอยู่กับโหมดคำสั่ง G ที่เลือกใช้:

  • G96 โหมดความเร็วผิวคงที่ (Constant Surface Speed - CSS): ในโหมดนี้ ค่า S จะหมายถึง ความเร็วตัด (VcV_c) มีหน่วยเป็นเมตรต่อนาที (m/min) ชุดควบคุมจะคอยคำนวณปรับความเร็วรอบของสปินเดิลใหม่แบบเรียลไทม์ตลอดเวลาตามตำแหน่งของปลายมีดในแนวแกน X (เส้นผ่านศูนย์กลาง) ยิ่งมีดเคลื่อนที่เข้าใกล้ศูนย์กลาง สปินเดิลจะยิ่งเร่งรอบสูงขึ้นโดยอัตโนมัติ เพื่อรักษาความเร็วที่ผิวงานวิ่งผ่านคมมีดให้คงที่ตลอดเวลา ส่งผลให้ผิวงานมีความเงาเรียบสม่ำเสมอเท่ากันทั้งชิ้น และเม็ดมีดสึกหรออย่างคงที่
  • G97 โหมดความเร็วรอบคงที่ (Direct RPM): ค่า S จะหมายถึง ความเร็วรอบของสปินเดิลโดยตรง (RPM) เหมือนบนเครื่องกัด สปินเดิลจะหมุนด้วยรอบคงที่ตลอดเวลาไม่ว่ามีดจะเคลื่อนที่ไปอยู่ที่ตำแหน่งพิกัด X ใดก็ตาม โหมดนี้จำเป็นอย่างยิ่งสำหรับเครื่องมือตัดที่ทำงานอยู่บนแนวศูนย์กลางของชิ้นงาน (เช่น ดอกนำศูนย์, ดอกสว่าน, ดอกต๊าป) และงานกลึงเกลียว (G76, G92) ซึ่งรอบของสปินเดิลต้องสัมพันธ์คงที่กับการเคลื่อนที่ของแกน Z
  • G50 S__ คำสั่งจำกัดรอบสูงสุด (Max Spindle Speed Clamp): เป็นคำสั่งความปลอดภัยที่ ต้องสั่งคู่กับ G96 เสมอ เนื่องจากตามสมการการคำนวณ เมื่อมีดวิ่งเข้าหาศูนย์กลาง (D→0D \to 0) รอบที่คำนวณได้จะพุ่งสูงขึ้นอย่างไร้ขีดจำกัด หากไม่มีการตั้งเพดานดักไว้ สปินเดิลจะเร่งรอบจนถึงขีดจำกัดสูงสุดของเครื่อง ซึ่งอาจทำให้ชิ้นงานหรือปากจับหลุดจากแรงเหวี่ยงหนีศูนย์กลางได้

9.5.1 ทำไมความเร็วตัดจึงเปลี่ยนตามเส้นผ่านศูนย์กลาง?

ความเร็วตัด (Cutting speed - VcV_c) คือความเร็วสัมพัทธ์ที่ผิวเนื้อโลหะของชิ้นงานวิ่งผ่านและเสียดสีกับคมตัด เป็นปัจจัยหลักที่กำหนดความร้อนสะสมที่คมตัด อายุการใช้งานของเม็ดมีดคาร์ไบด์ และความเรียบของผิวสำเร็จ ด้วยเหตุนี้ ผู้ผลิตเม็ดมีดตัดเฉือนจึงระบุเงื่อนไขการตัดที่เหมาะสมเป็นความเร็วตัด (ม./นาที) เสมอ ไม่ใช่ความเร็วรอบ

เมื่อชิ้นงานหมุน 1 รอบ ผิวงานที่เส้นผ่านศูนย์กลาง DD จะวิ่งผ่านคมตัดเป็นระยะทางเท่ากับเส้นรอบวงคือ π×D\pi \times D:

  • บริเวณผิวนอกที่มีขนาดใหญ่ จะมีเส้นรอบวงยาว ผิวโลหะจึงวิ่งผ่านคมมีดด้วยระยะทางที่ไกลกว่าในเวลา 1 รอบ
  • บริเวณใกล้ศูนย์กลางที่มีขนาดเล็ก จะมีเส้นรอบวงสั้น ผิวโลหะจึงเคลื่อนที่ผ่านคมมีดเป็นระยะทางสั้นกว่ามาก
  • หากเราล็อกความเร็วรอบให้หมุนคงที่ (เช่น 1,500 รอบ/นาที) ตลอดการปาดหน้าชิ้นงานจากขอบนอก ∅36\varnothing 36 มม. เข้าหาศูนย์กลาง ความเร็วตัดจะค่อยๆ ลดลงเรื่อยๆ จาก 180 ม./นาที จนกระทั่งเหลือ 00 ม./นาที ที่จุดกึ่งกลางพอดี ผิวงานบริเวณใกล้ศูนย์กลางจึงมักหยาบและเป็นรอยด้าน เพราะความเร็วตัดต่ำเกินกว่าช่วงที่เม็ดมีดทำงานได้ดี
รอบเท่ากัน ความเร็วผิวไม่เท่ากัน มองหน้าชิ้นงาน Ø36 ที่ 1590 รอบ/นาที Ø36 Ø12 ที่ Ø36 1 รอบ = π × 36 = 113 มม. ความเร็วตัด 180 ม./นาที ที่ Ø12 1 รอบ = π × 12 = 37.7 มม. ความเร็วตัด 60 ม./นาที จุดที่ไกลศูนย์กลางวิ่งได้ไกลกว่าในหนึ่งรอบ ที่รอบเท่ากัน ความเร็วตัดจึงแปรตามเส้นผ่านศูนย์กลาง
รูปที่ 9.4 รอบเท่ากัน ความเร็วตัดต่างกันตามเส้นผ่านศูนย์กลาง

9.5.2 กลไกการทำงานของ G96 ในการปรับรอบสปินเดิล

ในโหมด G96 ชุดควบคุมจะอ่านค่าพิกัดแกน X ปัจจุบัน (ซึ่งในเครื่องกลึงคือขนาดเส้นผ่านศูนย์กลาง) แล้วนำไปคำนวณความเร็วรอบ nn (รอบ/นาที) ใหม่อย่างต่อเนื่องตามสมการ:

n=1000×Vcπ×Dn = \frac{1000 \times V_c}{\pi \times D}

เมื่อ VcV_c คือความเร็วตัดที่กำหนดด้วยค่า S (ม./นาที) และ DD คือเส้นผ่านศูนย์กลางปัจจุบันที่คมมีดแตะอยู่ (มม.) ตารางด้านล่างแสดงตัวอย่างการเปลี่ยนแปลงของรอบสปินเดิลและความเร็วตัดจริง ขณะปาดหน้าชิ้นงานขนาด ∅36\varnothing 36 มม. โดยใช้คำสั่ง G50 S2500 และ G96 S180:

ตารางที่ 9.4 รอบและความเร็วตัดขณะปาดหน้าด้วย G96 S180 และ G50 S2500
ตำแหน่งมีด (Ø มม.) รอบที่คำนวณได้ รอบจริงหลังจำกัดด้วย G50 ความเร็วตัดจริง (ม./นาที)
36 1,592 1,592 180
30 1,910 1,910 180
22.9 2,500 2,500 180
15 3,820 2,500 118
5 11,459 2,500 39
0 ไม่มีขีดจำกัด 2,500 0
ปาดหน้าจาก Ø36 เข้าหาศูนย์กลาง มีดหยุดที่ตำแหน่งของแต่ละแถวในตาราง ความเร็วหมุนในภาพช้ากว่าจริง มุมมองด้านข้าง มุมมองด้านหน้า วงกลมสีเดียวกับมีด คือเส้นทางที่ปลายมีดตัดในหนึ่งรอบ ยิ่งใกล้ศูนย์กลาง วงยิ่งเล็ก สปินเดิลจึงต้องหมุนเร็วขึ้นเพื่อให้ความเร็วตัดเท่าเดิม ตำแหน่งมีด Ø36 เริ่มปาดหน้า Ø30 รอบเพิ่มขึ้น ความเร็วตัดคงที่ Ø22.9 รอบชนค่าของ G50 S2500 Ø15 รอบเพิ่มต่อไม่ได้ ความเร็วตัดลดลง Ø5 ความเร็วตัดลดลงต่อเนื่อง Ø0 ศูนย์กลาง ความเร็วตัดเป็นศูนย์ รอบของ G96 (รอบ/นาที) 1,592 1,910 2,500 2,500 2,500 2,500 เต็มแถบ = ขีดจำกัดของ G50 S2500 ความเร็วตัด G96 (ม./นาที) 180 180 180 118 39 0 ความเร็วตัด G97 S1590 (ม./นาที) 180 150 114 75 25 0 เต็มแถบ = 180 ม./นาที
รูปที่ 9.5 รอบและความเร็วตัดของ G96 กับ G97 ขณะปาดหน้า

ภาพแสดงมีดเคลื่อนจากขอบนอกเข้าหาศูนย์กลาง และหยุดที่ตำแหน่งของแต่ละแถวในตาราง กดปุ่มใต้ภาพเพื่อเลื่อนมีดทีละตำแหน่ง หรือกด “เล่นวน” เพื่อให้ภาพเล่นเอง

จากกราฟและภาพเคลื่อนไหว เราจะเห็นการทำงานแบ่งออกเป็น 2 ช่วงอย่างชัดเจน:

  1. ช่วงที่ 1 (จาก Ø36 ลงมาถึง Ø22.9 มม.): สปินเดิลจะเร่งรอบสูงขึ้นเรื่อยๆ จาก 1,592 ไปจนถึง 2,500 รอบ/นาที เพื่อรักษาความเร็วตัดให้คงที่อยู่ที่ 180 ม./นาที ตลอดเวลา ผิวงานช่วงนี้จึงเรียบเงาสม่ำเสมอ
  2. ช่วงที่ 2 (จาก Ø22.9 มม. ไปจนถึงศูนย์กลาง X0): รอบที่คำนวณได้จะทะลุเกิน 2,500 รอบ/นาที แต่ระบบควบคุมจะล็อกความเร็วรอบไว้ที่ 2,500 รอบ/นาที ไม่ให้สูงไปกว่านี้ตามคำสั่ง G50 S2500 ส่งผลให้ความเร็วตัดจริงเริ่มลดลงต่ำกว่า 180 ม./นาที จนกระทั่งกลายเป็นศูนย์ที่จุดตัดกึ่งกลาง ซึ่งถือเป็นการแลกเปลี่ยนที่จำเป็นเพื่อความปลอดภัยในการทำงาน

9.5.3 วิธีเลือกค่าความเร็วรอบสูงสุดในคำสั่ง G50

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

  1. พิกัดรอบสูงสุดที่ปลอดภัยของหัวจับ (Chuck Max RPM): ยิ่งสปินเดิลหมุนเร็วขึ้นเท่าใด แรงเหวี่ยงหนีศูนย์กลาง (Centrifugal force) จะยิ่งดึงปากจับ (Jaws) ให้ถ่างขยายตัวออกจากศูนย์กลางมากขึ้นเท่านั้น ส่งผลให้แรงบีบจับชิ้นงานลดลงอย่างรวดเร็ว โดยเฉพาะปากจับแบบอ่อน (Soft jaws) ที่มีความสูงหรือน้ำหนักมากกว่าปกติ จะทำให้รอบที่ปลอดภัยลดลงจากสเปกเดิมอย่างมาก
  2. ลักษณะของชิ้นงานและรูปแบบการจับยึด: ชิ้นงานที่ยื่นยาวออกจากหน้าหัวจับมากๆ, ชิ้นงานที่มีรูปทรงไม่สมดุล (เช่น งานหล่อหยาบ หรือการจับงานแบบ 4 ปากอิสระเยื้องศูนย์), หรือชิ้นงานที่จับด้วยพื้นที่ความยาวสั้นเพียงเล็กน้อย จะต้องลดรอบใน G50 ให้ต่ำลงเป็นพิเศษเพื่อป้องกันชิ้นงานสลัดหลุด
  3. พิกัดความเร็วรอบสูงสุดของมอเตอร์และสปินเดิลเครื่องจักร: ต้องไม่ตั้งค่า G50 เกินกว่าขีดจำกัดทางกลของเครื่องจักร

9.5.4 ลำดับการเขียนโปรแกรมและการเริ่มสปินเดิลอย่างปลอดภัย

G50 S2500              (1. กำหนดเพดานรอบสูงสุดเพื่อความปลอดภัยก่อนเสมอ)
G97 S1590 M03          (2. เริ่มหมุนสปินเดิลด้วยรอบคงที่ เท่ากับรอบของขนาดจุดเริ่มตัด Ø36)
G00 X36. Z0            (3. เคลื่อนมีดเข้าหาหน้างาน สปินเดิลจะเร่งรอบระหว่างการเดินทาง)
G96 S180               (4. เปลี่ยนเข้าสู่โหมดความเร็วผิวคงที่ ณ ตำแหน่งเริ่มตัด)
G01 X-1.6 F0.15        (5. ปาดหน้างานผ่านแนวศูนย์กลาง รอบจะเร่งขึ้นจนชนเพดาน 2500)
G00 X150. Z100.        (6. ถอยมีดกลับจุดปลอดภัย รอบจะลดลงเหลือประมาณ 380 ที่ Ø150)
...
G97 S1200 M03          (7. มีดถัดไปเป็นสว่านแนวศูนย์กลาง ให้เปลี่ยนกลับเป็นรอบคงที่)

ข้อคิดเชิงลึกในการเขียนคำสั่งควบคุมรอบ:

  • ทำไมควรเริ่มหมุนด้วย G97 ก่อน แล้วค่อยเปลี่ยนเป็น G96 ที่จุดเริ่มตัด? หากเราสั่ง G96 ตั้งแต่ตำแหน่งเปลี่ยนมีด (ซึ่งมักจอดอยู่ที่พิกัดห่างไกล เช่น X150. Z100.) ชุดควบคุมจะคำนวณรอบจากขนาด Ø150 ทำให้สปินเดิลหมุนช้ามากเพียงประมาณ 380 รอบ/นาที จากนั้นเมื่อมีดพุ่งเข้ามาที่หน้างาน Ø36 มอเตอร์สปินเดิลจะต้องเร่งรอบกระชากจาก 380 ขึ้นไปเป็น 1,590 รอบ/นาทีอย่างกะทันหัน ซึ่งหากเป็นหัวจับขนาดใหญ่ที่มีความเฉื่อยสูง สปินเดิลอาจยังเร่งรอบขึ้นไปไม่ทันตอนที่คมมีดเริ่มสัมผัสผิวงาน ในทางกลับกัน หากเป็นมีดคว้านรูในที่จุดเริ่มจอดอยู่ใกล้แนวศูนย์กลาง การสั่ง G96 ตั้งแต่ต้นจะทำให้สปินเดิลหวีดขึ้นรอบสูงสุดทันทีตั้งแต่มีดยังอยู่นอกชิ้นงาน การสั่ง G97 ดักไว้ล่วงหน้าด้วยรอบที่คำนวณจากขนาดจุดเริ่มตัด (n=1000Vc÷πDn = 1000 V_c \div \pi D) จะช่วยให้สปินเดิลเร่งรอบอย่างนุ่มนวลระหว่างที่แกนเคลื่อนที่เข้าหา และเมื่อสลับเป็น G96 รอบสปินเดิลก็แทบไม่ต้องปรับเปลี่ยนเลย
  • ทำไม G50 ต้องมาก่อน G96 เสมอ? หากเขียนสลับกัน ชุดควบคุมจะเริ่มรัน G96 โดยอ้างอิงค่าเพดานรอบเดิมที่ค้างอยู่ในความจำเครื่องจากการรันโปรแกรมก่อนหน้า ซึ่งหากโปรแกรมก่อนหน้าเคยตั้งไว้สูงมาก (เช่น 4,000 รอบ/นาที) เครื่องก็อาจหมุนรอบจัดจนเกิดอุบัติเหตุได้ทันทีก่อนที่คำสั่ง G50 ใหม่จะถูกอ่าน
  • คำนวณรอบตามตำแหน่งปลายทาง: ชุดควบคุม Fanuc จะคำนวณรอบสปินเดิลในคำสั่ง G00 จากตำแหน่งปลายทางของบรรทัด ไม่ได้คำนวณต่อเนื่องตลอดเส้นทาง เพราะเป็นการเคลื่อนที่ในอากาศว่างเปล่าที่ไม่มีการตัดเฉือนจริง
  • ค่าพิกัด X ต้องตรงกับศูนย์กลางจริง: G96 พึ่งพาตัวเลขพิกัดในแกน X เพื่อหาค่า DD หากตั้งจุดศูนย์งาน (Work shift) หรือตั้งค่าชดเชยมีด (Tool geometry offset) แกน X ผิดเพี้ยน ความเร็วตัดที่ได้จริงก็จะคลาดเคลื่อนตามไปด้วยทันที
  • สปินเดิลเร่งรอบไม่ทันที หัวจับและชิ้นงานใหญ่มีความเฉื่อย ระหว่างปาดหน้าเร็วๆ รอบจริงจะตามรอบที่สั่งช้ากว่าเล็กน้อย ดูรอบจริงได้บนจอของชุดควบคุม
  • กำหนดใหม่ทุกชุดคำสั่ง มีดกลึงแต่ละตัวสั่ง G96 กับความเร็วตัดของตัวเอง และเครื่องมือบนแนวศูนย์กลางสั่ง G97 พร้อม S ดังตัวอย่างในบทที่ 11

ถ้าโหมดผิด

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

9.5.5 ตรวจรอบที่แกว่ง G26 และ G25

เครื่องกลึงที่มีฟังก์ชันตรวจรอบแกว่ง (Spindle speed fluctuation detection) ใช้ G26 สั่งให้ชุดควบคุมเทียบรอบจริงของสปินเดิลกับรอบที่สั่งไว้ตลอดเวลา ถ้ารอบจริงต่างจากรอบที่สั่งเกินที่ยอมให้ ชุดควบคุมจะขึ้นสัญญาณเตือน OH0704 และส่งสัญญาณ SPAL ให้เครื่อง ส่วนเครื่องจะหยุดอะไรขึ้นกับผู้ผลิตเครื่อง G25 ปิดการตรวจนี้

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

G26 P_ Q_ R_ I_
  • P เวลาเป็นมิลลิวินาทีหลังสั่งรอบใหม่ ที่ยังไม่เริ่มตรวจ เพื่อให้สปินเดิลเร่งหรือลดรอบให้ถึงก่อน
  • Q ช่วงรอบที่ถือว่าถึงรอบที่สั่งแล้ว เป็นเปอร์เซ็นต์ของรอบที่สั่ง การตรวจเริ่มเมื่อรอบจริงเข้าช่วงนี้ หรือเมื่อครบเวลา P แล้วแต่อย่างใดถึงก่อน
  • R รอบที่ยอมให้แกว่งได้ เป็นเปอร์เซ็นต์ของรอบที่สั่ง
  • I รอบที่ยอมให้แกว่งได้ เป็นรอบต่อนาทีคงที่ ชุดควบคุมใช้ค่าที่มากกว่าระหว่าง R กับ I

ค่าที่ไม่เขียนจะใช้ค่าในพารามิเตอร์ของเครื่อง (No. 4911 ถึง 4914) และบางเครื่องตั้งให้ Q กับ R มีหน่วย 0.1% แทน 1% เมื่อเปิดเครื่อง การตรวจนี้จะปิดอยู่ และอาจปิดหลังกดรีเซ็ตด้วยตามการตั้งพารามิเตอร์ จึงควรเขียน G26 ไว้ต้นโปรแกรมที่ต้องการให้ตรวจ

G97 S3000 M03
G26 P2000 Q5 R10 I100  (ตรวจรอบ ยอมให้แกว่งได้ 300 รอบ/นาที)
...
G25                    (ปิดการตรวจก่อนจบโปรแกรม)

ตัวอย่างนี้รอให้รอบเข้าช่วง 2850 ถึง 3150 รอบต่อนาที (±5%) หรือรอ 2 วินาที แล้วจึงเริ่มตรวจ หลังจากนั้นถ้ารอบจริงต่างจาก 3000 เกิน 300 รอบต่อนาที (10% ของ 3000 ซึ่งมากกว่า I100) เครื่องจะเตือน ถ้าสั่งรอบใหม่ระหว่างนั้น การตรวจจะรอเงื่อนไข P หรือ Q ของรอบใหม่ก่อน

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

9.6 ระบบพิกัดและจุดอ้างอิง

คำสั่งเตรียมการอีกกลุ่มหนึ่งกำหนดระบบพิกัด ซึ่งได้อธิบายละเอียดแล้วในบทที่ 6 สรุปไว้ที่นี่เพื่อให้ครบ

ตารางที่ 9.5 คำสั่งเตรียมการที่เกี่ยวกับระบบพิกัด
คำสั่ง หน้าที่ ชนิด
G54 ถึง G59 เลือกจุดศูนย์ชิ้นงานหนึ่งในหกชุด คงสถานะ
G28 กลับจุดอ้างอิงผ่านจุดกึ่งกลาง ไม่คงสถานะ
G30 ไปจุดอ้างอิงที่สอง เช่น ตำแหน่งเปลี่ยนเครื่องมือ ไม่คงสถานะ
G53 เคลื่อนที่ในระบบพิกัดเครื่อง ไม่คงสถานะ
G52 ระบบพิกัดย่อย เลื่อนจากจุดศูนย์ชิ้นงานชั่วคราว คงสถานะจนกว่าจะยกเลิก
G92 (เครื่องกัด) G50 X Z (เครื่องกลึงระบบ A) ตั้งระบบพิกัดแบบเก่าจากตำแหน่งปัจจุบัน ไม่ควรใช้ในโปรแกรมใหม่ ดูบทที่ 23

9.7 คำสั่ง G หลายตัวในบรรทัดเดียว

บทที่ 7 หัวข้อการรวมคำสั่งหลายตัวในหนึ่งบรรทัด ให้กฎไว้สั้นๆ ว่าคำสั่ง G ต่างกลุ่มอยู่บรรทัดเดียวกันได้ แต่คำสั่ง G กลุ่มเดียวกันไม่ควรอยู่บรรทัดเดียวกัน เมื่อรู้จักคำสั่งเตรียมการครบแล้ว หัวข้อนี้ขยายกฎข้อนั้น เพราะบรรทัดที่ใช้บ่อยที่สุดบางบรรทัด เช่น บรรทัดเตรียมความปลอดภัย ก็คือการรวมคำสั่ง G หลายกลุ่มไว้ในบรรทัดเดียว

9.7.1 กลุ่มเดียวกันมีผลได้ตัวเดียว

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

ตารางที่ 9.6 คำสั่ง G กลุ่มเดียวกันที่เขียนรวมในบรรทัดเดียว (ชุดควบคุมแบบ Fanuc สำหรับเครื่องกัด)
กลุ่ม ตัวอย่างที่ขัดกัน คำสั่งที่มีผล ผลที่อาจเกิด
01 ชนิดการเคลื่อนที่ G00 G01 X50. G01 เดินตัดด้วยอัตราป้อนที่ค้างอยู่แทนการเคลื่อนที่เร็ว ถ้าเขียนสลับลำดับจะได้การเคลื่อนที่เร็วแทนการตัด
02 ระนาบ G18 G17 G17 ส่วนโค้งและการชดเชยรัศมีอยู่ในระนาบที่ไม่ได้ตั้งใจ
03 ระบบพิกัด G90 G91 X10. G91 ไปอีก 10 มม. จากตำแหน่งเดิม แทนที่จะไปที่ X10
06 หน่วยวัด G21 G20 G20 ทุกระยะยาวขึ้น 25.4 เท่า
07 ชดเชยรัศมี G41 G42 D03 G42 ชดเชยผิดข้าง ขอบชิ้นงานเลื่อนไปข้างละสองเท่าของรัศมีเครื่องมือ
09 คำสั่งเจาะสำเร็จรูป G81 G83 G83 เจาะแบบถอนเศษ ซึ่งต้องการค่า Q ที่อาจไม่ได้เขียนไว้
14 จุดศูนย์ชิ้นงาน G54 G55 G55 ใช้ศูนย์งานผิด

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

บนเครื่องกลึงระบบ A ต้องระวังเป็นพิเศษ เพราะ G90 G92 G94 เป็นคำสั่งกลึงสำเร็จรูปในกลุ่ม 01 กลุ่มเดียวกับ G00 G01 ผู้ที่คุ้นกับเครื่องกัดและเขียน G90 G00 X50. Z2. จึงได้คำสั่งกลุ่ม 01 สองตัวในบรรทัดเดียว ชุดควบคุมใช้ G00 ตัวหลัง ซึ่งบังเอิญได้ผลตามที่ตั้งใจ แต่ถ้าสลับเป็น G00 G90 จะได้คำสั่งกลึงสำเร็จรูปแทนการเคลื่อนที่เร็ว

9.7.2 คู่ต่างกลุ่มที่ไม่ควรอยู่บรรทัดเดียวกัน

คำสั่งต่างกลุ่มกันก็ไม่ได้รวมกันได้เสมอไป บางคู่ขัดกันที่ เงื่อนไขของคำสั่ง บางคู่แย่งใช้ ค่า X Y Z ชุดเดียวกัน ในบรรทัด

ตารางที่ 9.7 คำสั่ง G ต่างกลุ่มที่ไม่ควรเขียนรวมในบรรทัดเดียว
คู่คำสั่ง ปัญหา เขียนอย่างไร
G41 G42 G40 กับ G02 G03 การเริ่มและยกเลิกการชดเชยรัศมีต้องอยู่ในบรรทัดเส้นตรง ชุดควบคุมหยุดด้วย Alarm เริ่มและยกเลิกในบรรทัด G00 หรือ G01 ตามที่อธิบายในบทที่ 13 และบทที่ 14
คำสั่งเจาะสำเร็จรูป (กลุ่ม 09) กับ G00 ถึง G03 (กลุ่ม 01) คำสั่งกลุ่ม 01 ยกเลิกคำสั่งเจาะสำเร็จรูปเหมือน G80 เมื่ออยู่บรรทัดเดียวกัน ผลขึ้นกับลำดับที่เขียน G81 G00 ยกเลิกการเจาะ รูจึงไม่ถูกเจาะ (บทที่ 15) ให้คำสั่งเจาะสำเร็จรูปอยู่บรรทัดของตัวเอง และยกเลิกด้วย G80 ก่อนเคลื่อนที่แบบอื่น
G28 G30 G53 G92 กับ G01 G02 G03 ค่า X Y Z ในบรรทัดถูกตีความตามคำสั่งกลุ่ม 00 เช่น X0 ในบรรทัด G28 คือจุดกึ่งกลางไปจุดอ้างอิง ไม่ใช่ปลายทางของการเดินตัด ส่วน G00 ในบรรทัดเดียวกัน เช่น G00 G53 Z0 หรือ G00 G91 G28 Z0 พบได้ทั่วไปและใช้ได้ ไม่เขียนรวมกับคำสั่งเดินตัด ถ้าโหมดที่ค้างอยู่อาจเป็น G01 ให้เขียน G00 ไว้ในบรรทัดนั้นด้วย
G04 กับการเคลื่อนที่ G04 ใช้ X หรือ P เป็นเวลาหยุดรอ ค่า X ในบรรทัดเดียวกันจึงกลายเป็นเวลา ไม่ใช่ตำแหน่ง เขียน G04 P500 ในบรรทัดของตัวเอง
G10 กับคำสั่งการเคลื่อนที่หรือคำสั่ง M ค่าในบรรทัด G10 เป็นข้อมูลที่จะเขียนลงตาราง เช่น ค่าชดเชยหรือจุดศูนย์ชิ้นงาน ไม่ใช่การเคลื่อนที่ ส่วน G90 หรือ G91 ในบรรทัดเดียวกันใช้ได้ เพราะกำหนดว่าข้อมูลนั้นเป็นค่าใหม่หรือเป็นค่าที่บวกเพิ่มจากค่าเดิม บรรทัดของตัวเอง มีได้เฉพาะ G90 หรือ G91 นำหน้า
G20 G21 กับคำสั่งที่มีค่าระยะ หน่วยใหม่มีผลกับค่าในบรรทัดเดียวกันหรือไม่ ขึ้นกับรุ่นของชุดควบคุม บรรทัดของตัวเองที่ต้นโปรแกรม ตามหัวข้อหน่วยวัด

9.7.3 ตรวจบรรทัดด้วยหมายเลขกลุ่ม

วิธีตรวจบรรทัดที่มีคำสั่ง G หลายตัวคือ เขียนหมายเลขกลุ่มจากตารางในบทที่ 7 ไว้ใต้คำสั่งแต่ละตัว ถ้ามีหมายเลขซ้ำแสดงว่ามีคำสั่งขัดกัน จากนั้นดูตารางด้านบนว่ามีคู่ต่างกลุ่มที่ไม่ควรอยู่ด้วยกันหรือไม่

G21                         (กลุ่ม 06 อยู่บรรทัดของตัวเองที่ต้นโปรแกรม)
G17 G40 G49 G80 G90 G94     (กลุ่ม 02 07 08 09 03 05 ไม่ซ้ำ ใช้ได้)
G90 G54 G00 X0 Y0           (กลุ่ม 03 14 01 ไม่ซ้ำ ใช้ได้)
G91 G28 Z0                  (กลุ่ม 03 กับ 00 ใช้ได้ จุดกึ่งกลางคือตำแหน่งปัจจุบัน แล้วกลับจุดอ้างอิง)
G90                         (กลับเป็นแบบสัมบูรณ์ทันที)
G00 G01 X50.                (กลุ่ม 01 ซ้ำ ผิด ชุดควบคุมใช้ G01)
G41 G02 X20. Y10. R10.      (เริ่มชดเชยรัศมีในบรรทัดส่วนโค้ง ผิด alarm)

การเขียนหมายเลขกลุ่มด้วยมือช่วยให้จำกลุ่มของคำสั่งได้ แต่กับโปรแกรมยาวควรให้เครื่องมือช่วยตรวจ หน้า Backplot และแปลงโปรแกรม NC เป็น DXF ตรวจแบบเดียวกันนี้ให้ทุกบรรทัด เมื่อวางโปรแกรมลงไป รายการ บรรทัดที่ต้องตรวจสอบ จะแสดงบรรทัดที่มีคำสั่ง G กลุ่มเดียวกันสองตัวพร้อมหมายเลขกลุ่ม และบรรทัดที่มีคู่ต่างกลุ่มตามตารางด้านบน โดยใช้กลุ่มของเครื่องกัดหรือของเครื่องกลึงระบบ A ตามชนิดเครื่องที่เลือก

แต่ละรายการคือบรรทัดที่ควรเปิดดูแล้วตรวจสอบ และโปรแกรมที่ไม่มีรายการให้ตรวจก็ยังไม่ได้แปลว่าถูกต้องสมบูรณ์ ต้องดูเส้นทางเครื่องมือและทดสอบบนเครื่องก่อนตัดจริงเสมอ

9.8 สถานะเมื่อเปิดเครื่องและหลังรีเซ็ต

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

ผู้ปฏิบัติงานดูสถานะปัจจุบันได้ในหน้า PROGRAM CHECK หรือหน้า MODAL ของชุดควบคุม ซึ่งแสดงคำสั่ง G ที่มีผลอยู่ของทุกกลุ่ม ดังที่ตัวจำลองในบทที่ 11 แสดงในมุมมองหน้าจอเครื่อง และบทที่ 21 มีภาพของหน้า PROGRAM CHECK แต่ผู้เขียนโปรแกรม **ไม่ควรพึ่งสถานะเริ่มต้นใดๆ ** เพราะไม่รู้ว่าเครื่องจะถูกใช้อย่างไรก่อนโปรแกรมนี้ ทางแก้เดียวคือประกาศทุกกลุ่มที่มีผลต่อการเคลื่อนที่ไว้ในบรรทัดเตรียมความปลอดภัย

ตารางที่ 9.8 บรรทัดเตรียมความปลอดภัยของเครื่องกัดและเครื่องกลึง
เครื่อง บรรทัดเตรียมความปลอดภัยที่ใช้บ่อย
เครื่องกัด G17 G21 G40 G49 G80 G90 G94
เครื่องกลึงระบบ A G18 G21 G40 G99 แล้วกำหนด G96 หรือ G97 ในชุดคำสั่งของเครื่องมือแต่ละตัว

9.9 ระบบ G-code ของเครื่องกลึง

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

ตารางที่ 9.9 ความต่างของระบบ G-code แบบ A B และ C บนเครื่องกลึง Fanuc
หน้าที่ ระบบ A ระบบ B ระบบ C
แบบสัมบูรณ์และแบบสัมพัทธ์ X Z กับ U W G90 G91 G90 G91
อัตราป้อนต่อนาที และต่อรอบ G98 G99 G94 G95 G94 G95
จำกัดรอบสูงสุดและตั้งระบบพิกัดแบบเก่า G50 G92 G92
หน่วยวัด นิ้วและมิลลิเมตร G20 G21 G20 G21 G70 G71
คำสั่งกลึงผิวนอกสำเร็จรูปแบบง่าย G90 G77 G20
คำสั่งกลึงเกลียวสำเร็จรูปแบบง่าย G92 G78 G21
คำสั่งปาดหน้าสำเร็จรูปแบบง่าย G94 G79 G24
คำสั่งกลึงสำเร็จรูปหลายรอบ G70 ถึง G76 G70 ถึง G76 G72 ถึง G78

ระบบ B ต่างจากระบบ A ตรงที่ใช้ G90 G91 และ G94 G95 แบบเดียวกับเครื่องกัด จึงย้ายคำสั่งกลึงสำเร็จรูปแบบง่ายไปที่ G77 G78 G79 ระบบ C ย้ายรหัสมากกว่านั้น รวมถึงหน่วยวัดและคำสั่งกลึงสำเร็จรูปหลายรอบ

ตารางนี้ทำให้เห็นว่าทำไมการอ่านโปรแกรมเครื่องกลึงต้องรู้ระบบ G-code ก่อน G90 และ G92 หมายถึงคนละอย่างโดยสิ้นเชิงในระบบ A กับระบบ B และ G20 G21 เป็นหน่วยวัดในระบบ A และ B แต่เป็นคำสั่งกลึงสำเร็จรูปในระบบ C ถ้าไม่แน่ใจ ให้ดูพารามิเตอร์หรือคู่มือของเครื่อง หรือสังเกตจากโปรแกรมเดิมที่ใช้งานได้บนเครื่องนั้น

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

ตารางที่ 9.10 ข้อผิดพลาดของคำสั่งเตรียมการที่พบบ่อย
ข้อผิดพลาด ผลที่เกิด ป้องกันโดย
ลืม G90 หลัง G91 ค่า X Y Z ทุกค่าหลังจากนั้นกลายเป็นระยะ เขียน G90 ตามทันที และประกาศ G90 ที่ต้นชุดคำสั่งของเครื่องมือ
ใส่ G90 บนเครื่องกลึงระบบ A ได้คำสั่งกลึงสำเร็จรูปที่ไม่ได้ตั้งใจ ใช้ X Z กับ U W บนเครื่องกลึงระบบ A
G18 ค้างบนเครื่องกัด ส่วนโค้งในระนาบผิด หรือ Alarm ประกาศ G17 ในบรรทัดเตรียมความปลอดภัย
หน่วยวัดไม่ตรงกับโปรแกรม ทุกระยะยาวหรือสั้นลง 25.4 เท่า ประกาศ G21 หรือ G20 ต้นโปรแกรมในบรรทัดของตัวเอง
F ต่อรอบกับ F ต่อนาทีสลับกัน เครื่องมือแทบไม่เคลื่อนที่ หรือพุ่งเร็วจนหัก ประกาศโหมดอัตราป้อนต้นโปรแกรม และตรวจขนาดของค่า F
ใช้ G96 โดยไม่มี G50 รอบพุ่งถึงรอบสูงสุดเมื่อเข้าใกล้ศูนย์กลาง สั่ง G50 S__ ก่อน G96 ทุกครั้ง
G97 ไม่มี S รอบค้างตามตำแหน่งของมีดตัวก่อน เขียน G97 S__ คู่กันเสมอ
คำสั่ง G กลุ่มเดียวกันสองตัวในบรรทัดเดียว ชุดควบคุมใช้ตัวหลังโดยไม่เตือน เขียนกลุ่มละหนึ่งตัว และตรวจด้วยหมายเลขกลุ่ม
เริ่มชดเชยรัศมีในบรรทัด G02 G03 Alarm เริ่มและยกเลิกในบรรทัด G00 หรือ G01

สรุป

  • คำสั่งเตรียมการกำหนด ความหมาย ของบรรทัดที่ตามมา ความผิดพลาดของโหมดมักไม่ขึ้น Alarm แต่ทำให้เครื่องทำงานผิดจากที่ตั้งใจ
  • G90 ค่าคือตำแหน่ง G91 ค่าคือระยะ เครื่องกลึงระบบ A ใช้ X Z กับ U W แทน และ G90 บนเครื่องกลึงระบบ A เป็นคำสั่งกลึงสำเร็จรูป
  • G17 G18 G19 เลือกระนาบของส่วนโค้ง การชดเชยรัศมี และแกนเจาะ
  • G20 G21 นิ้วหรือมิลลิเมตร ประกาศต้นโปรแกรมและห้ามสลับกลางโปรแกรม
  • G94 G95 บนเครื่องกัด และ G98 G99 บนเครื่องกลึงระบบ A เลือก F ต่อนาทีหรือต่อรอบ
  • G96 ความเร็วผิวคงที่ต้องมี G50 จำกัดรอบเสมอ G97 ความเร็วรอบคงที่ใช้กับเครื่องมือบนแนวศูนย์กลางและงานกลึงเกลียว
  • คำสั่ง G ต่างกลุ่ม รวมในบรรทัดเดียวได้ กลุ่มเดียวกัน มีผลได้ตัวเดียว ชุดควบคุมแบบ Fanuc ใช้ตัวหลังโดยไม่เตือน และบางคู่ต่างกลุ่ม เช่น G41 กับ G02 หรือ G04 กับการเคลื่อนที่ ก็ไม่ควรอยู่ด้วยกัน
  • ไม่พึ่งสถานะเริ่มต้นของเครื่อง ประกาศทุกกลุ่มไว้ในบรรทัดเตรียมความปลอดภัย

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

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