Marlin: можно ли установить лимит ZMin при ZProbing?

Вопрос: Можно ли установить "ZMin-while-probing"? Это означает минимальную высоту Z, на которую может перемещаться стол принтера во время зондирования Z.

Назначение: По соображениям безопасности, если выключатель зонда по какой-то причине не сработает.

--

в Marlin Configuration.h я вижу, что вы можете установить высоту оси Z перед развертыванием ZProbe:

#определить Z_PROBE_DEPLOY_HEIGHT 35

В контексте этого вопроса это фактически "ZMax-while-probing", то есть самый низкий возможный уровень печатного стола до начала Z-зондирования.

Я ищу эквивалент "ZMin-while-probing". Причина этого - просто дополнительная проверка безопасности - я знаю, что если переключатель зонда не срабатывает при Z<=25, то он этого не сделает, и с этой конкретной конфигурацией принтера это приведет к тому, что зонд Z будет вбит в стол принтера.

Существует ли уже настройка для создания здесь проверки на вменяемость?

, 👍2


1 ответ


2

Вы не указали версию Marlin, которую используете. Я предполагаю, что мы обсуждаем последнюю версию Marlin 1.1 RC8.

Z_PROBE_DEPLOY_HEIGHT больше не существует, но в более ранних версиях Marlin он функционировал не так, как вы думаете; он использовался для обозначения количества Z-перемещения, которое необходимо выполнить до развертывания Z-зонда. Это делается для того, чтобы обеспечить свободное пространство для сервомонтированных, салазочных или других типов "уложенных" зондов. Это был не предел Z-перемещения, а количество Z-перемещения, которое всегда выполнялось перед началом самонаведения. Если принтер без Z_MAX_ENDSTOP оставлен в максимальном положении перемещения, использование ненулевого Z_PROBE_DEPLOY_HEIGHT может привести к сбою бота в максимальном конечном положении Z.

В этих предыдущих версиях Marlin высота самонаведения вычислялась комбинацией приведенных выше констант сложения и вычитания из некоторых других, которые с тех пор были заменены более простым и сингулярным Z_HOMEING_HEIGHT (который работает независимо от нового Z_CLEARANCE_DEPLOY_PROBE):

//#define Z_HOMING_HEIGHT 4 // (в мм) Минимальная высота z перед самонаведением
(G28) for Z clearance above the bed, clamps, ...

#define Z_CLEARANCE_DEPLOY_PROBE   10 // Z Зазор для развертывания / укладки

Абсолютное значение максимальных положений стола используется в Marlin в качестве проверки работоспособности, чтобы убедиться, что ни одна ось не перемещается больше этой величины за одно движение ни в положительном, ни в отрицательном направлении:

#define Z_MAX_POS 200

Если ваш зонд работает неправильно, никакая фиктивная Z_MIN_WHILE_PROBING не предотвратит, чтобы неисправный зонд врезался головой в стол, поэтому он не реализован, что позволяет проверке работоспособности Z_MAX_POS предотвратить бесконечную работу шагового двигателя оси Z во время состояния зонда fauly.

Если бы ваш Z_MIN_WHILE_PROBING был реализован, Если бы принтер был выключен (или Marlin разбился и т. Д.) С головкой на любом расстоянии Z, большем, чем Z_MIN_WHILE_PROBING, Не было бы никакого механизма для начала печати на следующем poweron, так как Marlin никогда не будет двигаться по отрицательной оси Z, кроме как во время зондирования G28 и после зондирования завершается успешно. Единственный способ восстановиться в этом случае состоял бы в том, чтобы кто-то постоянно пытался как домашний принтер, так и цикл питания, перемещая головку Z_MIN_WHILE_PROBING ближе к столу на каждой итерации. Это было бы неприемлемым для пользователя напряжением.

Кроме того, если бы Z_MIN_WHILE_PROBING был реализован, то единственная воспринимаемая мера безопасности, которую он добавил бы, состояла бы в том, что во время отказа зонда Z-степпер врезался бы в стол и продолжал бы работать только для вращений Z_MIN_WHILE_PROBING stepper вместо вращений Z_MAX_POS. Несмотря на это, стол будет поврежден, поэтому вряд ли будет добавлена дополнительная безопасность, и шаговый драйвер не должен перегреваться или вызывать какие-либо дополнительные повреждения (кроме того, что уже было сделано со столом) за один оборот Z_MAX_POS.

Для большего удобства во время самонаведения вы можете использовать функцию Z_MIN_PROBE_ENDSTOP с нормально замкнутым концевым выключателем, подключенным к доступному контакту на вашей плате управления:

// Включите Z_MIN_PROBE_ENDSTOP для использования _both_ зонда Z и Z-min-endstop на одной машине.
// При этом параметре Z_MIN_PROBE_PIN будет использоваться только для зондирования, а не для самонаведения.
//
//#define Z_MIN_PROBE_ENDSTOP

Затем используйте функцию Z_MIN_WHILE_PROBING, чтобы переместить головку над начальной позицией Z_MIN_PROBE_ENDSTOP для выполнения зондирования. Это гарантирует, что принтер выйдет из строя только для Z_PROBE_OFFSET_FROM_EXTRUDER Z stepper rotations, если зонд выйдет из строя:

#define Z_PROBE_OFFSET_FROM_EXTRUDER 0   // Смещение Z: -ниже + выше [сопла]

Таким образом, чтобы голова не врезалась в стол, вы должны убедиться, что ваш Z-зонд работает правильно :)


,