メインコンテンツまでスキップ

電源断時のシャットダウンとプリント再開

ご注意

1. 機能の概念とフロー

  • 電源断時のシャットダウン

    • 概念: 異常な電源断を検出した後、システムは現在のプリント状態を保存せず、直接安全にシャットダウンを実行します。
    • 復旧フロー: 電力が回復した後、デバイスは自動的に再起動し待機状態になります。以前のプリントジョブは中止されており、新しいプリントを手動で開始する必要があります。
  • 電源断時のプリント再開

    • 概念: 異常な電源断を検出した後、システムは直ちに現在のプリント進捗(位置、レイヤー高さなど)を保存し、その後シャットダウンします。
    • 復旧フロー: 電力が回復した後、通常はユーザーの確認が必要で、デバイスは電源断の位置から未完了のプリントを再開して完了することができます。

2. コアルール

  • 電源断時のシャットダウンとプリント再開は相互排他的な機能であり、同時に有効化することはできません。
  • 電源断時のシャットダウン機能を有効にすると、電源断時のプリント再開機能は自動的に無効になります。

3. 選択方法

  • 「電源断時のシャットダウン」を選択: 電力の安全性をより重視する場合、または電力回復後にデバイスが自動的に起動して待機状態になり、中断されたプリントを復旧する必要がない場合は、この機能を有効にしてください。
  • 「電源断時のプリント再開」を選択: 時間がかかり失敗が許されないプリントタスクを頻繁に行い、電源断後に中断点からプリントを再開したい場合は、この機能を有効にしてください。

設定

電源シャットダウンの無効化

注意
  • 断電継続印刷を使用するには、電源シャットダウンを無効にする必要があります。
  • 断電継続印刷機能には、進捗を保存した後に自動的にシャットダウンする機能があります。
  • 上位コンピュータに他の電源が接続されていないことを確認してください。そうでない場合、電源が入らなくなります。
  • ブラウザのアドレスバーにデバイスのIPアドレスを入力します。例:http://192.168.6.179

  • 設定ページへアクセスします。

    • ブラウザでデバイスのIPアドレスを開きます。例:http://192.168.1.2/
    • 左図のように、Fluiddでは「隠しファイルやフォルダを非表示」のチェックを外します
    • 右図のように、Mainsailでは「隠しファイルを表示」にチェックを入れます
    Loading...
    Loading...
    • この状態で.flyos-configフォルダが見えるようになります。このフォルダ内にsys-config.confファイルがあります。
    • sys-config.confファイルは、リムーバブルディスクFlyOS-Conf内の設定ファイルconfig.txtへのシンボリックリンクです。
    Loading...
    • sys-config.confファイルを開き、「shutdown_pin_state」と「shutdown_pin=」の設定を探します。
    • これらの設定の前に#を追加します。
    • 次に「保存」->「閉じる」を行い、その後再起動してください。
    Loading...

plr.cfg 配置文件

  • 在打印机配置页面中,找到plr.cfg 文件。
  • 将里面内容请空,然后将下方配置粘贴进去
  • 配置文件内容如下:
[mcu host]   
serial: /tmp/klipper_host_mcu

[power_loss_resume]
power_pin: host:gpiochip0/gpio260
is_shutdown: True # 是否执行关机操作, 默认为启用
paused_recover_z: -2.0 # 如果停机时为暂停打印,续打时Z移动距离, 默认为不移动
start_gcode:
# 开始续打前执行的gcode
# 断电前保存的所有参数均可通过{PLR}获取
# 可使用M118 {PLR}输出所有可用参数
# M118 {PLR}
M118 开始续打: {PLR.print_stats.filename}
M118 中断位置: X:[{PLR.POS_X}] Y:[{PLR.POS_Y}] Z:[{PLR.POS_Z}] E:[{PLR.POS_E}]
# 恢复所有加热器温度
{% for name, heater in PLR.heaters.items() %}
{% if heater.target > 0 %}
M118 设置加热器[{heater.name}] 目标温度: {heater.target}
SET_HEATER_TEMPERATURE HEATER="{heater.name}" TARGET={heater.target}
{% endif %}
{% endfor %}
# 等待挤出温度
{% if PLR.toolhead.extruder in PLR.heaters and PLR.heaters[PLR.toolhead.extruder].target > 0 %}
{% set extruder = PLR.heaters[PLR.toolhead.extruder] %}
M118 等待[{extruder.name}]到达目标温度: {extruder.target}
TEMPERATURE_WAIT SENSOR="{extruder.name}" MINIMUM={extruder.target-5} MAXIMUM={extruder.target+5}
{% endif %}
G91 ; 相对坐标
G1 Z2 F100 ; 抬升Z,准备X,Y归零
G90 ; 绝对坐标
G28 X Y ; 归零XY
M83 ; 相对挤出
# G1 E0.5 F400 ; 挤出一点
layer_count: 2 # 续打指定层数后执行layer_change_gcode
layer_change_gcode:
# 续打了{layer_count}层后要执行的gcode
M118 恢复打印速度
M106 S{PLR.fan_speed} ; 开启吹料风扇
M220 S{PLR.move_speed_percent} ; 设置请求速度百分比
M221 S{PLR.extrude_speed_percent} ; 设置请求挤出速度百分比
shutdown_gcode:
# 关机前执行的gcode
M118 电源电压低,关机
# M112 ; 紧急停止
  • 保存上面的配置文件后

  • 打开 printer.cfg 文件,在文件最前面加入以下内容:


    [include plr.cfg]

  • 点击右上角保存并重启即可。

  • 至此,Klipper断电续打功能已经配置完成。

