К содержанию

ИнструкцияСтанки с ЧПУ и металлообработка

G-код для начинающих: основные команды на примере

Управляющую программу для станка с ЧПУ почти всегда готовит CAM-система, но читать G-код всё равно нужно. Без этого не найти ошибку постпроцессора, не поправить подачу у станка и не понять, почему фреза пошла не туда. Разбираем структуру программы, главные G- и M-коды и короткую программу построчно.

Дмитрий Волков

Инженер-механик, фрезерные станки с ЧПУ и CAM, 15 лет в отрасли

Проверил: Игорь Белов

Обновлено 8 минут

Стойка ЧПУ с экраном и клавиатурой на станке Masturn 50 CNC
Стойка ЧПУ станка Masturn 50 CNC. Через такой пульт оператор загружает и правит управляющую программу

Кратко

  • G-код — язык управляющих программ для станков с ЧПУ. Программа состоит из кадров, кадр — из слов вида «буква + число».
  • G-команды задают движение и режимы, M-команды управляют шпинделем, охлаждением и ходом программы.
  • Большинство команд модальные: они действуют, пока их не отменит другая команда той же группы.
  • Основу составляет десяток команд: G0, G1, G2, G3, G17, G21, G90, G91, G54, M3, M5, M30.
  • Диалекты стоек отличаются, поэтому программу из CAM всегда выводят через постпроцессор под конкретную стойку.

Что такое G-код

G-код — общепринятое название языка, на котором записывают управляющие программы для станков с числовым программным управлением. Его разработали в США в начале 1960-х годов, окончательно стандарт утвердили в 1980 году как RS-274D. Позже его приняли как международный стандарт ISO 6983-1, а в СССР — как ГОСТ 20999-83, который устанавливает правила кодирования информации в управляющих программах для металлообрабатывающего оборудования.

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

Из чего состоит программа

Программа делится на кадры. Кадр — одна строка, которая заканчивается переводом строки. В кадре может быть одна или несколько команд.

Каждая команда записывается словом: латинская буква-адрес и число. В строке G1 X40 F1200 три слова: команда линейного перемещения G1, координата конечной точки X40 и подача F1200.

АдресЧто означаетПример
NНомер кадра, необязателенN10
GПодготовительная функция: тип движения, плоскость, единицы, системы координатG1
MВспомогательная функция: шпиндель, охлаждение, смена инструмента, конец программыM3
X, Y, ZКоординаты конечной точки по осямX40 Y30
I, J, KСмещение центра дуги от начальной точки по X, Y, ZI-10 J0
FПодача, обычно в мм/минF1200
SЧастота вращения шпинделя, об/минS12000
TНомер инструментаT1

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

Модальные команды

Большинство G-кодов модальные: включённый режим действует, пока его не отменит другая команда из той же группы. Например, после G1 все следующие кадры с координатами тоже будут линейными перемещениями на рабочей подаче, пока не встретится G0, G2 или G3. Поэтому в программах из CAM часто видны кадры из одних координат, без G-команды.

Команды объединены в модальные группы. В одной группе активна только одна команда. Вот основные группы команд:

  • движение: G0, G1, G2, G3, а также циклы сверления G80–G89;
  • плоскость: G17, G18, G19;
  • режим координат: G90, G91;
  • единицы измерения: G20, G21;
  • компенсация длины инструмента: G43, G49.

Подача F и обороты S тоже сохраняются, пока их не перепишут.

Основные G- и M-коды

Таблица собрана по справочнику LinuxCNC. Те же значения действуют в стойках Fanuc и в большинстве систем, совместимых с ними.

КодЧто делает
G0Ускоренное перемещение без резания
G1Линейное перемещение на рабочей подаче
G2Круговая интерполяция по часовой стрелке
G3Круговая интерполяция против часовой стрелки
G4Пауза (выдержка времени)
G17 / G18 / G19Выбор плоскости XY / XZ / YZ
G20 / G21Единицы: дюймы / миллиметры
G28Возврат в заданную исходную точку
G40Отмена коррекции на радиус инструмента
G41 / G42Коррекция на радиус слева / справа от контура
G43Коррекция на длину инструмента
G54Выбор первой рабочей системы координат
G80Отмена постоянного цикла
G81 / G83Цикл сверления / сверления с отводом для удаления стружки
G90 / G91Абсолютные / относительные координаты
G94Подача в единицах в минуту
M0 / M1Останов программы / останов по выбору оператора
M3 / M4Шпиндель по часовой / против часовой стрелки
M5Остановка шпинделя
M6Смена инструмента
M7 / M8 / M9Охлаждение туманом / поливом / выключить охлаждение
M2 / M30Конец программы

