Обнаружение пропуска шагов и калибровка без концевиков
Этот документ относится к платам: Duet 2 WiFi / Ethernet, Duet 3 MB6HC и Duet 3 Mini 5+.
Версия прошивки: RepRapFirmware 1.2 и новее (только Duet 2), RepRapFirmware 3.1.1 и новее.
Обзор
Драйверы Trinamic TMC2660 (Duet 2 WiFi / Ethernet), драйверы TMC5160 / 2160 (Duet 3 MB6HC) и драйверы TMC2209 (Duet 3 Mini 5+) поддерживают функцию stallGuard. Эта функция позволяет драйверу обнаруживать остановку двигателя. Обнаружение остановки может быть полезно для определения пропуска шагов, например по причине столкновения сопла с препятствием, а также для парковки осей без использования концевых выключателей.
Драйверы TMC2224 на Duet Maestro не поддерживают обнаружение пропуска шагов.
В прошивке (RRF 3.2), функция обнаружения пропуска шагов не работает с платами Duet 3 TOOL1LC и EB3HC и не может использоваться для парковки.
См. Раздел Ограничения конфигурации прошивки Duet 3.
Ограничения
- Порог обнаружения пропуска шагов необходимо настраивать под конкретный шаговый двигатель.
- Драйверы шагового двигателя обновляют состояние обнаружения пропуска шагов только каждые 1 или 4 полных шага, в зависимости от конфигурации.
Таким образом, фактическое положение при обнаружении шага будет соответствовать +/- половине полного шага или +/- 2 полных шага.
Это означает, что данный метод парковки намного менее точный, чем при использовании концевых выключателей. - Обнаружение пропуска шагов ненадежно при низких оборотах двигателя.
На низких скоростях возможны ложные срабатывания. Чтобы избежать этого, прошивка позволяет устанавливать минимальные скорости (в полных шагах двигателя в секунду), ниже которых обнаружение пропуска шагов будет игнорироваться. Эти значения, возможно, потребуется настроить в соответствии с вашими требованиями. Надежное обнаружение пропуска шагов легче настроить при более высоких скоростях двигателя. - Обнаружение пропуска шагов ненадежно при скоростях двигателя, которые слишком высоки, чтобы драйверы могли подавать напряжение, достаточное для поддержания тока двигателя.
Поэтому, если вы хотите использовать обнаружение пропуска шагов во время печати, вы должны ограничить скорость печати до значений, не требующих более высокого напряжения, чем обеспечивает ваш источник питания (максимум 25 В).
См. Раздел Выбор шаговых двигателей: как рассчитать необходимое напряжение источника питания. - Порог обнаружения пропуска шагов немного зависит от температуры двигателя, поэтому нельзя допускать значительных колебаний температуры двигателя.
- Обнаружение пропуска шагов работает путем обнаружения увеличения нагрузки двигателя.
Возможно, потребуется уменьшить ускорение и/или рывок, чтобы избежать ложного обнаружения пропуска шагов. - Очень вероятно, что обнаружение пропуска шагов работает лучше на слаботочных двигателях с большой индуктивностью, чем на сильноточных двигателях с малой индуктивностью, хотя мы не проверили это экспериментально.
К сожалению, двигатели с высокой индуктивностью страдают от снижения крутящего момента и повышенного шума на более низких скоростях, чем двигатели с низкой индуктивностью, поэтому их не рекомендуется использовать, если вы хотите получить перемещения с высокой скоростью.
Минимальная рекомендуемая скорость
Приблизительное значение минимальной скорости вращения (полных шагов в секунду) задаётся в параметре M915 H, для которой возможно получить надежное обнаружение пропуска шагов, определяется следующей формулой:
Hmin = full_steps_per_rev * Rated_current * actual_current / (sqrt (2) * pi * Rated_holding_torque)
где
- full_steps_per_rev - количество полных шагов на один оборот 200 (для двигателей 1.8) или 400 (для двигателей 0.9)
- Rated_current - ток (А)
- Rated_holding_torque - удерживающий момент (Нм).
По этой причине ток двигателя снижают во время парковки без концевиков (Sensorless Homing).
Старайтесь поддерживать скорость выше 40 мм/с.
Настройка
Обнаружение пропуска шагов настраивается командой M915.
- Pnnn:nnn:... Номер драйвера для настройки
- Оси X, Y, Z, U, V, W, A, B, C для настройки (альтернатива использованию параметра P)
- Snnn Порог обнаружения пропуска шагов (от -64 до +63, значения ниже -10 не рекомендуются).
Более высокие значения уменьшают чувствительность, более низкие значения повышают вероятность ложного обнаружения остановки. - Fn Режим фильтра
1 = с фильтром (одно показание на 4 полных шага)
0 = без фильтра (по умолчанию, 1 показание на полный шаг) - Hnnn (необязательно) Минимальные количество полных шагов двигателя в секунду, при котором работает обнаружение пропуска шагов.
По умолчанию 200 (попробуйте 400 для двигателей с 0,9 градуса). - Rn Действие при обнаружении пропуска шагов
0 = никаких действий (по умолчанию)
1 = вывести уведомление в консоль
2 = приостановить печать
3 = приостановить печать, выполнить /sys/rehome/.g и возобновить печать
Драйверы TMC5160 и TMC2260 содержат stallGuard 2 и работают в режиме spreadCycle.
Вам необходимо настроить скорость, с которой stealthChop переключается на spreadCycle, командой M569 V. По умолчанию 2000.
- Выполните в консоли команду M569 P [номер драйвера], чтобы увидеть текущую скорость (мм/сек) переключения в режим spreadCycle.
- Уменьшение значения параметра V увеличивает порог скорости, с которой драйвер переключается со stealthChop на spreadCycle.
Убедитесь, что настройка обнаружения пропуска шагов происходит, когда драйвер находится в режиме stealthChop.
Чувствительность обнаружения пропуска шагов (параметры S, F и H)
- Использование F1 должно снизить вероятность получения ложных срабатываний, а также позволяет выполнить настройку для более высокой скорости.
В худшем случае (Duet + Duex 5) состояние проверяется каждые 100 мкс.
Поэтому, если вы используете F0, время между полными шагами должно быть не менее 100 мкс, чтобы гарантировать обнаружение пропуска шагов.
При F1 время уменьшено до 25 мкс, но при этом возникает задержка обнаружения пропуска шагов.
Для парковки без концевиков (Sensorless Homing) рекомендуется использовать F0. - Установите самое низкое значение параметра S, при котором отсутствуют ложные обнаружения пропуска шагов.
Типичные значения для двигателей Nema 17 находятся в диапазоне от 1 до 3.
Ложные сообщения об остановке наиболее вероятны при быстром движении, поскольку ускорение увеличивает нагрузку на двигатель.
Ложные сообщения об остановке также более вероятны при горячем двигателе. - Если трудно подобрать значение S, которое надежно обнаруживает пропуск шагов без ложных срабатываний попробуйте следующее:
- Увеличьте минимальное количество полных шагов в секунду (параметр H) и используйте более высокие скорости перемещения.
- Уменьшите ускорение (M201) и/или рывок (M566).
- Если обнаружение пропуска шагов используется для парковки без концевиков, уменьшите ток двигателя на время парковки.
Смотрите команду M913: Set motor percentage of normal current.
- Используйте R0, если вы настраиваете обнаружение пропуска шагов для парковки без концевиков (Sensorless Homing).
- Используйте R1 при экспериментировании с другими параметрами, чтобы вы могли видеть, какой эффект они оказывают.
- Используйте R2 для автоматической остановки печати при обнаружении пропуска шагов.
- Используйте R3 чтобы выполнить парковку осей и продолжить печать автоматически.
У вас должен быть файл /sys/rehome.g с командами парковки.
На декартовом принтере или принтере CoreXY, как правило требуется парковка только для двигателей X и Y.