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

電源断時のシャットダウンと印刷再開

ご注意

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_stateshutdown_pin= の設定を見つけます。
    • これらの設定の前に # を追加します。
    • 次に 保存 -> 閉じる を選択し、再起動します。
    Loading...

plr.cfg 設定ファイル

  • プリンター設定ページで、plr.cfg ファイルを見つけます。
  • 中身を空にして、以下の設定を貼り付けます。
  • 設定ファイルの内容は以下の通りです:
  • C5バージョンの場合は以下のコードを使用してください
[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.print_stats.filename}
M118 中断位置: X:[{PLR.POS_X}] Y:[{PLR.POS_Y}] Z:[{PLR.POS_Z}] E:[{PLR.POS_E}]
M140 S{PLR.bed.target} ; ヒートベッド温度を設定
M104 S{PLR.extruder.target-10} ; エクストルーダー温度を設定
M109 S{PLR.extruder.target-10} ; エクストルーダーが設定温度に達するのを待機
G91 ; 相対座標
G1 Z2 F100 ; Z軸を上昇させ、X,Y軸を原点復帰準備
G90 ; 絶対座標
G28 X Y ; XY軸を原点復帰
M140 S{PLR.bed.target}; ヒートベッド温度を設定
M104 S{PLR.extruder.target} ; エクストルーダー温度を設定
M190 S{PLR.bed.target}; ヒートベッドが設定温度に達するのを待機
M109 S{PLR.extruder.target} ; エクストルーダーが設定温度に達するのを待機
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...