ЧПУ. Часть5. G-коды

Краткое содержание предыдущих серий:

http://smart-el.ru/?p=527 ЧПУ. Часть4. Первый запуск

http://smart-el.ru/?p=504 ЧПУ. Часть3. GRBL.

http://smart-el.ru/?p=486 ЧПУ. Часть2. Собираем станину.

http://smart-el.ru/?p=466 ЧПУ. Часть1. Детали из пластика

http://smart-el.ru/?p=424 ЧПУ станок. Анонс !!!

Итак станок готов (хотя в настоящее время идут работы по усовершенствованию каретки и добавлению оси Z — следите за публикациями )

Сейчас самое время разобраться с управлением.

G-код используется во многих автоматических процессах производства. Он используется для управления станками ЧПУ и 3D принтерами. Посредством простых текстовых команд, которые можно посылать даже в обычном консольном режиме, станок понимает какие действия с двигателями или шпинделем ему необходимо выполнить.
Несмотря на то, что G-код сам по себе является неким стандартом, некоторые разработчики не брезгуют вносить в него оригинальные дополнения и изменения. Но в целом — это единый стандарт языка программирования.
Как программа, написанная на любом языке программирования G-код имеет свою структуру. Он состоит из блоков-кадров, которые в свою очередь содержат набор команд. Сначала идут команды подготовки (первоначальная установка инструмента, выбор системы координат и т.д.), затем управления перемещением, потом технологические команды. Каждая команда может иметь свои параметры. Комментарии обычно заключают в круглые скобки. Кадры обозначаются буквой N. Обычно максимальное количество команд в кадре не превышает 4.
Подготовительные и основные команды начинаются с буквы G, технологические — M.
Список команд приведен в нижней части статьи. На копирайт не претендую, взято — здесь.

А теперь разберем все на примере, для этого напишем программу, рисующую рабочим инструментом (фрезой, лазером, карандашом) квадрат со стороной 50мм:

%
G00 Z0.8            (поднятие каретки на безопасную высоту по оси Z)
G00 X0 Y0          (перемещение каретки к точке начала )
G01 Z-1.2 F50     (опускание каретки на необходимую глубину )
G01 X0 Y50 F50   (делаем сторону 1)
G01 X50 Y50       (делаем сторону 2)
G01 X50 Y0        (делаем сторону 3)
G01 X0 Y0          (делаем сторону 4)
G00 Z0.8 F70      (поднятие каретки на безопасную высоту)
M30                  (конец  программы)
%

Как видите ничего сложного. Слать команды в Ардуину (станок) можно программой Grbl Controller. Она описана в Части 3. Сохранять программу можно в обычном текстовом файле. Затем открыть его кнопкой Choose file и нажать кнопку Begin. В левом нижнем окошке вы увидете свою программу, а если справа выбрать вкладку Visualizer, то можно увидеть как движется инструмент по рисунку.

Видео самого процесса выложу чуть позже.

Пока на этом все! Комментируем и читаем комменты ниже.

GRBL controller

Таблица основных команд

Код Описание
G00 Ускоренное перемещение инструмента (холостой ход)
G01 Линейная интерполяция
G02 Круговая интерполяция по часовой стрелки
G03 Круговая интерполяция против часовой стрелки
G04 Задержка на P миллисекунд
G10 Задать новые координаты для начала координат
G11 Отмена G10
G15 Отмена G16
G16 Переключение в полярную систему координат
G20 Режим работы в дюймовой системе
G21 Режим работы в метрической системе
G22 Активировать установленый предел перемещений (Станок не выйдет за их предел).
G23 Отмена G22
G28 Вернуться на референтную точку
G30 Поднятие по оси Z на точку смены инструмента
G40 Отмена компенсации размера инструмента
G41 Компенсировать радиус инструмента слева
G42 Компенсировать радиус инструмента справа
G43 Компенсировать высоту инструмента положительно
G44 Компенсировать высоту инструмента отрицательно
G53 Переключиться на систему координат станка
G54-G59 Переключиться на заданную оператором систему координат
G68 Поворот координат на нужный угол
G69 Отмена G68
G80 Отмена циклов сверления (G81-G84)
G81 Цикл сверления
G82 Цикл сверления с задержкой
G83 Цикл сверления с отходом
G84 Цикл нарезание резьбы
G90 Абсолютная система координат
G91 Относительная система координат
G94 F (подача)- в формате мм/мин.
G95 F (подача)- в формате мм/об.
G98 Отмена G99
G99 После каждого цикла не отходить на «подходную точку»

