Металл2024 Реклама
Метобр2024 Реклама

GCODE: Основы

xedos
Идет загрузка
Загрузка
25.04.2016
380682
66
Техничка

Подпишитесь на автора

Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.

Отписаться от уведомлений вы всегда сможете в профиле автора.

216
Добрый день Уважаемые читатели!

GCODE: Плюшки от ПавлушкиПосле написания предыдущей статьи ко мне стали поступать вопросы на поводу G-CODE.

Решил написать пост об основах G-CODE.

И так приступим …

Не для кого не секрет, что наш с Вами 3D принтер является простым ЧПУ станком (CNC), который просто выполняет команды оператора.

Чтобы мы с принтером понимали друг друга, умными людьми в начале 1960 годов был придуман специальный язык под названием «G-CODE» (G-код).

Программа, написанная с использованием G-кода, имеет жесткое строение.

Все команды управления объединяются в кадры - состоящие из одной или более команд.

Кадр завершается символом перевода строки (CR/LF).

Порядок команд в кадре строго не оговаривается, но традиционно предполагается, что первыми указываются подготовительные команды, затем команды перемещения, затем выбора режимов обработки и технологические команды.

Если говорить коротко, то наш ПК через USB, просто посылают команды на порт принтера (микроконтроллера), а принтер без прикословно их выполняет.

Немного забегая вперед скажу, что G-код для принтера местами отличается от привычного G-кода. Какие-то команды были переделаны под нужды принтера, какие-то были удалены, какие-то вообще не используются, но в целом все очень похоже.

Описание команд будет производится для прошивки MARLIN, возможно будет работать и на других прошивках.

Будут рассмотрены самые только самые основные команды (рабочий минимум), в поисках экзотики, можно пройти по ссылке.

Сами команды делятся на группы:

G - Подготовительные (основные) команды;

М - Вспомогательные (технологические) команды.

Эти команды имеют параметры.

X - Координата точки траектории по оси X [G0 X100 Y0 Z0]

Y - Координата точки траектории по оси Y [G0 X0 Y100 Z0]

Z - Координата точки траектории по оси Z [G0 X0 Y0 Z100]

E - Координата точки выдавливания пластика [G1 E100 F100]

P - Параметр команды [M300 S5000 P280]

S - Параметр команды [G04 S15]

F - Параметр команды, подача (скорость) [G1 Y10 X10 F1000]

G - команды

G0 - Холостой ход, без работы инструмента [G 0 X 10]

G1 - Координированное движение по осям X Y Z E [G 1 X 10]

G4 - Пауза в секундах [G4 S15]

G28 - Команда Home - паркуем головку [G28 Y0 X0 Z0]

G90 - Использовать абсолютные координаты [G90]

G91 - Использовать относительные координаты [G91]

G92 - Установить текущую заданную позицию [G92]

Пояснение:

Относительные координаты - это координаты относительно текущего положения головки.

На пример, если головка находиться в положении X10 Y10, то при подаче команды G91

G1 X10 F1000
, произойдет смещение головы на 10 мм по оси Х на скорости 1000.

Эту команду можно делать много раз, до достижения «софтового» ограничение в прошивке.

Абсолютные координаты - это координаты, строго привязанные к рабочей области.

При выполнении команды G90 G1 X10 F1000 - головка сместиться в координату X10 на скорости 1000.

Команда выполниться только один раз.

Обычные команды

M0 - Сделать паузу и ожидать нажатия кнопки на LCD дисплеи (работает если в прошивку установлен параметр ULTRA_LCD) [G0 X10 Y10 Z10 M0]

M17 - Подать ток на двигатели (двигатели руками не вращаются)

M18 - Убрать ток с двигателей (двигатели можно вращать руками, аналог M84)

M42 - Управление контактами ARDUINO MEGA 2560 [M42 P4 S255]

M80 - Включить питание, только для ATX - блок питания

M81 - Выключить питания, только для ATX - блок питания

M84 - Выключение всех осей (моторов после простоя) [M84 S10]

М112 - Экстренная остановка

M114 - Получить текущие координаты

M115 - Получить версию прошивки

M117 - Написать сообщение на экране [M117 Hello World]

M119 - Получить статус концевиков

M300 - Проиграть звук [M300 S5000 P280]

Команды SD карты

M20 - Прочитать SD карту (прочитать список файлов)

M21 - Инициализировать SD карту

M22 - Использовать SD карту

M23 - Выбрать файл с SD карты [M23 filename.gcode]

M24 - Начать/возобновить печать с SD карты

M25 - Пауза печати с SD карты

