info@promtaiga.ru +7 (929) 341-00-17
+7 (929) 341-00-17 Перезвоните мне

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

14.03.2026 👁️ 822
Александр Петров
Александр Петров Руководитель направления автоматизации производства, эксперт по станкам с ЧПУ
G-код для новичков: как читать программу для ЧПУ и не допускать опасных ошибок

G-код — это не просто набор букв и цифр в текстовом файле. Это язык, которым станок получает геометрию движения, режимы подачи, обороты шпинделя и служебные команды. Стандарт ISO 6983-1:2009 описывает формат данных для позиционирования, линейного движения и контурного управления в системах числового управления, а многие современные системы до сих пор опираются на семейство RS274/NGC, где программа строится из строк, или кадров.

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

Если вы работаете не на одном типе оборудования, полезно отдельно сверить, как устроены стойки ЧПУ. А если хотите лучше понимать, как код вообще появляется из чертежа, стоит разобрать и подготовку УП.

Зачем читать код самому, даже если программу построила система

Новичку важно уметь читать код по трем причинам:

  • Безопасность → по кадру можно заранее заметить опасный уход по оси Z, неверный ноль детали или забытый быстрый ход.
  • Диагностика → когда стойка выдает номер строки с ошибкой, нужно быстро понять, что именно записано в этом месте.
  • Практическая наладка → именно в коде вы чаще всего меняете подачу, обороты, глубину первого прохода, паузу или порядок служебных команд.

Что такое кадр программы

В языке G-кода программа состоит из строк. Каждая строка — это кадр. В одном кадре могут быть команды движения, координаты, подача, обороты шпинделя и служебные команды. В документации LinuxCNC прямо указано, что строка, или блок, может включать сразу несколько команд, а модальные команды работают группами и сохраняют свое действие, пока их не отменит другая команда из той же группы.

Ниже — базовая схема кадра, которую новичку нужно научиться читать с листа.

Таблица 1. Базовая схема кадра

ЭлементЧто означаетДля чего нужен
NНомер строкиПомогает искать ошибку в журнале и быстро находить нужный кадр
GПодготовительная командаЗадает тип движения или режим работы
X Y ZКоординатыПоказывают, куда должен прийти инструмент
FПодачаОпределяет скорость рабочего перемещения
SОборотыЗадает частоту вращения шпинделя
MСлужебная командаУправляет шпинделем, охлаждением, сменой инструмента и завершением программы

Простой пример кадра:

N120 G01 X50.0 Y20.0 Z-2.0 F300 S2500 M08

Такую строку нужно читать слева направо: строка 120, рабочее линейное движение, переход в точку X50 Y20 Z-2, подача 300, обороты 2500, охлаждение включено.

Анатомия строки на живом примере

Для новичка полезно разделять код не на буквы, а на смысловые части.

  • N120 — номер строки. Не обязателен, но очень удобен при поиске ошибки.
  • G01 — линейная интерполяция, то есть контролируемое рабочее движение по прямой.
  • X Y Z — конечная точка движения.
  • F300 — подача. От нее зависит не только время цикла, но и нагрузка на инструмент.
  • S2500 — обороты шпинделя.
  • M08 — включение охлаждения.

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

Базовая геометрия: четыре команды, без которых не работает почти ни одна программа

Описания базовых команд G00, G01, G02, G03, выбора плоскостей G17–G19 и единиц G20–G21 присутствуют в официальных таблицах Haas, а для дуг Haas отдельно указывает два способа задания: через радиус R или через координаты центра I, J, K.

Таблица 2. Базовые команды геометрии

КомандаЧто делаетГде новичок ошибается
G00Быстрое позиционированиеПринимает его за безопасное рабочее движение
G01Линейное рабочее движениеЗабывает задать подачу F
G02Дуга по часовой стрелкеПутает центр дуги и конечную точку
G03Дуга против часовой стрелкиОшибается с плоскостью или направлением

G00 — быстрое позиционирование

