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

適用範圍:以 Grbl 1.1 指令集合為基礎,並補充 grblHAL 常見擴充(例如:G43.1、G65/巨集、部分循環/車削循環等)。

注意:grblHAL 的 **實際可用 G/M 指令會依建置選項(Web Builder / config)、控制板驅動、外掛(spindle/coolant/tool changer 等)**而不同。若你發現某些碼在你的機器上回 error,多半是「未啟用」或「該外掛未載入」。


🧩 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,但常用)

字元名稱/用途
?即時狀態查詢(Status report)
~Cycle Start / Resume
!Feed Hold(立即暫停進給)
Ctrl-X軟重置(Soft reset)
“””
path = “/mnt/data/grblHAL_GM_Codes_Summary_with_icons.md”
with open(path, “w”, encoding=”utf-8″) as f:

f.write(md)

path

Subscribe
Notify of
0
Would love your thoughts, please comment.x
()
x