Абсолютные и относительные координаты

В режиме G90 координаты отсчитываются от нуля детали. Кадр G1 X40 означает «перейди в точку X = 40 мм». В режиме G91 то же самое слово означает «сдвинься на 40 мм вправо от текущего положения».

Новичкам удобнее работать в G90: по каждому кадру видно, где окажется инструмент. Относительный режим используют в подпрограммах и повторяющихся элементах, например при выборке нескольких одинаковых пазов.

Разбираем программу построчно

Программа фрезерует контур квадрата 40×40 мм с одним скруглённым углом радиусом 10 мм на глубину 2 мм. Ноль детали — левый нижний угол на верхней плоскости заготовки. Фреза диаметром 6 мм идёт центром по линии контура, без коррекции на радиус.

%
(KONTUR 40X40 R10, FREZA D6)
N10 G21 G17 G90 G94 G40 G80
N20 G54
N30 T1 M6
N40 S12000 M3
N50 G0 X0 Y0
N60 G0 Z5
N70 G1 Z-2 F300
N80 G1 X40 F1200
N90 G1 Y30
N100 G3 X30 Y40 I-10 J0
N110 G1 X0
N120 G1 Y0
N130 G0 Z20
N140 M5
N150 M30
%
  • N10 — безопасная строка. В ней заданы миллиметры, плоскость XY, абсолютные координаты и подача в мм/мин, а коррекция на радиус и постоянные циклы отключены. Она сбрасывает режимы, которые могли остаться от прошлой программы.
  • N20 — работаем в системе координат G54, где оператор заранее выставил ноль детали.
  • N30 — берём инструмент № 1. На станке без автоматической смены инструмента стойка либо пропустит команду, либо попросит оператора поставить фрезу вручную.
  • N40 — шпиндель по часовой стрелке на 12 000 об/мин.
  • N50–N60 — ускоренно выходим в начальную точку контура и опускаемся до 5 мм над заготовкой.
  • N70 — врезаемся на глубину 2 мм на пониженной подаче 300 мм/мин.
  • N80–N90 — режем по прямой до X40, затем вверх до Y30 на подаче 1200 мм/мин.
  • N100 — дуга против часовой стрелки до точки X30 Y40. Центр дуги смещён от начальной точки на −10 мм по X и 0 по Y, то есть находится в точке X30 Y30. Радиус получается 10 мм.
  • N110–N120 — режем по прямой влево до X0 и вниз до Y0, контур замкнут.
  • N130 — ускоренно поднимаем фрезу на 20 мм.
  • N140–N150 — останавливаем шпиндель и завершаем программу.

Как проверить направление дуги: представьте, что смотрите на плоскость XY сверху. Из точки X40 Y30 в точку X30 Y40 вокруг центра X30 Y30 инструмент идёт от правой точки окружности к верхней, то есть против часовой стрелки. Поэтому здесь G3, а не G2.

Коррекция на радиус

В примере центр фрезы идёт по линии контура, поэтому сама деталь получится меньше на радиус фрезы с одной стороны и больше с другой. Для точного размера траекторию нужно сместить на радиус инструмента. Это делают двумя способами: CAM-система сразу рассчитывает смещённую траекторию, или в программе включают коррекцию G41 (фреза слева от контура) либо G42 (справа), а радиус берётся из таблицы инструментов стойки. Отменяет коррекцию G40.

Начинающим проще доверить расчёт CAM-системе: коррекция в стойке требует правильного подвода к контуру, иначе стойка выдаст ошибку или зарежет деталь.

Как безопасно запустить первую программу

Первый запуск программы на станке

  1. 01

    Проверьте программу в симуляторе

    в CAM-системе или в просмотрщике G-кода. Убедитесь, что траектория совпадает с чертежом и нет перемещений ниже стола.

  2. 02

    Выставьте ноль детали

    по X, Y и Z в той системе координат, которую вызывает программа, например G54.

  3. 03

    Сделайте прогон над заготовкой

    поднимите ноль по Z на 20–30 мм или включите режим пробного прогона, если он есть в стойке. Фреза пройдёт траекторию в воздухе.

  4. 04

    Включите покадровый режим

    стойка будет выполнять по одному кадру и ждать нажатия кнопки. Так проще поймать ошибку на первых строках.

  5. 05

    Уменьшите подачу корректором

    до 25–50% на первом проходе, затем доведите до 100%, если всё идёт штатно.

  6. 06

    Держите руку у аварийной кнопки

    пока программа не прошла хотя бы один полный цикл без замечаний.