[homing_override]についての説明

注意
  • [homing_override]を使用する場合、[homing_override]内でホーム位置を任意に設定しないでください。これによる電源復帰後の印刷再開失敗については一切責任を負いません。
  • 以下に[homing_override]の設定説明があります。
  • 説明
    • [force_move]: 強制移動機能を有効にし、指定位置への強制移動を許可します。
    • [force_move][homing_override]内のset_position_z機能に代わるものです。この設定に従わない場合、電源復帰後の印刷再開が失敗する可能性があります。
    • 以下の[homing_override]設定は、電源復帰後にZ軸を正しくホーム位置に戻すためのものです。
[force_move]
enable_force_move: true


[homing_override]
axes: z
gcode:
{% set max_x = printer.configfile.config["stepper_x"]["position_max"]|float %}
{% set max_y = printer.configfile.config["stepper_y"]["position_max"]|float %}
{% if 'z' not in printer.toolhead.homed_axes %}
SET_KINEMATIC_POSITION Z=0
G90
G0 Z5 F600
{% endif %}
{% set home_all = 'X' not in params and 'Y' not in params and 'Z' not in params %}

{% if home_all or 'X' in params %}
G28 X
{% endif %}

{% if home_all or 'Y' in params %}
G28 Y
{% endif %}

{% if home_all or 'Z' in params %}
G0 X{max_x / 2} Y{max_y / 2} F3600
G28 Z
G1 Z10 F2000
{% endif %}

  • リフトアップについての説明
    • この設定は、Z軸がホーム位置に戻っていない場合のみ実行される動作です。通常の使用には影響しません。
      {% if 'z' not in printer.toolhead.homed_axes %}
      SET_KINEMATIC_POSITION Z=0
      G90
      G0 Z5 F600
      {% endif %}

[gcode_macro _CLIENT_VARIABLE] の設定についての説明

  • 設定に [gcode_macro _CLIENT_VARIABLE] マクロが含まれており、以下の変数が設定されている場合:
  • 参考
[gcode_macro _CLIENT_VARIABLE]
variable_use_custom_pos: True # カスタム位置を有効にする
variable_custom_park_dz: 5 # カスタムパーク高さオフセットを設定
  • [power_loss_resume] モジュール内の paused_recover_z パラメータ値を、上記のオフセット値と符号が反対になるように調整する必要があります。

設定の対応関係

マクロ変数一時停止/再開モジュールパラメータ対応関係
variable_custom_park_dz: 5paused_recover_z: -5符号が反対、数値は同じ
variable_custom_park_dz: -3paused_recover_z: 3符号が反対、数値は同じ

設定例

[gcode_macro _CLIENT_VARIABLE]
variable_use_custom_pos: True
variable_custom_park_dz: 5

[power_loss_resume]
paused_recover_z: -5

重要: この対応関係を維持しない場合、電源復帰後の印刷再開または一時停止からの復帰時にZ軸高さの計算が誤り、印刷に影響する可能性があります。

テスト

ステップ1: 緊急停止による電源断のシミュレーション

  1. 任意のファイルの印刷を開始し、印刷中に 緊急停止 ボタンをクリックして、電源断の状況をシミュレートします。
  2. 再度 ファームウェア再起動 をクリックし、Klipperが再接続して正常に復旧するのを待ちます。
  3. ウェブインターフェースにポップアップ通知が表示されるか観察します。表示されれば、電源復帰後の印刷再開機能が正常に動作しています。
  4. その後、実際の電源断状況をテストして、機能の信頼性をさらに検証できます。

ステップ2: 実際の電源断シミュレーションと機能検証

  1. テスト準備: システムが正常に起動しKlipperに接続された後、ホストコンピュータ横のインジケータランプの状態を確認します。通常、システム稼働中はLEDが点滅しており、このインジケータランプが後続で観察する重要な指標となります。
  2. デバイスが正常に動作しKlipperに接続されている状態で、直接電源を切り、実際の電源断シナリオをシミュレートします。
  3. 直ちにホストコンピュータ横のインジケータランプが 5秒以内に完全に消灯するか を確認します。
    • 消灯した場合: 電源断シャットダウン機能が正常に動作しています。次のステップに進んでください。
    • 消灯しなかった場合: 自動シャットダウン機能が有効になっていないことを示します。通常、関連する設定(kppmの配線や設定など)に誤りがあるため、重点的にチェックし、問題を解決する必要があります。
  4. 少なくとも5秒待機した後、電源を再投入し、Klipperが自動的に再接続して正常に動作を再開するか観察します。(データ保存とシャットダウンには3-5秒かかります)
  5. ウェブインターフェースを確認します
    • ポップアップ通知が表示された場合: 電源復帰後の印刷再開機能が正常に起動・動作していることを示します。
    • 何も通知がない場合: 電源復帰後の印刷再開機能が期待通りに起動していないことを示します。上記の現象に基づいて、関連する設定を体系的に確認してください。

Loading...