Обеспечение безопасной работы принтера на RepRap Firmware 3.4.
Про пожаробезопасность нагревательных приборов, к числу которых относится принтер, кто только не писал. Мое мнение – любой принтер должен быть обеспечен системой автоматического отключения при аварийных ситуациях. Для этого используются разнообразные устройства, которые позволяют отключить питание 220В принтера. Устройства могут быть как самосборные, так и заводского исполнения (Lerdge, BTT, MKS). Принцип действия у всех одинаков - по пропаданию управляющего сигнала от платы (PS_On). Мой выбор - PWC MKS – просто, функционально, не дорого.
Но разговор не о железе, а о софте. Все, что будет сказано, относится к RRF 3.4. Более ранние версии могут отличаться (например, именами файлов-макросов), в новых версиях однозначно будут изменения. Об этом говорится в комментариях релиза. Первый эшелон обороны это - обработка неисправностей нагревателя. Команда M570. При возникновении неисправности нагревателя создается событие, за обработку которого отвечает макрос-файл heater-fault.g. Если этот файл обнаружен в /sys, то событие будет обработано именно так, как там написано, без предварительной постановки печати на паузу. Т.е. если файл пустой, то печать продолжится, с отключенным нагревом, т.к. нагреватель вылетит в ошибку. Если heater-fault.g. не обнаружен, то печать приостанавливается и пользователь получает уведомление. В настоящее время RRF не пытается отключить питание всей машины, если пользователь не реагирует на уведомление о неисправности нагревателя. Разработчики обещают что-нибудь придумать в релизе RRF3.5 Второй эшелон обороны – это конфигурация нагревателя командой M143 с параметрами "A", "C" и "P". Параметр "P" - включает мониторинг наступления определенного события, описанного параметрами "A", "C". Возможно установить мониторинг до трех событий на один нагреватель - P0(по умолчанию), P1 и P2 Параметр "A" управляет тем, что будет сделано при наступлении события. Возможны 3 варианта - A0 (по умолчанию) - генерировать обработку неисправностей нагревателя. См. выше про "heater-fault.g" - A1 - постоянно отключить нагреватель (Switch off permanently) - A2 - временно отключить нагреватель (Switch off temporarily) - A3 - отключить принтер. Я не пользовался A1 и A2 и не скажу точно, как они работают. Параметр "C" условие формирования события - C0 (по умолчанию) - превышение температуры (Temperature too high) - C1 - температура слишком низкая (Temperature too low) - C-1 - запрет функции монитора (Monitor is disabled) Что такое "температура слишком низкая" для меня не понятно. Ниже какого значения? Возможно параметр "S" (Maximum permitted temperature) можно использовать не только максимум, но и как минимум. Не проверял. Теперь как все это можно и нужно использовать, особенно при наличии модуля автоотключения. В config.g делаем настройку нагревателя следующим образом.>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>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
Еще больше интересных статей
duet web control не регулируются обороты вентилятора обдува детали на BTT SKR V1.4
Подпишитесь на автора
Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.
Отписаться от уведомлений вы всегда сможете в профиле автора.
принтер у меня самодельно переделанный из ки...
Автоотключение 3d принтера
Подпишитесь на автора
Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.
Отписаться от уведомлений вы всегда сможете в профиле автора.
Началось с того, что в моем 3d принтере неудобно расположен выключател...
Настраиваем прошивку Marlin и заливаем её в 3D принтер
Подпишитесь на автора
Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.
Отписаться от уведомлений вы всегда сможете в профиле автора.
Комментарии и вопросы
кстати, печатный корпус ( како...
если эта штука под одеждой на....
хорошо что вы так думаете, уда...
Здравствуйте товарищи, внезапн...
присматриваюсь к данному аппар...
Добрый день, можете понятными...
всем привет скажите можно ли в...