Таблица технологических кодов

Технологические команды языка начинаются с буквы М. Включают такие действия, как:

  • Сменить инструмент
  • Включить/выключить шпиндель
  • Включить/выключить охлаждение
  • Вызвать/закончить подпрограмму

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

 

Код Описание
M00 Приостановить работу станка до нажатия кнопки «старт» на пульте управления, так называемый «технологический останов»
M01 Приостановить работу станка до нажатия кнопки «старт», если включен режим подтверждения останова
M02 Конец программы
M03 Начать вращение шпинделя по часовой стрелке
M04 Начать вращение шпинделя против часовой стрелки
M05 Остановить вращение шпинделя
M06 Сменить инструмент
M07 Включить дополнительное охлаждение
M08 Включить основное охлаждение
M09 Выключить охлаждение
M30 Конец информации
M98 Вызов подпрограммы
M99 Конец подпрограммы, возврат к основной программе

Параметры команд задаются буквами латинского алфавита

Константы

Код Описание
X Координата точки траектории по оси X
Y Координата точки траектории по оси Y
Z Координата точки траектории по оси Z
F Скорость рабочей подачи
S Скорость вращения шпинделя
R Радиус или параметр стандартного цикла
D Параметр коррекции выбранного инструмента
P Величина задержки или число вызовов подпрограммы
I,J,K Параметры дуги при круговой интерполяции
L Вызов подпрограммы с данной меткой

 

Посмотрите так же...
10 комментариев
  1. Vlad:

    А есть примерчик G кода? Вы же как-то «двигаете» по осям, свой станочек при тестировании, можно посмотреть, что из себя это перекрещение представляет в коде?

  2. admin:

    А чем не нравится пример, приведенный выше? Убираем скорость (F) и вуаля… двигаем станочком

  3. REST:

    Эт че мне вручную все писать? а если деталь сложная? и допустим линии не ровные а кривые?

  4. admin:

    Для этого есть специальные программы. К примеру ArtCam http://yandex.ru/video/search?text=artcam%20g-code&path=wizard&redircnt=1446183854.1

  5. Gogi:

    День добрый!
    А что, продолжения не будет? А то я в ожидании этого самодельного ЧПУ станка с управлением на arduino. Проект закрылся?:(

  6. Евгений:

    Я тоже собираю ЧПУ станок, тоже на arduino, есть ещё куча моментов, которые мне не удалось найти в инете. Будьте добры, отпишитесь на мыло, будем конструировать сообща)
    Genek980@yandex.ru

  7. Александр:

    Как откалибровать станок? Как задать чтобы 1 шаг в GRBL = 1 мм. пределы рабочей области

  8. admin:

    Александр, смотря какой у Вас привод? Шпилька? Ремень? Какой драйвер? Какие перемычки стоят на драйвере по кратности шага (1\16, 1\8 … ) Если не знаете — давайте разбираться вместе.

    • Александр:

      nema17, шпилька 8мм, arduino uno + cnc shield. v3 с драйверами (на них только резистор силы тока, перемычек нет). Подключил, все работает, только когда задаешь например Х10, он по факту проходит 15мм и так по всем осям. посоветуйте мануал к grbl.

  9. admin:

    Если это драйвера А4988, то у них есть 3 вывода для выбора кратности. Если не соответствует движение по осям надо посчитать параметры $100, $101.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

*