Кратко
- 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, Z | I-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-системе: коррекция в стойке требует правильного подвода к контуру, иначе стойка выдаст ошибку или зарежет деталь.
Как безопасно запустить первую программу
Первый запуск программы на станке
- 01
Проверьте программу в симуляторе
в CAM-системе или в просмотрщике G-кода. Убедитесь, что траектория совпадает с чертежом и нет перемещений ниже стола.
- 02
Выставьте ноль детали
по X, Y и Z в той системе координат, которую вызывает программа, например G54.
- 03
Сделайте прогон над заготовкой
поднимите ноль по Z на 20–30 мм или включите режим пробного прогона, если он есть в стойке. Фреза пройдёт траекторию в воздухе.
- 04
Включите покадровый режим
стойка будет выполнять по одному кадру и ждать нажатия кнопки. Так проще поймать ошибку на первых строках.
- 05
Уменьшите подачу корректором
до 25–50% на первом проходе, затем доведите до 100%, если всё идёт штатно.
- 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 раза больше. Поэтому единицы указывают в первой строке каждой программы.
Подойдёт ли программа для фрезера по дереву на станок по металлу?
Только если обе стойки понимают одни и те же команды и у станков похожий набор функций. Режимы резания для дерева и металла сильно отличаются, так что подачи и обороты придётся пересчитать в любом случае.
Источники
- G-code ↗ — Википедия
- G Codes ↗ — LinuxCNC Documentation
- G-code Overview ↗ — LinuxCNC Documentation
- ГОСТ 20999-83. Устройства числового программного управления для металлообрабатывающего оборудования. Кодирование информации управляющих программ ↗ — Госстандарт СССР, 1983
- Understanding CNC Feeds and Speeds ↗ — ToolsToday
Фото: Foxtrot CZ, CC BY-SA 4.0, Wikimedia Commons

Автор
Дмитрий ВолковИнженер-механик, фрезерные станки с ЧПУ и CAM, 15 лет в отрасли
Пятнадцать лет работает с фрезерными станками с ЧПУ: от мебельных раскроечных центров до обработки металла. Пишет о фрезерах, инструменте, CAM-программах и системах управления.
Все материалы автора →
Проверил материал
Игорь БеловСервисный инженер по лазерным источникам и оптике, 12 лет в отрасли
Двенадцать лет ремонтирует и обслуживает лазерные источники, режущие головки и оптику. Рецензирует технические материалы Далото.
Все материалы автора →Как мы готовим материалы — в редакционной политике. Нашли ошибку? Напишите нам.
Комментарии
Пока никто не написал. Задайте вопрос — автор или эксперты редакции ответят.
Написать комментарий



