บทที่ 10
คำสั่งเบ็ดเตล็ด — คำสั่ง M และโปรแกรมย่อย
คำสั่ง M ของเครื่อง CNC การหมุนและหยุดสปินเดิล M03 M04 M05 การหยุดสปินเดิลที่มุมเดิม M19 การเลือกและเปลี่ยนเครื่องมือ T M06 น้ำหล่อเย็น M08 M09 การหยุดและจบโปรแกรม M00 M01 M02 M30 โปรแกรมย่อย M98 M99 และ M97 ของ Haas เวลาทำงานของคำสั่ง M ในบรรทัดเดียวกับการเคลื่อนที่ และคำสั่ง M ของผู้ผลิตเครื่อง
บทที่ 8 และบทที่ 9 อธิบายคำสั่ง G ซึ่งกำหนดการเคลื่อนที่และโหมดของชุดควบคุม บทนี้อธิบาย คำสั่งเบ็ดเตล็ด (Miscellaneous function) หรือคำสั่ง M ซึ่งสั่งงานส่วนอื่นของเครื่องที่ไม่ใช่การเคลื่อนที่ของแกน เช่น สปินเดิล น้ำหล่อเย็น และระบบเปลี่ยนเครื่องมือ รวมถึงคำสั่งที่ควบคุมลำดับของโปรแกรม
คำสั่ง M ต่างจากคำสั่ง G ตรงที่ ส่วนใหญ่ถูกกำหนดโดยผู้ผลิตเครื่อง ชุดควบคุมส่งรหัส M ไปให้ส่วน PMC ตามที่อธิบายในบทที่ 3 และโปรแกรมใน PMC ที่ผู้ผลิตเครื่องเขียนไว้เป็นผู้ตัดสินว่ารหัสนั้นทำอะไร มีเพียงกลุ่มเล็กๆ ที่ความหมายตรงกันแทบทุกเครื่อง ซึ่งเป็นเนื้อหาหลักของบทนี้ ส่วนรหัสอื่นต้องดูจากคู่มือของเครื่องที่ใช้เสมอ
| คำสั่ง | ความหมาย |
|---|---|
M00 |
หยุดโปรแกรม |
M01 |
หยุดตามเงื่อนไข เมื่อเปิดสวิตช์ OPT STOP |
M02 |
จบโปรแกรม |
M03 |
สปินเดิลหมุนตามเข็มนาฬิกา |
M04 |
สปินเดิลหมุนทวนเข็มนาฬิกา |
M05 |
หยุดสปินเดิล |
M06 |
เปลี่ยนเครื่องมือ (เครื่องที่มี ATC) |
M08 |
เปิดน้ำหล่อเย็น |
M09 |
ปิดน้ำหล่อเย็น |
M19 |
หยุดสปินเดิลที่มุมเดิมทุกครั้ง |
M30 |
จบโปรแกรมและย้อนกลับต้นโปรแกรม |
M98 |
เรียกโปรแกรมย่อย |
M99 |
จบโปรแกรมย่อย |
10.1 สปินเดิล
10.1.1 M03 M04 และ M05
M03 และ M04 สั่งสปินเดิลให้หมุนด้วยความเร็ว S ที่สั่งไว้ M05 หยุดสปินเดิล ทิศตามเข็มนาฬิกาหรือทวนเข็มนาฬิกา มองจากด้านหลังของสปินเดิลไปทางเครื่องมือหรือชิ้นงาน
- เครื่องกัด เครื่องมือตัดทั่วไปเป็นแบบขวา (Right-hand) ใช้
M03ส่วนM04ใช้กับเครื่องมือแบบซ้าย เช่น ดอกต๊าปเกลียวซ้าย - เครื่องกลึง ทิศที่ถูกขึ้นกับตำแหน่งป้อมมีดและการติดตั้งมีดว่าหงายหรือคว่ำ หลักที่ใช้ได้ทุกเครื่องคือ ชิ้นงานต้องหมุนเข้าหาคมตัด ผิวคายเศษของเม็ดมีดต้องหันรับเนื้องานที่หมุนเข้ามา ถ้าหมุนผิดทิศ เนื้องานจะกดใต้เม็ดมีด ไม่เกิดการตัดเฉือน และเม็ดมีดแตกได้ทันที โรงงานส่วนใหญ่ติดตั้งมีดให้ใช้ทิศเดียวกันทั้งป้อมมีด แล้วเขียนทิศนั้นไว้ในหัวโปรแกรมหรือเอกสารการตั้งเครื่อง
M03 และ M04 ไม่มีความเร็วรอบเป็นของตัวเอง ชุดควบคุมใช้ค่า S ที่จำไว้ในขณะนั้น ตามที่อธิบายในบทที่ 7 ผลของ M03 ที่ไม่มี S ในบรรทัดเดียวกันจึงมีสองแบบ
- มีค่า S ค้างอยู่ในเครื่อง จากการสั่งในโหมด MDI จากโปรแกรมก่อนหน้า หรือจากเครื่องมือตัวก่อน สปินเดิลหมุนทันทีด้วยค่า S นั้น ซึ่งอาจเร็วหรือช้าเกินไปสำหรับเครื่องมือที่อยู่ในสปินเดิล
- ยังไม่มีค่า S เช่น เครื่องที่เพิ่งเปิด สปินเดิลไม่หมุน แต่ชุดควบคุมจำทิศหมุนไว้แล้ว เมื่อพบ S ในบรรทัดถัดไป สปินเดิลจึงเริ่มหมุนที่บรรทัดนั้น ทั้งที่บรรทัดนั้นไม่มี
M03หรือM04
โปรแกรมเดียวกันจึงทำงานต่างกันได้ตามสิ่งที่เครื่องทำมาก่อนหน้า วิธีเริ่มหมุนสปินเดิลที่ให้ผลเหมือนกันทุกครั้งมีดังนี้
- เขียน S กับ
M03หรือM04ไว้ในบรรทัดเดียวกันเสมอ เช่นS1200 M03ทั้งในโปรแกรมและในโหมด MDI - เขียนซ้ำในทุกชุดคำสั่งของเครื่องมือ ไม่พึ่งค่า S ที่ค้างมาจากเครื่องมือตัวก่อน ชุดคำสั่งนั้นจึงเริ่มเดินได้เอง
- เริ่มหมุนก่อนเครื่องมือเข้าใกล้ชิ้นงาน ตามปกติอยู่ในบรรทัดที่เคลื่อนที่เร็วไปตำแหน่งแรก เช่น
G90 G54 G00 X15. Y15. S900 M03สปินเดิลจึงถึงความเร็วก่อนบรรทัดที่เริ่มตัด - บนเครื่องกลึงที่ใช้
G96สั่งG50 S__จำกัดรอบสูงสุดก่อนบรรทัดที่มีM03
ก่อนกลับทิศหมุนหรือเปลี่ยนช่วงเกียร์ของสปินเดิล ให้สั่ง M05 ก่อนเสมอ เครื่องรุ่นใหม่ส่วนใหญ่หยุดสปินเดิลให้เองเมื่อพบ M04 ขณะหมุน M03 อยู่ หรือเมื่อพบคำสั่งเปลี่ยนเกียร์ แต่บางเครื่องไม่หยุดให้และขึ้น Alarm การเขียน M05 ไว้เองทำให้โปรแกรมใช้ได้ทุกเครื่อง
เมื่อ M05 อยู่ในบรรทัดเดียวกับคำสั่งเคลื่อนที่ เครื่องเคลื่อนที่ให้เสร็จก่อน แล้วสปินเดิลจึงหยุด สปินเดิลจึงยังหมุนอยู่ตลอดการเคลื่อนที่ของบรรทัดนั้น ลำดับนี้อธิบายในหัวข้อคำสั่ง M ในบรรทัดเดียวกับการเคลื่อนที่
10.1.2 ช่วงเกียร์ของสปินเดิล
เกียร์ระหว่างมอเตอร์กับสปินเดิลพบใน เครื่องรุ่นเก่า และเครื่องขนาดใหญ่ที่ออกแบบมาสำหรับงานตัดหนัก มีสองถึงสี่ช่วง เครื่องรุ่นใหม่ขนาดเล็กถึงกลางส่วนใหญ่ไม่มีเกียร์แล้ว เพราะมอเตอร์ให้แรงบิดพอตลอดช่วงความเร็วรอบ เครื่องเหล่านี้ไม่มีคำสั่งเปลี่ยนเกียร์ และข้ามหัวข้อนี้ได้
เหตุผลที่ต้องมีเกียร์คือมอเตอร์สปินเดิลให้กำลังเต็มเฉพาะเมื่อหมุนเร็วกว่าความเร็วรอบค่าหนึ่ง ต่ำกว่านั้นกำลังจะลดลงตามความเร็วรอบ เกียร์ต่ำ ทดให้มอเตอร์หมุนเร็วขณะที่สปินเดิลหมุนช้า สปินเดิลจึงได้แรงบิดสูงและกำลังเต็มที่ความเร็วรอบต่ำ แลกกับความเร็วรอบสูงสุดที่ลดลง ส่วน เกียร์สูง ให้ความเร็วรอบสูง แต่แรงบิดที่ความเร็วรอบต่ำน้อย
- เกียร์ต่ำ ใช้กับงานความเร็วรอบต่ำที่ต้องการแรงบิด เช่น หัวกัดปาดหน้าขนาดใหญ่ ดอกสว่านและดอกต๊าปขนาดใหญ่ และการกลึงหยาบชิ้นงานเส้นผ่านศูนย์กลางใหญ่
- เกียร์สูง ใช้กับงานความเร็วรอบสูง เช่น เครื่องมือขนาดเล็กและงานละเอียด
- ค่า S ที่ทำได้ทั้งสองเกียร์ ให้เลือกเกียร์ต่ำเมื่อต้องการแรงบิด ถ้าตัดหนักในเกียร์สูงที่ความเร็วรอบต่ำ สปินเดิลจะชะลอหรือหยุดกลางการตัด
การเลือกเกียร์มีผลต่อการเขียนโปรแกรมสองจุด
- ใครเป็นผู้เลือกเกียร์ Machining center จำนวนมากเลือกเกียร์เองตามค่า S ผู้เขียนโปรแกรมไม่ต้องสั่ง ส่วนเครื่องกลึงมักต้องสั่งเองด้วยคำสั่ง M ซึ่งรหัสที่พบบ่อยคือ
M41ถึงM44จากเกียร์ต่ำไปสูง ตามตารางในหัวข้อคำสั่ง M ของผู้ผลิตเครื่อง - ความเร็วผิวคงที่
G96ความเร็วรอบเปลี่ยนตามเส้นผ่านศูนย์กลางตลอดการตัด แต่เกียร์เปลี่ยนกลางการตัดไม่ได้ จึงต้องเลือกเกียร์ที่ครอบคลุมความเร็วรอบทั้งช่วงของการตัดนั้น ถ้าความเร็วรอบที่ต้องการสูงกว่าขีดสูงสุดของเกียร์ สปินเดิลจะหมุนค้างที่ขีดนั้น และความเร็วผิวจะต่ำกว่าที่สั่ง
M05 (หยุดสปินเดิลก่อนเปลี่ยนเกียร์)
M41 (เกียร์ต่ำ สำหรับกลึงหยาบ)
G50 S1200 (จำกัดรอบสูงสุด)
G96 S180 M03 (ความเร็วผิวคงที่ 180 ม./นาที)
ช่วงความเร็วรอบของแต่ละเกียร์ต่างกันทุกเครื่อง ให้ดูจากคู่มือเครื่อง
10.1.3 M19 หยุดสปินเดิลที่มุมเดิมทุกครั้ง
M05 หยุดสปินเดิลโดยปล่อยให้ชะลอจนหยุดเอง สปินเดิลจึงหยุดที่มุมใดก็ได้ และหมุนต่อด้วยมือได้ ส่วน M19 หยุดสปินเดิลที่มุมเดิมทุกครั้ง (Spindle orientation) ชุดควบคุมอ่านมุมจากตัวเข้ารหัสของสปินเดิล หมุนไปหยุดที่มุมอ้างอิงที่ผู้ผลิตเครื่องตั้งไว้ในพารามิเตอร์ แล้วล็อกสปินเดิลไว้ที่มุมนั้นจนกว่าจะสั่ง M03 M04 หรือ M05 เครื่องบางรุ่นกำหนดมุมเองได้ เช่น M19 P90. บนเครื่อง Haas ให้ตรวจรูปแบบจากคู่มือเครื่อง
เหตุที่มุมของสปินเดิลสำคัญเห็นได้จากรูปด้านล่าง หน้าสปินเดิลมีสลักขับสองตัวยื่นลงมา และหน้าแปลนของหัวจับเครื่องมือมีร่องขับสองร่องรับสลักนั้น
มุมของสปินเดิลสำคัญในงานเหล่านี้
- การเปลี่ยนเครื่องมือ หัวสปินเดิลมี สลักขับ (Drive key) สองตัวที่ส่งแรงบิดไปยังหัวจับเครื่องมือ หัวจับเครื่องมือจึงมีร่องขับให้สลักเข้าพอดี แขน ATC นำหัวจับเครื่องมือเข้ามาโดยหันร่องขับไปทิศเดิมเสมอ ถ้าสปินเดิลหยุดที่มุมอื่น สลักจะไม่ตรงร่องและใส่เครื่องมือไม่ได้ เครื่องส่วนใหญ่จึงสั่ง
M19ให้เองภายในM06ผู้เขียนโปรแกรมไม่ต้องสั่งเอง - การคว้านละเอียด เช่น คำสั่งคว้านสำเร็จรูป
G76ของ Fanuc เมื่อคว้านถึงก้นรู ถ้าถอยขึ้นตรงๆ คมมีดที่ยังแตะผนังจะขูดเป็นรอยเส้นตลอดความยาวรู ชุดควบคุมจึงสั่งM19ให้คมมีดหันไปทิศเดิม แล้วเลื่อนด้ามคว้านออกจากผนังเป็นระยะ Q ก่อนถอยขึ้น เพราะรู้ทิศของคมมีดแน่นอน จึงเลื่อนไปทางตรงข้ามคมมีดได้ถูกเสมอ ตอนตั้งเครื่องมือจึงต้องหันคมมีดของด้ามคว้านให้ตรงกับทิศที่เครื่องกำหนด - การวัดด้วยหัววัดบนหัวสปินเดิล (Spindle probe) หัววัดต้องหันไปทิศเดิมทุกครั้งที่วัด ค่าชดเชยของหัววัดที่ปรับไว้จึงใช้ได้ถูกต้อง
ในทางปฏิบัติ M19 แทบไม่ปรากฏในโปรแกรม เพราะงานทั้งสามข้างต้นจะมี M06 อยู่ภายใน ผู้เขียนโปรแกรมจึงไม่ต้องเขียน M19 เอง ที่ใช้บ่อยกว่าคือการสั่งใน MDI ตอนตั้งเครื่อง เช่น เพื่อดูว่าคมมีดของด้ามคว้านต้องหันไปทิศใด หรือตอนใส่เครื่องมือที่ต้องกำหนดทิศเข้าไปในสปินเดิล
M19 ล็อกสปินเดิลไว้ด้วยมอเตอร์ จึงห้ามใช้ขณะเครื่องมือยังแตะชิ้นงาน และอย่าหมุนเครื่องมือด้วยมือขณะสปินเดิลล็อกอยู่
10.2 เลือกและเปลี่ยนเครื่องมือ T M06
การเปลี่ยนเครื่องมือใช้สองคำ คือ T ซึ่งไม่ใช่คำสั่ง M แต่เป็นตัวอักษรนำของหมายเลขเครื่องมือ และ M06 ความหมายของ T ต่างกันบนเครื่องสองชนิด
| Machining center | Turning center | |
|---|---|---|
| คำสั่ง T | เลือกเครื่องมือ ให้แม็กกาซีนนำมารอ | หมุนป้อมมีดไปสถานีนั้นทันที |
| การเปลี่ยนเครื่องมือจริง | M06 |
เกิดในคำสั่ง T เอง ไม่มี M06 |
| ค่าชดเชยของเครื่องมือ | สั่งแยกด้วย H และ D | สองหลักหลังของ T |
| ตัวอย่าง | T02 M06 แล้ว G43 H02 |
T0202 |
10.2.1 คำสั่ง T บน Machining center
T02 บอกชุดควบคุมว่าเครื่องมือตัวถัดไปคือหมายเลข 2 แม็กกาซีนหมุนนำเครื่องมือนั้นมาที่ตำแหน่งเปลี่ยน แต่ เครื่องมือในหัวสปินเดิลยังเป็นตัวเดิม จนกว่าจะพบ M06 แบบของ ATC และแม็กกาซีนอธิบายในบทที่ 4
- หมายเลขหลัง T คือหมายเลขเครื่องมือ บนเครื่องแบบช่องคงที่ หมายเลขนี้ตรงกับหมายเลขช่องในแม็กกาซีน บนเครื่องแบบสุ่มช่อง เครื่องมือย้ายช่องทุกครั้งที่เปลี่ยน ชุดควบคุมจำเองว่าเครื่องมือหมายเลขใดอยู่ช่องใด โปรแกรมจึงเรียกด้วยหมายเลขเครื่องมือเสมอ ตามบทที่ 4
- T ไม่เรียกค่าชดเชย ความยาวและรัศมีต้องสั่งแยกด้วย
G43 H__และD__ตามบทที่ 13 โรงงานส่วนใหญ่ใช้หมายเลข H และ D ตรงกับหมายเลข T เช่นT02คู่กับH02ถ้าลืมเปลี่ยน H หลังเปลี่ยนเครื่องมือ เครื่องจะใช้ความยาวของเครื่องมือตัวก่อน T02 M06ในบรรทัดเดียวกัน เครื่องส่วนใหญ่หมุนแม็กกาซีนตาม T ก่อน แล้วจึงเปลี่ยนเครื่องมือ บางเครื่องต้องเขียน T และM06คนละบรรทัด ให้ตรวจจากคู่มือของเครื่องM06ที่ไม่มี T เปลี่ยนเป็นเครื่องมือที่สั่ง T ไว้ล่าสุด ใช้ได้เมื่อเตรียมเครื่องมือไว้ล่วงหน้า ตามบทที่ 11 แต่ถ้าเริ่มโปรแกรมใหม่กลางคันที่บรรทัดนั้น เครื่องจะเปลี่ยนเป็นเครื่องมือที่รออยู่ในขณะนั้น ซึ่งอาจไม่ใช่ตัวที่ต้องการ การเขียน T ซ้ำในบรรทัดM06ทุกครั้ง เช่นT02 M06ทำให้ชุดคำสั่งของเครื่องมือเริ่มได้ด้วยตัวเองT00 M06บนเครื่องจำนวนมากคือคืนเครื่องมือเข้าแม็กกาซีนโดยไม่นำตัวใหม่ออกมา หัวสปินเดิลจึงว่าง ใช้ก่อนใส่เครื่องมือด้วยมือหรือเมื่อจบงาน ให้ตรวจจากคู่มือของเครื่องก่อนใช้ รายละเอียดอยู่ในบทที่ 4
10.2.2 เครื่องที่เตรียมเครื่องมือล่วงหน้าได้และไม่ได้
คำสั่ง T ที่เขียนไว้ก่อน M06 จะนำเครื่องมือมารอได้หรือไม่ ขึ้นกับแบบของ ATC
- ATC แบบแขนหมุน มีตำแหน่งรอ (Ready position) แยกจากหัวสปินเดิล แม็กกาซีนจึงหมุนได้อิสระขณะเครื่องมือตัวปัจจุบันตัด เมื่ออ่าน
T03แม็กกาซีนหมุนนำเครื่องมือ 03 มารอทันที และM06เหลือเพียงการสลับด้วยแขน เครื่องแบบนี้ ควรเขียน T ของเครื่องมือตัวถัดไปไว้ล่วงหน้า ต่อจากบรรทัดM06 - ATC แบบไม่มีแขน แม็กกาซีนส่งและรับเครื่องมือกับหัวสปินเดิลโดยตรง ช่องว่างของเครื่องมือตัวปัจจุบันต้องอยู่ตรงหัวสปินเดิลเพื่อรับเครื่องมือคืน แม็กกาซีนจึงหมุนไปหาเครื่องมือตัวอื่นก่อนไม่ได้ เมื่ออ่าน
T03ชุดควบคุมเพียงจำหมายเลขไว้ การหมุนทั้งหมดเกิดในM06การเขียน T ล่วงหน้าจึง ไม่ลดเวลา บนเครื่องแบบนี้
วิธีดูว่าเครื่องเป็นแบบใด
- ดูที่ตัวเครื่อง เครื่องแบบแขนหมุนมีแขนสองปลายอยู่ระหว่างแม็กกาซีนกับหัวสปินเดิล และกระบอกเครื่องมือที่พลิกลงมาตั้งข้างแขน เครื่องแบบไม่มีแขนมีแม็กกาซีนรูปร่มที่เครื่องมือแขวนอยู่รอบจาน และเลื่อนทั้งชุดเข้าหาหัวสปินเดิล
- สั่ง T อย่างเดียวในโหมด MDI เช่น
T05โดยไม่มีM06ถ้าแม็กกาซีนหมุน เครื่องเตรียมเครื่องมือล่วงหน้าได้ ถ้าไม่มีอะไรเคลื่อนที่ เครื่องจะหมุนเมื่อพบM06เท่านั้น
บรรทัด T03 M06 ที่มีทั้งสองคำใช้ได้กับเครื่องทั้งสองแบบ โปรแกรมที่อาจย้ายไปเดินบนเครื่องอื่นจึงควรเขียนแบบนี้ทุกครั้ง แล้วเพิ่มบรรทัด T ล่วงหน้าเฉพาะเมื่อเครื่องเป็นแบบแขนหมุน
10.2.3 การทำงานของ M06
ขั้นตอนภายใน M06 เป็นโปรแกรมของผู้ผลิตเครื่อง โดยทั่วไปมีลำดับดังนี้
- หยุดสปินเดิลและน้ำหล่อเย็น
- หยุดสปินเดิลที่มุมเดิม (
M19) ให้สลักขับตรงกับร่องของหัวจับเครื่องมือ - เคลื่อนแกน Z หรือแกนอื่นไปตำแหน่งเปลี่ยนเครื่องมือ
- แขน ATC หรือแม็กกาซีนสลับเครื่องมือ
- ส่งสัญญาณกลับให้ชุดควบคุมทำบรรทัดถัดไป
ข้อ 3 ต่างกันมากที่สุดระหว่างเครื่อง บางเครื่องพาแกน Z ไปตำแหน่งเปลี่ยนเครื่องมือเองโดยอัตโนมัติ บางเครื่องไม่พา และต้องให้โปรแกรมถอยแกน Z ไปก่อน ถ้าเขียนโปรแกรมโดยเข้าใจว่าเครื่องถอยให้ แต่เครื่องไม่ถอย แขน ATC จะชนเครื่องมือที่ยังอยู่ต่ำ ส่วนบางเครื่องมีระบบตรวจตำแหน่งแกน Z ก่อนเปลี่ยนเครื่องมือ จะขึ้น Alarm และหยุดเครื่องแทน วิธีที่ปลอดภัยบนทุกเครื่องคือ ถอยแกน Z เองก่อน M06 เสมอ ด้วย G91 G28 Z0 หรือ G30 ดังโปรแกรมตัวอย่างในบทที่ 11
บรรทัดรอบการเปลี่ยนเครื่องมือจึงมีลำดับที่ใช้ได้กับทุกเครื่องดังนี้
G80 M09 (ยกเลิกคำสั่งเจาะ ปิดน้ำหล่อเย็น)
G91 G28 Z0 (ถอยแกน Z กลับจุดอ้างอิง)
M05 (หยุดสปินเดิล)
T02 M06 (เปลี่ยนเป็นเครื่องมือหมายเลข 2)
T03 (เตรียมเครื่องมือหมายเลข 3 ไว้ล่วงหน้า)
G90 G54 G00 X15. Y15. S900 M03
G43 H02 Z50. M08 (ค่าชดเชยความยาวของเครื่องมือหมายเลข 2)
- ก่อน
M06ยกเลิกการชดเชยรัศมีG40และคำสั่งเจาะสำเร็จรูปG80ถอยแกน Z และหยุดสปินเดิล - หลัง
M06สั่ง S และM03ใหม่ และเรียกG43 H__ของเครื่องมือตัวใหม่ก่อนลงแกน Z ทุกครั้ง - หลังบรรทัด
T03หน้าจอแสดงหมายเลขเครื่องมือที่รอ ซึ่งไม่ใช่เครื่องมือในหัวสปินเดิล
10.2.4 คำสั่ง T บน Turning center
บนเครื่องกลึง ไม่มี M06 คำสั่ง T สี่หลักทำทั้งสองอย่างในคำเดียว สองหลักแรกคือสถานีบนป้อมมีด สองหลักหลังคือแถวของค่าชดเชย เช่น T0303 หมุนป้อมมีดไปสถานีที่ 3 และใช้ค่าชดเชยแถวที่ 3 ตามที่อธิบายในบทที่ 5
- ป้อมมีดหมุนทันทีที่ชุดควบคุมอ่านคำสั่ง T ไม่มีการถอยให้เอง ป้อมมีดจึงต้องอยู่ในตำแหน่งที่เครื่องมือที่ยาวที่สุดหมุนผ่านได้โดยไม่ชนชิ้นงาน หัวจับ หรือยันศูนย์ท้าย ก่อน บรรทัดที่มี T
- สองหลักหลังเลือกค่าชดเชย
T0300ยกเลิกค่าชดเชยของมีดสถานีที่ 3 และมีดตัวเดียวมีได้หลายแถว เช่นT0303กับT0313รายละเอียดอยู่ในบทที่ 14 - เขียน T ในบรรทัดของตัวเอง ไม่รวมกับการเคลื่อนที่ ให้ป้อมมีดหมุนเสร็จและค่าชดเชยมีผลก่อนบรรทัดที่เคลื่อนเข้าหาชิ้นงาน
10.3 น้ำหล่อเย็น M08 M09
M08 เปิดน้ำหล่อเย็น และ M09 ปิด ส่วนน้ำหล่อเย็นแบบอื่น เช่น ละอองน้ำมัน ลมเป่า และน้ำหล่อเย็นแรงดันสูงผ่านรูกลางสปินเดิล ใช้รหัส M ที่ผู้ผลิตเครื่องกำหนดเอง ต้องดูจากคู่มือของเครื่อง
- เปิดน้ำหล่อเย็นก่อนเครื่องมือเข้าตัด นิยมเขียน
M08คู่กับบรรทัดที่เครื่องมือลงมาเหนือชิ้นงาน เช่นG43 H01 Z50. M08 - ปิดก่อนถอยออกไปไกล เพื่อไม่ให้น้ำหล่อเย็นกระเด็นออกนอกเครื่องเมื่อเปิดประตู และลดน้ำที่ติดไปกับเศษ
- งานบางอย่างไม่ใช้น้ำหล่อเย็น เช่น การกัดเหล็กหล่อบางชนิด หรือการกัดด้วยเม็ดมีดเซรามิก ซึ่งความร้อนที่เปลี่ยนเร็วจากน้ำหล่อเย็นทำให้คมตัดแตก
10.4 การหยุดและจบโปรแกรม
คำสั่งกลุ่มนี้ควบคุมลำดับการทำงานของโปรแกรมเอง ไม่ได้สั่งอุปกรณ์ทางกายภาพของเครื่อง จึงยังทำงานแม้เปิดสวิตช์ AUX LOCK ตามที่กล่าวในบทที่ 3
M00(หยุดโปรแกรมอย่างไม่มีเงื่อนไข): ชุดควบคุมจะหยุดการทำงานทุกครั้งที่อ่านพบคำสั่งนี้ และรอจนกว่าผู้ปฏิบัติงานจะกดปุ่ม CYCLE START อีกครั้งจึงจะทำบรรทัดถัดไป ใช้เมื่อมีขั้นตอนที่ต้องให้คนทำด้วยมือทุกชิ้นอย่างแน่นอน เช่น พลิกกลับด้านชิ้นงาน ย้ายตำแหน่งแคลมป์จับยึด หรือเป่าเศษกลึงออกจากรูก่อนต๊าปเกลียวM01(หยุดตามเงื่อนไขเมื่อเปิดสวิตช์ OPT STOP): เป็นหนึ่งในคำสั่งที่มีประโยชน์ที่สุดในการผลิตจริง ทำงานร่วมกับสวิตช์หรือปุ่มกด OPT STOP (Optional Stop) บนแผงควบคุมหน้าเครื่อง:- เมื่อเปิดสวิตช์ OPT STOP เป็น ON: ชุดควบคุมจะหยุดทำงานเมื่อถึงบรรทัด
M01เหมือนกับM00เพื่อให้ผู้ปฏิบัติงานเปิดประตูเข้าไปเป่าเศษ วัดขนาดชิ้นงานชิ้นแรก หรือตรวจดูการสึกหรอของคมตัด - เมื่อปิดสวิตช์ OPT STOP เป็น OFF: ชุดควบคุมจะมองข้ามบรรทัด
M01ไปโดยสิ้นเชิง และตัดงานต่อเนื่องด้วยความเร็วเต็มที่โดยไม่หยุดชะงัก - กฎปฏิบัติสากล: นิยมใส่คำสั่ง
M01ไว้ท้ายชุดคำสั่งของเครื่องมือตัดทุกตัวเสมอ เพื่อให้ช่างเลือกได้ว่าจะสั่งหยุดตรวจวัดระหว่างทดสอบโปรแกรม หรือปล่อยให้เครื่องเดินงานต่อเนื่องในการผลิตจริง
- เมื่อเปิดสวิตช์ OPT STOP เป็น ON: ชุดควบคุมจะหยุดทำงานเมื่อถึงบรรทัด
M02และM30(จบโปรแกรม):M02: ในอดีตยุคเทปกระดาษเจาะรูM02เพียงแค่สั่งหยุดการอ่านเทปเมื่อสิ้นสุดม้วนเทปโดยไม่กรอกลับ (Rewind) ชุดควบคุมรุ่นเก่าหลายรุ่นจึงหยุดเคอร์เซอร์ค้างไว้ที่บรรทัดสุดท้ายM30: จบโปรแกรมและ ย้อนเคอร์เซอร์กลับไปที่บรรทัดแรกของโปรแกรมโดยอัตโนมัติ (Reset & Rewind) พร้อมสำหรับกด CYCLE START เดินงานชิ้นถัดไปได้ทันที นอกจากนี้ ชุดควบคุม Fanuc ส่วนใหญ่ยังผูกตัวนับชิ้นงานสำเร็จ (Parts Counter) ไว้กับคำสั่งM30เครื่องจักรสมัยใหม่จึงใช้M30เป็นมาตรฐานหลักทุกโปรแกรม
สปินเดิลและน้ำหล่อเย็นจะหยุดเมื่อพบ M00 หรือ M01 หรือไม่ ขึ้นกับผู้ผลิตเครื่อง บางเครื่องหยุดสปินเดิลและปิดน้ำหล่อเย็นให้ บางเครื่องปล่อยให้สปินเดิลหมุนต่อ และเมื่อกด CYCLE START เครื่องที่หยุดให้ก็ไม่ได้เปิดกลับให้เองทุกเครื่อง ชุดควบคุมทำบรรทัดถัดไปทันที โดยยังจำค่า S ค่า F และคำสั่ง G ที่ค้างอยู่ เช่น G01 ไว้ครบ โปรแกรมที่เขียนโดยเข้าใจลักษณะการทำงานของเครื่องผิดจึงอาจเกิดอันตรายได้สองแบบ
- เข้าใจว่าเครื่องหยุดสปินเดิลให้ แต่เครื่องไม่หยุด ผู้ควบคุมเครื่องเอื้อมมือเข้าไปขณะเครื่องมือยังหมุน
- เข้าใจว่าเครื่องเปิดสปินเดิลกลับให้ แต่เครื่องไม่เปิด เครื่องมือเดินเข้าชิ้นงานขณะที่สปินเดิลไม่หมุน และเครื่องมือหัก
วิธีที่ปลอดภัยบนทุกเครื่องคือ สั่งเองทั้งสองฝั่งของจุดหยุด สั่ง M05 และ M09 ก่อน M00 แล้วสั่ง M03 และ M08 ใหม่ก่อนบรรทัดที่เครื่องมือเข้าตัด
G00 Z50. M09 (ถอยขึ้น ปิดน้ำหล่อเย็น)
M05 (หยุดสปินเดิล)
M00 (หยุดให้เป่าเศษออกจากรู)
S800 M03 (สั่งสปินเดิลหมุนใหม่)
G00 Z5. M08 (ลงมาเหนือชิ้นงาน เปิดน้ำหล่อเย็นใหม่)
ตำแหน่งของ M01 และ M30 ในโปรแกรมทั้งโปรแกรมอยู่ในบทที่ 11
10.5 โปรแกรมย่อย M98 M99
โปรแกรมย่อย (Subprogram) คือโปรแกรมที่มีหมายเลข O ของตัวเอง และถูกเรียกจากโปรแกรมอื่นด้วย M98 เมื่อทำงานถึง M99 ชุดควบคุมจะกลับไปทำบรรทัดถัดจาก M98 ในโปรแกรมที่เรียก ใช้กับขั้นตอนที่ต้องทำซ้ำ ผู้เขียนโปรแกรมเขียนขั้นตอนนั้นครั้งเดียว แล้วเรียกใช้ได้หลายครั้ง
10.5.1 รูปแบบการเรียก
ชุดควบคุม Fanuc มีวิธีระบุจำนวนครั้งที่เรียกโปรแกรมย่อย 2 รูปแบบหลักตามรุ่นและพารามิเตอร์ของระบบ:
M98 P1004 (เรียกโปรแกรม O1004 จำนวน 1 ครั้ง)
M98 P1004 L3 (เรียกโปรแกรม O1004 จำนวน 3 ครั้ง — รูปแบบแยกด้วย L หรือ K)
M98 P31004 (เรียกโปรแกรม O1004 จำนวน 3 ครั้ง — รูปแบบรวมในแอดเดรส P เดียว)
- รูปแบบรวมใน P (Fanuc Standard): สี่หลักท้ายสุดจะถูกตีความเป็น หมายเลขโปรแกรมย่อยเสมอ (O1004) ส่วนตัวเลขที่อยู่ข้างหน้าสี่หลักท้ายจะถูกตีความเป็น จำนวนรอบที่ทำซ้ำ (3 ครั้ง) เช่น หากต้องการเรียกโปรแกรม
O0025จำนวน 12 ครั้ง ให้เขียนเป็นM98 P120025 - รูปแบบที่ใช้ L หรือ K: นิยมใช้บนชุดควบคุม Haas, Heidenhain หรือชุดควบคุม Fanuc ที่ตั้งพารามิเตอร์ให้รองรับ L จะช่วยให้อ่านเข้าใจง่ายขึ้นโดยระบุหมายเลขโปรแกรมที่ P และจำนวนรอบที่ L ตรงๆ
อันตราย จบโปรแกรมย่อยด้วย M99 เสมอ
ถ้าโปรแกรมย่อยไม่มี
M99ชุดควบคุมจะอ่านไปจนถึง%แล้วหยุดพร้อม Alarm PS5010 END OF RECORD งานค้างอยู่กลางรอบ โปรแกรมหลักไม่ได้ทำต่อ ผู้ควบคุมเครื่องต้องรีเซ็ตแล้วเริ่มใหม่จากบรรทัดที่เหมาะสมที่อันตรายกว่าคือจบโปรแกรมย่อยด้วย
M30หรือM02แทนM99เพราะไม่มี Alarm ใดเตือน ชุดควบคุมถือว่าทั้งงานจบแล้วหลังเรียกโปรแกรมย่อยครั้งแรก งานที่เหลือในโปรแกรมหลักจึงไม่ถูกตัด แต่จากนอกเครื่องดูเหมือนรอบงานจบตามปกติ ชิ้นงานที่ตัดไม่ครบอาจหลุดไปถึงขั้นตอนถัดไปได้ ตรวจบรรทัดสุดท้ายของโปรแกรมย่อยทุกโปรแกรมก่อนเดินงานจริง
10.5.2 โปรแกรมย่อยกับจุดศูนย์ชิ้นงานหลายชุด: ชิ้นงานบนปากกาหลายตัว
ถ้าจับชิ้นงานเหมือนกันไว้บนปากกาหลายตัว และตั้งจุดศูนย์ชิ้นงานของแต่ละปากกาไว้คนละชุด เช่น G54 กับ G55 ตามที่อธิบายในบทที่ 6 โปรแกรมย่อยที่เขียนด้วยพิกัดแบบสัมบูรณ์ G90 จะตัดรูปร่างเดียวกันบนปากกาตัวใดก็ได้ เพียงเลือกจุดศูนย์ชิ้นงานก่อนเรียก
ตัวอย่างนี้กัดร่องสี่เหลี่ยม 20 × 20 มม. ลึก 2 มม. ด้วยดอกเอ็นมิลล์ Ø10 บนชิ้นงานขนาด 40 × 50 มม. สองชิ้น ที่จับไว้บนปากกาสองตัว จุดศูนย์ G54 อยู่ที่มุมซ้ายล่างของชิ้นแรก และ G55 อยู่ที่มุมซ้ายล่างของชิ้นที่สอง ซึ่งห่างออกไปในแกน X 60 มม. โปรแกรมหลัก O1001 เรียกโปรแกรมย่อย O1002 สองครั้ง ครั้งละจุดศูนย์ชิ้นงาน ทั้งสองโปรแกรมเก็บในหน่วยความจำของชุดควบคุมแยกกัน คนละหมายเลข O
โปรแกรมหลัก O1001
%
O1001 (TWO VISES)
(G54 X0 Y0 = VISE 1 PART LOWER LEFT Z0 = TOP FACE)
(G55 X0 Y0 = VISE 2 PART LOWER LEFT Z0 = TOP FACE)
(T03 END MILL D10)
N10 G17 G21 G40 G49 G80 G90 G94
N20 G91 G28 Z0
N30 G90
(T03 END MILL D10)
N100 T03 M06
N110 G90 G54 G00 X10. Y15. S2500 M03
N120 G43 H03 Z50. M08
N130 M98 P1002 (VISE 1)
N140 G55 (VISE 2)
N150 M98 P1002
N160 M09
N170 G91 G28 Z0
N180 G49
N190 M05
N200 G28 X0 Y0
N210 G90
N220 M30
%
ดูเครื่องมือเดินตั้งแต่ N10 ถึง N220 ได้ในตัวจำลองการตัด และBackplot
โปรแกรมย่อย O1002 ใช้พิกัดแบบสัมบูรณ์ G90 ของจุดศูนย์ชิ้นงานที่โปรแกรมหลักเลือกไว้
%
O1002 (SUB SQUARE GROOVE 20X20)
N1000 G90 G00 X10. Y15.
N1010 Z2.
N1020 G01 Z-2. F100
N1030 Y35. F300
N1040 X30.
N1050 Y15.
N1060 X10.
N1070 G00 Z50.
N1080 M99
%
ตัวจำลองด้านล่างเดินโปรแกรมตามลำดับที่ชุดควบคุมทำจริงชุดควบคุมเดินโปรแกรมนี้ตามลำดับดังนี้ เมื่อถึง M98 จะกระโดดไปทำ O1002 และเมื่อถึง M99 จะกลับมาทำบรรทัดถัดจาก M98 ให้สังเกตว่า
- บรรทัด
N140 G55ไม่ทำให้เครื่องมือเคลื่อนที่ เพียงเปลี่ยนความหมายของพิกัดต่อจากนี้ - เพราะรอบแรกจบด้วย
G00 Z50.บรรทัดแรกของโปรแกรมย่อยG00 X10. Y15.ในรอบที่สองจึงพาเครื่องมือไปยังงานชิ้นที่สองที่ความสูง Z50 เครื่องมือจึงข้ามปากกาได้อย่างปลอดภัย - บนหน้าจอเครื่อง ค่า ABSOLUTE ในโปรแกรมย่อยเหมือนกันทั้งสองรอบ แต่ค่า MACHINE ต่างกัน 60 มม. ในแกน X
วิธีนี้ต่างจากหัวข้อถัดไป ตำแหน่งของรูปร่างมาจากจุดศูนย์ชิ้นงานที่เลือก ไม่ได้มาจากตำแหน่งของเครื่องมือตอนเรียก โปรแกรมย่อยจึงเริ่มจากตำแหน่งใดก็ได้ และค่าในโปรแกรมย่อยอ่านเทียบกับแบบงานได้ตรงๆ
10.5.3 โปรแกรมย่อยกับ G91: ทำรูปร่างเดิมซ้ำหลายตำแหน่ง
โปรแกรมย่อยที่เขียนด้วยพิกัดแบบสัมพัทธ์ G91 ทำรูปร่างเดียวกันได้ทุกที่ที่เครื่องมืออยู่ตอนเรียก ถ้าท้ายโปรแกรมย่อยเลื่อนเครื่องมือไปยังจุดเริ่มของตำแหน่งถัดไป การเรียกซ้ำหลายครั้งจะได้รูปร่างเรียงกันตามระยะที่กำหนด
ตัวอย่างนี้กัดร่องตรงยาว 20 มม. ลึก 2 มม. สามร่อง ห่างกันในแกน Y ทีละ 15 มม. ด้วยดอกเอ็นมิลล์ Ø10
โปรแกรมหลัก O1003
%
O1003 (MAIN 3 SLOTS)
(G54 X0 Y0 = LOWER LEFT CORNER Z0 = TOP FACE)
(T03 END MILL D10)
N10 G17 G21 G40 G49 G80 G90 G94
N20 G91 G28 Z0
N30 G90
(T03 END MILL D10)
N100 T03 M06
N110 G90 G54 G00 X40. Y15. S2500 M03
N120 G43 H03 Z50. M08
N130 Z2. (2 ABOVE FIRST SLOT START)
N140 M98 P1004 L3 (3 SLOTS)
N150 G90 G00 Z50. M09 (ABSOLUTE AGAIN BEFORE ANY POSITION)
N160 G91 G28 Z0
N170 G49
N180 M05
N190 G28 X0 Y0
N200 G90
N210 M30
%
ดูเครื่องมือเดินตั้งแต่ N10 ถึง N210 ได้ในตัวจำลองการตัด และBackplot
โปรแกรมย่อย O1004 เขียนด้วยพิกัดแบบสัมพัทธ์ G91 ทุกบรรทัดจึงเลื่อนจากตำแหน่งที่เครื่องมืออยู่ และท้ายโปรแกรมพาเครื่องมือไปยังจุดเริ่มของร่องถัดไป
%
O1004 (SUB SLOT 20MM)
N1000 G91 G01 Z-4. F80 (DOWN 4 FROM Z2 TO Z-2)
N1010 X20. F300 (SLOT 20 LONG)
N1020 G00 Z4. (BACK UP TO Z2)
N1030 X-20. Y15. (TO NEXT SLOT START)
N1040 G90 (ABSOLUTE BEFORE RETURN)
N1050 M99
%
ตัวจำลองด้านล่างเดินโปรแกรมย่อย O1004 สามรอบตาม L3 ให้ดูตำแหน่งของเครื่องมือเมื่อจบแต่ละรอบเทียบกับตารางด้านล่าง และดูว่าช่องระบบพิกัดสลับระหว่าง G91 กับ G90 ทุกรอบภาพด้านล่างแสดงผลเมื่อเดินโปรแกรมย่อย O1004 ครบสามรอบตาม L3 ตารางถัดไปแสดงตำแหน่งของเครื่องมือเมื่อจบแต่ละรอบ ระบบพิกัดสลับระหว่าง G91 กับ G90 ทุกรอบ
| การเรียกครั้งที่ | ร่องที่ได้ | ตำแหน่งเมื่อจบโปรแกรมย่อย |
|---|---|---|
| 1 | X40 ถึง X60 ที่ Y15 | X40 Y30 Z2 |
| 2 | X40 ถึง X60 ที่ Y30 | X40 Y45 Z2 |
| 3 | X40 ถึง X60 ที่ Y45 | X40 Y60 Z2 |
ข้อสังเกตจากตัวอย่างนี้
- โปรแกรมย่อยไม่รู้ตำแหน่งของตัวเอง ผลที่ได้ขึ้นกับว่าเครื่องมืออยู่ที่ใดตอนเรียก และความสูงเริ่มต้นต้องตรงกับที่โปรแกรมย่อยคาดไว้ ในตัวอย่างคือ Z2 พอดี ถ้าเรียกจาก Z50 ร่องจะอยู่ในอากาศทั้งหมด
- โปรแกรมย่อยที่เปลี่ยนโหมดต้องคืนโหมด บรรทัด
G90ก่อนM99คืนโหมดแบบสัมบูรณ์ให้โปรแกรมหลัก และโปรแกรมหลักก็ประกาศG90ซ้ำในบรรทัดN150อีกชั้นหนึ่ง เพราะถ้าลืมคืนโหมด บรรทัดZ50.ในโปรแกรมหลักจะกลายเป็นพุ่งขึ้นอีก 50 มม. จากตำแหน่งปัจจุบัน - ตรวจตำแหน่งสุดท้ายด้วยแบบจำลอง ความผิดพลาดเพียงค่าเดียวในโปรแกรมย่อยจะสะสมไปทุกครั้งที่เรียก
10.5.4 ข้อควรรู้อื่น
- โปรแกรมย่อยเรียกโปรแกรมย่อยต่อได้ เรียกว่าการเรียกซ้อน (Nesting) จำนวนชั้นสูงสุดขึ้นกับรุ่นของชุดควบคุม
- ห้ามจบโปรแกรมย่อยด้วย
M30หรือM02เพราะจะจบทั้งโปรแกรม ไม่ได้กลับไปยังโปรแกรมที่เรียก M99ในโปรแกรมหลัก ทำให้โปรแกรมวนกลับไปต้นโปรแกรมไม่รู้จบ ใช้กับงานต่อเนื่อง เช่น เครื่องกลึงที่ใช้เครื่องป้อนเพลาอัตโนมัติ ซึ่งต้องมีตัวนับชิ้นหรือเงื่อนไขอื่นหยุดเครื่องM99 P__กลับไปยังบรรทัดที่มีหมายเลข N ที่ระบุ แทนบรรทัดถัดจากM98ใช้น้อยและทำให้อ่านโปรแกรมยาก
10.5.5 M97 ของ Haas: โปรแกรมย่อยในไฟล์เดียวกัน
เครื่อง Haas มีคำสั่ง M97 ที่เรียกโปรแกรมย่อยด้วยหมายเลขบรรทัด N ในโปรแกรมเดียวกัน แทนหมายเลข O ของโปรแกรมอื่น โปรแกรมย่อยจึงวางต่อท้ายโปรแกรมหลักใต้ M30 ได้ และทั้งงานอยู่ในไฟล์เดียว
O1005
...
G54 G00 X0 Y0
M97 P1000 L2 (ทำบรรทัดตั้งแต่ N1000 จนถึง M99 สองครั้ง)
G55 G00 X0 Y0
M97 P1000 L2
...
M30
N1000 G91 G01 Z-1. F100 (โปรแกรมย่อยอยู่ใต้ M30)
...
G90
M99 (กลับไปบรรทัดถัดจาก M97)
P คือหมายเลขบรรทัด N ไม่ใช่หมายเลขโปรแกรม และ L คือจำนวนครั้ง Fanuc ไม่มีคำสั่ง M97 ชุดควบคุมส่งรหัสนี้ให้ PMC เหมือนรหัส M อื่น ผลที่เกิดจึงขึ้นกับผู้ผลิตเครื่อง ตั้งแต่ Alarm ไปจนถึงอุปกรณ์บางอย่างทำงาน เมื่อย้ายโปรแกรมแบบนี้ไปเครื่อง Fanuc มีสองทาง
- ใช้ได้ทุกเครื่อง: ตัดส่วนใต้
M30ออกเป็นโปรแกรมใหม่ที่มีหมายเลข O ของตัวเอง เช่นO1006แล้วเปลี่ยนM97 P1000 L2เป็นM98 P1006 L2หรือM98 P21006ตามรูปแบบที่ชุดควบคุมรับ - เรียกหมายเลขบรรทัดด้วย
M98 Q: ชุดควบคุมบางรุ่น เช่น Fanuc Series 30i 31i และ 32i เรียกบรรทัด N ในโปรแกรมเดียวกันได้ด้วยM98 Q1000เมื่อตั้งบิต 0 (SQC) ของพารามิเตอร์ 6005 เป็น 1 คือเปลี่ยนM97 P1000 L2เป็นM98 Q1000 L2ส่วนM98 P1006 Q1030เริ่มทำโปรแกรมO1006ที่บรรทัดN1030แทนบรรทัดแรก การเรียกแบบนี้นับเป็นการเรียกซ้อนหนึ่งชั้นเหมือนM98ทั่วไป คู่มือของชุดควบคุมรุ่นเก่าบางรุ่นไม่ได้กล่าวถึงคำสั่งนี้ ก่อนใช้ต้องตรวจคู่มือของชุดควบคุมรุ่นนั้น และให้ผู้ดูแลเครื่องตรวจว่าตั้งพารามิเตอร์แล้ว
Backplot ของเว็บไซต์นี้อ่าน M97 ได้ จึงใช้ตรวจโปรแกรมของ Haas ก่อนแปลงได้
10.6 คำสั่ง M ในบรรทัดเดียวกับการเคลื่อนที่
เมื่อคำสั่ง M อยู่ในบรรทัดเดียวกับการเคลื่อนที่ ลำดับการทำงานขึ้นกับผู้ผลิตเครื่องและตัวคำสั่ง โดยทั่วไป
- คำสั่งที่ควรเริ่มก่อนหรือพร้อมการเคลื่อนที่ เช่น
M03และM08เครื่องส่วนใหญ่เริ่มทำตั้งแต่ต้นบรรทัด และบางเครื่องรอให้สปินเดิลถึงความเร็วก่อนเริ่มเคลื่อนที่ - คำสั่งที่ควรทำหลังการเคลื่อนที่ เช่น
M05และM09เครื่องส่วนใหญ่เคลื่อนที่ให้เสร็จก่อนแล้วจึงทำ บรรทัดG00 Z50. M05จึงยกเครื่องมือขึ้นถึงZ50.ก่อน แล้วสปินเดิลจึงหยุด แต่บางเครื่องทำทันทีที่ต้นบรรทัด - คำสั่งควบคุมโปรแกรม
M00M01M02M30ทำหลังการเคลื่อนที่ในบรรทัดนั้นเสร็จ
ถ้าลำดับสำคัญต่อความปลอดภัยหรือคุณภาพงาน ให้แยกเป็นคนละบรรทัด เช่น ต้องการให้สปินเดิลหยุดหลังเครื่องมือถอยพ้นรูแล้ว ให้เขียน M05 ในบรรทัดถัดจากการถอย ไม่ใช่ในบรรทัดเดียวกัน และเขียนคำสั่ง M บรรทัดละหนึ่งตัวตามที่แนะนำในบทที่ 7
10.7 คำสั่ง M ของผู้ผลิตเครื่อง
นอกจากรหัสในตารางต้นบท เครื่องแต่ละรุ่นมีรหัส M อีกจำนวนมากสำหรับอุปกรณ์ของเครื่องนั้น รหัสเดียวกันอาจหมายถึงคนละอย่างบนเครื่องต่างรุ่น จึงไม่ควรจำตัวเลข แต่ควรรู้ว่ามีกลุ่มใดบ้าง และหาจากคู่มือของเครื่องทุกครั้ง
| กลุ่ม | ตัวอย่างหน้าที่ |
|---|---|
| แกนหมุนและโต๊ะงาน | ล็อกและปลดล็อกแกนที่ 4 หรือโต๊ะแบ่งตำแหน่ง |
| การจับชิ้นงาน | เปิดและปิดหัวจับ ยันศูนย์ท้ายเข้าและออก ปากกาไฮดรอลิก |
| น้ำหล่อเย็นและลม | ละอองน้ำมัน ลมเป่า น้ำหล่อเย็นผ่านรูกลางสปินเดิล |
| เศษและชิ้นงาน | สายพานลำเลียงเศษ ถาดรับชิ้นงาน เครื่องป้อนเพลาอัตโนมัติ |
| การต๊าปเกลียว | โหมดต๊าปเกลียวแบบซิงโครไนซ์ (Rigid tapping) ซึ่งเครื่อง Fanuc หลายรุ่นใช้ M29 |
| ประตูและระบบอัตโนมัติ | เปิดและปิดประตูอัตโนมัติ ส่งสัญญาณให้หุ่นยนต์ป้อนชิ้นงาน |
รหัสบางตัวพบบนเครื่องจำนวนมากจนผู้เขียนโปรแกรมควรรู้จัก แต่ ไม่ใช่มาตรฐาน ตารางนี้บอกความหมายที่พบบ่อย เพื่อให้อ่านโปรแกรมจากเครื่องอื่นแล้วเดาได้ว่ารหัสนั้นน่าจะทำอะไร ก่อนใช้จริงต้องยืนยันกับคู่มือของเครื่องทุกตัว
| คำสั่ง | ความหมายที่พบบ่อย | พบบน | ข้อควรระวัง |
|---|---|---|---|
M07 |
เปิดน้ำหล่อเย็นแบบที่สอง มักเป็นละอองน้ำมัน (Mist) | เครื่องกัดและเครื่องกลึง | บางเครื่องเป็นลมเป่าหรือน้ำหล่อเย็นผ่านรูกลางสปินเดิล ปิดด้วย M09 |
M10 M11 |
เปิดและปิดหัวจับ | เครื่องกลึง | ตัวใดเปิดตัวใดปิดต่างกันตามเครื่อง บนเครื่องกัดมักเป็นล็อกและปลดล็อกแกนที่ 4 |
M17 M18 |
กำหนดทิศหมุนของป้อมมีด เดินหน้าและถอยหลัง | เครื่องกลึง | เครื่องจำนวนมากเลือกทิศที่ใกล้ที่สุดเองโดยไม่ต้องสั่ง บนชุดควบคุมยี่ห้ออื่น M17 อาจเป็นจบโปรแกรมย่อย |
M21 M22 |
เลื่อนยันศูนย์ท้ายเข้าดันชิ้นงานและถอยออก | เครื่องกลึงที่มียันศูนย์ท้ายแบบสั่งจากโปรแกรม | ไม่มีรหัสที่ใช้ตรงกัน เครื่องอื่นใช้ M12 M13 M25 M26 หรือ M78 M79 ยันศูนย์ต้องดันชิ้นงานก่อนสปินเดิลหมุน และถอยออกหลังสปินเดิลหยุด |
M23 M24 |
เปิดและปิดการถอยมีดเฉียงออกที่จุดสิ้นสุดเกลียว (Thread chamfering) ใน G76 แบบบรรทัดเดียวของชุดควบคุมรุ่นเก่า |
เครื่องกลึง | G76 แบบสองบรรทัดกำหนดการถอยเฉียงด้วยสองหลักกลางของ P ไม่ต้องใช้รหัสนี้ ดูบทที่ 18 |
M29 |
โหมดต๊าปเกลียวแบบซิงโครไนซ์ (Rigid tapping) | เครื่องกัดและเครื่องกลึง | บางเครื่องใช้รหัสอื่น หรือกำหนดด้วยพารามิเตอร์โดยไม่ต้องสั่ง |
M41 ถึง M44 |
เลือกช่วงเกียร์ของสปินเดิล (Gear range) จากต่ำไปสูง | เครื่องที่สปินเดิลมีเกียร์ | จำนวนช่วงต่างกันตามเครื่อง เครื่องจำนวนมากเปลี่ยนเกียร์เองตามค่า S ดูหัวข้อช่วงเกียร์ของสปินเดิล |
M48 M49 |
M49 ปิดการปรับอัตราป้อนด้วยสวิตช์ FEED OVERRIDE ให้ใช้ 100% เสมอ M48 เปิดกลับ |
เครื่องกัดและเครื่องกลึง | ขณะ M49 ทำงาน ผู้ปฏิบัติงานลดอัตราป้อนด้วยสวิตช์ไม่ได้ ดูหัวข้อถัดไป |
M60 |
เปลี่ยนพาเลต | Machining center ที่มี APC | บางเครื่องใช้ M50 ตามที่กล่าวในบทที่ 4 |
M78 M79 |
ล็อกและปลดล็อกแกน B | HMC | เป็นรหัสที่ต่างกันมากระหว่างเครื่อง บางเครื่องใช้กับยันศูนย์ท้ายหรือหน้าที่อื่น |
M88 M89 |
เปิดและปิดน้ำหล่อเย็นแรงดันสูงผ่านรูกลางสปินเดิล (Through-spindle coolant) | Machining center ที่มีออปชันนี้ | ไม่มีรหัสที่ใช้ตรงกัน เครื่องอื่นใช้ M07 หรือรหัสในช่วง M50 ใช้ได้กับเครื่องมือที่มีรูน้ำหล่อเย็นเท่านั้น |
โปรแกรมที่ใช้รหัส M ของผู้ผลิตเครื่องจะใช้ได้กับเครื่องรุ่นนั้นเท่านั้น เมื่อย้ายโปรแกรมไปเครื่องอื่น ให้ตรวจรหัส M ทุกตัวที่ไม่อยู่ในตารางต้นบทก่อนเดินเครื่อง
10.7.1 ปิดการปรับอัตราป้อน M48 M49
ตามปกติผู้ปฏิบัติงานปรับอัตราป้อนได้ด้วยสวิตช์ Feedrate override ตามบทที่ 3 M49 ปิดสวิตช์นี้ชั่วคราว ชุดควบคุมใช้อัตราป้อน 100% ของค่า F ในโปรแกรม ไม่ว่าสวิตช์จะอยู่ที่ตำแหน่งใด M48 เปิดให้สวิตช์กลับมามีผล และเป็นสถานะเมื่อเปิดเครื่อง
M49 (อัตราป้อน 100% เสมอ สวิตช์ไม่มีผล)
G99 G81 X20. Y15. Z-6. R2. F60
X30.
G80
M48 (สวิตช์กลับมามีผล)
M49 ใช้กับช่วงสั้นๆ ที่อัตราป้อนผิดไปจากที่คำนวณแล้วเครื่องมือเสียหายหรืองานเสีย
- เครื่องมือเล็กหรือเปราะ เช่น ดอกสว่านขนาดเล็กและใบเลื่อยวงเดือน ที่หักได้ถ้าป้อนเร็วเกิน และเสียดสีจนสึกถ้าป้อนช้าเกิน
- การต๊าปที่เขียนด้วย
G01หรือบนเครื่องที่คำสั่งต๊าปไม่ล็อกอัตราป้อนให้ ซึ่งอัตราป้อนต้องเท่ากับระยะพิตช์ × ความเร็วรอบพอดี ส่วนคำสั่งต๊าปและกลึงเกลียวสำเร็จรูปล็อกอัตราป้อนให้เองอยู่แล้ว ตามบทที่ 15 - งานที่ผ่านการทดลองแล้วและต้องได้ผลเหมือนกันทุกชิ้น เช่น ผิวเก็บละเอียดที่อัตราป้อนกำหนดความหยาบผิว
ข้อควรระวังของ M49
- อัตราป้อนกระโดดเป็น 100% ที่บรรทัด
M49ผู้ปฏิบัติงานที่ทดลองชิ้นแรกด้วยสวิตช์ที่ 10% จะพบว่าเครื่องมือเดินเร็วขึ้นสิบเท่าทันที จึง ทดลองโปรแกรมให้ผ่านก่อน แล้วจึงเพิ่มM49และเขียนคำอธิบายในวงเล็บไว้ที่บรรทัดนั้น - อัตราป้อนกระโดดอีกครั้งที่บรรทัด
M48กลับไปตามตำแหน่งของสวิตช์ในขณะนั้น ถ้าสวิตช์อยู่ที่ 0% เครื่องจะหยุดนิ่ง ถ้าอยู่ที่ 150% เครื่องจะป้อนเร็วกว่าโปรแกรม - เขียน
M48ทันทีหลังช่วงที่ต้องการ ไม่ปล่อยค้างไปถึงเครื่องมือตัวถัดไป และใส่M48ไว้ในบรรทัดเตรียมความปลอดภัยของโปรแกรมที่ใช้M49เผื่อโปรแกรมถูกหยุดกลางคัน - ปุ่ม FEED HOLD และปุ่มหยุดฉุกเฉินยังใช้ได้ตามปกติ
M49ปิดเฉพาะการปรับเป็นเปอร์เซ็นต์ ผู้ปฏิบัติงานจึงหยุดเครื่องได้ แต่ชะลอไม่ได้ - ขอบเขตต่างกันตามเครื่อง บางเครื่องล็อก Spindle override ด้วย บางเครื่องล็อกเฉพาะอัตราป้อน และบางเครื่องไม่มีรหัสนี้ ให้ตรวจจากคู่มือของเครื่อง
10.8 ข้อผิดพลาดที่พบบ่อย
| ข้อผิดพลาด | ผลที่เกิด | ป้องกันโดย |
|---|---|---|
| สปินเดิลหมุนผิดทิศบนเครื่องกลึง | ไม่เกิดการตัดเฉือน เม็ดมีดแตก | ตรวจว่าชิ้นงานหมุนเข้าหาคมตัด และใช้ทิศเดียวกันทั้งป้อมมีด |
M03 ไม่มี S ในชุดคำสั่งของเครื่องมือ |
หมุนด้วยความเร็วของเครื่องมือตัวก่อน | เขียน S__ M03 ทุกชุดคำสั่งของเครื่องมือ |
เริ่มโปรแกรมกลางคันที่บรรทัด M06 ที่ไม่มี T |
เครื่องเปลี่ยนเป็นเครื่องมือที่รออยู่ ซึ่งไม่ใช่ตัวที่ต้องการ | เขียน T ในบรรทัด M06 ทุกครั้ง เช่น T02 M06 |
พึ่งให้ M06 ถอยแกน Z เอง |
แขน ATC ชนเครื่องมือบนเครื่องที่ไม่ถอยให้ | ถอยแกน Z เองด้วย G91 G28 Z0 หรือ G30 ก่อน M06 |
จบโปรแกรมย่อยด้วย M30 |
จบทั้งโปรแกรม ไม่กลับโปรแกรมหลัก | จบโปรแกรมย่อยด้วย M99 เสมอ |
โปรแกรมย่อยทิ้ง G91 ไว้ |
พิกัดในโปรแกรมหลักกลายเป็นระยะ | คืน G90 ก่อน M99 และประกาศ G90 ซ้ำหลังเรียก |
ใส่ M49 ในโปรแกรมที่ยังไม่ได้ทดลอง |
ผู้ปฏิบัติงานลดอัตราป้อนไม่ได้ขณะทดลองชิ้นแรก | ทดลองให้ผ่านก่อน แล้วจึงเพิ่ม M49 เฉพาะช่วงที่จำเป็น |
M05 อยู่บรรทัดเดียวกับการถอยออกจากรู |
สปินเดิลหยุดขณะเครื่องมือยังอยู่ในรูบนบางเครื่อง | แยก M05 เป็นบรรทัดของตัวเอง |
| ใช้รหัส M ของเครื่องอื่น | อุปกรณ์ทำงานผิด หรือ Alarm | ตรวจรหัส M ของผู้ผลิตเครื่องกับคู่มือทุกครั้งที่ย้ายโปรแกรม |
สรุป
- คำสั่ง M สั่งงานส่วนอื่นของเครื่องที่ไม่ใช่การเคลื่อนที่ของแกน ความหมายส่วนใหญ่กำหนดโดยผู้ผลิตเครื่อง มีเพียงกลุ่มเล็กๆ ที่ตรงกันแทบทุกเครื่อง
M03M04M05หมุนและหยุดสปินเดิล บนเครื่องกลึงชิ้นงานต้องหมุนเข้าหาคมตัด และเขียน S คู่กับM03เสมอM19หยุดสปินเดิลที่มุมเดิมทุกครั้ง ใช้ในการเปลี่ยนเครื่องมือ การคว้านละเอียด และหัววัด- T เลือกเครื่องมือ และ
M06เปลี่ยนเครื่องมือบน Machining center ถอยแกน Z เองก่อนเสมอ และเรียกG43 H__ใหม่หลังเปลี่ยน เครื่องกลึงใช้คำสั่ง T สี่หลักหมุนป้อมมีดโดยไม่มีM06 M08M09เปิดและปิดน้ำหล่อเย็นM98M99เรียกและจบโปรแกรมย่อย โปรแกรมย่อยที่เขียนด้วยG91ทำรูปร่างเดิมซ้ำได้หลายตำแหน่ง แต่ต้องคืนโหมดก่อนกลับ- เมื่อลำดับสำคัญ ให้แยกคำสั่ง M ออกจากบรรทัดการเคลื่อนที่ และตรวจรหัส M ของผู้ผลิตเครื่องกับคู่มือทุกครั้ง
บทต่อไปจะนำคำและบรรทัดจากบทที่ 7 กับคำสั่ง G และ M จากบทที่ 8 ถึงบทนี้มาเรียงเป็นโปรแกรมทั้งโปรแกรม ตั้งแต่หัวโปรแกรม บรรทัดเตรียมความปลอดภัย ชุดคำสั่งของเครื่องมือแต่ละตัว จนถึงการจบโปรแกรม
พบข้อผิดพลาดหรือมีข้อเสนอแนะ? ส่งอีเมลแจ้งเรา