Aller au contenu principal

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

À savoir

1. Concepts et processus des fonctionnalités

  • Arrêt en cas de 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 : Une fois l'alimentation rétablie, l'appareil redémarre automatiquement et se met en 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 : Une fois l'alimentation rétablie, une confirmation de l'utilisateur est généralement requise pour que l'appareil puisse reprendre l'impression inachevée à partir du point d'interruption.

2. Règles principales

  • L'arrêt en cas de 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 en cas de 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 en cas de coupure de courant" : Si vous accordez plus d'importance à la sécurité électrique, ou si vous souhaitez que l'appareil redémarre automatiquement et se mette en veille après le rétablissement du courant, sans avoir à reprendre une 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...

Fichier de configuration plr.cfg

  • Sur la page de configuration de l'imprimante, trouvez le fichier plr.cfg.
  • Videz son contenu, puis collez-y la configuration ci-dessous.
  • Le contenu du fichier de configuration est le suivant :
[mcu host]
serial: /tmp/klipper_host_mcu

[power_loss_resume]
power_pin: host:gpiochip0/gpio260
is_shutdown: True # Indique si l'arrêt doit être exécuté, activé par défaut
paused_recover_z: -2.0 # Distance de déplacement en Z lors de la reprise si l'impression était en pause, par défaut aucun mouvement
start_gcode:
# Gcode exécuté avant de reprendre l'impression
# Tous les paramètres sauvegardés avant la coupure de courant peuvent être obtenus via {PLR}
# Vous pouvez utiliser M118 {PLR} pour afficher tous les paramètres disponibles
# M118 {PLR}
M118 Reprise de l'impression : {PLR.print_stats.filename}
M118 Position d'interruption : X:[{PLR.POS_X}] Y:[{PLR.POS_Y}] Z:[{PLR.POS_Z}] E:[{PLR.POS_E}]
# Restaurer les températures de tous les éléments chauffants
{% for name, heater in PLR.heaters.items() %}
{% if heater.target > 0 %}
M118 Définir l'élément chauffant [{heater.name}] température cible : {heater.target}
SET_HEATER_TEMPERATURE HEATER="{heater.name}" TARGET={heater.target}
{% endif %}
{% endfor %}
# Attendre la température d'extrusion
{% if PLR.toolhead.extruder in PLR.heaters and PLR.heaters[PLR.toolhead.extruder].target > 0 %}
{% set extruder = PLR.heaters[PLR.toolhead.extruder] %}
M118 Attendre que [{extruder.name}] atteigne la température cible : {extruder.target}
TEMPERATURE_WAIT SENSOR="{extruder.name}" MINIMUM={extruder.target-5} MAXIMUM={extruder.target+5}
{% endif %}
G91 ; Coordonnées relatives
G1 Z2 F100 ; Lever Z, préparer la remise à zéro de X et Y
G90 ; Coordonnées absolues
G28 X Y ; Remise à zéro de XY
M83 ; Extrusion relative
# G1 E0.5 F400 ; Extruder un peu
layer_count: 2 # Exécuter layer_change_gcode après un nombre spécifié de couches reprises
layer_change_gcode:
# Gcode à exécuter après avoir repris {layer_count} couches
M118 Rétablir la vitesse d'impression
M106 S{PLR.fan_speed} ; Activer le ventilateur de refroidissement
M220 S{PLR.move_speed_percent} ; Définir le pourcentage de vitesse de déplacement demandée
M221 S{PLR.extrude_speed_percent} ; Définir le pourcentage de vitesse d'extrusion demandée
shutdown_gcode:
# Gcode exécuté avant l'arrêt
M118 Tension d'alimentation faible, arrêt
# M112 ; Arrêt d'urgence
  • Après avoir enregistré le fichier de configuration ci-dessus

  • Ouvrez le fichier printer.cfg et ajoutez le contenu suivant au début du fichier :


    [include plr.cfg]

  • Cliquez sur Enregistrer et redémarrer en haut à droite.

  • À ce stade, la fonction de reprise après coupure de courant de Klipper est configurée.

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...