Синтаксис G-code

Синтаксис G-code: команды, коды и параметры

G-code — это универсальный язык программирования для станков с числовым программным управлением (ЧПУ). Он используется для описания траектории движения инструмента, скорости обработки, глубины реза и других параметров. В этой статье мы разберём основные команды, технологические коды и параметры, которые помогут вам эффективно работать с G-code.

На нашем форуме есть отдельная рубрика, посвященная программированию станков ЧПУ — CNC, G-code и всё, что с ним связано — перейти

Таблица основных команд

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

Команда

Описание

Пример

G00

Ускоренное перемещение инструмента (холостой ход). При холостом перемещении НЕ ОБЯЗАТЕЛЬНО производится линейная интерполяция перемещения аналогично команде G01. В некоторых интерпретаторах при выполнении команды перемещения по нескольким осям одновременно, перемещение по осям отрабатывается с максимальной скоростью, поэтому линейное перемещение от исходной точки в конечную точку не обеспечивается, поэтому нельзя производить ходы обработки детали при действии этой модальной команды.

G0 X0 Y0 Z100.

G01

команда линейной интерполяции с рабочей подачей. В отличие от ускоренного холостого хода (G00), здесь инструмент движется строго по прямой в заданные координаты с контролируемой скоростью резания, указанной параметром F. Именно этот код применяется для обработки материала: фрезерования контуров, точения, прорезки и любых перемещений под нагрузкой.

Команда модальна — достаточно записать её один раз, и в следующих кадрах можно указывать только новые координаты, не повторяя G01. Пример: G01 X50 Y30 F150 задаёт прямолинейное движение в точку (50, 30) на подаче 150 мм/мин, а затем строка X80 Y70 продолжит движение с той же скоростью к новой точке.

G01 X0. Y0. Z100. F200.

G02

Круговая интерполяция по часовой стрелке, модальная команда. Инструмент перемещается по дуге окружности по часовой стрелке от исходной точки с координатами до исполнения команды в точку с заданными в команде координатами, скорость перемещения задаётся в этой команде параметром F, радиус дуги задаётся параметром R, либо указанием координат центра дуги параметрами I — (смещение центра по оси X относительно начальной координаты X), J — (смещение центра по оси Y относительно начальной координаты Y), К— (смещение центра по оси Z относительно начальной координаты Z) относительно начальных координат инструмента. Для указания плоскости, в которой производится круговая интерполяция, предварительно должна быть указана плоскость круговой интерполяции (в этом же или в другом предварительном кадре) модальной командой G17 (плоскость X-Y), или G18 (плоскость X-Z), или G19 (плоскость Y-Z). Скорость перемещения задана модальной командой F.

G02 G17 X15. Y15. R5. F200.


или


G02 G17 X20. Y15. I-50. J-60.

G03

Круговая интерполяция против часовой стрелки. Параметры и действие аналогичны команде G02.

G03 X15. Y15. R5. F200.

G04

Задержка выполнения программы, способ задания величины задержки зависит от реализации системы управления, P обычно задает паузу в миллисекундах, X — в секундах. В некоторых интерпретаторах P задает паузу в секундах и параметр X в этой команде не используется. Также в некоторых интерпретаторах возможно задание задержки параметром U.

G04 P500 или G04 X.5

G10

Переключение абсолютной системы координат. В примере начало координат станет в точке 10, 10, 10 старых координат.

G10 X10. Y10. Z10.

G15

Переход в полярную (цилиндрическую) систему координат. В этой системе параметр X задаёт радиус, а Y угол в градусах. Если включена абсолютная система координат (G90), то начало полярных координат будет в точке текущих координат 0; 0, если включена инкрементная система координат, то начало координат будет в точке, достигнутой при отработке предыдущего кадра.

G15 X15. Y22.5

G16

Отмена полярной системы координат

G16 X15. Y22.5

G17

Выбор рабочей плоскости X-Y

G17

G18

Выбор рабочей плоскости Z-X

G18

G19

Выбор рабочей плоскости Y-Z

G19

G20

Режим работы в дюймовой системе

G90 G20

G21

Режим работы в метрической системе

G90 G21

G22

Активировать установленный предел перемещений (Инструмент не выйдет за их предел)

