เหตผลที่จะต้องทำการศึกษาเปรียบเที่ยบการเลือก CNC Controller ที่เหมาะสมนั้น มันมีปัญหาอยู่ว่ามีผู้ที่สนใจจะทำการ Retrofit หรือ ปรับปรุง เครื่องจักร CNC ให้ใช้งานได้โดยเนื่องมาจากเหตผลดังนี้
- 1.CNC Controller ประเภท Compact Design มีต้นทุนที่สูง
- 2.ต้องการผู้ชำนาญงานในการติดตั้ง
- 3.มีข้อจำกัดเกี่ยวกับการ เลื่อกใช้อุปกรณ์ต่อพ่วงต่าง ๆ
- 4.ต้องการเรียนรู้ระบบ สำหรับการพัฒนาและช่วยเหลือตนเองให้เกิดความคล่องตัวในการทำงาน Automation
จึงหาแนวทางอื่น แนวทางที่น่าสนใจคือการใช้ CNC Controller แบบ PC Base ซึ่งมี Software ที่สามารถทำงานควบคุม CNC ได้เช่นกัน Software ที่เรานิยมกันคือ MACH3 CNC Controller โปรแกรมดังกล่าวค่อนข้างจะมีชื่อเสียงในกลุ่มใช้งาน PC Base เนื่องจากความสะดวกในการใช้งานเพราะใช้ ระบบปฎิบัติการ Windows ส่วน โปรแกรมอีกตัวที่นิยมใช้ กันคือ LinuxCNC หากคนที่ไม่เข้าใจในการเลือกใช้ระบบปฏิการ จะมีความรู้สึกว่าค่อนข้างยุ่งยากในการใช้งาน
จากประวัติการสร้าง Linuxcnc นั้นที่จริงแล้วเป้าหมายคือมาทดแทน CNC Controller แบบ Compact Design ที่ถูกสร้างโดย NISTหากท่านใดสนใจหาอ่านได้ จาก Link นี้ครับ
ข้อเปรียบเทียบเรื่องระบบปฏิบัติการ ระหว่าง Windows และ Linux สำหรับงาน ควบคุมเครื่องจักร
คือ ระบบทันเวลา หรือ Realtime Systemหาอ่านได้จากที่นี่ครับ และ มีตารางเปรียบเทียบตาม Link นี้ครับ
ยกตัวอย่าง
การกลึงเกลียวความสัมพันธ์ระหว่างการเคลื่อนที่ของแกน Z จะต้อง สัมพันธ์กับการเคลื่อนที่ของ Spindle ระบบของ CNC จะต้องมีการตรวจสอบความเร็วรอบที่ถูกต้องตลอดเวลาหากผิดเพี้ยนก็จะทำได้ชิ้นงานที่ไม่ถูกต้องด้วย
หรือ
การกลึงแบบ ความเร็วตัดคงที่ความสัมพันธ์ของแกน X จะต้องมีความสัมพันธ์กับความเร็วรอบ ของ Spindle เช่นกัน
หรือ หากเกิดการชนของเครื่องจักร หรือ มีอุบัติเหตุเกิดขึ้น หากเครื่องจักรทำการ ตรวจสอบ หรือ หยุดการทำงานได้อย่างทันทีทันใดผลเสียหายก็จะน้อยที่สุด ยกตัวอย่างเช่น เครื่องกลึงกำลังกลึงงานอยู่ แล้วเกิดความผิดพลาดเช่นเกิดการชนของป้อมมีด หาก CNC Controller ทำการตรวจสอบ และ หยุด หรือ เบรค Spindle ได้ทันเวลา ทำให้ไม่เกิดความเสียหายแก่เครื่องจักร หรือ มีผลระทบน้อยที่สุดได้
หรือ หากเกิดการชนของเครื่องจักร หรือ มีอุบัติเหตุเกิดขึ้น หากเครื่องจักรทำการ ตรวจสอบ หรือ หยุดการทำงานได้อย่างทันทีทันใดผลเสียหายก็จะน้อยที่สุด ยกตัวอย่างเช่น เครื่องกลึงกำลังกลึงงานอยู่ แล้วเกิดความผิดพลาดเช่นเกิดการชนของป้อมมีด หาก CNC Controller ทำการตรวจสอบ และ หยุด หรือ เบรค Spindle ได้ทันเวลา ทำให้ไม่เกิดความเสียหายแก่เครื่องจักร หรือ มีผลระทบน้อยที่สุดได้
หมายเหตุ ผู้เขียนมีประสพการณ์ การทดลองการกลึงเกลียวด้วย Mach3 CNC Controller มาเช่นกัน ซึ่งต้องสร้าง G Code แบบพิเศษ คุณภาพงานและเวลาจะสู้ LinuxCNC ไม่ได้ ที่ต้องหมายเหตุ เนื่องจากอาจมีผู้ขัดแย้งกับบทความนี้จึงใคร่ขออธิบายใว้ ผู้เขียนมิได้เข้าข้างใดข้างหนึ่งแต่ขออธิบายด้วยเหตุผล และ ประสพการณ์ หากท่านใดมีข้อสงสัยหรือขัดแย้งสามารถ ติดต่อได้ตามที่อยู่ติดต่อของ Blog นี้ได้ครับ
จากตัวอย่างดังกล่าว บนระบบปฏิบัติการ Windows ที่ใช้กันทั่วไปจะไม่มี RTOS จะมีก็แต่ใน Windows CE เท่านั้น ดังนั้นน่าจะเป็นคำตอบว่าหากสนใจที่จะปรับปรุงเครื่องจักรทำไมจึงต้องใช้ LinuxCNC
ตัวอย่างที่เห็นชัดในรูปของ G-Code Support ระหว่าง Mach3 กับ LinuxCNC
Mach3 G-Code Support หาอ่านเพิ่มเติมได้จาก Link นี้ครับ
Code | Parameters | Description |
---|---|---|
Motion | (X Y Z A B C U V W apply to all motions) | |
G0 | Rapid Move | |
G1 | Linear Move | |
G2, G3 | I J K or R, P | Arc Move |
G4 | P | Dwell |
G5 | I J P Q | Cubic Spline |
G5.1 | I J | Quadratic Spline |
G5.2 | P L | NURBS |
G38.2 - G38.5 | Straight Probe | |
G33 | K | Spindle Synchronized Motion |
G33.1 | K | Rigid Tapping |
G80 | Cancel Canned Cycle | |
Canned cycles | (X Y Z or U V W apply to canned cycles, depending on active plane) | |
G81 | R L (P) | Drilling Cycle |
G82 | R L (P) | Drilling Cycle, Dwell |
G83 | R L Q | Drilling Cycle, Peck |
G73 | R L Q | Drilling Cycle, Chip Breaking |
G85 | R L (P) | Boring Cycle, Feed Out |
G89 | R L (P) | Boring Cycle, Dwell, Feed Out |
G76 | P Z I J R K Q H L E | Threading Cycle |
Distance Mode | ||
G90, G91 | Distance Mode | |
G90.1, G91.1 | Arc Distance Mode | |
G7 | Lathe Diameter Mode | |
G8 | Lathe Radius Mode | |
Feed Rate Mode | ||
G93, G94, G95 | Feed Rate Mode | |
Spindle Control | ||
M3, M4, M5 | S | Spindle Control |
M19 | Orient Spindle | |
G96, G97 | S D | Spindle Control Mode |
Coolant | ||
M7, M8, M9 | Coolant Control | |
Tool Length Offset | ||
G43 | H | Tool Length Offset |
G43.1 | Dynamic Tool Length Offset | |
G43.2 | H | Apply additional Tool Length Offset |
G49 | Cancel Tool Length Compensation | |
Stopping | ||
M0, M1 | Program Pause | |
M2, M30 | Program End | |
M60 | Pallet Change Pause | |
Units | ||
G20, G21 | Units | |
Plane Selection | (affects G2, G3, G81…G89, G40…G42) | |
G17 - G19.1 | Plane Select | |
Cutter Radius Compensation | ||
G40 | Compensation Off | |
G41,G42 | D | Cutter Compensation |
G41.1, G42.1 | D L | Dynamic Cutter Compensation |
Path Control Mode | ||
G61 G61.1 | Exact Path Mode | |
G64 | P Q | Path Blending |
Return Mode in Canned Cycles | ||
G98 | Canned Cycle Return Level | |
Other Modal Codes | ||
F | Set Feed Rate | |
S | Set Spindle Speed | |
T | Select Tool) | |
M48, M49 | Speed and Feed Override Control | |
M50 | P0 (off) or P1 (on) | Feed Override Control |
M51 | P0 (off) or P1 (on) | Spindle Speed Override Control |
M52 | P0 (off) or P1 (on) | Adaptive Feed Control |
M53 | P0 (off) or P1 (on) | Feed Stop Control |
G54-G59.3 | Select Coordinate System | |
Flow-control Codes | ||
o sub | Subroutines, sub/endsub call | |
o while | Looping, while/endwhile do/while | |
o if | Conditional, if/else/endif | |
o repeat | Repeat a loop of code | |
[] | Indirection | |
o call | Call named file | |
M70 | Save modal state | |
M71 | Invalidate stored state | |
M72 | Restore modal state | |
M73 | Save and Auto-restore modal state | |
Input/Output Codes | ||
M62 - M65 | P | Digital Output Control |
M66 | P E L Q | Wait on Input |
M67 | T | Analog Output,Synchronized |
M68 | T | Analog Output, Immediate |
Non-modal Codes | ||
M6 | T | Tool Change |
M61 | Q | Set Current Tool |
G10 L1 | P Q R | Set Tool Table |
G10 L10 | P | Set Tool Table |
G10 L11 | P | Set Tool Table |
G10 L2 | P R | Set Coordinate System |
G10 L20 | P | Set Coordinate System |
G28, G28.1 | Go/Set Predefined Position | |
G30, G30.1 | Go/Set Predefined Position | |
G53 | Move in Machine Coordinates | |
G92 | Coordinate System Offset | |
G92.1, G92.2 | Reset G92 Offsets | |
G92.3 | Restore G92 Offsets | |
M101 - M199 | P Q | User Defined Commands |
Comments & Messages | ||
; (…) | Comments | |
(MSG,…) | Messages | |
(DEBUG,…) | Debug Messages | |
(PRINT,…) | Print Messages |
จะเห็นได้ว่า G-Code Support ที่สนองการทำงานของเครื่องจักร LinuxCNC จะมีการ Support ชุดคำสั่งมากกว่า Mach3 CNC controller นั่นหมายความว่า ขีดความสามารถของ LinuxCNC Controller จะมีความสามารถมากกว่า Mach3 CNC เช่นกันครับ
สำหรับประเทศไทยแล้ว ชอบการโฆษณาชวนเชื่อมากกว่าเหตุผลมันจึงเป็นที่มาของความไม่รู้จริง และ ปัญหาหากเราอยากเข้าสู่ยุค I4.0 คงจะต้องปรับปรุงวิธีการเรียนรู้กันครับ ด้วยความหวังดีและจริงใจ จาก PANMANEECNC