Aller au contenu principal

Arrêt sur coupure de courant et Reprise d'impression après coupure

À savoir

1. Concepts et processus des fonctionnalités

  • Arrêt sur coupure de courant

    • Concept : Lorsqu'une coupure de courant anormale est détectée, le système ne sauvegarde pas l'état d'impression actuel et exécute directement un arrêt sécurisé.
    • Processus de reprise : Lorsque l'alimentation est rétablie, l'appareil redémarre automatiquement et passe en mode veille. La tâche d'impression précédente est interrompue, vous devez démarrer manuellement une nouvelle impression.
  • Reprise d'impression après coupure

    • Concept : Lorsqu'une coupure de courant anormale est détectée, le système sauvegarde immédiatement la progression actuelle de l'impression (comme la position, la hauteur de couche), puis s'arrête.
    • Processus de reprise : Lorsque l'alimentation est rétablie, une confirmation de l'utilisateur est généralement requise pour que l'appareil puisse reprendre l'impression à partir du point d'interruption et terminer l'impression inachevée.

2. Règles principales

  • L'arrêt sur coupure de courant et la reprise d'impression après coupure sont des fonctionnalités mutuellement exclusives et ne peuvent pas être activées simultanément.
  • Si la fonction d'arrêt sur coupure de courant est activée, la fonction de reprise d'impression après coupure sera automatiquement désactivée.

3. Comment choisir

  • Choisir "Arrêt sur coupure de courant" : Si vous accordez plus d'importance à la sécurité électrique, ou si vous souhaitez que l'appareil démarre automatiquement et passe en veille après le rétablissement de l'alimentation, sans reprendre l'impression interrompue, activez cette fonction.
  • Choisir "Reprise d'impression après coupure" : Si vous effectuez fréquemment des tâches d'impression longues et critiques, et que vous souhaitez pouvoir reprendre l'impression à partir du point d'interruption après une coupure de courant, activez cette fonction.

Configuration

Désactiver l'arrêt en cas de coupure de courant

Information
  • Il est nécessaire de désactiver l'arrêt en cas de coupure de courant, sinon la fonction d'impression continue après une coupure ne pourra pas être utilisée.
  • La fonction d'arrêt automatique après la sauvegarde de la progression est présente dans la fonction d'impression continue après coupure.
  • Veuillez vous assurer qu'aucune autre alimentation n'est connectée à l'ordinateur hôte, sinon l'appareil ne pourra pas s'allumer.
  • Saisissez l'adresse IP de l'appareil dans la barre d'adresse du navigateur, par exemple : http://192.168.6.179

  • Accédez à la page de configuration

    • Ouvrez l'adresse IP de l'appareil dans le navigateur, par exemple : http://192.168.1.2/
    • Dans Fluidd, décochez comme indiqué sur l'image de gauche -> Filtrer les fichiers et dossiers cachés.
    • Dans Mainsail, cochez comme indiqué sur l'image de droite -> Afficher les fichiers cachés.
    Loading...
    Loading...
    • Vous devriez maintenant voir le dossier .flyos-config, entrez dans ce dossier où vous trouverez le fichier sys-config.conf.
    • Le fichier sys-config.conf est un lien symbolique vers le fichier de configuration config.txt présent dans la clé USB nommée FlyOS-Conf.
    Loading...
    • Ouvrez le fichier sys-config.conf et trouvez les paramètres shutdown_pin_state et shutdown_pin=.
    • Ajoutez un # devant ces paramètres.
    • Ensuite, enregistrez -> fermez et redémarrez l'appareil.
    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断电续打功能已经配置完成。

Explications sur [homing_override]

Attention
  • Attention : Si vous utilisez [homing_override], ne définissez pas arbitrairement la position de retour à l'origine dans [homing_override]. Nous ne sommes pas responsables des échecs de reprise après coupure de courant qui en résulteraient.
  • La configuration de [homing_override] est expliquée ci-dessous.
  • Explications
    • [force_move] : Active la fonction de déplacement forcé, permettant de se déplacer de force vers une position spécifiée.
    • [force_move] remplace la fonction set_position_z dans [homing_override]. Si cette configuration n'est pas respectée, cela peut entraîner un échec de la reprise après coupure de courant.
    • La configuration [homing_override] ci-dessous est destinée à permettre un retour à l'origine correct de l'axe Z lors de la reprise après coupure de courant.
