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。
- 等待指令运动结束不能证明机器没有丢步并真实到位。
主要资料来源
本页根据下面的固件文档审阅并重新整理。真正发送指令前,仍应以目标机器所用固件和实际配置为准。