ข้ามไปที่เนื้อหาหลัก

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

การใช้ 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 ได้ต่อไป

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


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

ความคิดเห็น

โพสต์ยอดนิยมจากบล็อกนี้

การติดตั้งโปรแกรม GRBL CONTROL สำหรับ MINICNC แบบ USB

สิ่งที่ต้องเตรียมการ 1.  ชุด CNC Controller GRBL Control   ซึ่งทำการ Download ได้จาก Link นี้ 2.   ชุด CNC Controller ที่มี GRBL Firmware  Software GRBL Control  หากท่านที่ต้องการทราบ ขั้นตอนการติดตั้ง GRBL Firmware สามารถศึกษาได้จาก Link นี้ครับ 3.  Drivers USB To Serial  ที่มาพร้อมกับ CNC Controller  ชุดควบคุม Minicnc แบบ Grbl ที่ต้องใช้การควบคุมผ่าน Serial Port ซึ่งหลายคนอาจเข้าใจว่าเป็นการควบคุมผ่าน USB เป็นความเข้าใจที่คลาดเคลื่อน เนื่องจาก โปรแกรมควบคุม CNC GRBL จะใช้การควบคุมผ่าน Serial Port ของ Micro controller (Arduino)  แต่ในการสื่อสารปัจจุบัน ช่อง Serial Port ของ PC Commuter แทบจะหาไม่ได้เลย จึงจะต้องใช้ อุปกรณ์ Interface ดัดแปลงผ่านช่อง USB ของ PC Computer จึงต้องมี Software Driver ควบคุม ผู้ผลิต Chip USB Converter มีหลายราย ดังนั้นในการใช้ USB To Serial Port ต้องทราบข้อมูลของ Software USB Drivers และ เลือกใช้ให้ตรงกัน จึงจะทำให้ช่องสื่อสารนี้ใช้งานได้ และ ผู้ผลิต Arduino ได้นำ Chip ที่มี USB To Serial por...

GRBL Error List

Code Message Description 1 Expected command letter G-code words consist of a letter and a value. Letter was not found. 2 Bad number format Missing the expected G-code word value or numeric value format is not valid. 3 Invalid statement Grbl '$' system command was not recognized or supported. 4 Value < 0 Negative value received for an expected positive value. 5 Setting disabled Homing cycle failure. Homing is not enabled via settings. 6 Value < 3 usec Minimum step pulse time must be greater than 3usec. 7 EEPROM read fail. Using defaults An EEPROM read failed. Auto-restoring affected EEPROM to default values. 8 Not idle Grbl '$' command cannot be used unless Grbl is IDLE. Ensures smooth operation during a job. 9 G-code lock G-code commands are locked out during alarm or jog state. 10 Homing not enabled Soft limits cannot be enabled without homing also enabled. 11 Line overflow Max characters per line exceeded. Received command line was not executed. 12 Step rate ...

Info graphic สำหรับ GRBL