В данной статье собран расширенный материал по G-кодам — языку программирования станков с числовым управлением (ЧПУ). Здесь объединены основные сведения об их назначении, принципы модальности, описаны логические группы команд, а также приведены примеры программ для фрезерных и токарных станков. Приводится полный список G-кодов вплоть до G188, включая малоиспользуемые или специфичные для отдельных производителей (Haas, Fanuc, Siemens и др.).
Введение в G-коды
Что такое G-коды?
G-коды представляют собой ключевые команды стандарта RS-274 (ISO 6983), которые указывают станку ЧПУ:
- Как интерполировать траекторию движения инструмента (линейно, круговыми дугами и т.д.).
- В каких режимах подачи или скорости вращать шпиндель.
- Какие системы координат, коррекции инструмента и циклы обработки использовать.
Модальность G-кодов
Каждый G-код может быть:
- Модальным (Modal): действие кода сохраняется до тех пор, пока не будет переопределено другим кодом из той же группы.
- Немодальным (One-shot): действует только в том кадре (строке), где указан. Пример — G04 (пауза).
Основные оси и координаты
- Оси X, Y, Z в фрезерных системах обычно соответствуют двум горизонтальным (X, Y) и одной вертикальной (Z).
- На токарных станках чаще всего работают оси X и Z. Иногда добавляется Y для спецопераций.
- Плоскости обработки: G17 (XY), G18 (XZ), G19 (YZ).
- Режимы координат: G90 (абсолютный), G91 (приращательный).
- Единицы измерения: G20 (дюймы), G21 (миллиметры).
Логические группы G-кодов (от G00 до G188)
Далее приведён полный список G-кодов, разбитый по их функциональному назначению. Такая группировка облегчает поиск и понимание структуры команд.
Основные команды перемещения и интерполяции (G00–G09)
- G00 – Быстрое перемещение (Rapid Traverse)
- G01 – Линейная интерполяция (Linear Interpolation)
- G02 – Круговая интерполяция CW (Circular Interpolation Clockwise)
- G03 – Круговая интерполяция CCW (Circular Interpolation Counterclockwise)
- G04 – Пауза (Dwell)
- G05 – Высокоскоростная обработка (High Speed Machining, не во всех ЧПУ)
- G05.1 – Расширенный высокоскоростной режим (AI Nano / HPCC)
- G07.1 – Цилиндрическая интерполяция (Cylinder Interpolation, Fanuc)
- G08 – Жёсткая look-ahead / ускоренная обработка (не везде)
- G09 – Точное останавливание (Exact Stop Check, немодально)
Управление параметрами координат, плоскостей и полярного режима (G10–G19)
- G10 – Программируемый ввод данных (Programmable Data Input)
- G11 – Отмена G10 (завершение ввода)
- G12 – Циркулярная обработка кармана по часовой (Circle Pocket CW) – специфично для Haas
- G13 – Циркулярная обработка кармана против часовой (CCW)
- G15 – Отмена полярной системы координат
- G16 – Установка полярной системы координат
- G17 – Плоскость XY
- G18 – Плоскость XZ
- G19 – Плоскость YZ
Настройка единиц измерения и возврат в домашнюю точку (G20–G29)
- G20 – Дюймовая система (Inch)
- G21 – Метрическая система (Metric)
- G22 – G27 – Стандартизированного значения для кодов G22, G23, G24, G25, G26 и G27 в общепринятом стандарте RS‑274 (ISO 6983) не существует. Эти коды обычно зарезервированы для специальных или пользовательских функций и могут выполнять различные задачи в зависимости от производителя и модели ЧПУ. Рекомендуется обратиться к технической документации вашего станка для получения точной информации о назначении этих кодов.
- G28 – Возврат в «дом» (Home Position)
- G29 – Выход из «дома» (Return from Reference)
Дополнительные возвраты, зондирование и нарезание резьбы (G30–G39)
- G30 – Возврат к альтернативной референтной точке (2-я/3-я/4-я)
- G31 – Пропуск (Skip) / Зондирование (Probe)
- G32 – Прямое нарезание резьбы (в ряде токарных Fanuc)
- G33 – Линейное резьбонарезание (Thread Cutting)
- G34, G35, G36, G37 – Расширенные циклы резьбонарезания (не всегда доступны)
- G38.x – Дополнительные команды зондирования (например, G38.2)
- G39 – Автоматическая компенсация в углу (Corner Rounding)
Команды коррекции инструмента (G40–G49)
- G40 – Отмена коррекции на радиус (Cutter Comp Cancel)
- G41 – Коррекция слева (Cutter Comp Left)
- G42 – Коррекция справа (Cutter Comp Right)
- G43 – Положительная коррекция длины (Tool Length +)
- G44 – Отрицательная коррекция длины (Tool Length –)
- G45, G46, G47, G48 – Изменение текущих коррекций (увеличить/уменьшить и т. д.)
- G49 – Отмена коррекции длины
Рабочие смещения, масштабирование и машинные координаты (G50–G59)
- G50 – (Токарные) ограничение RPM при G96 или (Фрезерные) масштабирование
- G51 – Включение масштабирования (Scaling)
- G52 – Локальное смещение нуля (Local Zero Shift)
- G53 – Обращение к машинным координатам (Machine Coordinates)
- G54 – 1-я рабочая система координат
- G55 – 2-я рабочая система координат
- G56 – 3-я рабочая система координат
- G57 – 4-я рабочая система координат
- G58 – 5-я рабочая система координат
- G59 – 6-я рабочая система координат (или G59 P… для расширенных)
Точная остановка, макровызовы и поворот координат (G60–G69)
- G60 – Позиционирование в одном направлении (Single Direction)
- G61 – Точная остановка (Exact Stop Mode)
- G62 – Автокоррекция углов (Auto Corner Override)
- G63 – Режим жесткого нарезания резьбы (Tapping Mode)
- G64 – Непрерывная интерполяция (Constant Velocity Mode)
- G65 – Немодальный вызов макропрограммы (Macro Call)
- G66 – Модальный вызов макропрограммы (Modal Macro Call)
- G67 – Отмена модального вызова макроса
- G68 – Поворот системы координат (Coordinate Rotation)
- G69 – Отмена поворота
Циклы черновой/чистовой обработки на токарных станках (G70–G79)
- G70 – Цикл чистовой обработки (Finish Cycle)
- G71 – Черновое продольное точение (Rough Turning)
- G72 – Черновое точение по торцу (Rough Facing)
- G73 – Прерывистое сверление (Peck Drilling) / «дробление стружки»
- G74 – Сверление с обратным ходом / левая резьба (в токарных)
- G75 – Прорезка канавок (Grooving)
- G76 – Многошаговый цикл точного нарезания резьбы
- G77 – Специальные повторные циклы (редко)
- G78 – Альтернативный цикл резьбонарезания (Fanuc)
- G79 – Редко используемый спеццикл (зависит от ЧПУ)
Циклы сверления и растачивания (G80–G89)
- G80 – Отмена всех циклов (Cancel Canned Cycle)
- G81 – Простой цикл сверления (Drilling Cycle)
- G82 – Сверление с выдержкой (Spot Drill / Counterbore)
- G83 – Глубокое сверление с прерыванием (Peck Drilling)
- G84 – Цикл нарезания резьбы метчиком (Tapping Cycle)
- G85 – Растачивание/развёртывание (Boring, no dwell)
- G86 – Растачивание с остановкой шпинделя
- G87 – Обратное растачивание (Back Boring)
- G88 – Растачивание с ручным подтягиванием (Manual Retract)
- G89 – Растачивание с выдержкой (Boring, dwell)
Режимы координат, подачи и постоянной скорости резания (G90–G99)
- G90 – Абсолютная система координат (Absolute)
- G91 – Приращательная система координат (Incremental)
- G92 – Установка текущих координат / Ограничение скорости шпинделя (в токарных)
- G94 – Подача в единицах/мин (Feed per Minute)
- G95 – Подача в единицах/оборот (Feed per Revolution)
- G96 – Постоянная скорость резания (Constant Surface Speed, CSS)
- G97 – Обычная (фиксированная) частота вращения (Cancel CSS)
- G98 – Возврат в начальный уровень (Initial Level Return) в циклах
- G99 – Возврат на R-уровень (Retract Level Return) в циклах
Пользовательские расширения, офсеты и спецфункции (G100–G119)
- G100, G101, G102, G103, G104, G105, G106, G107, G108, G109: могут использоваться для зеркалирования, ограничений look-ahead, пользовательских макросов.
- G110, G111, G112, G113, G114, G115, G116, G117, G118, G119: часто дополнительные рабочие смещения (Work Offsets). Например, в Haas – G110 может соответствовать седьмому офсету, G111 – восьмому и т. д. В ряде систем G112 – «Polar to Cartesian».
Дополнительные смещения и макросы (G120–G139)
- G120, G121, G122, G123, G124, G125, G126, G127, G128, G129: ещё больше рабочих офсетов или пользовательских команд.
- G130, G131, G132, G133, G134, G135, G136, G137, G138, G139: часто зарезервированные или кастомные макросы (измерительные циклы, калибровка).
Функции многокоординатной обработки (G140–G159)
- G140, G141, G142, G143, G144, G145, G146, G147, G148, G149: могут быть связаны с 5-осевым позиционированием, измерением, спецциклами.
- G150 – Комплексная фрезеровка кармана (Haas Pocket Milling).
- G151, G152, G153, G154, G155, G156, G157, G158, G159: дальнейшие спецциклы, синхронизация, сложные макросы.
Управление дополнительными осями и синхронизацией (G160–G179)
- G160, G161, G162, G163, G164, G165, G166, G167, G168, G169: доп. оси, синхронизация шпинделей на многошпиндельных станках, пользовательские макросы.
- G170, G171, G172, G173, G174, G175, G176, G177, G178, G179: калибровка, измерения, или специфические режимы (зависят от производителя).
Установка точности, сглаживания и спецкоманды (G180–G188)
- G180, G181, G182, G183, G184, G185, G186 – Зарезервированные/пользовательские макрокоманды.
- G187 – Установка точности и сглаживания (Tolerance Control) в Haas.
- G188 – Пользовательская команда (Pause / Message / Macro Call и др.).
Важно: коды в диапазоне G100–G188 не унифицированы общим стандартом; производители (Haas, Fanuc, Siemens) внедряют там собственные расширения. Обязательно проверяйте руководства вашего станка.
Примеры управляющих программ
Пример фрезерной программы
%
O1000 (Пример фрезерной обработки)
G90 G94 G17 G21 (Абсолютные координаты, подача в мм/мин, плоскость XY, мм)
G28 G91 Z0 (Поднять ось Z в "дом" приращательно)
G90 (Вернуться к абсолюту)
T1 M06 (Смена инструмента 1)
G43 H01 Z50.0 (Компенсация длины, подняться на Z=50)
S2000 M03 (Шпиндель 2000 об/мин, по часовой)
M08 (Включить СОЖ)
G00 X0 Y0 (Быстрый переход к точке (0,0))
G01 Z0 F200 (Линейная подача до Z=0)
G01 X50 Y50 F300 (Перемещение до (50,50) с подачей 300)
G02 X100 Y50 I25 J0 (Дуга по часовой с центром, смещённым на I=25 от начальной точки)
G01 Y0 (Линейное движение к Y=0)
G00 Z50 (Подъем)
M09 (Выключить СОЖ)
G28 G91 Z0 (Возврат в дом)
G90
M30 (Конец программы)
%
3.2. Пример токарной программы
%
O2000 (Пример токарной обработки)
G21 (Метрическая система)
G28 U0 W0 (Возврат осей X и Z в нулевую точку)
T0101 (Инструмент №1, корректор №1)
G97 S800 M03 (Фиксированная скорость шпинделя 800 об/мин, вращение CW)
G00 X2.0 Z0.1 (Быстрый подход к детали)
G01 Z-1.0 F0.2 (Линейная подача в глубину)
G00 X2.2 (Отход)
G28 U0 W0 (Возврат домой)
M30
%
Основные M-коды (кратко)
Помимо G-кодов, в управляющих программах также активно используются M-коды (Machine codes) для включения/выключения шпинделя, СОЖ, смены инструмента и т. д. Ниже — краткий список самых распространённых:
- M00 – Программная остановка (Program Stop)
- M01 – Опциональная остановка (Optional Stop)
- M02 – Завершение программы (End of Program, устаревший, лучше M30)
- M03 – Включить шпиндель по часовой (Spindle On CW)
- M04 – Включить шпиндель против часовой (Spindle On CCW)
- M05 – Остановить шпиндель (Spindle Stop)
- M06 – Смена инструмента (Tool Change)
- M08 – Включить охлаждение (Coolant On)
- M09 – Выключить охлаждение (Coolant Off)
- M30 – Конец программы и сброс (End & Rewind)
- M98 – Вызов подпрограммы (Subprogram Call)
- M99 – Возврат из подпрограммы (Subprogram Return) / окончание
Практические рекомендации
-
Безопасное начало программы: Часто используют «Safety Block», сбрасывающий режимы в «стандарт».
G90 G94 G17 G21 G40 G49 G80
- Модальность: Запомните, что G01 (линейная интерполяция) и другие модальные коды не требуется указывать повторно в каждом блоке, пока они не сменятся другим кодом из той же группы.
- Коррекции инструмента: G41/G42 (радиус), G43/G44 (длина). При неверном входе/выходе возможны рывки и ошибки.
- Проверка траектории: Перед запуском на станке используйте CAM-симуляцию или встроенный симулятор, чтобы убедиться в отсутствии коллизий.
- Особенности G100–G188: Обязательно читайте документацию вашей системы ЧПУ. Они могут означать дополнительные офсеты, пользовательские макросы, карманы (G150), режимы сглаживания (G187) и т.д.
Источники материала
Этот HTML-справочник объединяет описание G-кодов от G00 до G188, включая базовые команды перемещения, сверлильные циклы, токарные циклы, коррекции инструмента, работу со смещениями, а также редко используемые или специализированные расширения (G100–G188).
Основные стандарты: RS-274 (ISO 6983) задаёт «классическую» основу G-кодов (до G99). Всё, что выходит за эти рамки, как правило, «привязано» к конкретным производителям (Haas, Fanuc, Siemens и т.д.).
Рекомендуемые источники и документация:
- Официальные мануалы Haas (операторские и программистские руководства для Mill и Lathe)
- Fanuc Series 0i/31i/32i Manuals
- Siemens SINUMERIK 828D/840D
- Материалы по G-кодам на сайте: cncmaching.ru
При работе со станками ЧПУ будьте внимательны к нюансам конкретной модели. И помните, что от корректности программирования G-кодами зависят точность, качество обработки и безопасность оператора.
Вопросы и ответы
Чем отличается G00 от G01?
G00 — это быстрое перемещение инструмента без учёта подачи F (максимальная скорость станка), а G01 — линейная интерполяция с заданной скоростью подачи (F).
Зачем нужен код G04?
G04 используется для создания паузы (выдержки) в программе на определённое время (P), что полезно для ожидания стабилизации шпинделя, охлаждения или иных процессов.
В чём разница между G90 и G91?
G90 устанавливает абсолютную систему координат (точки задаются относительно нулевой точки детали), а G91 — приращательную (каждая команда задаёт перемещение от текущей позиции).
Как выбрать систему единиц измерения?
Для дюймовой системы применяют G20, для метрической — G21. Эти команды модальные, и выбирать нужно исходя из чертежа и требуемых единиц в программе.
Для чего служат G41 и G42?
G41 и G42 включают коррекцию на радиус фрезы. G41 — коррекция слева по ходу движения, G42 — справа. Это нужно, чтобы компенсировать фактический радиус инструмента при обработке контуров.
Где используется G28?
G28 выполняет возврат инструмента в «домашнюю» (референтную) точку станка по указанным осям. Часто применяется для безопасного подъёма инструмента перед сменой инструмента или завершением программы.
Какие коды отвечают за сверлильные циклы?
В основном это G81 (простое сверление), G82 (с выдержкой в глубине), G83 (глубокое прерывистое), G84 (резьбонарезание метчиком) и т.д. Все они относятся к группе G80–G89.
Что такое G96 и G97?
G96 включает режим постоянной скорости резания (CSS) на токарном станке, где шпиндель подстраивает обороты в зависимости от текущего диаметра. G97 отключает этот режим и возвращает управление к фиксированным оборотам.
Что означает G02 и G03?
G02 — круговая (дуговая) интерполяция по часовой стрелке (CW), G03 — против часовой (CCW). С их помощью программируют дуги, задавая конечную точку и центр (I, J, K) либо радиус (R).
Можно ли одновременно использовать G02 и G41?
Да, но требуется корректный «вход» и «выход» из коррекции. При круговой интерполяции с коррекцией на радиус необходимо следить за логическими переходами, чтобы избежать резких рывков и ошибок ЧПУ.