メインコンテンツにスキップ

M109 / M190 温度待機の最適化

機能説明

本設定では、TEMPERATURE_WAIT を使用してスマートな温度待機を実現し、温度オーバーシュートによる長時間の待機を回避します:

  • ノズル (M109):待機温度範囲は 目標温度 ±5°C

    • 例:200°C に設定した場合、温度が 195-205°C の範囲に達した時点で待機を開始
  • ヒートベッド (M190):待機温度範囲は 目標温度 -2°C から +5°C

    • 例:60°C に設定した場合、温度が 58-65°C の範囲に達した時点で待機を開始
    • ヒートベッドの許容範囲が大きいのは、熱慣性が強く、昇温/降温プロセスがより緩やかなためです

動作原理

  1. 非ブロッキング設定: マクロはまず M104/M140 で即座に目標温度を設定し、温度上昇を待ちません
  2. スマート待機: TEMPERATURE_WAIT を使用して、目標温度に近い妥当な範囲内で待機を開始
  3. オーバーシュート待機の回避: 従来の 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...