Обеспечение безопасной работы принтера на RepRap Firmware 3.4.
Про пожаробезопасность нагревательных приборов, к числу которых относится принтер, кто только не писал. Мое мнение – любой принтер должен быть обеспечен системой автоматического отключения при аварийных ситуациях. Для этого используются разнообразные устройства, которые позволяют отключить питание 220В принтера. Устройства могут быть как самосборные, так и заводского исполнения (Lerdge, BTT, MKS). Принцип действия у всех одинаков - по пропаданию управляющего сигнала от платы (PS_On). Мой выбор - PWC MKS – просто, функционально, не дорого.
Но разговор не о железе, а о софте. Все, что будет сказано, относится к RRF 3.4. Более ранние версии могут отличаться (например, именами файлов-макросов), в новых версиях однозначно будут изменения. Об этом говорится в комментариях релиза. Первый эшелон обороны это - обработка неисправностей нагревателя. Команда M570. При возникновении неисправности нагревателя создается событие, за обработку которого отвечает макрос-файл heater-fault.g. Если этот файл обнаружен в /sys, то событие будет обработано именно так, как там написано, без предварительной постановки печати на паузу. Т.е. если файл пустой, то печать продолжится, с отключенным нагревом, т.к. нагреватель вылетит в ошибку.
M80 C"pson" ; Указываем какой пин используется для автоотключения и выставляем его в «1»
M950 H1 C"e0heat" T1;создаем нагреватель сопла на порту "e0heat", связанный с датчиком 1 M143 H1 P0 S280 ;при превышении температуры 280 град сформировать ошибку нагревателя M143 H1 P1 S300 A3 ;при превышении температуры 300 град дать команду на отключение принтера M570 H1 ; включаем обработка неисправностей нагревателя>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> В heater-fault.g>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
; heater_fault.g
; called by heater fault var msg_str = "Heater "^{param.D}^" fault!" ;сторка сообщения M291 P{var.msg_str} S1 T0 ; вывод сообщения M0 ; прекращаем печать M106 S0 ; отключение обдува модели M568 A0 ; отключение нагрева M140 S-273.1 ; отключение стола M140 S0 - это не отключение. G91 ; относительное перемешение G1 H2 Z1 F7200 ; принудительно увеличиваем Z G28 XY ; парковка по X and Y M18 X Y E0 ; отключаем все движки, кроме Z>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Здесь просто пример, как можно сделать. Можно все, что после "M0", перенести в "stop.g", тогда весь этот завершающий код можно не писать в слайсере. Так же просто "M0". Тут большое поле для творчества. Можно, например, клавишу энкодера или подсветку экрана 12864 с Neopixel делать красной.В видео используются настройки
M143 H1 P0 S104 ; или S106 для разных сценариев отработки
M143 H1 P1 S110 A3
При S104 инерционности отключенного нагревателя не хватает для закидывание температуры за критическое значение в 110 градусов и принтер не отключается. При S106 – инерционности достаточно, чтобы сработала защита по второму пределу температуры.
Из замеченных особенностей: ошибка нагревателя стола и хотэнда "0" (Tool0) передается в heater-fault.g с одним и тем же значением параметра param.D = 0. Если вообще передается. Этот же ноль пишется в сообщениях, которые генерит сама система при отсутствии нагрева, или сильном отклонении температуры от заданного
Проверить в двухэкструдерном варианте у меня нет возможности. В принципе строки
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
var msg_str = "Heater "^{param.D}^" fault!" ;сторка сообщения
M291 P{var.msg_str} S1 T0 ; вывод сообщения
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
можно заменить на
M291 P"Heater fault!" S1 T0 ; вывод сообщения
но вдруг починят.
Рассказать про возможные варианты третьего эшелона обороны (для параноиков)? 😊
- В board.txt диагностический сигнал leds.diagnostic привязать к одному из выводов материнской платы и повесить на него электронный таймер, способный определять отсутствие импульсов как при нижнем, так и при верхнем уровне сигнала. Выход таймера поставить последовательно с сигналом PS_On от платы.
- Установить термопредохранитель в нагревательный блок, подключить последовательно сигналом PS_On от платы. Для PWC MKS можно использовать предохранители многоразового срабатывания (термореле).
- Если денег куры не клюют, то можно сделать цепь безопасности на базе сертифицированных на уровень полноты безопасности (УПБ - SIL) устройствах, например PhoenixContact PSR-M-B2-SDI8-SDO4-DO4-SC. Но тогда и датчик температуры, и нормирующий преобразователь должны быть сертифицированы на УПБ, иначе – это не по правилам функциональной безопасности.
PS. Почему PWC MKS – просто, функционально? Потому что позволяет сделать вот так (блок видео почему-то больше не вcтавляется): https://youtube.com/shorts/wOAIImrZh9o?feature=share
Еще больше интересных статей
Ender 3 V1 Retro - Marlin2, TMC2208, Vref, UART, DirectE
Подпишитесь на автора
Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.
Отписаться от уведомлений вы всегда сможете в профиле автора.
Модификация Creality Filament Dry Box (часть 2)
Подпишитесь на автора
Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.
Отписаться от уведомлений вы всегда сможете в профиле автора.
Настраиваем прошивку Marlin и заливаем её в 3D принтер
Подпишитесь на автора
Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.
Отписаться от уведомлений вы всегда сможете в профиле автора.
Комментарии и вопросы
Ага. Если айфоны на 99% собира...
Фото после "итоговый результат...
Спасибо!
Добрый день всем. Имею такую п...
И сколько это будет стоить?
Друзья, где можно найти настро...
Добрый день. Помогите пожалуйс...