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

บทที่ 7

ส่วนประกอบของโปรแกรม — คำ บรรทัด และคำสั่งคงสถานะ

ส่วนประกอบของโปรแกรม CNC ตั้งแต่ตัวอักษรนำ คำ และบรรทัด กฎการเขียนคำ จุดทศนิยม คำอธิบายในวงเล็บ และการข้ามบรรทัดด้วย / รวมถึงการใช้งานจริงและการข้ามแบบมีหมายเลข /1 ถึง /9 คำสั่งคงสถานะกับคำสั่งไม่คงสถานะ กลุ่มของคำสั่ง G และอันตรายของสถานะที่ค้างอยู่

บทที่ 2 ได้แสดงโปรแกรมสั้นๆ ห้าบรรทัดให้เห็นหน้าตาของ G-code และบทที่ 3 ถึง 6 ได้อธิบายเครื่องจักร แกน และจุดศูนย์ชิ้นงาน ซึ่งเป็นสิ่งที่โปรแกรมสั่งงาน บทนี้จะดูตัวโปรแกรมเอง ว่าประกอบขึ้นจากอะไร เขียนแต่ละคำและแต่ละบรรทัดอย่างไร และชุดควบคุมจำสถานะจากบรรทัดหนึ่งไปยังบรรทัดถัดไปอย่างไร ซึ่งเป็นพื้นฐานของคำสั่ง G และ M ทุกตัวในบทที่ 8 ถึงบทที่ 10

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

7.1 ส่วนประกอบของโปรแกรม

โปรแกรม CNC หรือ Part program ประกอบขึ้นจากส่วนเล็กไปหาส่วนใหญ่สี่ระดับ

ตารางที่ 7.1 ส่วนประกอบของโปรแกรมสี่ระดับ
ระดับ ตัวอย่าง ความหมาย
ตัวอักษรนำ (Address) G X F บอกว่าตัวเลขที่ตามมาเป็นค่าของอะไร
คำหรือรหัสคำสั่ง (Word) G01 X50. F200 ตัวอักษรนำหนึ่งตัวกับตัวเลขที่ตามมา เป็นหน่วยคำสั่งย่อยที่เล็กที่สุด
บรรทัด (Block) N120 G01 X50. F200 กลุ่มคำสั่งที่ชุดควบคุมทำพร้อมกันในหนึ่งขั้น จบด้วยเครื่องหมายจบบรรทัด
โปรแกรม (Program) O1101 …. M30 บรรทัดทั้งหมดที่เรียงตามลำดับการทำงาน มีหมายเลขโปรแกรมกำกับ

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

7.1.1 ตัวอักษรนำที่ใช้บ่อย

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

ตารางที่ 7.2 ตัวอักษรนำที่ใช้บ่อยในชุดควบคุมแบบ Fanuc
ตัวอักษร ความหมาย ตัวอย่าง
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 นิ้วในระบบนิ้ว)

ดังนั้น หากเราไม่ใส่จุดทศนิยม ชุดควบคุมจะตีความตัวเลขนั้นเป็นหน่วยไมครอนทันที:

ตารางที่ 7.3 ผลลัพธ์ของจุดทศนิยมในค่าระยะทางและพิกัด
คำสั่งที่เขียน ชุดควบคุม 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

