การใช้ GRBL CNC controller มักจะประสพปัญหาการใช้งานการ ส่งข้อมูลผิดพลาด (G code) โดยที่ไม่ทราบหลักการที่แท้จริง ทำให้เกิดปัญหาการทำงานได้ หรือ การควบคุม CNC ได้ไม่สมบุรณ์ เช่น การควบคุมหัวกัด หรือ Function อื่น ๆ ที่ Grbl มีให้ใช้
ดังนั้นบทความนี้จะขอแนะนำ และ ทำความเข้าใจหลักการของ G code และ ชุดคำสั่ง ที่จะนำไปใช้กับ GRBL และ CNC ได้อย่างมีประสิทธิภาพสูงสุด
ก่อนอื่นจะต้องทราบว่าชุด GRBL สามารถรองรับคำสั่ง G code อะไรบ้าง ตามรายการข้างล่างนี้ครับ
ขอแนะนำให้ใช้ GRBL Firmware รุ่นล่าสุด V 1.1 ไม่แนะนำ รุ่น 0.9
GRBL G code Support
Probing G38.2,G38.3, G38.4, G38.5
Cutter Radius Compensation Modes G40
Path Control Modes G61
Arc I J K Distance Modes G91.1
Dynamic Tool Length Offsets G43.1, G49
Linear Motions G0 , G1
Arc and Helical Motions G2, G3
Dwell G4
Set Work Coordinate Offsets G10 L2, G10 L20
Plane Selection G17, G18, G19
Units G20, G21
Go to Pre-Defined Position G28, G30
Set Pre-Defined Position G28.1, G30.1
Move in Absolute Coordinates G53
Work Coordinate Systems G54, G55, G56, G57, G58, G59
Motion Mode Cancel G80
Distance Modes G90, G9
Coordinate Offset G92
Clear Coordinate System Offsets G92.1
Feedrate Modes G93, G94
Program Pause and End M0, M2, M30
Spindle Control M3, M4, M5
Coolant Control M8, M9
ดังนั้นหากมีคำสั่งอื่น ๆ ที่นอกเหนือจากนี้ GRBL ก็ไม่สามารถ รับไปทำการประมวลผลได้ ดังนั้นการสร้าง G code ต้องมีไม่มากกว่าที่ GRBL รับได้ แต่ในปัจจุบันการสร้าง G code ถูกสร้างด้วยโปรแกรม CAM ต่าง ๆ ซึ่งสามารถกำหนดการออก ระหัส G ได้ จึงต้องมีการปรับแต่ง G code ให้เหมาะสมกับการใช้งาน
ตัวอย่างข้างล่างนี้เป็นการ ปรับแต่ง Post processor ของ โปรแกรม ArtcamPro
post processor จะอยู่ที่ Folderinstall/postp (ยกตัวอย่าง ใน windows xp artcampro9 จะอยู่ใน folder c:/Programfiles/artcampro9/postp file extension เป็น .con เรานำ file ตัวอย่าง mach2_mm1.con มาทำการแก้ใขด้วย โปรแกรม Notepad
จากเดิม
_____________________________________________________________
;
; Fanuc G - Code 4-Axis rotary post processor
;
; Linear Y Axis is wrapped onto A rotary axis
;
; History
;
; Who When What
; === ======== ========================================
; TM 04/07/95 Written
; BEM 06/08/96 Modified for Rotary Axis support
; BEM 19/06/00 Fixed
; BEM 03/02/00 Added description
; JVG 27/10/03 Modified for Mach2 controller, Wolverine3 or Elite6 machines
; JVG 12/12/03 Modified for Mach2 3axis machining
; JVG Feb 23 05 Small modifications with Bill P
DESCRIPTION = "Mach2 mm(*.cnc)"
;
FILE_EXTENSION = "cnc"
;
UNITS = MM
;
;
; Cariage return - line feed at end of each line
;
END_OF_LINE = "[13][10]"
;
; Block numbering
;
LINE_NUM_START = 0
LINE_NUM_INCREMENT = 1
LINE_NUM_MAXIMUM = 999999
;
; Set up default formating for variables
;
; Line numbering
FORMAT = [N|@|N|1.0]
; Spindle Speed
FORMAT = [S|@|S|1.0]
; Feed Rate
FORMAT = [F|#|F|1.0]
; Tool moves in x,y and z
FORMAT = [X|#|X|1.3]
FORMAT = [Y|#|Y|1.3]
FORMAT = [Z|#|Z|1.3]
; Home tool positions
FORMAT = [XH|@|X|1.3]
FORMAT = [YH|@|Y|1.3]
FORMAT = [ZH|@|Z|1.3]
;
; Set up program header
;
START = "%"
START = "G90"
;START = "G21"
; G20 = Use MM as unit value
START = "G49"
;START = "M6 T1"
; M6T1 = tool change via macros (commented out)
START = "M3 [S]"
;START = "M7"
; M7 = turn misting coolant on (commented out)
;
; Program moves
;
FIRST_RAPID_RATE_MOVE = "G0 [X] [Y] [Z]"
FIRST_FEED_RATE_MOVE = "G1 [X] [Y] [Z] [F]"
FEED_RATE_MOVE = "[X] [Y] [Z]"
;
; End of file
;
END = "G0[ZH]"
END = "[XH][YH]"
END = "M05"
END = "M02"
END = "%"
แก้ปรับปรุง
--------------------------------------------------------------------------------------------
;
; Fanuc G - Code 4-Axis rotary post processor
;
; Linear Y Axis is wrapped onto A rotary axis
;
; History
;
; Who When What
; === ======== ========================================
; TM 04/07/95 Written
; BEM 06/08/96 Modified for Rotary Axis support
; BEM 19/06/00 Fixed
; BEM 03/02/00 Added description
; JVG 27/10/03 Modified for Mach2 controller, Wolverine3 or Elite6 machines
; JVG 12/12/03 Modified for Mach2 3axis machining
; JVG Feb 23 05 Small modifications with Bill P
DESCRIPTION = "grbl(*.nc)"
;
FILE_EXTENSION = "nc";เปลียน File extension ไห้ Grbl Control รู้จัก
;
UNITS = MM
;
;
; Cariage return - line feed at end of each line
;
END_OF_LINE = "[13][10]"
;
; Block numbering
;
LINE_NUM_START = 0
LINE_NUM_INCREMENT = 1
LINE_NUM_MAXIMUM = 999999
;
; Set up default formating for variables
;
; Line numbering
FORMAT = [N|@|N|1.0]
; Spindle Speed
FORMAT = [S|@|S|1.0]
; Feed Rate
FORMAT = [F|#|F|1.0]
; Tool moves in x,y and z
FORMAT = [X|#|X|1.3]
FORMAT = [Y|#|Y|1.3]
FORMAT = [Z|#|Z|1.3]
; Home tool positions
FORMAT = [XH|@|X|1.3]
FORMAT = [YH|@|Y|1.3]
FORMAT = [ZH|@|Z|1.3]
;
; Set up program header
;
;START = "%" ;เอาออก GRBL ไม่รับ
START = "G90"
;START = "G21"
; G20 = Use MM as unit value
START = "G49"
;START = "M6 T1"
; M6T1 = tool change via macros (commented out)
START = "M4 [S]";เปิดหัวกัด ขา 13 GRBL Active High
;START = "M7"
; M7 = turn misting coolant on (commented out)
;
; Program moves
;
FIRST_RAPID_RATE_MOVE = "G0 [X] [Y] [Z]"
FIRST_FEED_RATE_MOVE = "G1 [X] [Y] [Z] [F]"
FEED_RATE_MOVE = "[X] [Y] [Z]"
;
; End of file
;
END = "G0[ZH]"
END = "[XH][YH]"
END = "M3" ;ปิดหัวกัด สำหรับ GRBL 0.9xx ปิดหัวกัด ขา 13 GRBL Active Low
END = "M02"
;END = "%"
Save as เป็น grbl.con
ภายหลังการแก้ใขให้ copy ลงใน Folder เดิม และ Save Machine Output ใหม่ นำมาใช้กับ GRBL ได้ต่อไป
บทความต่าง ๆ ใน Blog นี้ เป็นการเขียนเพื่อแชร์ความรู้และประสพการณ์ รวมถึง ความรับผิดชอบต่อสังคมในการประกอบธุรกิจ หากท่านใดสนใจเผยแพร่ควร Copy Link ไปใช้งาน ไม่ควรทำการ COPY เนื้อหาไปใช้งาน หากการกระทำข้างต้นจะเอาผิดทางกฏหมายมันคงยาก เพราะเสียเวลา เราเพียงตักเตือนทางสังคมเท่านั้น หากผู้ที่ทำการคัดลอกเนื้อหานำไปใช้ในทางธุรกิจ ควรสร้างสรรค์ผลงานด้วยตัวเองจะดีกว่า เนื่องจาก การบันทึกข้อมูลมันก็อ้างได้แล้วว่าใครเป็นผู้สร้างสรรค์ผลงานคนแรก ท้ายที่สุดผู้ที่ได้ หรือ เสียประโยชน์ คือผู้บริโภค หากสังคมมีแต่การรับ แต่ให้ใครไม่เป็น และทุกคนจะเป็นผู้รับเพียงอย่างเดียว ทำให้ผู้ให้เกิดการเบื่อหน่ายของผู้ที่อยากกระทำดีต้องหายไปจากสังคม ลูกหลานเราจะอยู่กันอย่างลำบากมากขึ้นอย่างแน่นอน
ดังนั้นบทความนี้จะขอแนะนำ และ ทำความเข้าใจหลักการของ G code และ ชุดคำสั่ง ที่จะนำไปใช้กับ GRBL และ CNC ได้อย่างมีประสิทธิภาพสูงสุด
ก่อนอื่นจะต้องทราบว่าชุด GRBL สามารถรองรับคำสั่ง G code อะไรบ้าง ตามรายการข้างล่างนี้ครับ
ขอแนะนำให้ใช้ GRBL Firmware รุ่นล่าสุด V 1.1 ไม่แนะนำ รุ่น 0.9
GRBL G code Support
Probing G38.2,G38.3, G38.4, G38.5
Cutter Radius Compensation Modes G40
Path Control Modes G61
Arc I J K Distance Modes G91.1
Dynamic Tool Length Offsets G43.1, G49
Linear Motions G0 , G1
Arc and Helical Motions G2, G3
Dwell G4
Set Work Coordinate Offsets G10 L2, G10 L20
Plane Selection G17, G18, G19
Units G20, G21
Go to Pre-Defined Position G28, G30
Set Pre-Defined Position G28.1, G30.1
Move in Absolute Coordinates G53
Work Coordinate Systems G54, G55, G56, G57, G58, G59
Motion Mode Cancel G80
Distance Modes G90, G9
Coordinate Offset G92
Clear Coordinate System Offsets G92.1
Feedrate Modes G93, G94
Program Pause and End M0, M2, M30
Spindle Control M3, M4, M5
Coolant Control M8, M9
ดังนั้นหากมีคำสั่งอื่น ๆ ที่นอกเหนือจากนี้ GRBL ก็ไม่สามารถ รับไปทำการประมวลผลได้ ดังนั้นการสร้าง G code ต้องมีไม่มากกว่าที่ GRBL รับได้ แต่ในปัจจุบันการสร้าง G code ถูกสร้างด้วยโปรแกรม CAM ต่าง ๆ ซึ่งสามารถกำหนดการออก ระหัส G ได้ จึงต้องมีการปรับแต่ง G code ให้เหมาะสมกับการใช้งาน
ตัวอย่างข้างล่างนี้เป็นการ ปรับแต่ง Post processor ของ โปรแกรม ArtcamPro
post processor จะอยู่ที่ Folderinstall/postp (ยกตัวอย่าง ใน windows xp artcampro9 จะอยู่ใน folder c:/Programfiles/artcampro9/postp file extension เป็น .con เรานำ file ตัวอย่าง mach2_mm1.con มาทำการแก้ใขด้วย โปรแกรม Notepad
จากเดิม
_____________________________________________________________
;
; Fanuc G - Code 4-Axis rotary post processor
;
; Linear Y Axis is wrapped onto A rotary axis
;
; History
;
; Who When What
; === ======== ========================================
; TM 04/07/95 Written
; BEM 06/08/96 Modified for Rotary Axis support
; BEM 19/06/00 Fixed
; BEM 03/02/00 Added description
; JVG 27/10/03 Modified for Mach2 controller, Wolverine3 or Elite6 machines
; JVG 12/12/03 Modified for Mach2 3axis machining
; JVG Feb 23 05 Small modifications with Bill P
DESCRIPTION = "Mach2 mm(*.cnc)"
;
FILE_EXTENSION = "cnc"
;
UNITS = MM
;
;
; Cariage return - line feed at end of each line
;
END_OF_LINE = "[13][10]"
;
; Block numbering
;
LINE_NUM_START = 0
LINE_NUM_INCREMENT = 1
LINE_NUM_MAXIMUM = 999999
;
; Set up default formating for variables
;
; Line numbering
FORMAT = [N|@|N|1.0]
; Spindle Speed
FORMAT = [S|@|S|1.0]
; Feed Rate
FORMAT = [F|#|F|1.0]
; Tool moves in x,y and z
FORMAT = [X|#|X|1.3]
FORMAT = [Y|#|Y|1.3]
FORMAT = [Z|#|Z|1.3]
; Home tool positions
FORMAT = [XH|@|X|1.3]
FORMAT = [YH|@|Y|1.3]
FORMAT = [ZH|@|Z|1.3]
;
; Set up program header
;
START = "%"
START = "G90"
;START = "G21"
; G20 = Use MM as unit value
START = "G49"
;START = "M6 T1"
; M6T1 = tool change via macros (commented out)
START = "M3 [S]"
;START = "M7"
; M7 = turn misting coolant on (commented out)
;
; Program moves
;
FIRST_RAPID_RATE_MOVE = "G0 [X] [Y] [Z]"
FIRST_FEED_RATE_MOVE = "G1 [X] [Y] [Z] [F]"
FEED_RATE_MOVE = "[X] [Y] [Z]"
;
; End of file
;
END = "G0[ZH]"
END = "[XH][YH]"
END = "M05"
END = "M02"
END = "%"
_______________________________________________________________________________
แก้ปรับปรุง
--------------------------------------------------------------------------------------------
;
; Fanuc G - Code 4-Axis rotary post processor
;
; Linear Y Axis is wrapped onto A rotary axis
;
; History
;
; Who When What
; === ======== ========================================
; TM 04/07/95 Written
; BEM 06/08/96 Modified for Rotary Axis support
; BEM 19/06/00 Fixed
; BEM 03/02/00 Added description
; JVG 27/10/03 Modified for Mach2 controller, Wolverine3 or Elite6 machines
; JVG 12/12/03 Modified for Mach2 3axis machining
; JVG Feb 23 05 Small modifications with Bill P
DESCRIPTION = "grbl(*.nc)"
;
FILE_EXTENSION = "nc";เปลียน File extension ไห้ Grbl Control รู้จัก
;
UNITS = MM
;
;
; Cariage return - line feed at end of each line
;
END_OF_LINE = "[13][10]"
;
; Block numbering
;
LINE_NUM_START = 0
LINE_NUM_INCREMENT = 1
LINE_NUM_MAXIMUM = 999999
;
; Set up default formating for variables
;
; Line numbering
FORMAT = [N|@|N|1.0]
; Spindle Speed
FORMAT = [S|@|S|1.0]
; Feed Rate
FORMAT = [F|#|F|1.0]
; Tool moves in x,y and z
FORMAT = [X|#|X|1.3]
FORMAT = [Y|#|Y|1.3]
FORMAT = [Z|#|Z|1.3]
; Home tool positions
FORMAT = [XH|@|X|1.3]
FORMAT = [YH|@|Y|1.3]
FORMAT = [ZH|@|Z|1.3]
;
; Set up program header
;
;START = "%" ;เอาออก GRBL ไม่รับ
START = "G90"
;START = "G21"
; G20 = Use MM as unit value
START = "G49"
;START = "M6 T1"
; M6T1 = tool change via macros (commented out)
START = "M4 [S]";เปิดหัวกัด ขา 13 GRBL Active High
;START = "M7"
; M7 = turn misting coolant on (commented out)
;
; Program moves
;
FIRST_RAPID_RATE_MOVE = "G0 [X] [Y] [Z]"
FIRST_FEED_RATE_MOVE = "G1 [X] [Y] [Z] [F]"
FEED_RATE_MOVE = "[X] [Y] [Z]"
;
; End of file
;
END = "G0[ZH]"
END = "[XH][YH]"
END = "M3" ;ปิดหัวกัด สำหรับ GRBL 0.9xx ปิดหัวกัด ขา 13 GRBL Active Low
END = "M02"
;END = "%"
_________________________________________________________________________________
Save as เป็น grbl.con
ภายหลังการแก้ใขให้ copy ลงใน Folder เดิม และ Save Machine Output ใหม่ นำมาใช้กับ GRBL ได้ต่อไป
เรียนผู้ค้า Minicnc ที่เข้ามาทำการ Copy Content เพื่อธุรกิจทุกท่าน
บทความต่าง ๆ ใน Blog นี้ เป็นการเขียนเพื่อแชร์ความรู้และประสพการณ์ รวมถึง ความรับผิดชอบต่อสังคมในการประกอบธุรกิจ หากท่านใดสนใจเผยแพร่ควร Copy Link ไปใช้งาน ไม่ควรทำการ COPY เนื้อหาไปใช้งาน หากการกระทำข้างต้นจะเอาผิดทางกฏหมายมันคงยาก เพราะเสียเวลา เราเพียงตักเตือนทางสังคมเท่านั้น หากผู้ที่ทำการคัดลอกเนื้อหานำไปใช้ในทางธุรกิจ ควรสร้างสรรค์ผลงานด้วยตัวเองจะดีกว่า เนื่องจาก การบันทึกข้อมูลมันก็อ้างได้แล้วว่าใครเป็นผู้สร้างสรรค์ผลงานคนแรก ท้ายที่สุดผู้ที่ได้ หรือ เสียประโยชน์ คือผู้บริโภค หากสังคมมีแต่การรับ แต่ให้ใครไม่เป็น และทุกคนจะเป็นผู้รับเพียงอย่างเดียว ทำให้ผู้ให้เกิดการเบื่อหน่ายของผู้ที่อยากกระทำดีต้องหายไปจากสังคม ลูกหลานเราจะอยู่กันอย่างลำบากมากขึ้นอย่างแน่นอน
ความคิดเห็น
แสดงความคิดเห็น