[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 %}

  • Explication sur le soulèvement
    • Cette configuration n'est exécutée que si l'axe Z n'est pas en position d'origine. Elle n'affecte pas l'utilisation normale.
      {% if 'z' not in printer.toolhead.homed_axes %}
      SET_KINEMATIC_POSITION Z=0
      G90
      G0 Z5 F600
      {% endif %}

Explication de la configuration de [gcode_macro _CLIENT_VARIABLE]

  • Lorsque votre configuration inclut à la fois la macro [gcode_macro _CLIENT_VARIABLE] et que les variables suivantes sont définies :
  • Référence
[gcode_macro _CLIENT_VARIABLE]
variable_use_custom_pos: True # Activer la position personnalisée
variable_custom_park_dz: 5 # Définir le décalage de hauteur de stationnement personnalisé
  • Vous devez ajuster en conséquence la valeur du paramètre paused_recover_z dans le module [power_loss_resume], de sorte qu'elle ait le signe opposé à la valeur de décalage ci-dessus.

Correspondance de configuration

Variable macroParamètre module pause/repriseCorrespondance
variable_custom_park_dz: 5paused_recover_z: -5Signe opposé, même valeur
variable_custom_park_dz: -3paused_recover_z: 3Signe opposé, même valeur

Exemple de configuration

[gcode_macro _CLIENT_VARIABLE]
variable_use_custom_pos: True
variable_custom_park_dz: 5

[power_loss_resume]
paused_recover_z: -5

Important : Si cette correspondance n'est pas respectée, cela peut entraîner des erreurs de calcul de la hauteur de l'axe Z lors de la reprise après coupure de courant ou de la reprise après pause, affectant l'impression.

Tests

Premier test : Simuler une coupure de courant via un arrêt d'urgence

  1. Commencez à imprimer n'importe quel fichier. Pendant l'impression, cliquez sur le bouton Arrêt d'urgence pour simuler une coupure de courant.
  2. Cliquez à nouveau sur Redémarrage du firmware, attendez que Klipper se reconnecte et revienne à la normale.
  3. Observez si une fenêtre contextuelle apparaît sur l'interface web. Si c'est le cas, cela signifie que la fonction de reprise après coupure de courant fonctionne correctement.
  4. Vous pouvez ensuite tester davantage une coupure de courant réelle pour vérifier la fiabilité de la fonction.

Deuxième test : Simulation de coupure de courant réelle et vérification de la fonction

  1. Préparation du test : Après le démarrage normal du système et la connexion à Klipper, vérifiez d'abord l'état des indicateurs lumineux à côté de l'ordinateur principal. Généralement, une LED clignote lorsque le système fonctionne ; cet indicateur est l'indicateur clé à observer par la suite.
  2. Lorsque l'appareil fonctionne normalement et est connecté à Klipper, coupez directement l'alimentation pour simuler un scénario de coupure de courant réel.
  3. Vérifiez immédiatement si l'indicateur lumineux à côté de l'ordinateur principal s'éteint complètement dans les 5 secondes.
    • S'il s'éteint : Cela signifie que la fonction d'arrêt en cas de coupure de courant fonctionne correctement. Poursuivez les étapes suivantes.
    • S'il ne s'éteint pas : Cela signifie que la fonction d'arrêt automatique n'a pas fonctionné, généralement en raison d'une erreur dans la configuration (par exemple, le câblage ou la configuration de kppm). Il est nécessaire de vérifier attentivement et de résoudre le problème.
  4. Attendez au moins 5 secondes, puis rallumez l'alimentation. Observez si Klipper peut se reconnecter automatiquement et reprendre un fonctionnement normal. (La sauvegarde des données et l'arrêt nécessitent 3-5 secondes).
  5. Vérifiez l'interface web
    • Si une fenêtre contextuelle apparaît : Cela signifie que la fonction de reprise après coupure de courant a été activée avec succès et fonctionne normalement.
    • Si aucune fenêtre n'apparaît : Cela indique que la fonction de reprise après coupure de courant ne s'est pas déclenchée comme prévu. Veuillez vérifier systématiquement la configuration en fonction des phénomènes ci-dessus.
Loading...