grblHAL  G/M 指令摘要與用途說明

🗂️ 目錄


🧩 G 指令(G-codes)

🚀 1) 運動與插補

指令名稱/用途重點說明/常見用法
G0快速定位(Rapid)不受進給 F 影響(由機台最大速/設定限制)。
G1直線插補G1 X.. Y.. Z.. F..,F 為進給。
G2 / G3圓弧插補(CW/CCW)依平面(G17/18/19)解讀;IJK 或 R 依設定/模式。
G4停留(Dwell)常見:G4 P1.5(秒)。
G5 / G5.1曲線插補(樣條/樣條近似)視建置是否啟用(部分機型不支援)。
G33螺紋/同步進給(Threading)通常需主軸同步/編碼器支援;依外掛/硬體而定。
G38.2探測(觸發成功才算成功)失敗通常會報錯/中止(依設定)。
G38.3探測(可失敗不報錯)常用於「找邊/找表面」允許沒觸發的情境。
G38.4反向探測(失敗才算成功)用於反向偵測邏輯。
G38.5反向探測(可失敗不報錯)與 G38.4 類似但容錯。
G73 / G75 / G76循環/車削循環(依建置)常見於車床/循環加工擴充;若你是銑床韌體可能未啟用。
G80–G89固定循環(Canned cycles,依建置)例如鑽孔/擴孔/攻牙循環;是否可用取決於 RS274/NGC 功能啟用。

提示:圓弧/探測/固定循環最常見的「不動」原因是:平面/距離模式/單位或 IJK 模式不一致,或探針輸入未設定。


⚙️ 2) 模式與單位

指令名稱/用途重點說明
G17 / G18 / G19平面選擇(XY / XZ / YZ)圓弧(G2/G3)與某些循環依平面解讀。
G20 / G21英制/公制(inch/mm)影響 X/Y/Z、F、IJK、R 等數值單位。
G90 / G91絕對/增量影響座標解讀;常見「跑錯方向」來源。
G90.1 / G91.1IJK 絕對/增量(圓弧中心)依機型/設定;若不支援通常固定為增量。
G93 / G94 / G95進給模式(反時間/每分鐘/每轉)G95 通常需要主軸同步支援;車床常見。
G98 / G99循環退刀平面(依建置)影響固定循環退回 R 平面或起始 Z。

📐 3) 座標系統與偏置

指令名稱/用途重點說明/常見用法
G53機械座標(Machine coordinate)通常需搭配一行內使用:G53 G0 X0 Y0(不套用工件座標偏置)。
G54–G59 / G59.1–G59.3工件座標系(WCS)常用多工件/治具。
G10設定偏置(Set offsets)常見:G10 L2 P1 X.. Y.. Z.. 設定 G54;是否支援 L2/L20 依建置。
G92暫時座標偏置(Local shift)常用於臨時「把當前點當零點」;重開機/依設定可能不保留。
G92.1 / G92.2 / G92.3取消/清除 G92(依實作)Grbl 傳統常見 G92.1 清除;其餘子碼是否存在依韌體。
G28 / G30回參考點(Go to predefined position)G28/G30 目標點通常可持久化;「如何設定」依你韌體是否支援對應指令/流程。

🧰 4) 補償與刀長

指令名稱/用途重點說明
G40取消刀具半徑補償grblHAL 主要用於「取消」;G41/G42 多數情境不支援或需外掛。
G43 / G43.1刀長補償(Tool length offset)G43 常表示「套用目前刀長」;G43.1 常用於「直接指定 Z 刀長補償值」。
G49取消刀長補償取消 G43/G43.1 的影響。

實務建議:若你用 ATC/工具表,通常會讓換刀流程在 M6 或宏程式中處理「讀工具表 → 套用刀長(G43 或等效機制)」。


🧠 5) 其他常見(停留/巨集/子程序)

指令名稱/用途重點說明
G4停留G4 P..
G65呼叫巨集(Macro call,依建置)LinuxCNC 風格:G65 P<id> ...;完整支援通常在 SD/littlefs 中的宏檔。
O-words / IF/WHILE流程控制(依建置)多見於檔案式宏;串流送碼通常受限。

🧷 M 指令(M-codes)

🛑 1) 程式控制

指令名稱/用途重點說明
M0無條件停止暫停/停止(行為依 Sender/控制器)。
M1選擇性停止需配合「Optional stop」開關。
M2 / M30程式結束結束並重置程式狀態(實作略有差異)。

🌀 2) 主軸與冷卻

指令名稱/用途重點說明/常見用法
M3主軸正轉常搭配 SM3 S12000
M4主軸反轉同上。
M5主軸停止
M7霧化冷卻(Mist)視 IO/外掛。
M8洪流冷卻(Flood)視 IO/外掛。
M9冷卻全關關閉 M7/M8。

🧲 3) 換刀與工具

指令名稱/用途重點說明
M6換刀多數情境會觸發外掛/宏流程(ATC 或手動換刀提示)。
T(非 M)選刀常與 M6 搭配:T1 M6

🎚️ 4) Override/進給保持/IO 等(依建置)

指令名稱/用途重點說明
M48Override 允許/啟用(依實作)在部分 grblHAL 設計中用於允許 override(亦可能搭配其他 M 碼/參數)。
M50 P1/P2速度/進給 Override 相關(依實作)常見:M50 P1(速度)、M50 P2(進給)等,依你機台定義。
M53.1Feed hold 狀態/控制(依實作)依建置;常見作為進給保持/恢復的流程一環。
M66等待輸入(Wait for input,依建置)常用於「等到某輸入成立/逾時」;逾時常回傳 -1(依實作)。

⌨️ 附錄:即時控制字元(非 G/M,但常用)

🧩 A) 基本控制(最常用、通用)

字元名稱/用途備註
?即時狀態查詢(Status report)回傳狀態行(如 `<Idle
~Cycle Start / Resume解除 Feed Hold / 繼續執行。
!Feed Hold立即進給保持(暫停運動,狀態通常進入 Hold)。
Ctrl-XSoft Reset軟重置(清 buffer、回到 Idle;依狀態可能觸發 Alarm)。

🛡️ B) 系統/動作控制(依 Sender / build)

字元(Hex)名稱/用途備註
0x84Safety DoorSender 常以「Door」按鈕呈現。
0x85Jog Cancel取消 Jog(等同中止 Jog 串流/排程)。

🎚️ C) Override(進給/快速/主軸)

多數 Sender 會做成按鈕(+10% / -10% / Reset),不一定讓你直接輸入十六進位字元。

1) Feed Override

字元(Hex)名稱/用途備註
0x90Feed Override Reset
0x91Feed Override +10%
0x92Feed Override -10%
0x93Feed Override +1%
0x94Feed Override -1%

2) Rapid Override

字元(Hex)名稱/用途備註
0x95Rapid Override Reset
0x96Rapid Override Medium常見對應 50%(依實作)。
0x97Rapid Override Low常見對應 25%(依實作)。

3) Spindle Override

字元(Hex)名稱/用途備註
0x99Spindle Override Reset
0x9ASpindle Override +10%
0x9BSpindle Override -10%
0x9CSpindle Override +1%
0x9DSpindle Override -1%

🧯 D) 即時切換(Spindle / Coolant)

字元(Hex)名稱/用途備註
0x9EToggle Spindle Stop即時切換主軸停止(如有支援)。
0xA0Toggle Flood Coolant即時切換 Flood(如有支援)。
0xA1Toggle Mist Coolant即時切換 Mist(如有支援)。
Subscribe
Notify of
0
Would love your thoughts, please comment.x
()
x