G22 G01 X15. Y25.

G28

Вернуться на референтную точку

G28 G91 Z0 Y0

G30

Поднятие по оси Z на точку смены инструмента

G30 G91 Z0

G40

Отмена компенсации радиуса инструмента

G1 G40 X0. Y0. F200.

G41

Компенсировать радиус инструмента слева от траектории

G41 X15. Y15. D1 F100.

G42

Компенсировать радиус инструмента справа от траектории

G42 X15. Y15. D1 F100.

G43

Компенсировать длину инструмента в положительную сторону. В основном применяется при смене инструмента.

G43 X15. Y15. Z100. H1 S1000 M3

G44

Компенсировать длину инструмента в отрицательную сторону. Действие аналогично G43.

G44 X15. Y15. Z4. H1 S1000 M3

G49

Отмена компенсации длины инструмента

G49 Z100.

G50

Сброс всех масштабирующих коэффициентов в 1,0

G50

G51

Назначение масштабов. В примере — уменьшение масштаба по оси X в 10 раз. После этой модальной команды все указанные в командах перемещения и координаты по оси X будут умножаться на масштабирующий коэффициент 0,1 и результат интерпретироваться как требуемое перемещение. Если задать масштабирующий коэффициент по некоторой оси (или по любым осям) равным −1, то последующее движение будет зеркальным по этой оси (или осям, где масштабирующий коэффициент −1).

G51 X.1


или G51 X-1

G53

Переход в систему координат станка.

G53 G0 X0. Y0. Z0.

G54-G59

Переключиться на заданную оператором систему координат

G54 G0 X0. Y0. Z100.

G61-G64

Переключение режимов Точный Стоп/Постоянная скорость

G68

Поворот координат на нужный угол

G68 X0 Y0 R45.

G70

Цикл продольного чистового точения

G70 P10 Q15.

G71

Цикл многопроходного продольного чернового точения

G71 P10 Q15. D.5 U.2 W.5

G80

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

G80

G81

Цикл сверления

G81 X0 Y0. Z-10. R3. F100.

G82

Цикл сверления с задержкой

G82 X0. Y0. Z-10. R3. P100 F100.

G83