Эта команда нужна, чтобы быстро подвести инструмент в нужную точку без резания. Новичок должен запомнить главное: G00 — не команда для аккуратного рабочего прохода. Это подвод. Если на пути стоят прижимы, тиски или высокая заготовка, ошибочный быстрый ход может закончиться столкновением.

G01 — линейная интерполяция

Это уже рабочее движение по прямой с заданной подачей. Если вы хотите, чтобы станок шел по контролируемой траектории и реально резал материал, это как раз команда G01.

G02 и G03 — круговая интерполяция

Эти команды задают дугу. Для новичка здесь два рабочих способа:

  • через R, когда задается радиус дуги;
  • через I, J, K, когда задается смещение центра дуги от начальной точки.

Для первых упражнений радиус читать проще. Но в реальной работе запись через I, J, K часто надежнее: она точнее описывает центр и лучше подходит для сложной геометрии.

G90 и G91: самая частая ошибка новичка

Режимы координат — это место, где новички делают самые неприятные ошибки.

  • G90 — абсолютный режим. Все координаты считаются от нуля детали.
  • G91 — приращательный режим. Каждая новая координата считается от текущей точки.

Пример:

G90
G01 X50 Y20

Здесь инструмент идет в точку X50 Y20 относительно нуля детали.

G91
G01 X50 Y20

А здесь инструмент сместится на 50 по X и на 20 по Y от той точки, где находится сейчас.

Типичная аварийная ситуация выглядит так: оператор вручную использовал приращательный режим для короткого смещения, а потом забыл вернуть G90. Следующий кадр, который должен был спокойно уйти в знакомую точку, прибавился к текущему положению. Итог — уход мимо детали, в приспособление или в предел хода.

Где у станка ноль: G53 и G54–G59

Новичку важно один раз твердо разделить два понятия:

  • Машинный ноль — это координатная система самого станка.
  • Ноль детали — это координатная система, в которой пишется программа под конкретную заготовку.

Документация LinuxCNC отдельно объясняет, что G53 работает в машинной системе координат, а G54–G59 и расширенные смещения нужны, чтобы сдвигать рабочую систему относительно машинной и писать программу без привязки к конкретному месту детали на столе.

На практике это значит следующее:

  • G53 — движение в координатах станка;
  • G54 — первое рабочее смещение;
  • G55–G59 — дополнительные рабочие смещения для других установок или деталей.

Если совсем просто, то G54 говорит станку, где именно на столе лежит ваша деталь. Поэтому ошибка в рабочем смещении опаснее, чем ошибка в красивой геометрии траектории.

M-коды: команды, которые управляют станком

В официальных списках Haas M03 означает включение шпинделя по часовой стрелке, M04 — в обратную сторону, M05 — останов, M06 — смену инструмента, M08/M09 — включение и выключение охлаждения, а M30 — завершение программы. В LinuxCNC после M2 или M30 дальнейшие строки уже не исполняются, а запуск начинается с начала файла.

Для новичка базовый набор такой:

  • M03 — включить шпиндель по часовой стрелке;
  • M04 — включить шпиндель в обратную сторону;
  • M05 — остановить шпиндель;
  • T1 M06 — вызвать и сменить инструмент;
  • M08 — включить охлаждение;
  • M09 — выключить охлаждение;
  • M30 — завершить программу.

Здесь есть важный практический нюанс. Охлаждение лучше включать до первого реального врезания в материал, а не после. Иначе первый контакт инструмента с деталью идет уже в менее щадящем режиме.

Постоянные циклы: как не писать лишние строки

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

На базовом уровне новичку достаточно понимать две команды:

  • G81 — простое сверление.
  • G83 — глубокое сверление с периодическим выходом для удаления стружки.

В документации Haas для G83 отдельно указано, что цикл использует шаг врезания Q и плоскость возврата R, а прерывистое движение помогает очищать отверстие от стружки.

Простой пример:

G81 X20 Y30 Z-15 R2 F120

Станок подойдет в точку X20 Y30, опустится на уровень R, просверлит до Z-15 и отойдет.

