Отключение при сбое питания и возобновление печати
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является символической ссылкой на файл конфигурацииconfig.txtна съёмном дискеFlyOS-Conf.
Loading...- Откройте файл
sys-config.conf, найдите параметрыshutdown_pin_stateиshutdown_pin=и измените их на следующие настройки: - Обратите внимание:
shutdown_pin=noneнеобходимо удалить или добавить перед ним символ#.
- Откройте IP-адрес устройства в браузере, например:
|
|
- Затем
Сохранить->Закрытьи перезагрузите систему.
Отключение выключения при отключении питания
- Необходимо отключить функцию выключения при потере питания, иначе невозможно будет использовать функцию возобновления печати после сбоя питания.
- В функции возобновления печати после сбоя питания есть возможность автоматического выключения после сохранения прогресса.
- Убедитесь, что к верхнему компьютеру не подключены другие источники питания, иначе он не включится.
-
Введите IP-адрес устройства в адресной строке браузера, например:
http://192.168.6.179 -
Перейдите на страницу конфигурации
- Откройте IP-адрес устройства в браузере, например:
http://192.168.1.2/ - В fluidd, как показано на левом рисунке ниже,
снимите галочку->Скрывать файлы и папки. - В mainsail, как показано на правом рисунке ниже,
установите галочку->Показывать скрытые файлы.
Loading...Loading...- Теперь вы увидите папку
.flyos-config. Войдите в эту папку, там будет файлsys-config.conf. - Файл
sys-config.confявляется символической ссылкой на файл конфигурацииconfig.txtна съемном дискеFlyOS-Conf.
Loading...- Откройте файл
sys-config.conf, найдите параметрыshutdown_pin_stateиshutdown_pin= - Добавьте символ
#перед этими параметрами - Затем
сохраните->закройтефайл и перезагрузите устройство
Loading... - Откройте IP-адрес устройства в браузере, например:
Файл конфигурации plr.cfg
- На странице конфигурации принтера найдите файл
plr.cfg. - Очистите его содержимое и вставьте приведенную ниже конфигурацию.
- Содержимое конфигурационного файла:
- Для C5
- Для C5-V1.1
- Если у вас версия
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:
# G-код, выполняемый перед началом возобновления печати
# Все параметры, сохраненные до отключения питания, доступны через {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:
# G-код, выполняемый после печати {layer_count} слоев
M118 Восстановление скорости печати
M106 S{PLR.fan_speed} ; Включить вентилятор обдува
M220 S{PLR.move_speed_percent} ; Установить процент запрашиваемой скорости перемещения
M221 S{PLR.extrude_speed_percent} ; Установить процент запрашиваемой скорости экструзии
shutdown_gcode:
# G-код, выполняемый перед выключением
M118 Низкое напряжение питания, выключение
# M112 ; Аварийная остановка
- Если у вас версия
C5-V1.1, используйте следующий код:
[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:
# G-код, выполняемый перед началом возобновления печати
# Все параметры, сохраненные до отключения питания, доступны через {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:
# G-код, выполняемый после печати {layer_count} слоев
M118 Восстановление скорости печати
M106 S{PLR.fan_speed} ; Включить вентилятор обдува
M220 S{PLR.move_speed_percent} ; Установить процент запрашиваемой скорости перемещения
M221 S{PLR.extrude_speed_percent} ; Установить процент запрашиваемой скорости экструзии
shutdown_gcode:
# G-код, выполняемый перед выключением
M118 Низкое напряжение питания, выключение
# M112 ; Аварийная остановка
-
После сохранения конфигурационного файла выше
-
Откройте файл
printer.cfgи добавьте в самое начало следующее содержимое:
[include plr.cfg] -
Нажмите "Сохранить и перезагрузить" в правом верхнем углу.
-
На этом настройка функции возобновления печати после отключения питания в Klipper завершена.
Пояснение к [homing_override]
- Обратите внимание: если используется
[homing_override], нельзя произвольно устанавливать позицию возврата в дом в[homing_override]. За сбои при возобновлении печати после отключения питания ответственность не несется. - Ниже приведены пояснения по конфигурации
[homing_override].
- Пояснение
[force_move]: Включает функцию принудительного перемещения, позволяя перемещаться в указанную позицию.[force_move]заменяет функциюset_position_zв[homing_override]. Если не следовать этой конфигурации, это может привести к сбою при возобновлении печати после отключения питания.- Конфигурация
[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 %}
- Эта конфигурация выполняется только если ось Z не была возвращена в исходное положение и не влияет на нормальную работу.
Пояснение к конфигурации [gcode_macro _CLIENT_VARIABLE]
- Когда ваша конфигурация включает макрос
[gcode_macro _CLIENT_VARIABLE]и установлены следующие переменные: - Справка
[gcode_macro _CLIENT_VARIABLE]
variable_use_custom_pos: True # Включить пользовательскую позицию
variable_custom_park_dz: 5 # Установить смещение высоты парковки
- Вы должны соответствующим образом скорректировать значение параметра
paused_recover_zв модуле [power_loss_resume], чтобы оно было противоположным по знаку указанному выше смещению.
Соответствие конфигураций
| Переменная макроса | Параметр модуля паузы/возобновления | Соответствие |
|---|---|---|
variable_custom_park_dz: 5 | paused_recover_z: -5 | Знаки противоположны, значения одинаковы |
variable_custom_park_dz: -3 | paused_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 при возобновлении печати после отключения питания или при паузе, что повлияет на печать.
Тестирование
Первый шаг тестирования: Имитация отключения питания через аварийную остановку
- Начните печать любого файла, во время печати нажмите кнопку Аварийная остановка, чтобы имитировать отключение питания.
- Снова нажмите Перезагрузка прошивки, дождитесь переподключения
Klipperи восстановления нормальной работы. - Проверьте, появится ли всплывающее окно в веб-интерфейсе. Если появится, значит функция возобновления печати после отключения питания работает нормально.
- В дальнейшем можно провести тестирование с реальным отключением питания для проверки надежности функции.
Второй шаг тестирования: Имитация реального отключения питания и проверка функциональности
- Подготовка к тесту: После нормального запуска системы и подключения
Klipperсначала проверьте состояние индикатора рядом с хост-компьютером. Обычно естьLED, который мигает во время работы системы. Этот индикатор является ключевым для последующего наблюдения. - При нормальной работе устройства и подключенном
Klipperнапрямую отключите питание, имитируя реальное отключение. - Немедленно проверьте, погаснет ли индикатор рядом с хост-компьютером в течение 5 секунд полностью.
- Если погас: значит функция автоматического выключения при отключении питания работает нормально, продолжайте следующие шаги.
- Если не погас: значит функция автоматического выключения не сработала, обычно из-за ошибки в соответствующей конфигурации (например, проводка или настройка
kppm). Необходимо тщательно проверить и устранить неисправность.
- Подождите не менее
5секунд, затем снова включите питание и проверьте, сможет лиKlipperавтоматически переподключиться и восстановить нормальную работу. (Сохранение данных и выключение занимает3-5секунд). - Проверьте веб-интерфейс
- Если появится всплывающее окно: значит функция возобновления печати после отключения питания успешно активирована и работает нормально.
- Если нет никаких уведомлений: значит функция возобновления печати после отключения питания не запустилась, как ожидалось. Пожалуйста, систематически проверьте соответствующую конфигурацию, исходя из вышеописанных явлений.