บทที่ 7
ส่วนประกอบของโปรแกรม — คำ บรรทัด และคำสั่งคงสถานะ
ส่วนประกอบของโปรแกรม CNC ตั้งแต่ตัวอักษรนำ คำ และบรรทัด กฎการเขียนคำ จุดทศนิยม คำอธิบายในวงเล็บ และการข้ามบรรทัดด้วย / รวมถึงการใช้งานจริงและการข้ามแบบมีหมายเลข /1 ถึง /9 คำสั่งคงสถานะกับคำสั่งไม่คงสถานะ กลุ่มของคำสั่ง G และอันตรายของสถานะที่ค้างอยู่
บทที่ 2 ได้แสดงโปรแกรมสั้นๆ ห้าบรรทัดให้เห็นหน้าตาของ G-code และบทที่ 3 ถึง 6 ได้อธิบายเครื่องจักร แกน และจุดศูนย์ชิ้นงาน ซึ่งเป็นสิ่งที่โปรแกรมสั่งงาน บทนี้จะดูตัวโปรแกรมเอง ว่าประกอบขึ้นจากอะไร เขียนแต่ละคำและแต่ละบรรทัดอย่างไร และชุดควบคุมจำสถานะจากบรรทัดหนึ่งไปยังบรรทัดถัดไปอย่างไร ซึ่งเป็นพื้นฐานของคำสั่ง G และ M ทุกตัวในบทที่ 8 ถึงบทที่ 10
ส่วนการเรียงบรรทัดเป็นโปรแกรมที่ใช้งานจริง ตั้งแต่หัวโปรแกรม บรรทัดเตรียมความปลอดภัย จนถึงชุดคำสั่งของเครื่องมือแต่ละตัว อยู่ในบทที่ 11 หลังจากรู้จักคำสั่งแต่ละตัวแล้ว ตัวอย่างในบทนี้อ้างอิงชุดควบคุมแบบ Fanuc ซึ่งชุดควบคุมยี่ห้ออื่นส่วนใหญ่ใช้รูปแบบใกล้เคียงกัน
7.1 ส่วนประกอบของโปรแกรม
โปรแกรม CNC หรือ Part program ประกอบขึ้นจากส่วนเล็กไปหาส่วนใหญ่สี่ระดับ
| ระดับ | ตัวอย่าง | ความหมาย |
|---|---|---|
| ตัวอักษรนำ (Address) | G X F |
บอกว่าตัวเลขที่ตามมาเป็นค่าของอะไร |
| คำหรือรหัสคำสั่ง (Word) | G01 X50. F200 |
ตัวอักษรนำหนึ่งตัวกับตัวเลขที่ตามมา เป็นหน่วยคำสั่งย่อยที่เล็กที่สุด |
| บรรทัด (Block) | N120 G01 X50. F200 |
กลุ่มคำสั่งที่ชุดควบคุมทำพร้อมกันในหนึ่งขั้น จบด้วยเครื่องหมายจบบรรทัด |
| โปรแกรม (Program) | O1101 …. M30 |
บรรทัดทั้งหมดที่เรียงตามลำดับการทำงาน มีหมายเลขโปรแกรมกำกับ |
ชุดควบคุมอ่านโปรแกรม ทีละบรรทัดจากบนลงล่าง ทำคำสั่งในบรรทัดนั้นให้เสร็จ แล้วจึงไปบรรทัดถัดไป ยกเว้นคำสั่งที่สั่งให้กระโดดหรือวนซ้ำ เช่น การเรียกโปรแกรมย่อย ลำดับของบรรทัดจึงเป็นลำดับการทำงานของเครื่องโดยตรง
7.1.1 ตัวอักษรนำที่ใช้บ่อย
ตัวอักษรนำแต่ละตัวมีความหมายตายตัวในชุดควบคุม ความหมายของตัวอักษรบางตัวเปลี่ยนไปตามคำสั่ง G ที่อยู่ในบรรทัดเดียวกัน เช่น R ในคำสั่งเดินโค้งคือรัศมี แต่ในคำสั่งเจาะสำเร็จรูป (Canned cycle) คือระดับที่เครื่องมือถอยขึ้นมา
| ตัวอักษร | ความหมาย | ตัวอย่าง |
|---|---|---|
O |
หมายเลขโปรแกรม | O1101 |
N |
หมายเลขบรรทัด | N120 |
G |
คำสั่งเตรียมการ (Preparatory function) บอกว่าจะเคลื่อนที่หรือทำงานแบบใด | G01 G90 |
X Y Z |
พิกัดปลายทางของแกนเส้นตรง | X50. Z-5. |
A B C |
พิกัดปลายทางของแกนหมุน เป็นองศา | B90. |
U W |
ระยะแบบสัมพัทธ์ในแกน X และ Z บนเครื่องกลึง | U-2. W0 |
I J K |
ระยะจากจุดเริ่มถึงศูนย์กลางของส่วนโค้ง หรือค่าประกอบในคำสั่งสำเร็จรูปบางคำสั่ง | I10. J0 |
R |
รัศมีของส่วนโค้ง หรือระดับถอยในคำสั่งเจาะสำเร็จรูป | R3. |
F |
อัตราป้อน | F200 F0.2 |
S |
ความเร็วรอบหัวสปินเดิล หรือความเร็วตัดเมื่อใช้ G96 |
S1200 |
T |
หมายเลขเครื่องมือ | T02 T0303 |
M |
คำสั่งเบ็ดเตล็ด (Miscellaneous function) | M03 M30 |
H |
หมายเลขแถวของค่าชดเชยความยาวเครื่องมือ | H02 |
D |
หมายเลขแถวของค่าชดเชยรัศมีเครื่องมือ | D02 |
P |
เวลาหยุดรอ หมายเลขโปรแกรมย่อย หรือค่าประกอบของบางคำสั่ง | P1000 |
Q |
ระยะเจาะแต่ละช่วงในคำสั่งเจาะถอนเศษ หรือค่าประกอบของบางคำสั่ง | Q5. |
รายละเอียดของคำสั่งการเคลื่อนที่ คำสั่งเจาะสำเร็จรูป และค่าชดเชยแต่ละแบบจะอยู่ในบทต่อๆ ไป บทนี้ใช้คำสั่งเหล่านี้เป็นตัวอย่างเท่าที่จำเป็นเพื่อให้เห็นรูปแบบของรหัสคำสั่งและบรรทัด
7.2 หลักการเขียนคำสั่งและบรรทัด
7.2.1 ความสำคัญของจุดทศนิยม
กฎข้อแรกและเป็นกฎที่สำคัญที่สุดในการเขียนโปรแกรม CNC คือ: ต้องใส่จุดทศนิยมกำกับตัวเลขที่เป็นค่าระยะทาง พิกัด หรือขนาดเสมอ
ทำไมชุดควบคุม CNC จึงเข้มงวดกับจุดทศนิยมขนาดนี้? ในยุคแรกเริ่มของคอมพิวเตอร์ควบคุมเครื่องจักร (ชุดควบคุม Fanuc รุ่นแรกๆ) ระบบประมวลผลยังไม่มีชิปคำนวณเลขทศนิยม (Floating-point unit) ชุดควบคุมจึงถูกออกแบบให้อ่านตัวเลขจำนวนเต็มเป็น “หน่วยย่อยที่สุดที่เครื่องจักรสามารถขยับได้ (Least Input Increment)” ซึ่งสำหรับระบบมิลลิเมตรมาตรฐานคือ 1 ไมครอน หรือ 0.001 มม. (หรือ 0.0001 นิ้วในระบบนิ้ว)
ดังนั้น หากเราไม่ใส่จุดทศนิยม ชุดควบคุมจะตีความตัวเลขนั้นเป็นหน่วยไมครอนทันที:
| คำสั่งที่เขียน | ชุดควบคุม Fanuc อ่านค่าจริงเป็น | ผลลัพธ์ที่เกิดขึ้น |
|---|---|---|
X10. หรือ X10.0 |
10.000 มม. | เครื่องมือเคลื่อนที่ไปที่ 10 มิลลิเมตร (ตามที่ตั้งใจ) |
X10 (ลืมจุด) |
0.010 มม. (10 ไมครอน) | เครื่องมือเคลื่อนที่ไปเพียงเศษหนึ่งส่วนร้อยมิลลิเมตร (แทบไม่ขยับ) |
Z-5 (ลืมจุด) |
−0.005 มม. (5 ไมครอน) | มีดแทบไม่ลงกินเนื้องานเลย |
ความผิดพลาดประเภทนี้อันตรายอย่างยิ่ง เพราะ ชุดควบคุมจะไม่แจ้งเตือน Alarm ใดๆ เลย เครื่องจักรจะถือว่าเป็นคำสั่งที่ถูกต้องตามไวยากรณ์และทำงานต่อไปตามปกติ ทำให้ชิ้นงานไม่ได้ขนาด หรือในทางกลับกัน หากลืมใส่จุดในคำสั่งถอยมีด คมมีดอาจถอยออกเพียงไม่กี่ไมครอนแล้วเริ่มเคลื่อนที่ตัดเฉือนต่อจนชนเข้ากับผนังงานได้
ตัวเลขที่ไม่ใช้จุดทศนิยม (จำนวนนับและเลขดัชนี):
ตัวเลขที่ไม่ได้แทนระยะทางหรือขนาดเรขาคณิต แต่เป็นเลขลำดับ หมายเลขช่องในตาราง หรือจำนวนนับ ต้องเขียนเป็นจำนวนเต็มโดย ห้ามใส่จุดทศนิยม ถ้าใส่จุดทศนิยมลงไป ชุดควบคุม Fanuc 0i-F จะหยุดและแจ้งเตือน PS0007 (ILLEGAL USE OF DECIMAL POINT) ทันที เช่น:
- หมายเลขบรรทัด:
N120 - หมายเลขเครื่องมือ:
T02หรือT0101 - หมายเลขแถวชดเชย:
H02,D02 - ความเร็วรอบสปินเดิล:
S1200 - ค่าเวลาหยุดรอในหน่วยมิลลิวินาที:
P1000(หยุด 1 วินาที)
7.2.2 ศูนย์นำหน้าและศูนย์ต่อท้าย
ศูนย์ที่อยู่ หน้า ตัวเลขละได้ G01 กับ G1 และ M03 กับ M3 คือคำสั่งเดียวกัน แต่ศูนย์ที่ ต่อท้าย ละไม่ได้ G10 ไม่ใช่ G1 และ M30 ไม่ใช่ M3 โรงงานส่วนใหญ่เขียนรหัส G และ M เป็นเลขสองหลักเสมอ เพื่อให้อ่านเรียงกันเป็นแนวและค้นหาในโปรแกรมได้ตรง
7.2.3 การรวมคำสั่งหลายตัวในหนึ่งบรรทัด
ในหนึ่งบรรทัด (หรือหนึ่งบล็อกคำสั่ง) สามารถมีคำสั่งย่อยและพิกัด (Words) รวมกันได้หลายคำสั่ง ชุดควบคุมจะประมวลผลคำสั่งทั้งหมดในบรรทัดนั้นพร้อมกันในขั้นตอนเดียว ลำดับการเรียงคำสั่งในบรรทัดไม่มีผลต่อการทำงานของเครื่องจักร แต่ควรเขียนเรียงตามลำดับมาตรฐานเพื่อให้ช่างอ่านเข้าใจง่าย ข้อยกเว้นคือการแทรก G90 หรือ G91 ไว้ระหว่างพิกัด ซึ่งชุดควบคุมบางรุ่นอ่านตามลำดับคำสั่ง ดูบทที่ 9
N120 G01 X50. Y20. Z-3. F200 S1200 M08
ลำดับมาตรฐานนิยมเรียงตามนี้: หมายเลขบรรทัด (N), ตามด้วยคำสั่งการเคลื่อนที่ (G), พิกัดเป้าหมาย (X, Y, Z), อัตราป้อน (F), ความเร็วรอบ (S) และคำสั่งเบ็ดเตล็ด (M) โดยมีข้อจำกัดที่ต้องคำนึงถึงดังนี้:
- คำสั่ง G ต่างกลุ่มอยู่บรรทัดเดียวกันได้ เช่น
G90 G54 G00 X0 Y0แต่ คำสั่ง G กลุ่มเดียวกันไม่ควรอยู่บรรทัดเดียวกัน เช่นG00 G01ชุดควบคุมส่วนใหญ่จะใช้เฉพาะคำสั่งตัวหลังสุด หรือในบางรุ่นอาจขึ้น Alarm เตือน กลุ่มของคำสั่ง G อธิบายในหัวข้อถัดไป ส่วนตารางคู่คำสั่งที่ไม่สามารถรวมในบรรทัดเดียวกันได้ อยู่ในบทที่ 9 - คำสั่ง M ชุดควบคุมแบบ Fanuc ตามค่าเริ่มต้นจะรับได้บรรทัดละ 1 คำสั่งเท่านั้น (แม้บางเครื่องจะตั้งพารามิเตอร์ให้รับได้ถึง 3 คำสั่ง) เพื่อให้โปรแกรมสามารถนำไปรันได้บนทุกเครื่องจักร จึงควรเขียนคำสั่ง M เพียงบรรทัดละหนึ่งตัวเสมอ
- คำสั่ง M ที่เขียนในบรรทัดเดียวกับการเคลื่อนที่ จะเริ่มทำงานก่อน พร้อมกัน หรือหลังจากการเคลื่อนที่เสร็จสิ้น ขึ้นอยู่กับการออกแบบของผู้ผลิตเครื่องจักร เช่น
M08(เปิดน้ำหล่อเย็น) มักเริ่มทำงานพร้อมกับการเคลื่อนที่ แต่M05(หยุดสปินเดิล) และM09(ปิดน้ำหล่อเย็น) บางเครื่องจะรอให้แกนเคลื่อนที่ถึงจุดหมายเสร็จสิ้นก่อน หากลำดับการทำงานมีผลต่อความปลอดภัยหรือคุณภาพผิวงาน ให้แยกเขียนเป็นคนละบรรทัดอย่างชัดเจน - ห้ามใส่ตัวอักษรนำตัวเดียวกันซ้ำในบรรทัดเดียว เช่น
X10. X20.เพราะจะทำให้เกิด Alarm หรือชุดควบคุมจะเลือกใช้เพียงค่าใดค่าหนึ่งเท่านั้น
คำสั่งที่ทำงานประสานกันควรรวมไว้ในบรรทัดเดียวกัน เช่น การเคลื่อนที่เร็วไปยังจุดเริ่มต้นแบบพิกัดสัมบูรณ์ในระบบพิกัด G54:
G90 G54 G00 X50. Y20.
แม้ว่าจะสามารถแยกเขียนบรรทัดละคำสั่งได้:
G90
G54
G00
X50. Y20.
แต่เมื่อสั่งเดินโปรแกรมแบบทีละบรรทัด (SINGLE BLOCK) การเขียนแยกแบบที่สองจะต้องกดปุ่ม CYCLE START ถึง 4 ครั้งกว่าเครื่องมือจะเริ่มขยับ การเขียนรวมในบรรทัดเดียวแบบแรกจึงดีกว่ามาก เพราะนอกจากจะช่วยให้โปรแกรมกระชับแล้ว คำสั่งที่ทำงานประสานกันยังอยู่รวมเป็นกลุ่มเดียว อ่านบรรทัดเดียวก็ทราบได้ทันทีว่าเครื่องมือจะเคลื่อนที่อย่างไร ไปยังตำแหน่งใด และอ้างอิงจากจุดศูนย์งานใด
7.2.4 เครื่องหมายจบบรรทัด
แต่ละบรรทัดจบด้วย EOB (End of block) ซึ่งบนจอชุดควบคุมแบบ Fanuc แสดงเป็นเครื่องหมาย ; ตามที่กล่าวในบทที่ 3 ในไฟล์ข้อความบนคอมพิวเตอร์ EOB คือการขึ้นบรรทัดใหม่ธรรมดา เมื่อส่งไฟล์เข้าเครื่อง ชุดควบคุมจะแปลงการขึ้นบรรทัดใหม่เป็น EOB ให้เอง เครื่องหมาย ; จึงเป็นเพียงสัญลักษณ์ที่หน้าจอใช้แสดงตำแหน่งจบบรรทัด ไม่ใช่ตัวอักษรของโปรแกรม จึง ห้ามพิมพ์ ; ลงในไฟล์ มิฉะนั้นเครื่องอาจอ่านเป็นอักขระแปลกปลอมหรือแจ้งเตือนไวยากรณ์ผิดพลาด ชุดควบคุมบางรุ่นแสดงสัญลักษณ์อื่นแทน เช่น รุ่นเก่าบางรุ่นใช้ * และบางยี่ห้อใช้ $ ซึ่งเป็นสัญลักษณ์แทนการจบบรรทัดเช่นเดียวกัน ส่วนการพิมพ์โปรแกรมที่แผงควบคุมของเครื่อง ทั้งในโหมด MDI และหน้าแก้ไขโปรแกรม ผู้ปฏิบัติงานต้องกดปุ่ม EOB เพื่อจบบรรทัดทุกบรรทัดเอง
7.2.5 คำอธิบายในวงเล็บ
ข้อความในวงเล็บ ( ) คือ คำอธิบาย (Comment) ชุดควบคุมจะข้ามข้อความนี้ไปโดยไม่ทำงาน ใช้บอกชื่อชิ้นงาน เครื่องมือ และขั้นตอน เพื่อให้ผู้ปฏิบัติงานอ่านโปรแกรมบนจอเครื่องได้เข้าใจ
- ใช้ตัวอักษรภาษาอังกฤษ ตัวเลข และเครื่องหมายพื้นฐานเท่านั้น ชุดควบคุมไม่รองรับตัวอักษรภาษาไทย และเครื่องรุ่นเก่าบางรุ่นรับเฉพาะตัวพิมพ์ใหญ่ ตัวอย่างสั้นๆ ในหนังสือเล่มนี้ใช้คำอธิบายภาษาไทยเพื่อการเรียน แต่โปรแกรมที่ส่งเข้าเครื่องจริงต้องใช้ภาษาอังกฤษ ดังโปรแกรมตัวอย่างเต็มตั้งแต่บทที่ 8 เป็นต้นไป
- ห้ามมีวงเล็บซ้อนในคำอธิบาย เช่น
(DRILL (8.5))ชุดควบคุมจะถือว่าคำอธิบายจบที่วงเล็บปิดตัวแรก แล้วนำข้อความที่เหลือต่อท้าย (เช่น)ที่เกินมา) ไปตีความเป็นโค้ดคำสั่ง ทำให้เกิด Alarm - คำอธิบายบรรทัดแรกหลังหมายเลขโปรแกรม จะแสดงเป็นชื่อโปรแกรมในหน้ารายการโปรแกรมของชุดควบคุม
7.2.6 เครื่องหมายข้ามบรรทัด
บรรทัดที่ขึ้นต้นด้วย / จะถูกข้ามเมื่อผู้ปฏิบัติงานเปิดสวิตช์ BLOCK SKIP ใช้กับขั้นตอนที่ต้องการเฉพาะบางครั้ง เช่น หยุดวัดชิ้นแรก รายละเอียดและการใช้งานจริงอยู่ในหัวข้อข้ามบรรทัดด้วย /
7.3 คำสั่งคงสถานะและคำสั่งไม่คงสถานะ
คำสั่งส่วนใหญ่ ไม่ต้องเขียนซ้ำทุกบรรทัด เมื่อสั่ง G01 ครั้งหนึ่ง ชุดควบคุมจะเดินตัดเป็นเส้นตรงในทุกบรรทัดถัดไปที่มีพิกัด จนกว่าจะพบคำสั่งอื่นในกลุ่มเดียวกัน เช่น G00 หรือ G02 คำสั่งแบบนี้เรียกว่า คำสั่งคงสถานะ (Modal)
G01 X50. F200 (เดินตัดเป็นเส้นตรง อัตราป้อน 200 มม./นาที)
Y30. (ยังเป็น G01 และ F200)
X0 (ยังเป็น G01 และ F200)
G00 Z50. (เปลี่ยนเป็นการเคลื่อนที่เร็ว)
ส่วนคำสั่งที่มีผลเฉพาะบรรทัดที่เขียน เรียกว่า คำสั่งไม่คงสถานะ (Non-modal หรือ One-shot) เช่น G04 หยุดรอ G28 กลับจุดอ้างอิง และ G53 เคลื่อนที่ในระบบพิกัดเครื่อง ในบรรทัดถัดไปชุดควบคุมจะกลับไปใช้คำสั่งคงสถานะที่ค้างอยู่เดิม
ค่าอื่นนอกจากคำสั่ง G ก็คงสถานะเช่นกัน F และ S คงค่าเดิมจนกว่าจะสั่งค่าใหม่ พิกัดของแกนที่ไม่ได้เขียนในบรรทัดคงตำแหน่งเดิม เช่น บรรทัด Y30. ในตัวอย่างข้างต้นไม่ได้เคลื่อนแกน X
7.3.1 กลุ่มของคำสั่ง G
คำสั่ง G ถูกแบ่งเป็นกลุ่ม ในแต่ละกลุ่มมีคำสั่งที่มีผลอยู่ได้ครั้งละหนึ่งตัวเท่านั้น คำสั่งใหม่ในกลุ่มเดียวกันจะแทนที่ตัวเดิม ตารางแรกเป็นกลุ่มของชุดควบคุมแบบ Fanuc สำหรับเครื่องกัด และตารางถัดไปเป็นของเครื่องกลึง หมายเลขกลุ่มเป็นตามคู่มือของ Fanuc
| กลุ่ม | หน้าที่ | คำสั่ง |
|---|---|---|
| 00 | คำสั่งไม่คงสถานะ | G04 หยุดรอ, G09 หยุดตรงตำแหน่งเฉพาะบรรทัดนั้น, G10 ตั้งค่าข้อมูล, G28 G30 กลับจุดอ้างอิง, G31 เคลื่อนที่จนได้สัญญาณ (Skip), G52 ระบบพิกัดย่อย, G53 เคลื่อนที่ในระบบพิกัดเครื่อง, G65 เรียกมาโครครั้งเดียว, G92 ตั้งระบบพิกัด |
| 01 | ชนิดการเคลื่อนที่ | G00 เคลื่อนที่เร็ว, G01 เส้นตรง, G02 G03 ส่วนโค้ง |
| 02 | ระนาบ | G17 XY, G18 ZX, G19 YZ |
| 03 | ระบบพิกัด | G90 แบบสัมบูรณ์, G91 แบบสัมพัทธ์ |
| 04 | ขอบเขตการเคลื่อนที่ที่ตั้งไว้ (Stored stroke check) | G22 เปิดการตรวจ, G23 ปิดการตรวจ |
| 05 | หน่วยของอัตราป้อน | G93 ส่วนกลับของเวลา (Inverse time), G94 มม./นาที, G95 มม./รอบ |
| 06 | หน่วยวัด | G20 นิ้ว, G21 มิลลิเมตร |
| 07 | ชดเชยรัศมีเครื่องมือ | G40 ยกเลิก, G41 G42 ชดเชยซ้ายและขวา |
| 08 | ชดเชยความยาวเครื่องมือ | G43 G44 ชดเชย, G49 ยกเลิก |
| 09 | คำสั่งเจาะสำเร็จรูป | G73 G74 G76 G81 ถึง G89, G80 ยกเลิก |
| 10 | ระดับถอยในคำสั่งเจาะสำเร็จรูป | G98 ถอยถึงระดับเริ่มต้น, G99 ถอยถึงระดับ R |
| 11 | ย่อขยาย (Scaling) | G51 ย่อขยาย, G50 ยกเลิก |
| 12 | เรียกมาโครแบบคงสถานะ | G66 เรียกมาโครทุกบรรทัดที่มีการเคลื่อนที่, G67 ยกเลิก |
| 13 | ความเร็วผิวคงที่ (ในเครื่องกัดที่มีออปชันนี้) | G96 ความเร็วผิวคงที่, G97 ความเร็วรอบคงที่ |
| 14 | จุดศูนย์ชิ้นงาน | G54 ถึง G59, G54.1 จุดศูนย์ชิ้นงานเพิ่มเติม |
| 15 | โหมดการตัด (Cutting mode) | G61 หยุดตรงตำแหน่งทุกบรรทัด (Exact stop mode), G62 ลดอัตราป้อนที่มุมอัตโนมัติ, G63 โหมดต๊าป, G64 โหมดตัดปกติ |
| 16 | หมุนระบบพิกัด | G68 หมุน, G69 ยกเลิก |
| 17 | พิกัดเชิงขั้ว | G16 เปิด, G15 ยกเลิก |
| 22 | สะท้อนภาพจากโปรแกรม (Programmable mirror image) | G51.1 สะท้อน, G50.1 ยกเลิก |
ชุดควบคุมยังมีกลุ่มอื่นอีกสำหรับฟังก์ชันเสริม เช่น การควบคุมให้เครื่องมือตั้งฉากกับเส้นทางเสมอ (Normal direction control) การตรวจความเร็วรอบสปินเดิลที่ผันผวน และการประมาณค่าในพิกัดเชิงขั้ว (Polar coordinate interpolation) ชุดควบคุมรุ่นใหญ่ เช่น Fanuc 30i มีกลุ่มมากกว่ารุ่นเล็ก และคำสั่งหลายตัวในตารางใช้ได้เฉพาะเครื่องที่ซื้อออปชันนั้นไว้ หมายเลขกลุ่มที่ข้ามไปคือกลุ่มของฟังก์ชันเหล่านี้ ตรวจรายการคำสั่ง G ในคู่มือของเครื่องที่ใช้จริงเสมอ
เครื่องกลึงแบบ Fanuc ใช้หลักเดียวกัน แต่ ทั้งรหัสและหมายเลขกลุ่มต่างจากเครื่องกัด เช่น ระนาบอยู่ในกลุ่ม 16 แทนกลุ่ม 02 และ G98 G99 เป็นหน่วยของอัตราป้อนในกลุ่ม 05 ไม่ใช่ระดับถอยของคำสั่งเจาะสำเร็จรูป จึงใช้ตารางของเครื่องกัดตรวจโปรแกรมเครื่องกลึงไม่ได้
ชุดควบคุมเครื่องกลึงแบบ Fanuc ยังมีระบบ G-code ให้เลือกสามระบบ คือ A B และ C ซึ่งใช้รหัสต่างกันสำหรับหน้าที่เดียวกัน ตารางด้านล่างเป็นของ ระบบ A ซึ่งพบมากที่สุดและเป็นระบบที่หนังสือเล่มนี้ใช้ ตามที่เห็นในตัวอย่างของบทที่ 5 ความต่างของทั้งสามระบบอยู่ในบทที่ 9 หัวข้อระบบ G-code ของเครื่องกลึง ส่วนชุดควบคุมเครื่องกัดแบบ Fanuc มีระบบ G-code ชุดเดียว ไม่มีให้เลือก ตัวอักษร A B C ที่พบบนเครื่องกัดเป็นเรื่องของตารางค่าชดเชยเครื่องมือ ซึ่งอธิบายในบทที่ 12
| กลุ่ม | หน้าที่ | คำสั่ง |
|---|---|---|
| 00 | คำสั่งไม่คงสถานะ | G04 หยุดรอ, G10 ตั้งค่าข้อมูล, G28 G30 กลับจุดอ้างอิง, G31 เคลื่อนที่จนได้สัญญาณ (Skip), G50 จำกัดรอบสูงสุดหรือตั้งระบบพิกัด, G52 ระบบพิกัดย่อย, G53 เคลื่อนที่ในระบบพิกัดเครื่อง, G65 เรียกมาโครครั้งเดียว, G70 ถึง G76 คำสั่งกลึงสำเร็จรูปหลายรอบ |
| 01 | ชนิดการเคลื่อนที่ | G00 เคลื่อนที่เร็ว, G01 เส้นตรง, G02 G03 ส่วนโค้ง, G32 กลึงเกลียว, G90 G92 G94 คำสั่งกลึงสำเร็จรูปแบบง่าย |
| 02 | โหมดความเร็วรอบ | G96 ความเร็วผิวคงที่, G97 ความเร็วรอบคงที่ |
| 05 | หน่วยของอัตราป้อน | G98 มม./นาที, G99 มม./รอบ |
| 06 | หน่วยวัด | G20 นิ้ว, G21 มิลลิเมตร |
| 07 | ชดเชยรัศมีปลายมีด | G40 ยกเลิก, G41 G42 ชดเชยซ้ายและขวา |
| 09 | ขอบเขตการเคลื่อนที่ที่ตั้งไว้ (Stored stroke check) | G22 เปิดการตรวจ, G23 ปิดการตรวจ |
| 10 | คำสั่งเจาะสำเร็จรูป (เครื่องที่มีเครื่องมือหมุน) | G83 G84 G85 ที่หน้างาน, G87 G88 G89 ที่ด้านข้าง, G80 ยกเลิก |
| 12 | เรียกมาโครแบบคงสถานะ | G66 เรียกมาโครทุกบรรทัดที่มีการเคลื่อนที่, G67 ยกเลิก |
| 14 | จุดศูนย์ชิ้นงาน | G54 ถึง G59 |
| 16 | ระนาบ | G17 XY, G18 ZX, G19 YZ |
| 21 | การประมาณค่าในพิกัดเชิงขั้ว (Polar coordinate interpolation) | G12.1 เปิด, G13.1 ยกเลิก |
สองแถวแรกต่างจากเครื่องกัดมากที่สุด G90 G92 G94 อยู่ใน กลุ่ม 01 กลุ่มเดียวกับ G00 และ G01 จึงเป็นคำสั่งคงสถานะที่ถูกแทนที่ด้วยคำสั่งการเคลื่อนที่ตัวถัดไป ส่วน G70 ถึง G76 อยู่ใน กลุ่ม 00 จึงมีผลเฉพาะบรรทัดที่เขียน ในระบบ B และ C รหัสเปลี่ยนไปแต่การแบ่งกลุ่มยังเป็นแบบเดียวกัน และมีกลุ่ม 03 สำหรับ G90 G91 เพิ่มขึ้นมาเหมือนเครื่องกัด ต้องอ่านคู่มือของเครื่องที่ใช้ประกอบเสมอ
7.3.2 อันตรายของสถานะที่ค้างอยู่
คำสั่งคงสถานะทำให้โปรแกรมสั้นลง แต่ก็ทำให้ บรรทัดเดียวกันทำงานต่างกันได้ ขึ้นกับบรรทัดก่อนหน้า บรรทัด X80. ที่อยู่หลัง G01 คือการตัดเฉือนอย่างช้า แต่ถ้าอยู่หลัง G00 คือการพุ่งไปด้วยความเร็วสูงสุดของเครื่อง ข้อผิดพลาดที่พบบ่อยจากสถานะที่ค้างอยู่มีดังนี้
- ลืมกลับ
G90หลังใช้G91เช่น หลังG91 G28 Z0ถ้าไม่สั่งG90พิกัดทุกค่าหลังจากนั้นจะถูกอ่านแบบสัมพัทธ์ คือเป็นระยะจากตำแหน่งปัจจุบัน เครื่องมือจะไปคนละที่กับที่ตั้งใจทั้งหมด - ลืมยกเลิกคำสั่งเจาะสำเร็จรูปด้วย
G80คำสั่งเจาะสำเร็จรูปเป็นคำสั่งคงสถานะ ถ้ายังไม่ยกเลิก บรรทัดที่มีพิกัด X Y ถัดไปจะเจาะรูที่ตำแหน่งนั้นอีกรู ทั้งที่ผู้เขียนตั้งใจเพียงย้ายเครื่องมือ - ค่า F ที่ค้างมาจากเครื่องมือตัวก่อน ถ้าเครื่องมือใหม่ไม่ได้สั่ง F เอง จะใช้อัตราป้อนของเครื่องมือตัวก่อนซึ่งอาจเร็วเกินไปหลายเท่า
- สถานะที่ค้างจากโปรแกรมก่อนหน้าหรือจาก MDI เมื่อเริ่มโปรแกรม ชุดควบคุมอาจยังอยู่ในสถานะที่โปรแกรมก่อนหน้าหรือผู้ปฏิบัติงานสั่งค้างไว้ เช่น
G91G20หรือG43กับค่า H ของเครื่องมืออื่น สถานะเมื่อเปิดเครื่องและหลังกด RESET ก็ขึ้นกับพารามิเตอร์ของเครื่อง จึงไม่ควรพึ่งค่าเริ่มต้นใดๆ
ทางแก้คือ ประกาศสถานะที่ต้องการให้ครบเองเสมอ ทั้งที่ต้นโปรแกรมและที่ต้นชุดคำสั่งของเครื่องมือแต่ละตัว วิธีเขียนให้ครบทุกกลุ่มอยู่ในบทที่ 11 หลังจากรู้จักคำสั่งในแต่ละกลุ่มแล้ว
7.4 ข้ามบรรทัดด้วย / (Block skip)
การข้ามบรรทัด (Block skip) ให้ผู้ปฏิบัติงานเลือกได้ว่าจะทำหรือไม่ทำบางบรรทัดของโปรแกรม โดยไม่ต้องแก้โปรแกรม บรรทัดที่ขึ้นต้นด้วย / จะถูกข้ามเมื่อ เปิด สวิตช์ BLOCK SKIP บนแผงควบคุม (บทที่ 3) และทำงานตามปกติเมื่อ ปิด คู่มือบางเล่มเรียกว่า Block delete แต่ไม่มีบรรทัดใดถูกลบ เพียงแต่ไม่ถูกทำ
ประโยชน์หลักคือ โปรแกรมเดียวรองรับสองทางเลือกที่ขัดกัน ซึ่งถ้าไม่มีฟังก์ชันนี้ต้องเขียนโปรแกรมสองโปรแกรม เช่น ชิ้นงานดิบที่เนื้อเผื่อไม่เท่ากัน ชิ้นแรกที่ต้องหยุดวัดกับชิ้นถัดไปที่ไม่ต้องหยุด หรือชิ้นงานสองแบบที่ต่างกันเพียงไม่กี่รู
N10 ... (ทำเสมอ)
/N20 ... (ทำเมื่อปิด BLOCK SKIP)
/N30 ... (ทำเมื่อปิด BLOCK SKIP)
N40 ... (ทำเสมอ)
- วาง
/เป็นตัวอักษรแรกของบรรทัด ก่อนหมายเลขบรรทัด ชุดควบคุมบางรุ่นยอมให้/อยู่กลางบรรทัด แล้วข้ามเฉพาะส่วนที่อยู่หลัง/ตามหัวข้อ/กลางบรรทัด แต่รุ่นอื่นไม่รองรับหรือให้ผลต่างกัน โปรแกรมที่ต้องเดินได้ทุกเครื่องจึงไม่ควรพึ่งวิธีนี้ - ตั้งสวิตช์ก่อนกด CYCLE START ชุดควบคุมดูสถานะของสวิตช์ตอนอ่านบรรทัดเข้าบัฟเฟอร์ ซึ่งนำหน้าการเคลื่อนที่หลายบรรทัด การเปลี่ยนสวิตช์ระหว่างเดินโปรแกรมจึงอาจไม่มีผลกับบรรทัดถัดไป ตามบทที่ 24 ชุดควบคุมบางยี่ห้อ เช่น Haas หยุดการอ่านล่วงหน้าที่บรรทัดที่มี
/เสมอ แม้สวิตช์ปิดอยู่ - โปรแกรมที่ไม่มี
/ไม่ขึ้นกับสวิตช์ แต่ควรปิดสวิตช์ไว้เป็นปกติ แล้วเปิดเฉพาะงานที่ต้องใช้
7.4.1 กับดักของคำสั่งคงสถานะ
เมื่อเปิดสวิตช์ ชุดควบคุมข้ามบรรทัด / ไปทั้งบรรทัด ไม่อ่านคำใดในบรรทัดนั้นเลย จึงไม่มีค่าใดจากบรรทัดนั้นส่งต่อไปถึงบรรทัดถัดไป คำสั่งคงสถานะ เช่น G01 F S หรือ M08 ที่เขียนไว้ในบรรทัด / จึงมีผลเฉพาะเมื่อปิดสวิตช์ ถ้าบรรทัดหลังส่วนที่ข้ามพึ่งค่าเหล่านั้น ผลจะต่างกันตามตำแหน่งสวิตช์
N10 G00 X10. Y5. Z2.
/N20 G01 Z0.5 F300 M08
N30 Z-1. F150 (ผิด: ถ้าเปิด BLOCK SKIP บรรทัดนี้ยังเป็น G00 และไม่มีน้ำหล่อเย็น)
N10 G00 X10. Y5. Z2.
/N20 G01 Z0.5 F300 M08
N30 G01 Z-1. F150 M08 (ถูก: เขียนทุกค่าที่ต้องใช้ซ้ำ ได้ผลเหมือนกันทั้งสองตำแหน่งสวิตช์)
กฎข้อเดียวที่ต้องจำคือ บรรทัดแรกหลังส่วนที่ข้ามต้องเขียนทุกค่าที่ต้องใช้ใหม่ ทั้งโหมดการเคลื่อนที่ อัตราป้อน ความเร็วรอบ ค่าชดเชย และน้ำหล่อเย็น เหมือนกับว่าบรรทัด / ไม่มีอยู่ และ ต้องทดสอบโปรแกรมสองรอบ ทั้งปิดและเปิดสวิตช์ ถ้าแก้โปรแกรมเพื่อแก้ปัญหาของตำแหน่งหนึ่ง ให้ทดสอบอีกตำแหน่งซ้ำด้วย เพราะการแก้อาจสร้างปัญหาใหม่ให้อีกทาง
7.4.2 การใช้งานจริง
1. ชิ้นงานดิบที่เนื้อเผื่อไม่เท่ากัน ชิ้นงานหล่อ ชิ้นงานตีขึ้นรูป หรือเพลาที่ตัดมาไม่เท่ากัน บางชิ้นปาดเที่ยวเดียวพอ บางชิ้นต้องสองเที่ยว ถ้าเขียนสองเที่ยวเสมอ ชิ้นที่เนื้อน้อยจะเสียเวลาตัดอากาศ จึงเขียนเที่ยวแรกเป็นบรรทัด / ตามภาพข้างต้น
(T0101 FACING, STOCK 2 TO 7 MM ON THE FACE)
(BLOCK SKIP OFF IF STOCK IS OVER 3.5 MM)
N40 G00 X54. Z3.5 M08 (ไปนอกผิวเพลา ที่ระดับเที่ยวแรก)
/N50 G01 X-1.6 F0.25 (เที่ยวแรก ปาดถึง Z3.5)
/N60 G00 Z5.5 (ถอยออกจากหน้างาน)
/N70 X54. (กลับไปนอกผิวเพลา)
N80 G00 Z0 (เขียน G00 ซ้ำ)
N90 G01 X-1.6 F0.25 (เที่ยวที่สอง ปาดถึง Z0 เขียน G01 และ F ซ้ำ)
N100 G00 Z2.
ก่อนเดินโปรแกรม ผู้ปฏิบัติงานวัดเนื้อเผื่อที่หน้างานของชิ้นงานดิบ ถ้าเกิน 3.5 มม. ซึ่งเป็นความลึกมากที่สุดที่ผู้เขียนโปรแกรมเลือกให้ปาดในเที่ยวเดียว ให้ปิดสวิตช์เพื่อปาดสองเที่ยว ถ้าไม่เกินให้เปิดสวิตช์เพื่อปาดเที่ยวเดียว เกณฑ์นี้เขียนไว้ในคำอธิบายที่หัวชุดคำสั่งของเครื่องมือ ผู้ปฏิบัติงานจึงไม่ต้องเดา หลักเดียวกันใช้กับการกัดผิวด้านบนบนเครื่องกัด และการกัดหยาบที่บางชิ้นต้องเพิ่มเที่ยว
2. เที่ยวทดลองและหยุดวัดชิ้นแรก ชิ้นงานที่พิกัดความเผื่อแคบ หรือรูปร่างที่วัดยากหลังเสร็จ เช่น เทเปอร์ กลึงเที่ยวทดลองที่เส้นผ่านศูนย์กลางตรงซึ่งวัดง่ายก่อน หยุดให้ผู้ปฏิบัติงานวัดแล้วแก้ค่าสึกหรอ จึงกลึงเก็บผิวจริง เมื่อขนาดเข้าแล้วจึงเปิดสวิตช์ ชิ้นต่อไปไม่ต้องหยุด
N200 T0303 (FINISH)
N210 G96 S200 M03
/N220 G00 G42 X40.6 Z2. M08 (เที่ยวทดลอง Ø40.6 เหลือเนื้อ 0.3 มม. ต่อด้าน)
/N230 G01 Z-10. F0.1
/N240 X44.
/N250 G00 G40 X100. Z100.
/N260 M00 (วัด Ø ทดลอง แก้ค่าสึกหรอของ 03 แล้วกด CYCLE START)
/N270 G96 S200 M03 (M00 หยุดสปินเดิล จึงสั่งใหม่)
N280 G00 G42 X40. Z2. M08 (เขียนทุกค่าซ้ำ เหมือนไม่มีบรรทัด /)
N290 G01 Z-30. F0.1 (เก็บผิว Ø40 ตลอดความยาว รวมช่วงที่ทดลอง)
N300 X44.
N310 G00 G40 X100. Z100.
เที่ยวทดลองต้องอยู่ในเนื้อที่เที่ยวเก็บผิวจะตัดออกอยู่แล้ว และใช้มีดตัวเดียวกับเที่ยวเก็บผิว ค่าสึกหรอที่แก้จากเที่ยวทดลองจึงใช้กับผิวจริงได้ทันที วิธีแก้ค่าสึกหรอจากขนาดที่วัดอยู่ในบทที่ 13 และบทที่ 14 ส่วน /M00 เพียงบรรทัดเดียวก็ใช้เป็นจุดหยุดวัดได้ ต่างจาก M01 ตรงที่ไม่ผูกกับสวิตช์ OPT STOP ซึ่งผู้ปฏิบัติงานมักเปิดไว้ตรวจเครื่องมือทุกตัว
3. ชิ้นงานคล้ายกันหลายแบบ ชิ้นงานสองแบบที่ต่างกันเพียงบางตำแหน่ง เช่น แผ่นแบบหนึ่งมีหกรู อีกแบบมีสี่รู หรือเพลาแบบหนึ่งมีร่องสองร่อง อีกแบบมีร่องเดียว ใช้โปรแกรมเดียวกันได้ ในโหมดคำสั่งเจาะสำเร็จรูป บรรทัดตำแหน่งรูที่ถูกข้ามจะไม่ถูกเจาะ
N180 G99 G81 X30. Y25. Z-4. R2.5 F100 (รูที่ 1 ถึง 3 ทุกแบบ)
N190 X105.
N200 Y75.
/N210 X80. Y50. (รูที่ 4 และ 5 เฉพาะแบบหกรู)
/N220 X55.
N230 G98 X30. Y75. (รูที่ 6 เขียน Y75. ซ้ำ)
N240 G80
ชื่อชิ้นงานทั้งสองแบบและตำแหน่งสวิตช์ของแต่ละแบบต้องเขียนไว้ในคำอธิบายที่หัวโปรแกรม ถ้าแบบต่างกันมากกว่านี้ ให้แยกโปรแกรม
4. เปิดหรือปิดคำสั่งบางตัว เช่น /M08 ให้เดินทดสอบโดยไม่เปิดน้ำหล่อเย็น หรือบรรทัด / ที่เดินเที่ยวเปล่า (Spring pass) ซ้ำบนผิวเดิมเฉพาะเมื่อชิ้นงานแรกๆ มีขนาดเกิน หรือการตรวจเครื่องมือหักด้วยหัววัดที่ทำเฉพาะเมื่อต้องการ
5. เดินต่อเนื่องกับเครื่องป้อนเพลาอัตโนมัติ บนเครื่องกลึงที่มีเครื่องป้อนเพลา โปรแกรมจบด้วยสองบรรทัด
N900 M01
/N910 M30 (เปิด BLOCK SKIP: ข้าม M30)
N920 M99 (กลับไปต้นโปรแกรม ผลิตชิ้นต่อไปทันที)
เมื่อเปิดสวิตช์ M30 ถูกข้าม M99 ในโปรแกรมหลักพาโปรแกรมกลับไปเริ่มที่บรรทัดแรกโดยไม่หยุด เครื่องป้อนเพลาดันเพลาออกมา แล้วผลิตชิ้นต่อไป เมื่อต้องการหยุด ผู้ปฏิบัติงานปิดสวิตช์ โปรแกรมจะจบที่ M30 หลังชิ้นที่กำลังทำเสร็จ ไม่ต้องหยุดกลางชิ้นงาน คู่มือของ Haas ใช้หลักเดียวกันกลับด้าน คือ /M99 ก่อน M30 ให้โปรแกรมเดียวใช้เป็นโปรแกรมย่อยเมื่อปิดสวิตช์ และเป็นโปรแกรมหลักเมื่อเปิด ใช้ทดลองเดินโปรแกรมย่อยโดยลำพังได้
7.4.3 / กลางบรรทัด
ชุดควบคุมบางรุ่นยอมให้วาง / ไว้กลางบรรทัด เมื่อ เปิด สวิตช์ ชุดควบคุมข้ามเฉพาะคำที่อยู่หลัง / ไปจนจบบรรทัด ส่วนคำที่อยู่หน้า / ทำเสมอไม่ว่าสวิตช์อยู่ตำแหน่งใด เมื่อ ปิด สวิตช์ ชุดควบคุมทำทั้งบรรทัดตามปกติ คู่มือของ Fanuc ระบุว่า / ต้องอยู่ที่ต้นบรรทัด ถ้าวางไว้ที่อื่น คำตั้งแต่ / ถึงท้ายบรรทัดจะถูกละไว้ โดยคู่มือไม่ได้บอกว่าขึ้นกับตำแหน่งสวิตช์ บนเครื่องแบบนี้ ตัวอย่างด้านล่างจะไม่ได้ Y50 ของรูที่ 4 เลย และ / M08 จะไม่เปิดน้ำหล่อเย็นเลย จึงใช้เทคนิคนี้ได้เฉพาะชุดควบคุมที่คู่มือระบุว่ารองรับ และต้องทดลองด้วยภาพจำลองบนเครื่องทั้งเปิดและปิดสวิตช์ก่อนเสมอ
ตัวอย่าง ย้ายตำแหน่งรูหนึ่งรู แผ่นสองแบบมีห้ารูเหมือนกันสี่รู ต่างกันเพียงรูที่ 4 ซึ่งแผ่น A อยู่ที่ Y50 ส่วนแผ่น B อยู่ที่ Y75 แนวเดียวกับรูที่ 3 และ 5 ใช้ / กลางบรรทัดเพื่อเลือกเฉพาะค่า Y ของรูนั้น
(PLATE A = BLOCK SKIP OFF HOLE 4 AT X67.5 Y50.)
(PLATE B = BLOCK SKIP ON HOLE 4 AT X67.5 Y75.)
N180 G99 G81 X30. Y25. Z-4. R2.5 F100 (รูที่ 1)
N190 X105. (รูที่ 2)
N200 Y75. (รูที่ 3)
N210 X67.5 / Y50. (รูที่ 4: X ทำเสมอ Y50. เฉพาะเมื่อปิดสวิตช์)
N220 G98 X30. Y75. (รูที่ 5 เขียน Y75. ซ้ำ)
N230 G80
/ กลางบรรทัด N210 ทั้งสองตำแหน่งสวิตช์| บรรทัด | ปิด BLOCK SKIP (แผ่น A) | เปิด BLOCK SKIP (แผ่น B) |
|---|---|---|
N210 |
ทำทั้งบรรทัด เจาะรูที่ X67.5 Y50 | ทำเฉพาะ X67.5 ค่า Y ยังเป็น 75 จาก N200 จึงเจาะรูที่ X67.5 Y75 |
N220 |
เจาะรูที่ X30 Y75 | เจาะรูที่ X30 Y75 |
กับดักของคำสั่งคงสถานะยังอยู่ แต่กลับด้าน เมื่อ ปิด สวิตช์ คำหลัง / ถูกอ่านและค่าคงสถานะค้างไปถึงบรรทัดถัดไป ถ้า N220 เขียนเพียง G98 X30. แผ่น A จะได้รูที่ 5 ที่ X30 Y50 เพราะ Y50 จาก N210 ยังค้างอยู่ กฎของ / กลางบรรทัดจึงมีสามข้อ
- คำสั่งที่ต้องทำเสมอวางหน้า
/คำสั่งที่เลือกได้วางหลัง/ลำดับในบรรทัดจึงมีผล ซึ่งต่างจากบรรทัดปกติที่สามารถสลับลำดับคำสั่งได้ - บรรทัดถัดไปต้องเขียนทุกค่าที่อยู่หลัง
/ซ้ำ เหมือนกฎของบรรทัด/ทั้งบรรทัด - ทดสอบทั้งสองตำแหน่งสวิตช์ และเขียนชื่อชิ้นงานกับตำแหน่งสวิตช์ของแต่ละแบบไว้ในคำอธิบายที่หัวโปรแกรม
การใช้งานอีกแบบที่พบบ่อยคือ / M08 ท้ายบรรทัดเคลื่อนที่ เช่น N120 G43 H01 Z50. / M08 ให้เครื่องมือเคลื่อนที่เสมอ แต่ไม่เปิดน้ำหล่อเย็นเมื่อเปิดสวิตช์ ผู้ปฏิบัติงานจึงมองเห็นการตัดของชิ้นแรกได้ชัด ทุกบรรทัดในโปรแกรมที่มี M08 ต้องเขียนแบบเดียวกัน มิฉะนั้นน้ำหล่อเย็นจะเปิดที่เครื่องมือตัวถัดไป และสวิตช์นี้ต้องไม่ใช้กับงานอื่นในโปรแกรมเดียวกัน
7.4.4 ข้ามบรรทัดหลายชุด /1 ถึง /9
สวิตช์ BLOCK SKIP ตัวเดียวเลือกได้เพียงสองทาง ถ้าโปรแกรมมีหลายส่วนที่ต้องเลือกแยกกัน เช่น เที่ยวปาดหน้าเพิ่มกับเที่ยวทดลอง สวิตช์ตัวเดียวจะบังคับให้เลือกพร้อมกันทั้งคู่ หรือผู้ปฏิบัติงานต้องเปลี่ยนสวิตช์กลางโปรแกรม ซึ่งเสี่ยงต่อการลืมและไม่มีผลกับบรรทัดที่อ่านเข้าบัฟเฟอร์แล้ว การข้ามบรรทัดแบบมีหมายเลข (Optional block skip extension) แก้ปัญหานี้ด้วยตัวเลขหลัง / ที่ผูกกับสวิตช์คนละตัว
(/1 = TRIAL CUT ON FOR PRODUCTION)
(/2 = EXTRA FACE PASS ON IF STOCK UNDER 3.5)
N40 G00 X54. Z3.5 M08
/2 N50 G01 X-1.6 F0.25 (สวิตช์ 2)
/2 N60 G00 Z5.5
/2 N70 X54.
...
/1 N220 G00 G42 X40.6 Z2. M08 (สวิตช์ 1 หรือเขียน / เฉยๆ ก็ได้)
/1 N230 G01 Z-10. F0.1
/1เท่ากับ/สวิตช์ 1 คือสวิตช์ BLOCK SKIP ปกติ- ชุดควบคุมรองรับ 9 ชุด แต่สวิตช์ต้องมีบนเครื่อง Fanuc Series 0i-F มีฟังก์ชันนี้เป็นมาตรฐาน แต่สวิตช์
/2ถึง/9ต้องเป็นปุ่มบนแผงหรือสวิตช์บนหน้าจอ SETTING ที่ผู้ผลิตเครื่องจัดไว้ เครื่องจำนวนมากมีเพียงสวิตช์เดียว ให้ตรวจเครื่องก่อนเขียนโปรแกรมที่ใช้หลายชุด - เขียนความหมายและตำแหน่งสวิตช์สำหรับงานผลิตไว้ที่หัวโปรแกรม ผู้ปฏิบัติงานจะได้ตั้งสวิตช์ทุกตัวให้ถูกก่อนกด CYCLE START ครั้งเดียว ไม่ต้องเปลี่ยนกลางโปรแกรม
- ทุกชุดต้องทดสอบ สวิตช์แต่ละตัวมีสองตำแหน่ง คือเปิดและปิด โปรแกรมที่ใช้
/1/2และ/3จึงตั้งสวิตช์ได้ 2 × 2 × 2 = 8 แบบ ถ้าส่วนที่ข้ามแต่ละชุดอยู่แยกกัน และบรรทัดแรกหลังแต่ละส่วนเขียนทุกค่าซ้ำครบ ก็ทดสอบทีละชุดได้ แต่ถ้าส่วนหนึ่งตั้งค่าที่อีกส่วนพึ่งอยู่ ต้องทดสอบให้ครบทั้งแปดแบบ ยิ่งใช้หลายชุด ภาระของผู้ปฏิบัติงานและงานทดสอบยิ่งมาก งานส่วนใหญ่ใช้สวิตช์เดียวก็พอ
การข้ามบรรทัดเป็นการเลือกที่ ผู้ปฏิบัติงานตัดสินใจ ก่อนเดินโปรแกรม ไม่ใช่การตัดสินจากสัญญาณของเครื่องหรือผลการวัด งานที่ต้องเลือกทางเองตามเงื่อนไข เช่น ทุกชิ้นที่สิบหรือเมื่อหัววัดพบเครื่องมือหัก ต้องใช้คำสั่งเงื่อนไขของมาโคร ซึ่งเป็นตัวเลือกแยกของชุดควบคุม
7.5 ข้อผิดพลาดที่พบบ่อย
| ข้อผิดพลาด | ผลที่เกิด | ป้องกันโดย |
|---|---|---|
ลืมจุดทศนิยม Z-5 |
เครื่องมือไปที่ −0.005 มม. แทน −5 มม. | ใส่จุดทศนิยมให้ค่าระยะทางทุกค่า และตรวจด้วยแบบจำลอง |
ลืม G90 หลัง G91 G28 |
พิกัดทุกค่าหลังจากนั้นกลายเป็นระยะแบบสัมพัทธ์ | เขียน G90 ตามทันทีทุกครั้ง และประกาศ G90 ที่ต้นชุดคำสั่งของเครื่องมือ |
ลืม G80 หลังคำสั่งเจาะสำเร็จรูป |
เจาะรูเกินที่ตำแหน่งที่ตั้งใจเพียงย้ายเครื่องมือ | ยกเลิกคำสั่งเจาะสำเร็จรูปทันทีหลังรูสุดท้าย |
G00 ค้างมาถึงบรรทัดตัดเฉือน |
เครื่องมือพุ่งเข้าชิ้นงานด้วยความเร็วเคลื่อนที่เร็ว | เขียน G01 และ F ในบรรทัดแรกของการตัดเฉือนทุกครั้ง |
คำสั่งคงสถานะอยู่เฉพาะในบรรทัด / |
เมื่อเปิด BLOCK SKIP บรรทัดถัดไปเคลื่อนที่ผิดโหมด เช่น เป็น G00 แทน G01 หรือไม่มีน้ำหล่อเย็น |
เขียนทุกค่าที่ต้องใช้ซ้ำในบรรทัดแรกหลังส่วนที่ข้าม และทดสอบทั้งเปิดและปิดสวิตช์ |
ใช้ / กลางบรรทัดแล้วไม่เขียนค่าหลัง / ซ้ำในบรรทัดถัดไป |
เมื่อปิด BLOCK SKIP ค่านั้นค้างไปถึงบรรทัดถัดไป เช่น รูถัดไปเจาะผิดตำแหน่ง | เขียนทุกค่าที่อยู่หลัง / ซ้ำในบรรทัดถัดไป และทดสอบทั้งเปิดและปิดสวิตช์ |
| สวิตช์ BLOCK SKIP ค้างจากงานก่อน | เที่ยวปาดเพิ่มหรือจุดหยุดวัดถูกข้ามโดยไม่ตั้งใจ มีดกินลึกเกิน | เขียนตำแหน่งสวิตช์ที่ต้องใช้ไว้ที่หัวโปรแกรม และตรวจก่อนกด CYCLE START |
| คำอธิบายภาษาไทยหรือวงเล็บซ้อน | ชุดควบคุมรับไฟล์ไม่ได้ หรืออ่านคำสั่งผิด | ใช้ภาษาอังกฤษ ตัวพิมพ์ใหญ่ และวงเล็บชั้นเดียว |
สรุป
- โปรแกรมประกอบจาก ตัวอักษรนำ → รหัสคำสั่ง (Word) → บรรทัดคำสั่ง (Block) → โปรแกรม ชุดควบคุมทำงานทีละบรรทัดจากบนลงล่าง
- ใส่จุดทศนิยมให้ค่าระยะทางทุกค่า ละศูนย์นำหน้าได้ แต่ละศูนย์ต่อท้ายไม่ได้ คำสั่ง G ต่างกลุ่มอยู่บรรทัดเดียวกันได้ และเขียนคำสั่ง M บรรทัดละหนึ่งตัว
- คำสั่งส่วนใหญ่เป็น คำสั่งคงสถานะ ที่มีผลจนกว่าจะถูกแทนด้วยคำสั่งกลุ่มเดียวกัน ส่วน
G04G28G53เป็น คำสั่งไม่คงสถานะ สถานะที่ค้างอยู่คือต้นเหตุของข้อผิดพลาดจำนวนมาก - คำอธิบายในวงเล็บต้องเป็นภาษาอังกฤษ และไม่มีวงเล็บซ้อน
- บรรทัดที่ขึ้นต้นด้วย
/จะถูกข้ามเมื่อเปิดสวิตช์ BLOCK SKIP ให้ โปรแกรมเดียวรองรับสองทางเลือก เช่น เนื้อเผื่อไม่เท่ากัน เที่ยวทดลองชิ้นแรก ชิ้นงานคล้ายกันสองแบบ และการเดินต่อเนื่องด้วย/M30กับM99บรรทัดแรกหลังส่วนที่ข้ามต้องเขียนทุกค่าซ้ำ และทดสอบทั้งสองตำแหน่งสวิตช์ ส่วน/2ถึง/9ใช้สวิตช์แยกกันได้ถ้าเครื่องมีสวิตช์ให้
บทต่อไปจะดูคำสั่งการเคลื่อนที่ G00 G01 G02 G03 และ G04 ซึ่งเป็นบรรทัดส่วนใหญ่ของทุกโปรแกรม ทั้งการเคลื่อนที่เร็ว การเดินตัดเป็นเส้นตรง และการเดินตัดส่วนโค้ง
พบข้อผิดพลาดหรือมีข้อเสนอแนะ? ส่งอีเมลแจ้งเรา