Синтаксис G-code: команды, коды и параметры
G-code — это универсальный язык программирования для станков с числовым программным управлением (ЧПУ). Он используется для описания траектории движения инструмента, скорости обработки, глубины реза и других параметров. В этой статье мы разберём основные команды, технологические коды и параметры, которые помогут вам эффективно работать с G-code.
Таблица основных команд
Основные команды G-code — это базовые инструкции, которые управляют движением инструмента и координатами станка. Эти команды начинаются с буквы **G** и используются для выполнения таких операций, как линейное перемещение, быстрый ход или включение режима круговой интерполяции.
Команда | Описание | Пример |
---|---|---|
G00[3] | Ускоренное перемещение инструмента (холостой ход). При холостом перемещении НЕ ОБЯЗАТЕЛЬНО производится линейная интерполяция перемещения аналогично команде G01. В некоторых интерпретаторах при выполнении команды перемещения по нескольким осям одновременно, перемещение по осям отрабатывается с максимальной скоростью, поэтому линейное перемещение от исходной точки в конечную точку не обеспечивается, поэтому нельзя производить ходы обработки детали при действии этой модальной команды. | G0 X0 Y0 Z100. |
G01 | Линейная интерполяция, модальная команда. Инструмент (рабочий орган) перемещается по отрезку прямой линии от исходной точки с координатами до исполнения команды в точку с заданными в команде координатами, скорость перемещения задаётся здесь же или ранее модальной командой F. При этом скорость перемещения связана со скоростями перемещения по осям как
— приращения координат между кадрами; — скорости по осям. |
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 |
Комментарии ()