ตารางที่ 7.4 กลุ่มของคำสั่ง G (ชุดควบคุมแบบ 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

ตารางที่ 7.5 กลุ่มของคำสั่ง G (ชุดควบคุมแบบ Fanuc สำหรับเครื่องกลึง ระบบ G-code แบบ A)
กลุ่ม หน้าที่ คำสั่ง
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 เมื่อเริ่มโปรแกรม ชุดควบคุมอาจยังอยู่ในสถานะที่โปรแกรมก่อนหน้าหรือผู้ปฏิบัติงานสั่งค้างไว้ เช่น G91 G20 หรือ 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 หยุดการอ่านล่วงหน้าที่บรรทัดที่มี / เสมอ แม้สวิตช์ปิดอยู่
  • โปรแกรมที่ไม่มี / ไม่ขึ้นกับสวิตช์ แต่ควรปิดสวิตช์ไว้เป็นปกติ แล้วเปิดเฉพาะงานที่ต้องใช้
โปรแกรมเดียว ชิ้นงานดิบสองแบบ: ปาดหน้าเพลา Ø50 ที่มีเนื้อเผื่อ 2 ถึง 7 มม. ภาพตัดครึ่งบนตามมาตราส่วน · เส้นทึบคือเดินตัด เส้นประคือเคลื่อนที่เร็ว · บรรทัดที่มี / คือเที่ยวแรกที่ Z3.5 ปิด BLOCK SKIP: สองเที่ยว เนื้อเผื่อ 6 มม. มากกว่าที่ตัดได้ในเที่ยวเดียว Z0 เนื้อเผื่อ 6 มม. ชิ้นงาน Ø50 1 2 N40 G00 X54. Z3.5 M08 /N50 G01 X-1.6 F0.25 /N60 G00 Z5.5 /N70 X54. N80 G00 Z0 N90 G01 X-1.6 F0.25 N100 G00 Z2. ทำงาน (เที่ยวแรก) เปิด BLOCK SKIP: เที่ยวเดียว เนื้อเผื่อ 3 มม. ปาดครั้งเดียวที่ Z0 Z0 เนื้อเผื่อ 3 มม. ชิ้นงาน Ø50 1 N40 G00 X54. Z3.5 M08 /N50 G01 X-1.6 F0.25 /N60 G00 Z5.5 /N70 X54. N80 G00 Z0 N90 G01 X-1.6 F0.25 N100 G00 Z2. ข้าม (เที่ยวแรก)
รูปที่ 7.1 โปรแกรมเดียว ชิ้นงานดิบสองแบบ

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
ตารางที่ 7.6 ผลของ / กลางบรรทัด 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 ข้อผิดพลาดที่พบบ่อย

ตารางที่ 7.7 ข้อผิดพลาดของการเขียนคำสั่งและบรรทัดที่พบบ่อย
ข้อผิดพลาด ผลที่เกิด ป้องกันโดย
ลืมจุดทศนิยม 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 บรรทัดละหนึ่งตัว
  • คำสั่งส่วนใหญ่เป็น คำสั่งคงสถานะ ที่มีผลจนกว่าจะถูกแทนด้วยคำสั่งกลุ่มเดียวกัน ส่วน G04 G28 G53 เป็น คำสั่งไม่คงสถานะ สถานะที่ค้างอยู่คือต้นเหตุของข้อผิดพลาดจำนวนมาก
  • คำอธิบายในวงเล็บต้องเป็นภาษาอังกฤษ และไม่มีวงเล็บซ้อน
  • บรรทัดที่ขึ้นต้นด้วย / จะถูกข้ามเมื่อเปิดสวิตช์ BLOCK SKIP ให้ โปรแกรมเดียวรองรับสองทางเลือก เช่น เนื้อเผื่อไม่เท่ากัน เที่ยวทดลองชิ้นแรก ชิ้นงานคล้ายกันสองแบบ และการเดินต่อเนื่องด้วย /M30 กับ M99 บรรทัดแรกหลังส่วนที่ข้ามต้องเขียนทุกค่าซ้ำ และทดสอบทั้งสองตำแหน่งสวิตช์ ส่วน /2 ถึง /9 ใช้สวิตช์แยกกันได้ถ้าเครื่องมีสวิตช์ให้

บทต่อไปจะดูคำสั่งการเคลื่อนที่ G00 G01 G02 G03 และ G04 ซึ่งเป็นบรรทัดส่วนใหญ่ของทุกโปรแกรม ทั้งการเคลื่อนที่เร็ว การเดินตัดเป็นเส้นตรง และการเดินตัดส่วนโค้ง

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