Перед пуском убедитесь, что шпиндель реально вращается, а в конце программы стоит M5 латиницей. Если после включения шпиндель не успевает набрать обороты, ставят паузу после M3 (G4 с временем) и задержку разгона в стойке 5–10 секунд.

Диалекты G-кода

Основные команды из таблицы почти везде одинаковы, а различия начинаются в деталях. У Fanuc и совместимых стоек программа часто начинается с номера вида O0001. Siemens Sinumerik поддерживает G-код, но добавляет собственный язык циклов. Стойки для фрезеров по дереву вроде NcStudio понимают базовый набор команд и не всегда поддерживают постоянные циклы. Любительские контроллеры на прошивке GRBL работают с упрощённым подмножеством G-кода.

Поэтому программу из CAM-системы всегда выводят через постпроцессор, настроенный под конкретную стойку. Если станок ругается на программу, первым делом проверьте, тот ли постпроцессор выбран.

Если станок режет на одной высоте или не двигается по Z, откройте программу в блокноте и посмотрите координату Z: в формате PLT (HPGL) оси Z нет, нужен фрезерный постпроцессор (G-code в миллиметрах, расширение .tap). При ошибке «over limit» после смены CAM-системы сверяйте первые строки с последней рабочей программой.

Учить G-код наизусть не нужно, но первые десять строк любой программы надо понимать с ходу. Там задаются единицы, плоскость, система координат и инструмент. Большинство аварий, которые я видел у начинающих, начинались именно там: не та система координат, дюймы вместо миллиметров или забытая строка сброса после чужой программы.

Дмитрий ВолковИнженер-механик, фрезерные станки с ЧПУ и CAM

Частые вопросы

Нужно ли писать G-код вручную?

Для сложных деталей программу почти всегда генерирует CAM-система. Вручную пишут простые операции: торцовку, сверление по нескольким точкам, обход контура. Но читать код нужно всем, кто работает у станка, чтобы находить ошибки и править режимы.

Чем G2 отличается от G3?

Обе команды задают дугу. G2 ведёт инструмент по часовой стрелке, G3 — против часовой, если смотреть на плоскость обработки со стороны положительного направления третьей оси. Для плоскости XY это взгляд сверху.

Что будет, если не указать G21?

Стойка возьмёт единицы, которые были активны до этого: из настроек станка или из предыдущей программы. Если там стояли дюймы, все размеры окажутся в 25,4 раза больше. Поэтому единицы указывают в первой строке каждой программы.

Подойдёт ли программа для фрезера по дереву на станок по металлу?

Только если обе стойки понимают одни и те же команды и у станков похожий набор функций. Режимы резания для дерева и металла сильно отличаются, так что подачи и обороты придётся пересчитать в любом случае.

Источники

  1. G-code ↗ — Википедия
  2. G Codes ↗ — LinuxCNC Documentation
  3. G-code Overview ↗ — LinuxCNC Documentation
  4. ГОСТ 20999-83. Устройства числового программного управления для металлообрабатывающего оборудования. Кодирование информации управляющих программ ↗ — Госстандарт СССР, 1983
  5. Understanding CNC Feeds and Speeds ↗ — ToolsToday

Фото: Foxtrot CZ, CC BY-SA 4.0, Wikimedia Commons

Автор

Дмитрий Волков

Инженер-механик, фрезерные станки с ЧПУ и CAM, 15 лет в отрасли

Пятнадцать лет работает с фрезерными станками с ЧПУ: от мебельных раскроечных центров до обработки металла. Пишет о фрезерах, инструменте, CAM-программах и системах управления.

Все материалы автора →

Проверил материал

Игорь Белов

Сервисный инженер по лазерным источникам и оптике, 12 лет в отрасли

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

Все материалы автора →

Как мы готовим материалы — в редакционной политике. Нашли ошибку? Напишите нам.

Комментарии

Пока никто не написал. Задайте вопрос — автор или эксперты редакции ответят.

Написать комментарий