M26 - Установить позицию SD карты в байтах [M 26 S 12345]

M27 - Узнать статус печати с SD карты

M28 - Записать файл на SD карту [M 28 filename . gcode]

M29 - Закончить записать файла на SD карте

M30 - Удалить файл с SD карты [M 30 filename . gcode]

M31 - Получить значение, сколько прошло времени с последнего M109

M32 - Выбрать файл с SD карты и начать печатать [M 32 / path / filename #]

M928 - Логирование на SD карту [M 928 filename . gcode]

Экструдер

M82 - Установить экструдер в абсолютную систему координат

M83 - Установить экструдер в относительную систему координат

M104 - Ожидание нагрева экструдера до определенной температуры [M104 S190]

M105 - Получить текущую температуру экструдера [M105 S2]

M106 - Включение вентилятора обдува детали [M106 S127] - мощность 50%

M107 - Выключение вентилятора обдува детали [M 107]

M109 - Нагреть экструдер и удерживать температуру [M109 S215]

Стол

M140 - Установить температуру стола [M140 S65]

M190 - Нагреть стол и удерживать температуру [M190 S60]

PID M301 - Записать PID параметры в EEPROM [M301 H1 P1 I2 D3]

где: H0 – стол, H1 – экструдер

M302 - Разрешить холодное выдавливание [M302 P1].

M303 - Запустить процесс PID калибровки [M303 E-1 C8 S110]

где: E-1 – стол, E0 – хотэнд, C8 – количество попыток, S – температура.

M304 – Задать PID параметры для стола [M304 P1 I2 D3]

EEPROM – внутренняя память микроконтроллера (не обнуляется при выключении)

M500 - Сохранить параметры в EEPROM

M501 - Прочитать параметры из EEPROM

M502 - Сброс параметров EEPROM

Филамент

M200 - Задать диаметр филамента [M200 D1.128]

M600 – Замена филамента.

Данные команды можно подавать в консоли из таких программ как Pronterface или Universal-G-Code-Sender.

В Pronterface можно включить режим ответа в меню Settings / Debug communications, программа будет писать все ответы от принтера.
GCODE: Основы
GCODE: Основы
Можно дописать в слайсерах (Slic3r и Cura) в начале и в конце G-код файла.
GCODE: Основы
GCODE: Основы
Или открыть файл с G-кодом в блокноте и написать все руками. =)

Чтобы не быть голословным предлагаю Вам разобрать пример G-кода программы:

M190 S60 - включаем нагрев стола и ждём, пока он не нагреется до температуры 60 градусов

M109 S210 - включаем нагрев сопла и ждём, пока оно не нагреется до температуры 210 градусов

G21 - устанавливает метрическую систему координат

G90 - устанавливает абсолютную систему координат

M82 - устанавливает абсолютную систему координат для экструдера

M107 - выключаем обдув детали

M300 S5000 P280 – звуковой сигнал

G28 X0 Y0 - команда Home X Y

G28 Z0 - команда Home Z

G1 X100 Y100 Z5 F1000 - центруем сопло относительно стола

G92 E0 - обнуляет количество выдавленного пластика

G1 F300 E4 - выдавливаем 4 мм пластика со скоростью 300 мм

M117 Printing - выводит сообщение на экран

M106 S125 - включаем обдув детали со скоростью 50%

G1 Z0 - опускаем сопло на 0 мм

G1 X96.11 Y110.92 E87.55 - ездим по координатам и выдавливаем пластик

G1 Z0.2 - поднимаем сопло на 0.2 мм

G1 X96.11 Y111.00 E89.60 - ездим по координатам и выдавливаем пластик

M140 S50 - изменяем температуру стола

.....

G1 Z4.8 - поднимаем сопло на 4.8 мм

G1 X96.11 Y110.92 E87.55 - ездим по координатам и выдавливаем пластик

G1 Z5 - поднимаем сопло на 5 мм

G1 X96.11 Y111.00 E89.60 - ездим по координатам и выдавливаем пластик

G91 - устанавливает относительную систему координат

G1 E-5 F200 - всасывание экструдером 5 мм прутка

M104 S0 - отключением нагрев экструдера

M140 S0 - отключением нагрев стола

M107 - выключаем обдув детали

M84 - выключаем шаговые двигатели

M300 S5000 P280 – звуковой сигнал

Благодарю Вас за внимание!

Подпишитесь на автора

Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.

Отписаться от уведомлений вы всегда сможете в профиле автора.

216
Комментарии к статье
Кремень КБ Реклама
Кремень КМ Реклама