M400 是什麼意思

韌體可以在機械結構還沒到達終點前,先接收多條移動指令。M400 建立一個同步點:前面的計劃運動完成前,後續指令不會越過它。蜂鳴、位置報告、釋放電機、拍照等必須在運動後發生的動作都會用到。

M400 與 G4 不同。G4 會等待一個指定時長,通常也先等前面運動;M400 只等待剩餘運動佇列所需時間。沒有移動時,除正常處理開銷外可以立刻完成。

寫法和參數

M400
No parameters

等待當前規劃器佇列清空,再繼續處理後續指令。

實際示例

移動後再蜂鳴

G1 X100 F6000
M400
M300 S440 P100

避免移動還在佇列中時就處理蜂鳴。

移動後再報告位置

M400
M114

先等運動結束,再請求位置。

不同韌體怎樣處理

系統支援情況具體差異
Marlin常見支援等待規劃器完成全部排隊移動。
Klipper常見支援作為標準等待當前移動完成指令支援。
RepRapFirmware常見支援支援運動同步,具體排程細節由韌體決定。
CNC controllers需要核對方言控制器通常有自己的佇列同步方式,M400 不是通用 CNC 語法。

這個檢視器能顯示什麼

能識別同步點

檢視器本來就按原始碼順序處理移動,所以 M400 不改變幾何;它會保留指令,但不能復現控制器緩衝和主機延遲。

常見錯誤

  • M400 不是急停,也不會取消已經排隊的移動。
  • 它不會在運動後保證額外暫停;需要固定時長時再配合 G4。
  • 等待指令運動結束不能證明機器沒有丟步並真實到位。

主要資料來源

本頁根據下面的韌體文件審閱並重新整理。真正傳送指令前,仍應以目標機器所用韌體和實際配置為準。