G-код
G-код (от англ. G-code, geometric code) — это обобщённое название языка программирования устройств с числовым программным управлением (ЧПУ). Он представляет собой систему команд, которая задаёт траекторию движения рабочего органа станка (фрезы, резца, головки 3D-принтера) и режимы обработки (скорость, подача, частота вращения шпинделя). G-код является основным стандартом в промышленности для автоматизации процессов механической обработки, аддитивного производства (3D-печати) и лазерной резки.
История
Разработка G-кода началась в Массачусетском технологическом институте (MIT) в конце 1950-х годов в рамках проекта создания первого станка с ЧПУ. Основой послужил язык APT (Automatically Programmed Tools), созданный Дугласом Россом. В 1960-х годах Ассоциация электронной промышленности (EIA) стандартизировала язык, выпустив спецификацию RS-274. Этот стандарт лёг в основу большинства современных систем ЧПУ.
В 1980-х годах, с распространением персональных компьютеров, появились первые CAM-системы (Computer-Aided Manufacturing), которые автоматически генерировали G-код из 3D-моделей. В 2000-х годах, с развитием реп-рап (RepRap) проекта, G-код стал стандартом для настольных 3D-принтеров, использующих прошивки Marlin, RepRap Firmware и другие. Сегодня G-код остаётся универсальным интерфейсом между управляющей программой и исполнительным механизмом.
Структура и синтаксис
Программа на G-коде представляет собой последовательность строк (кадров). Каждый кадр содержит одну или несколько команд, разделённых пробелами. Команды состоят из адреса (буквы) и числового значения.
Основные адреса
- G — подготовительные функции (движение, выбор плоскости, единицы измерения);
- M — вспомогательные функции (включение/выключение шпинделя, охлаждения, смена инструмента);
- X, Y, Z — координаты по осям (абсолютные или относительные);
- F — скорость подачи (feed rate), мм/мин;
- S — частота вращения шпинделя (spindle speed), об/мин;
- T — номер инструмента (tool);
- I, J, K — параметры дуги (центр окружности относительно начальной точки);
- N — номер кадра (необязателен).
Формат записи
`` N10 G01 X100 Y50 F200 N20 M03 S1500 ``
В данном примере:
N10— номер кадра;G01— линейная интерполяция (движение по прямой);X100 Y50— конечная точка;F200— скорость подачи 200 мм/мин;N20— следующий кадр;M03— включение шпинделя по часовой стрелке;S1500— частота вращения 1500 об/мин.
Классификация основных G-кодов
Стандарт RS-274 определяет множество кодов, но на практике используется ограниченный набор. Коды делятся на модальные (действуют до отмены) и одномодальные (действуют только в текущем кадре).
Подготовительные функции G
| Код | Описание | Модальность |
|---|---|---|
| G00 | Быстрое позиционирование (холостой ход) | Модальный |
| G01 | Линейная интерполяция (рабочая подача) | Модальный |
| G02 | Круговая интерполяция по часовой стрелке | Модальный |
| G03 | Круговая интерполяция против часовой стрелки | Модальный |
| G17 | Выбор плоскости XY | Модальный |
| G18 | Выбор плоскости XZ | Модальный |
| G19 | Выбор плоскости YZ | Модальный |
| G20 | Единицы измерения — дюймы | Модальный |
| G21 | Единицы измерения — миллиметры | Модальный |
| G28 | Возврат в референтную точку (Home) | Одномодальный |
| G90 | Абсолютное позиционирование | Модальный |
| G91 | Относительное позиционирование | Модальный |
| G92 | Установка текущей позиции как заданной | Одномодальный |
Вспомогательные функции M
| Код | Описание |
|---|---|
| M00 | Программный останов |
| M02 | Конец программы |
| M03 | Включение шпинделя по часовой стрелке |
| M04 | Включение шпинделя против часовой стрелки |
| M05 | Останов шпинделя |
| M06 | Смена инструмента |
| M08 | Включение охлаждения (СОЖ) |
| M09 | Выключение охлаждения |
| M30 | Конец программы с перемоткой |
| M84 | Отключение шаговых двигателей (для 3D-печати) |
Применение
Фрезерная и токарная обработка
В металлообработке G-код управляет перемещением режущего инструмента по заданной траектории. Современные CAM-системы (например, Fusion 360, Mastercam, Siemens NX) автоматически генерируют G-код на основе 3D-модели детали и выбранной стратегии обработки. Оператор станка загружает полученную программу в стойку ЧПУ (например, Fanuc, Siemens, Heidenhain) и запускает обработку.
3D-печать
В аддитивных технологиях G-код управляет движением печатающей головки (экструдера) и подачей филамента. Программа-слайсер (Cura, PrusaSlicer, Simplify3D) преобразует STL-модель в G-код, задавая слои, скорость печати, температуру стола и сопла, ретракцию (откат пластика) и обдув. Типичный фрагмент для 3D-принтера:
`` G28 ; Home all axes G1 Z5 F3000 ; Подъём стола G92 E0 ; Обнуление экструдера G1 F200 E3 ; Выдавливание 3 мм пластика G1 X100 Y100 F1500 ; Перемещение к началу печати ``
Лазерная резка и гравировка
G-код используется для управления лазерными станками. Вместо шпинделя управляется мощность лазера (команда S). Движение головки задаётся по контуру детали. Для гравировки применяется растровый режим, где лазер включается/выключается в зависимости от яркости пикселя изображения.
Плазменная резка
В плазменных станках G-код управляет перемещением плазмотрона. Особенность — необходимость учитывать зазор между соплом и листом металла, а также скорость резки, зависящую от толщины материала.
Ограничения и особенности
Отсутствие единого стандарта
Несмотря на общую основу, разные производители стоек ЧПУ (Fanuc, Siemens, Haas, Mazak) используют собственные диалекты G-кода. Например, команды для смены инструмента или вызова подпрограмм могут различаться. Для 3D-принтеров наиболее распространён диалект Marlin, который также имеет расширения (Marlin G-code).
Читаемость
G-код не является интуитивно понятным для человека. Программы для сложных деталей могут содержать тысячи строк, что делает ручное редактирование трудоёмким. Ошибки в G-коде (например, неправильная скорость подачи или отсутствие команды охлаждения) могут привести к поломке инструмента или браку детали.
Отсутствие ветвлений и циклов
Классический G-код не поддерживает условные операторы (if/else) и циклы (for/while). Для повторяющихся операций используются подпрограммы (команда M98/M99), но их функциональность ограничена. Современные системы ЧПУ (например, Fanuc Macro B) добавляют переменные и арифметические операции, но это не является стандартом.
Интересные факты
- Первый станок с ЧПУ, работавший на G-коде, был создан в 1952 году в MIT для обработки лопастей вертолётов.
- G-код для 3D-принтеров часто включает команды, не описанные в стандарте RS-274, например,
M104(установка температуры сопла) илиG29(автоматическое выравнивание стола). - Существуют онлайн-симуляторы G-кода (например, NCViewer), позволяющие визуализировать траекторию движения без запуска станка.
- В 2020-х годах появились попытки заменить G-код на более современные форматы, такие как STEP-NC (ISO 14649), но он не получил широкого распространения из-за необходимости замены оборудования.
Источники
- Смирнов В. А. «Программирование станков с ЧПУ. G-код и M-код». — М.: Машиностроение, 2018.
- Стандарт RS-274-D (EIA-274-D).
- Документация прошивки Marlin (marlinfw.org).
- Руководство по G-коду для 3D-печати (RepRap Wiki).
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →