G-коды
G-код (G-code) — это обобщённое название языка программирования устройств с числовым программным управлением (ЧПУ). Он используется для задания траектории движения рабочего органа (инструмента или заготовки), управления режимами обработки (скорость, подача, включение/выключение шпинделя, подача охлаждающей жидкости) и выполнения вспомогательных операций. G-код является стандартом де-факто в промышленности, хотя его синтаксис и набор команд могут варьироваться в зависимости от производителя оборудования.
История
Разработка языка G-кода началась в 1950-х годах в Массачусетском технологическом институте (MIT) в рамках проекта по созданию первых станков с ЧПУ. Первоначально язык был разработан для управления фрезерными станками и назывался APT (Automatically Programmed Tools). В 1960-х годах на основе APT был создан стандарт RS-274, который впоследствии лёг в основу современных G-кодов.
В 1980-х годах, с распространением персональных компьютеров и развитием систем автоматизированного проектирования (САПР), G-код стал стандартным выходным форматом для постпроцессоров — программ, преобразующих геометрические модели (например, из SolidWorks, AutoCAD, Компас-3D) в последовательность команд для станка. В 1990-х годах язык был адаптирован для 3D-принтеров, лазерных резаков и плоттеров.
Структура и синтаксис
Программа на G-коде представляет собой последовательность кадров (строк). Каждый кадр начинается с номера (N) и содержит одну или несколько команд, разделённых пробелами. Команды делятся на несколько типов:
- G-команды (подготовительные функции) — задают режим движения (линейное, круговое, позиционирование) и систему координат. Примеры: G00 (быстрое позиционирование), G01 (линейная интерполяция), G02/G03 (круговая интерполяция по часовой/против часовой стрелки).
- M-команды (вспомогательные функции) — управляют включением/выключением шпинделя, подачей охлаждающей жидкости, сменой инструмента. Примеры: M03 (включение шпинделя по часовой стрелке), M05 (остановка шпинделя), M06 (смена инструмента).
- Адреса — задают числовые параметры: X, Y, Z (координаты), F (скорость подачи), S (частота вращения шпинделя), T (номер инструмента), I, J, K (параметры дуги для круговой интерполяции).
Пример простого кадра
`` N10 G01 X100.0 Y50.0 Z-5.0 F200.0 ``
Этот кадр означает: выполнить линейное перемещение (G01) в точку с координатами X=100, Y=50, Z=-5 со скоростью подачи 200 мм/мин.
Основные команды
Подготовительные функции (G-коды)
| Код | Описание |
|---|---|
| G00 | Быстрое позиционирование (холостой ход) |
| G01 | Линейная интерполяция (рабочая подача) |
| G02 | Круговая интерполяция по часовой стрелке |
| G03 | Круговая интерполяция против часовой стрелки |
| G17 | Выбор плоскости XY |
| G18 | Выбор плоскости XZ |
| G19 | Выбор плоскости YZ |
| G20 | Режим дюймов |
| G21 | Режим миллиметров |
| G28 | Возврат в исходную точку (референтную точку) |
| G40 | Отмена коррекции на радиус инструмента |
| G41 | Коррекция на радиус инструмента слева |
| G42 | Коррекция на радиус инструмента справа |
| G43 | Коррекция на длину инструмента |
| G90 | Абсолютное позиционирование |
| G91 | Относительное позиционирование |
Вспомогательные функции (M-коды)
| Код | Описание |
|---|---|
| M00 | Безусловная остановка программы |
| M01 | Остановка по требованию (опциональная) |
| M02 | Конец программы |
| M03 | Включение шпинделя по часовой стрелке |
| M04 | Включение шпинделя против часовой стрелки |
| M05 | Остановка шпинделя |
| M06 | Смена инструмента |
| M08 | Включение охлаждающей жидкости |
| M09 | Выключение охлаждающей жидкости |
| M30 | Конец программы с возвратом в начало |
Применение
Металлообработка
G-код является основным языком для фрезерных, токарных, сверлильных и шлифовальных станков с ЧПУ. Программы создаются в системах автоматизированного программирования (CAM-системах) или вручную. Постпроцессор адаптирует общий G-код под конкретный станок (например, Haas, Fanuc, Siemens, Mazak).
3D-печать
В аддитивных технологиях G-код управляет перемещением печатающей головки, экструзией пластика (M104, M109 — управление температурой сопла, M140, M190 — управление температурой стола), скоростью печати и охлаждением. Наиболее распространённый диалект — Marlin (используется в принтерах на базе Arduino). Пример команды: G1 X10.0 Y10.0 E0.5 — перемещение с одновременной подачей пластика.
Лазерная резка и гравировка
G-код задаёт траекторию лазерного луча, мощность (S) и скорость перемещения (F). Для лазерных станков используются те же команды, что и для фрезерных, но с добавлением управления мощностью лазера (например, M03 S1000 — включение лазера на 1000 единиц мощности).
Плоттеры и роботы
Плоттеры (резаки, карандашные плоттеры) используют G-код для управления перемещением пера или ножа. Промышленные роботы (например, KUKA, ABB) также могут программироваться на G-коде, хотя чаще используют собственные языки (KRL, RAPID).
Диалекты и стандарты
Несмотря на стандарт RS-274, существует множество диалектов G-кода, отличающихся набором команд и синтаксисом:
- Fanuc — наиболее распространённый в промышленности, используется в станках японского производства.
- Siemens — используется в станках немецкого производства, имеет расширенный набор команд (например, для высокоскоростной обработки).
- Haas — упрощённый диалект, характерный для станков американской компании Haas Automation.
- Marlin — открытый диалект для 3D-принтеров, основанный на RepRap.
- LinuxCNC — открытая система ЧПУ, поддерживающая стандартный G-код с расширениями.
Интересные факты
- G-код не является языком программирования в классическом смысле (он не имеет переменных, циклов и условных операторов в базовом варианте), хотя современные контроллеры поддерживают макросы и подпрограммы.
- Некоторые станки поддерживают «параметрическое программирование» — возможность использовать переменные (#1, #2) и математические выражения.
- В 3D-печати G-код часто создаётся слайсером (например, Cura, PrusaSlicer, Slic3r) из STL-модели.
- Существуют онлайн-симуляторы G-кода, позволяющие визуализировать траекторию инструмента без запуска станка.
- В России G-код используется на большинстве промышленных предприятий, оснащённых станками с ЧПУ, а также в любительской 3D-печати.
Критика
Основные недостатки G-кода:
- Отсутствие стандартизации — разные производители добавляют собственные команды, что затрудняет переносимость программ.
- Низкая читаемость — длинные программы сложно анализировать и отлаживать вручную.
- Ограниченные возможности — отсутствие высокоуровневых конструкций (циклы, условия) делает программирование сложных операций трудоёмким.
- Зависимость от постпроцессора — для каждого станка требуется индивидуальная настройка CAM-системы.
Источники
- Справочник по программированию станков с ЧПУ. Система Fanuc Series 0i-M.
- Руководство пользователя Marlin Firmware.
- Стандарт RS-274-D (EIA-274-D).
- Книга «CNC Programming Handbook» Peter Smid.
- Материалы сайта LinuxCNC.org.
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →