M400 是什麼意思
韌體可以在機械結構還沒到達終點前,先接收多條移動指令。M400 建立一個同步點:前面的計劃運動完成前,後續指令不會越過它。蜂鳴、位置報告、釋放電機、拍照等必須在運動後發生的動作都會用到。
M400 與 G4 不同。G4 會等待一個指定時長,通常也先等前面運動;M400 只等待剩餘運動佇列所需時間。沒有移動時,除正常處理開銷外可以立刻完成。
寫法和參數
M400No parameters等待當前規劃器佇列清空,再繼續處理後續指令。
實際示例
移動後再蜂鳴
G1 X100 F6000
M400
M300 S440 P100避免移動還在佇列中時就處理蜂鳴。
移動後再報告位置
M400
M114先等運動結束,再請求位置。
不同韌體怎樣處理
| 系統 | 支援情況 | 具體差異 |
|---|---|---|
| Marlin | 常見支援 | 等待規劃器完成全部排隊移動。 |
| Klipper | 常見支援 | 作為標準等待當前移動完成指令支援。 |
| RepRapFirmware | 常見支援 | 支援運動同步,具體排程細節由韌體決定。 |
| CNC controllers | 需要核對方言 | 控制器通常有自己的佇列同步方式,M400 不是通用 CNC 語法。 |
這個檢視器能顯示什麼
能識別同步點
檢視器本來就按原始碼順序處理移動,所以 M400 不改變幾何;它會保留指令,但不能復現控制器緩衝和主機延遲。
常見錯誤
- M400 不是急停,也不會取消已經排隊的移動。
- 它不會在運動後保證額外暫停;需要固定時長時再配合 G4。
- 等待指令運動結束不能證明機器沒有丟步並真實到位。
主要資料來源
本頁根據下面的韌體文件審閱並重新整理。真正傳送指令前,仍應以目標機器所用韌體和實際配置為準。