Вопрос о работе контроллера 3D принтера
Модератор: Kaktus
Вопрос о работе контроллера 3D принтера
Доброго времени суток! Очень нужна помощь!
Я правильно понимаю, что работа контроллера 3D принетера происходит таким образом: УП загружается в память контроллера, контроллер читает команду УП, посылает ее на драйвер инструмента (например, шаговый двигатель), дожидается, пока к нему придёт сигнал о завершении выполнения команды, читает следующую команду, снова посылает, и в общем цикл повторяется, пока команды не закончатся.
Верно?
Нужен ли контроллеру отклик от драйвера или самого шагового двигателя, чтобы направить ему следующую команду? Или он просто выстраивает очередь из команд?
Буду очень благодарна, если Вы как можно подробнее опишите данный процесс!
Я правильно понимаю, что работа контроллера 3D принетера происходит таким образом: УП загружается в память контроллера, контроллер читает команду УП, посылает ее на драйвер инструмента (например, шаговый двигатель), дожидается, пока к нему придёт сигнал о завершении выполнения команды, читает следующую команду, снова посылает, и в общем цикл повторяется, пока команды не закончатся.
Верно?
Нужен ли контроллеру отклик от драйвера или самого шагового двигателя, чтобы направить ему следующую команду? Или он просто выстраивает очередь из команд?
Буду очень благодарна, если Вы как можно подробнее опишите данный процесс!
- 3D-SPrinter
- Сообщения: 10515
- Зарегистрирован: 19 ноя 2015, 14:23
- Имя: Андрей
- Откуда: Н.Новгород
- Благодарил (а): 76 раз
- Поблагодарили: 980 раз
- Контактная информация:
Re: Вопрос о работе контроллера 3D принтера
В 3д-принтере нет обратной связи. Контроллер тупо посылает с установленной скоростью импульсы step (шаг) и dir (направление) на драйверы шаговиков. От драйверов и моторов назад к контроллеру не поступает никакой информации. Так как мощность шаговиков многократно превышает необходимую для перемещения головки принтера, подразумевается, что головка по-любому сдвинется в указанную координату. Если головке что-то помешает, или райверы / моторы сгорят - контроллер об этом ничего не узнает и будет по-прежнему слать команды, пока не дойдёт до конца УП.
- 3D-SPrinter
- Сообщения: 10515
- Зарегистрирован: 19 ноя 2015, 14:23
- Имя: Андрей
- Откуда: Н.Новгород
- Благодарил (а): 76 раз
- Поблагодарили: 980 раз
- Контактная информация:
Re: Вопрос о работе контроллера 3D принтера
3D-SPrinter, спасибо Вам большое!
Можно еще небольшой вопрос: а как определяется "установленная скорость", с которой контроллер посылает импульсы?
Эта скорость рассчитывается исходя из g-кода? Т.е. контроллер считает что через N минут шаговый двигатель выполнит свою работу и через N минут посылает следующий сигнал?
Можно еще небольшой вопрос: а как определяется "установленная скорость", с которой контроллер посылает импульсы?
Эта скорость рассчитывается исходя из g-кода? Т.е. контроллер считает что через N минут шаговый двигатель выполнит свою работу и через N минут посылает следующий сигнал?
- 3D-SPrinter
- Сообщения: 10515
- Зарегистрирован: 19 ноя 2015, 14:23
- Имя: Андрей
- Откуда: Н.Новгород
- Благодарил (а): 76 раз
- Поблагодарили: 980 раз
- Контактная информация:
Re: Вопрос о работе контроллера 3D принтера
Скорость перемещений головы принтера настраивается в слайсере. Фактически это паузы между импульсами step. Контроллер тупо шлёт импульсы с установленной в слайсере скоростью. Вперёд по коду он не смотрит и ничего не планирует на минуту вперёд. Просто последовательно делает то, что написано в G-коде, сгенерированном слайсером. Так же можно увеличить общую скорость выполнения УП с помощью энкодера (крутилки) контроллера. Накручиваем 200% и получаем скорость в 2 раза больше.
- Alex Post
- Сообщения: 6993
- Зарегистрирован: 11 янв 2017, 17:22
- Имя: Александр
- Откуда: Брест, РБ
- Благодарил (а): 330 раз
- Поблагодарили: 817 раз
- Контактная информация:
Re: Вопрос о работе контроллера 3D принтера
Ну это в первом приближении. На самом деле есть понятия "ускорение" и "рывок", исходя из которых программа в МК (ее называют прошивкой обычно) и рассчитывает мгновенную скорость. Т.е. анализ Г-кода ведется, но не слишком глубоко , на один-два шага, чтоб понимать: нужно тормозить или разгоняться или двигаться с постоянной скоростью.
Prusa i3 rework - трудится с 2015 года
Черно-оранжевый 3D-SPrinter 232 - https://3deshnik.ru/forum/viewtopic.php?f=21&t=393
Черно-оранжевый 3D-SPrinter 232 - https://3deshnik.ru/forum/viewtopic.php?f=21&t=393
- 3D-SPrinter
- Сообщения: 10515
- Зарегистрирован: 19 ноя 2015, 14:23
- Имя: Андрей
- Откуда: Н.Новгород
- Благодарил (а): 76 раз
- Поблагодарили: 980 раз
- Контактная информация:
Re: Вопрос о работе контроллера 3D принтера
3D-SPrinter, и снова спасибо Вам огромное, чтобы я без Вас делала!
Однако у меня возник еще один вопрос простите... Вот кусочек реального G-кода, сгенерированного в Cura (скопировала).
...
G1 F1800 X15.15 Y149.85 E33.30545
...
G0 F3600 X114.7 Y149.85
...
F - скорость движения печатающей головки (мм в минуту).
X88.085 Y51.174 - соответственно перемещение печатающей головки. (мм) (Это, чтобы понятней обрисовать свой вопрос)
Соответственно, получается, что в УП все-таки не указана какая-то конкретная скорость или какой-то конкретный интервал, с которым контроллер посылает команды на драйвера ш.д.... Получается, он все таки должен посчитать исходя из известной формулы t=s/v время, спустя которое он пошлет следующий сигнал, правильно? Или я заблуждаюсь? Ведь в слайсере указывается именно скорость для печатающей головки для прохождения определенного расстояния, а не скорость, с которой контроллер посылает импульсы.
P.S. Вы даже не представляете, как поможете)
Однако у меня возник еще один вопрос простите... Вот кусочек реального G-кода, сгенерированного в Cura (скопировала).
...
G1 F1800 X15.15 Y149.85 E33.30545
...
G0 F3600 X114.7 Y149.85
...
F - скорость движения печатающей головки (мм в минуту).
X88.085 Y51.174 - соответственно перемещение печатающей головки. (мм) (Это, чтобы понятней обрисовать свой вопрос)
Соответственно, получается, что в УП все-таки не указана какая-то конкретная скорость или какой-то конкретный интервал, с которым контроллер посылает команды на драйвера ш.д.... Получается, он все таки должен посчитать исходя из известной формулы t=s/v время, спустя которое он пошлет следующий сигнал, правильно? Или я заблуждаюсь? Ведь в слайсере указывается именно скорость для печатающей головки для прохождения определенного расстояния, а не скорость, с которой контроллер посылает импульсы.
P.S. Вы даже не представляете, как поможете)
- Alex Post
- Сообщения: 6993
- Зарегистрирован: 11 янв 2017, 17:22
- Имя: Александр
- Откуда: Брест, РБ
- Благодарил (а): 330 раз
- Поблагодарили: 817 раз
- Контактная информация:
Re: Вопрос о работе контроллера 3D принтера
Да, именно так: программа, зашитая в микроконтроллере (прошивка) расшифровывает г-код, и в зависимости от того, куда и как быстро нужно двинуть голову, выдает на шаговые двигатели импульсы с нужной частотой. При этом математика рассчитывает разгон с установленным ускорением, равномерное движение с указанной слайсером скоростью и торможение опять с установленным ускорением. Опять же, если следом за движением следует движение в примерно том же направлении - торможение не происходит. В общем, довольно непростая математика
Но в первом приближении - да, скорость указанная слайсером пересчитывается в импульсы шаговиков по определенным правилам.
Но в первом приближении - да, скорость указанная слайсером пересчитывается в импульсы шаговиков по определенным правилам.
Prusa i3 rework - трудится с 2015 года
Черно-оранжевый 3D-SPrinter 232 - https://3deshnik.ru/forum/viewtopic.php?f=21&t=393
Черно-оранжевый 3D-SPrinter 232 - https://3deshnik.ru/forum/viewtopic.php?f=21&t=393
- 3D-SPrinter
- Сообщения: 10515
- Зарегистрирован: 19 ноя 2015, 14:23
- Имя: Андрей
- Откуда: Н.Новгород
- Благодарил (а): 76 раз
- Поблагодарили: 980 раз
- Контактная информация:
Re: Вопрос о работе контроллера 3D принтера
Александр всё правильно написал - математика в прошивке довольно сложная. И тут надо понимать, что в прошивке заданы максимальные скорости и ускорения, быстрее которых контроллер не будет печатать. И на коротких перемещениях скорость может не достичь заданной в слайсере, так как она ограничена максимальными ускорениями - голова принтера не успела разогнаться до указанной скорости, а ей уже тормозить надо. Накрутив энкодером 200% мы не получим в 2 раза меньшее время печати, потому что ускорения (разгон и торможение на перемещениях) остаются прежними (ограничены в прошивке). Максимальная скорость достигается только на длинных прямых прогонах.
-
- Сообщения: 60
- Зарегистрирован: 02 сен 2016, 23:22
- Имя: Александр
- Благодарил (а): 39 раз
- Поблагодарили: 7 раз
Re: Вопрос о работе контроллера 3D принтера
Предлагаю добавить схему в Wiki
Reprap аля SmartCore a.k.a 3ДСТО
SKR1.1 + TMS2208(XYEZ) + OrangePi PC Plus
Klipper
SKR1.1 + TMS2208(XYEZ) + OrangePi PC Plus
Klipper
-
- Сообщения: 1229
- Зарегистрирован: 23 ноя 2016, 22:50
- Имя: Денис
- Откуда: Дубна
- Благодарил (а): 44 раза
- Поблагодарили: 124 раза
Re: Вопрос о работе контроллера 3D принтера
Тока ошибку исправить =)
Когда на форуме переходят на "Вы", в реальной жизни уже давно бьют морду!
- Alex Post
- Сообщения: 6993
- Зарегистрирован: 11 янв 2017, 17:22
- Имя: Александр
- Откуда: Брест, РБ
- Благодарил (а): 330 раз
- Поблагодарили: 817 раз
- Контактная информация:
Re: Вопрос о работе контроллера 3D принтера
С ошибкой даже прикольно. Авторский знак типа. Если кто картинку стырит - можно авторские права предъявлять. ;(
Prusa i3 rework - трудится с 2015 года
Черно-оранжевый 3D-SPrinter 232 - https://3deshnik.ru/forum/viewtopic.php?f=21&t=393
Черно-оранжевый 3D-SPrinter 232 - https://3deshnik.ru/forum/viewtopic.php?f=21&t=393