优化 M109 / M190 温度等待
功能说明
本配置通过 TEMPERATURE_WAIT 实现智能温度等待,避免温度过冲导致的长时间等待:
-
喷头 (M109):等待温度范围为
目标温度 ±5°C- 例如:设置 200°C 时,当温度达到 195-205°C 范围即开始等待
-
热床 (M190):等待温度范围为
目标温度 -2°C 到 +5°C- 例如:设置 60°C 时,当温度达到 58-65°C 范围即开始等待
- 热床容差范围较大是因为热惯性更强,升温/降温过程更缓慢
工作原理
- 非阻塞设置: 宏先通过
M104/M140立即设置目标温度,不等待温度上升 - 智能等待: 使用
TEMPERATURE_WAIT在接近目标温度的合理范围内开始等待 - 避免过冲等待: 传统 M109/M190 会等待温度完全稳定,此配置在温度进入容差范围后即继续执行,提高效率
配置示例
将以下宏添加到 printer.cfg 或独立宏文件中。此宏会覆盖 Klipper 原生的 M109 / M190 行为。
printer.cfg
[gcode_macro M109]
rename_existing: M109.1
gcode:
{% set s = params.S|float %}
M104 {% for p in params %}{'%s%s' % (p, params[p])}{% endfor %} # 设置喷头温度
{% if s != 0 %}
TEMPERATURE_WAIT SENSOR=extruder MINIMUM={s-5} MAXIMUM={s+5}
{% endif %}
[gcode_macro M190]
rename_existing: M190.1
gcode:
{% set s = params.S|float %}
M140 {% for p in params %}{'%s%s' % (p, params[p])}{% endfor %} # 设置热床温度
{% if s != 0 %}
TEMPERATURE_WAIT SENSOR=heater_bed MINIMUM={s-2} MAXIMUM={s+5}
{% endif %}
注意事项
- 建议先进行 PID 校准以获得更稳定的温度控制
- 此配置会覆盖 Klipper 原生的
M109/M190指令 - 如果温度波动较大,应优先检查热敏、加热器和 PID 参数
Loading...