Глубокое сверление выглядит так:

G83 X20 Y30 Z-25 R2 Q3 F90

Здесь сверло идет вниз шагами по 3 мм и между шагами выходит назад. Для новичка это важно понимать не как сухую команду, а как защиту инструмента: длинная стружка лучше выходит, сверло меньше перегревается, риск поломки ниже.

Коррекция инструмента: длина и радиус

Документация LinuxCNC указывает, что G43 H включает коррекцию длины инструмента по значению из таблицы инструмента, а G41/G42 включают коррекцию радиуса слева или справа от запрограммированной линии. Для G41/G42 важен корректный подвод, иначе стойка может выдать ошибку или построить нежелательное движение.

G43 — коррекция длины

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

Пример:

T2 M06
G43 H02 Z50

Это означает: сменить инструмент на второй и применить для него вторую коррекцию длины.

G41 и G42 — коррекция радиуса

Если фреза имеет диаметр 10 мм, то ее центр не может идти точно по кромке детали. Он должен идти в стороне на 5 мм. Команды G41 и G42 делают это смещение автоматически.

Для новичка рабочее правило простое:

  • G41 — коррекция слева от направления движения;
  • G42 — коррекция справа.

Но использовать их бездумно нельзя. Нужен нормальный вход в контур и нормальный выход из него.

Блок безопасности: строка, которая спасает от фантомных режимов

У многих ошибок есть одна общая причина: стойка продолжает помнить режимы предыдущей программы. Поэтому в начале файла обычно ставят блок безопасности, который возвращает базовые режимы.

Типовой вариант:

G90 G17 G40 G80 G21

Что он делает:

  • G90 — включает абсолютный режим;
  • G17 — выбирает плоскость XY;
  • G40 — отменяет коррекцию радиуса;
  • G80 — отменяет постоянный цикл;
  • G21 — включает миллиметры.

Это не формальность. В LinuxCNC прямо указано, что G80 отменяет модальный цикл, а модальные команды вообще работают группами и сохраняют действие, пока их не сменят.

Пример простой программы для первого чтения

%
O0001
G90 G17 G40 G80 G21
G54
T1 M06
G43 H01 Z50
S2500 M03
M08

G00 X0 Y0
G00 Z5
G01 Z-2 F120
G01 X50 Y0 F300
G01 X50 Y50
G01 X0 Y50
G01 X0 Y0

G00 Z50
M09
M05
M30
%

Как ее читать:

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

Что чаще всего путают в первой программе

  • G90 и G91 → абсолютные и приращательные координаты.
  • G00 и G01 → быстрый подвод и рабочее движение.
  • G53 и G54 → машинные координаты и ноль детали.
  • G43 и H → коррекция длины инструмента и номер корректора.
  • G41/G42 → сторона коррекции радиуса относительно направления движения.
  • M03 до врезания → шпиндель должен быть включен до первого касания детали.
  • M08 до нагрузки → охлаждение включают до начала резания, а не после.

Чек-лист перед первым запуском

  • Проверьте, что в начале программы есть блок безопасности.
  • Убедитесь, что выбран правильный ноль детали, обычно G54.
  • Сверьте инструмент, номер корректора длины и фактическую установку в шпинделе.
  • Посмотрите на первую рабочую координату по Z. Именно она чаще всего ломает инструмент первой.
  • Проверьте, есть ли обороты S, подача F и включение шпинделя до врезания.
  • Выполните прогон без резания или на повышенной безопасной высоте.
  • Только после этого переходите к реальному запуску.

Итог

Новичку не нужен справочник на сотни команд. На первом этапе важно твердо понять логику языка:

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

Если вы научитесь уверенно читать G00, G01, G02, G03, различать G90 и G91, понимать G54, M03, M08, G43 и G83, то уже перестанете видеть в управляющей программе непонятный набор символов. А это и есть главный рубеж между человеком, который просто запускает файл, и оператором, который действительно контролирует станок.