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。
  • 等待指令运动结束不能证明机器没有丢步并真实到位。

主要资料来源

本页根据下面的固件文档审阅并重新整理。真正发送指令前,仍应以目标机器所用固件和实际配置为准。