Цикл прерывистого сверления (с периодическим полным выводом сверла). Параметр Z указывает полную глубину сверления от поверхности (Z=0), R — высота вывода инструмента над поверхностью для вывода стружки и также конечное положение после завершения сверления, Q — величина заглубления одного из нескольких заглублений при сверлении, F — скорость подачи (необязательна, при отсутствии этого параметра скорость определяется ранее заданной скоростью в команде G1.

G83 Z-20 R1 Q2 f20

G84

Цикл нарезания резьбы

G95 G84 M29 X0. Y0. Z-10. R3 F1.411

G90

Задание абсолютных координат опорных точек траектории

G90 G1 X0.5. Y0.5. F10.

G91

Задание координат инкрементально относительно координат последней введённой опорной точки, перемещение инструмента в этой системе координат задаётся в виде приращений

G91 G1 X4. Y5. F100.

G94

F (подача) — в формате мм/мин

G94 G80 Z100. F75.

G95

F (подача) — в формате мм/об

G95 G84 X0. Y0. Z-10. R3 F1.411

G99

После каждого цикла не отходить на <проходную точку>

G99 G91 X10. K4.

Таблица технологических кодов

Технологические коды — это дополнительные команды, которые начинаются с буквы **M**. Они отвечают за включение/выключение шпинделя, подачу охлаждающей жидкости, завершение программы и другие вспомогательные функции. Эти коды дополняют основные команды и делают программу более функциональной.

Вспомогательные (технологические) команды

Код

Описание

Пример

M00

Приостановить работу станка до нажатия кнопки <старт> на пульте управления, так называемая <безусловная технологическая остановка>

G0 X0 Y0 Z100 M0

M01

Приостановить работу станка до нажатия кнопки <старт>, если включён режим подтверждения остановки. Если этот режим отключён, то команда игнорируется. Используется для начальной проверки (отладки) кода.

G0 X0 Y0 Z100 M1

M02

Конец программы, без сброса модальных функций. Указатель номера кадра не изменяется.

M02

M03

Начать вращение шпинделя по часовой стрелке

M3 S2000

M04

Начать вращение шпинделя против часовой стрелки

M4 S2000

M05

Остановить вращение шпинделя

M5

M06

Сменить инструмент

T15 M6

M07

Включить дополнительное охлаждение

M3 S2000 M7

M08

Включить основное охлаждение. Иногда использование более одного M-кода в одной строке (как в примере) недопустимо, для этого используются M13 и M14

M3 S2000 M8

M09

Выключить охлаждение

G0 X0 Y0 Z100 M5 M9

M13

Включить одновременно охлаждение и вращение шпинделя по часовой стрелке

S2000 M13

M14

Включить одновременно охлаждение и вращение шпинделя против часовой стрелки

S2000 M14

M17

Возврат из подпрограммы или из макроса (действие аналогично М99)

M17

M48

Разрешить переопределять скорость подачи

M49

Запретить переопределение скорости подачи

M25

Замена инструмента вручную

M25

M97

Запуск подпрограммы, находящейся в той же программе (где P — номер кадра, в примере переход осуществится к строке с меткой N25), реализована не во всех интерпретаторах, предположительно — только на станках HAAS

M97 P25

M98

Запуск подпрограммы, находящейся отдельно от основной программы (где P — номер подпрограммы, в примере переход осуществится к программе O1015)

M98 P1015

M99

Конец подпрограммы и переход в вызвавшую программу

M99

M30

Конец программы, со сбросом модальных функций и изменением указателя номера кадра на начало программы.

M30

Параметры команд

Каждая команда G-code может включать дополнительные параметры, которые уточняют её действие. Эти параметры задаются с помощью букв и чисел, где каждая буква имеет своё значение:

Код

Описание

Пример

X

Перемещение инструмента в заданную точку с заданной координатой по оси X при работе в абсолютной системе координат (см. G90) или задание смещений относительно точки, достигнутой в предыдущем кадре при работе в инкрементной системе координат (см. G91)

G0 X100 Y0 Z0

Y

Аналогично Х по оси Y

G0 X0 Y100 Z0

Z

Аналогично Х по оси Z

G0 X0 Y0 Z100

P

При использовании в команде вызова подпрограммы (М98) — указание номера вызываемой подпрограммы с именем, заданным после буквы О, например Р301 вызовет подпрограмму с меткой О301. При использовании в команде задержки (G04) указывает время задержки в миллисекундах.

G04 P500;

М98 Р301

О

Метка подпрограммы с указанным номером

О301

F

Линейная скорость перемещения инструмента.

Для фрезерных станков это дюймы в минуту (IPM) или миллиметры в минуту (мм/мин),

Для токарных станков это дюймы за оборот (IPR) или миллиметры за оборот (mm/об). Выбор единиц измерения, дюймы или миллиметры выполняется командами G20 и G21.

G1 G91 X10 F100

S

Частота вращения шпинделя в оборотах в минуту.

S3000 M3

Т

Указание номера инструмента в команде смены инструмента. Обычно указывается перед командой М6.

Т1 М6

R

Расстояние отвода инструмента в повторяющихся циклах обработки, например, прерывистого сверления глубоких отверстий (G81-G89) или радиус дуги при круговых интерполяциях перемещения инструмента (G02, G03).

G81 Z-20 R2 или

G2 G91 X12.5 R12.5

D

Параметр коррекции радиуса выбранного инструмента

G1 G41 D1 X10. F150.

L

Число вызовов подпрограммы, число вызовов макроса, или количество циклов в повторяющихся операциях X_Y_R_ — параметры, передаваемые в макрос

M98 L82 P10 или G65 L82 P10 X_Y_R_

I

Указание смещения по оси X координаты центра дуги при круговой интерполяции перемещения инструмента (см G02, G03). Координаты центра дуги по осям указываются в виде смещения относительно начальной точки (достигнутой в предыдущем кадре). Плоскость интерполяции (плоскость, которая параллельна заданной координатной плоскости указывается командами G17, G18, G19.

G03 X10 Y10 I10 J0 F10

J

Аналогично параметру I для оси Y.

G03 X10 Y10 I0 J10 F10

K

Аналогично параметру I для оси Z.

G03 X10 Y10 I0 K0 F10