Греется мотор неработающего экструдера

Подписаться на 3Dtoday
booroondook
Идет загрузка
Загрузка
18 Февраля 2019
285
16
печатает на Anet A6
Вопросы и Ответы
Плата MKS Base (типа), прошивка Marlin 1.1.9, два экструдера. Соответственно, два податчика, у каждого свой мотор. Подключение согласно схеме.
Во время работы, в которой участвует только один экструдер (№1, скажем так) сильно греется мотор экструдера №2, который как бы в работе не участвует.
Причем, греется сильнее, чем работающий мотор.
Сейчас вот прямо на ходу выдернул из него фишку питания, и пока писал этот текст, прошло уже несколько минут. Измерил пирометром - работающий мотор 31 градус, неработающий 38 градусов. То есть, уже подостыл, но все еще горячий.
Моторы стоят рядом, но между ними где-то 5 мм зазора - т.е., нерабочий не мог нагреться от рабочего (и тем более, до более высокой температуры). Оба мотора типа NEMA17, но немного отличаются по исполнению.

Куда рыть?
Ответы на вопрос

Ответы

18.02.19 в 20:54
печатает на RepRap
2
второй наверное в режиме удержания стоит
18.02.19 в 21:03
печатает на Anet A6
0
Не спорю, возможно, так и есть. А это нормально? Может, его как-то отключать можно? Может, в конфигурации прошивки для этого какой-то параметр есть, который я упустил?
19.02.19 в 16:59
печатает на RepRap
0
Незнаю, что там в марлине, а в Репетире есть опция обесточивать мотор(ы) экструдера при ненадобности.
18.02.19 в 21:13
0
До какой температуры греется?
18.02.19 в 21:20
печатает на Anet A6
0
Ну, рука еще терпит, но с трудом. Видимо, градусов 55-60. К сожалению, я про свой пирометр поздно вспомнил, когда уже отключил питание от мотора, и прошло какое-то время. А снова подключать его ради эксперимента пока не хочется. У меня по плану в ближайшие дни нет двухэкструдерной печати, пока как-нибудь перебьюсь.
19.02.19 в 15:40
0
Ну, рука еще терпит, но с трудом. Видимо, градусов 55-60.
50 градусов рука терпит кратковременно
19.02.19 в 15:48
печатает на Anet A6
1
50 градусов рука терпит кратковременно
Сразу два возражения:
  1. У разных людей разная степень чувствительности (и разная степень грубости кожи).
  2. Понятие "кратковременно" растяжимо. В зависимости от обстоятельств один и тот же промежуток времени может считаться как долгим, так и кратким.
18.02.19 в 22:20
2
В стартовый код впилите
M18 Ex
Где x - неиспользуемый экструдер
И будет счастье
18.02.19 в 22:27
печатает на Anet A6
0
Спасибо! Попробую
P.S. "полистал" прошивку. Может быть, я ошибаюсь, но команда M18 не предусматривает никаких параметров (в смысле, адресации на конкретный двигатель), а просто делает дизейбл всем движкам.
19.02.19 в 16:55
печатает на Anycubic Kossel linear plus
0
Marlin 1.1.9 этот код с параметрами принимает, правда не проверял, выполняет ли.
Klipper параметры не принимает.
18.02.19 в 22:58
3
М84 отключает все двигатели.
М18 если без параметров - аналогично. Но если задать таймаут или соответствующий двигатель - отключает только указанный двигатель
18.02.19 в 22:59
1
Вот Тыц
19.02.19 в 17:03
печатает на RepRap
0
20.02.19 в 00:30
0
Marlin bugfix 2.0.0, файл \src\gcode\control\M17_M18_M84.cpp

void GcodeSuite::M18_M84() {
[ кусок пропускаю для экономии места ]
if (parser.seen('X')) disable_X();
if (parser.seen('Y')) disable_Y();
if (parser.seen('Z')) disable_Z();
// Only disable on boards that have separate ENABLE_PINS or another method for disabling the driver
#if (E0_ENABLE_PIN != X_ENABLE_PIN && E1_ENABLE_PIN != Y_ENABLE_PIN) || AXIS_DRIVER_TYPE(E0, TMC2660)
|| AXIS_DRIVER_TYPE(E1, TMC2660) || AXIS_DRIVER_TYPE(E2, TMC2660) || AXIS_DRIVER_TYPE(E3, TMC2660)
|| AXIS_DRIVER_TYPE(E4, TMC2660) || AXIS_DRIVER_TYPE(E5, TMC2660)
if (parser.seen('E')) disable_e_steppers();
#endif

Т.е. по факту - вроде и M18, и M84 умеют отключать отдельно X, Y, Z и экструдеры ( но только для тех плат, где есть физически отдельные линии для отключения экструдеров, и только все экструдеры вместе ).
Хотя если железо позволяет ( на плате есть отдельные ENABLE для каждого экструдера ), можно по аналогии и этот кусок программы подкорректировать ( вызвав процедуры disable_E0(), disable_E1() и т.д ). Чтобы долго не думать:
if (parser.seen('A')) disable_E0();
if (parser.seen('B')) disable_E1();
Тогда, скажем, "M18 B" будет выключать второй экструдер ( опять же - если на плате есть физически отдельный сигнал для отключение только второго экструдера ). Этим открытая прошивка и хороша...
20.02.19 в 06:52
печатает на RepRap
0
Вот про отдельные линии «Энэйбл» для каждого драйвера — годное замечание.
20.02.19 в 23:55
0
Кстати, если для нужного экструдера на плате есть отдельный сигнал ENABLE, найти его и для отключения выдавать что нужно через M42 ( это если M18 прямо так не умеет, а в программу лезть не хочется ).

P.S. В конфигурации для Марлина ( 2.0 ) в Configuration_adv.h есть параметр DISABLE_INACTIVE_E - но, к сожалению, это только для отключения неиспользуемых двигателей всех экструдеров сразу :(

Для написания комментариев, пожалуйста, авторизуйтесь.