การปรับแต่งค่า G code สำหรับ GRBL CNC Controller


สำหรับลูกค้าที่ต้องการทราบข้อมูล หรือ ผู้สนใจ เพื่อปรับแต่งค่า G Code ของ GRBL Controller ให้การส่งข้อมูลถูกต้อง
ลูกค้าของพันธ์มณีซีเอ็นซี ที่นำคอมพิวเตอร์มาด้วย เราจะปรับแต่งให้อยู่แล้วนะครับ. แต่ถ้านำไปติดตั้งคอมพิวเตอร์ เครื่องอื่น ก็ต้องปรับแต่งค่าด้วยนะครับ

การควบคุมหัวกัด (spindle) หรือ ใช้งานฟังก์ชั่นอื่น ที่ GRBL รองรับ มีให้ใช้งาน. ถ้าการส่งข้อมูล G Code ไม่ถูกต้อง หรือผิดพลาด จะทำให้ ใช้งาน ฟังก์ชั่นอื่นไม่ได้ หรือ สั่งงานควบคุม MiniCNC ,เครื่องแกะสลัก ไม่ได้ หรือ ได้แต่ไม่สมบูรณ์

มาทำความรู้จัก หลักการที่แท้จริง เรื่องการส่งข้อมูล G Code และ ชุดคำสั่ง ที่จะทำให้การใช้งาน GRBL Controller USB Port กับ มินิซีเอ็นซี ( Minicnc),เครื่องแกะสลัก มีประสิทธิภาพ

ดังนั้นบทความนี้จะขอแนะนำ และ ทำความเข้าใจหลักการของ G code และ ชุดคำสั่ง ที่จะนำไปใช้กับ GRBL และ CNC ได้อย่างมีประสิทธิภาพสูงสุด

ก่อนอื่นจะต้องทราบว่าชุด GRBL สามารถรองรับคำสั่ง G code อะไรบ้าง ตามรายการข้างล่างนี้ครับ

ขอแนะนำให้ใช้ GRBL Firmware รุ่นล่าสุด V0.9xx ไม่แนะนำ รุ่น 0.8xx

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 Codeได้ จึงต้องมีการปรับแต่ง G code ให้เหมาะสมกับการใช้งาน 

ตัวอย่างข้างล่างนี้เป็นการ ปรับแต่ง Post processor ของ โปรแกรม ArtcamPro 

post processor จะอยู่ที่ Folderinstall/postp 
(ยกตัวอย่าง ใน windows xp artcampro 9 จะอยู่ใน 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 = "M3 [S]";เปิดหัวกัด ขา 11 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 = "M5" ;ปิดหัวกัด สำหรับ GRBL 0.9xx ปิดหัวกัด ขา 11 GRBL Active Low
END = "M02"

;END = "%"
_________________________________________________________________________________

Save as เป็น grbl.con
ภายหลังการแก้ไขให้ copy ลงใน Folder เดิม 
และ Save Machine Output ใหม่  นำมาใช้กับ GRBL ได้ต่อไป

อย่าลืม ตั้ง Spindle Speed =1000 ตอนทำ Tool path เพื่อให้คำสั่ง M3 ทำงาน PWM = 100 % ด้วยครับ


เรียนผู้ค้า Minicnc ที่เข้ามาทำการ Copy Content เพื่อธุรกิจทุกท่าน


บทความต่าง ๆ ใน Blog นี้ เป็นการเขียนเพื่อแชร์ความรู้และประสบการณ์ รวมถึง ความรับผิดชอบต่อสังคมในการประกอบธุรกิจ หากท่านใดสนใจเผยแพร่ควร Copy Link ไปใช้งาน ไม่ควรทำการ COPY เนื้อหาไปใช้งาน หากการกระทำข้างต้นจะเอาผิดทางกฏหมายมันคงยาก เพราะเสียเวลา เราเพียงตักเตือนทางสังคมเท่านั้น หากผู้ที่ทำการคัดลอกเนื้อหานำไปใช้ในทางธุรกิจ ควรสร้างสรรค์ผลงานด้วยตัวเองจะดีกว่า เนื่องจาก การบันทึกข้อมูลมันก็อ้างได้แล้วว่าใครเป็นผู้สร้างสรรค์ผลงานคนแรก ท้ายที่สุดผู้ที่ได้ หรือ เสียประโยชน์ คือผู้บริโภค หากสังคมมีแต่การรับ แต่ให้ใครไม่เป็น และทุกคนจะเป็นผู้รับเพียงอย่างเดียว ทำให้ผู้ให้เกิดการเบื่อหน่าย ผู้ที่อยากกระทำดีต้องหายไปจากสังคม ลูกหลานเราจะอยู่กันอย่างลำบากมากขึ้นอย่างแน่นอน