Кратко
G54–G59 хранят смещение нуля детали относительно нуля станка, а коррекция G43 Hn добавляет к высоте Z длину конкретного инструмента. Сначала находят ноль детали и вносят его в G54, затем касанием определяют вылет каждого инструмента и записывают в таблицу коррекций. G92 для постоянной привязки не годится: смещение зависит от текущего положения и переживает сброс.
- У станка есть собственный нуль, он жёстко задан датчиками референтных точек. Нуль детали записывают как смещение от него в одной из систем G54–G59, поэтому программа не зависит от того, где заготовка лежит на столе.
- Коррекция G43 Hn прибавляет длину инструмента к координате Z, чтобы вершина любой фрезы приходила в одну и ту же точку. Без неё программа под одну фрезу на второй уйдёт на разницу вылетов.
- В примере с двумя инструментами привязка даёт H1 = −312,456 и H2 = −294,256 мм. G43 H2 Z5 ставит сверло на 5 мм над деталью, а G1 Z−10 уводит его на 10 мм вглубь.
- G92 задаёт смещение от текущего положения и в LinuxCNC сохраняется после сброса. Для рабочей привязки используют G54–G59 и G10 L2.
- Токарная привязка устроена так же, но вылет резца хранится двумя числами, по X и по Z, и вызывается кадром T с номером коррекции, например T0202.
Оборудование
- стойка ЧПУ с таблицами смещений и коррекций
- кромкоискатель или измерительный щуп
- концевая мера или установщик инструмента
- индикатор
Материалы
- закреплённая заготовка
- набор инструментов с известным вылетом
- управляющая программа
Время
≈ 25 мин
Три нуля станка
Когда оператор говорит «выставил ноль», он может иметь в виду разные вещи. На станке их три, и путаница между ними объясняет половину аварий на наладке.
Нуль станка (машинный ноль, референтная точка) определяется датчиками и концевиками: после включения станок «находит» его при поиске нулей. Эти координаты не меняют, от них считается всё остальное.
После каждого включения станка сначала отправляют его в дом по концевикам, и только потом в ноль заготовки; нулевую точку удобно ставить в левый ближний угол. Дом и ноль заготовки не должны совпадать: тогда по Z не остаётся хода, и стойка, например NC Studio, выдаёт ошибку «out of limit».
Нуль детали — точка, от которой отсчитаны размеры в программе. Обычно это угол заготовки или центр отверстия на верхней плоскости. Для фрезеровки оператор находит её кромкоискателем или щупом и записывает как смещение от нуля станка.
Нуль инструмента — длина инструмента от базы шпинделя до вершины. Благодаря коррекции программируемая точка совпадает с вершиной, а не со шпинделем.
Что хранят G54–G59
Шесть классических систем G54–G59 есть практически везде. В LinuxCNC их девять: G54–G59, G59.1, G59.2 и G59.3. У Fanuc к шести добавляются дополнительные G54.1 P1–P48 при наличии опции, их используют в производствах с палетами и многодетальной оснасткой.
| Команда | Назначение | Замечание |
|---|---|---|
| G54–G59 | Выбор рабочей системы координат | Модальны, действуют до замены другой из группы |
| G53 | Движение в машинных координатах | Действует только в своём кадре, нужна для безопасной парковки |
| G10 L2 Pn | Записать смещение системы n числами | Положение станка не важно |
| G10 L20 Pn | Задать смещение так, чтобы текущая точка получила указанное значение | Подходит для привязки по касанию (LinuxCNC) |
| G92 | Сдвинуть начало координат от текущей точки | В LinuxCNC смещение сохраняется после сброса, пока его не отменят |
| G43 Hn | Включить коррекцию на длину инструмента по таблице | Включается до первого рабочего Z |
| G49 | Отменить коррекцию на длину | Ставят перед сменой инструмента и в конце программы |
Таблица составлена по документации LinuxCNC; на стойках Fanuc и совместимых эти команды работают так же, но детали (например, G10 L20) зависят от модели.
Смысл разделения прост. В каждой системе G54–G59 лежит привязка детали на своём месте стола: в G54 тиски слева, в G55 справа. Одна программа выполняется на любом месте с одной заменой G54 на G55, а ноль детали выставляется один раз при установке.
Привязка детали по шагам
Как привязать ноль детали в системе G54
- 01
Закрепите заготовку
и проверьте, что она не повернута относительно осей станка. Индикатором снимите разницу по боковой грани на длине 100 мм: допустимо 0,02–0,03 мм.
- 02
Найдите кромки
кромкоискателем или щупом: касание левой грани даёт X1, правой X2. Ноль по X посередине, (X1 + X2) / 2. Тот же приём для Y.
- 03
Поправьте на радиус щупа.
Если вы касались левой грани шариком диаметром 4 мм, центр шарика отстоит от грани на 2 мм. Разницу вычитают из показания.
- 04
Запишите X и Y в G54
в таблице смещений стойки или командой G10 L2 P1 X… Y…. Значения берутся по машинной координате в точке касания, а не по индикации относительных координат.
- 05
Проверьте привязку
подводом инструмента к грани в режиме ручного шага: в окне позиций G54 должно быть X0 или известное значение.
Для Z ноль обычно выбирают на верхней плоскости заготовки. Если заготовки в партии разной высоты, берут нижнюю плоскость, то есть стол или упор. От этого выбора зависит, как будет работать коррекция на длину инструмента.
При автоматическом датчике нуля по Z в параметры вводят реальную толщину таблетки, измеренную штангенциркулем. Первую проверку делают с поднятым шпинделем и без фрезы, цепь фреза-таблетка прозванивают тестером, а саму таблетку изолируют от корпуса станка. На диэлектриках и на шпинделях с керамическими подшипниками такая схема не работает.
Коррекция на длину инструмента
У фрезы в патроне и у сверла вылет разный, а программа рассчитана на то, что вершина инструмента окажется там, где указано Z. Стойка не знает, какой инструмент в шпинделе, пока не получит номер коррекции. Команда G43 H1 говорит: возьми длину из ячейки 1 и добавь её к программируемому Z.
Расчёт на числах. Ноль по Z — на верхней плоскости детали, в G54 записано Z0, длины хранятся в таблице коррекций как машинная координата касания.
| Инструмент | Машинный Z при касании верха детали | Коррекция | Кадр подвода на 5 мм над деталью |
|---|---|---|---|
| T1, фреза Ø12 | −312,456 | H1 = −312,456 | G43 H1 Z5 → станок идёт в Z = −307,456 |
| T2, сверло Ø8,5, на 18,2 мм короче | −294,256 | H2 = −294,256 | G43 H2 Z5 → станок идёт в Z = −289,256 |
Глубина 10 мм: G1 Z-10 у фрезы приведёт шпиндель в −322,456, у сверла в −304,256. Программа одна, а положения шпинделя разные, потому что инструменты разные. Именно это и нужно.
Есть и второй способ: хранить в коррекции только разность длины относительно эталонного инструмента, а Z детали записывать в G54. Он удобнее, когда длины инструментов измеряют вне станка на установщике. Какой способ принят в цехе, надо знать заранее: при смешении двух способов вылеты вычитаются дважды.
Две детали на столе: пример с G54 и G55
Допустим, в двух позициях стоят одинаковые заготовки с шагом 100 мм по X. Нуль первой детали найден и записан в G54: X −412,300, Y −198,750. Вторую позицию вручную искать не нужно, если шаг выдержан оснасткой: в G55 записывают X −312,300 при том же Y. Программа обработки одна, а в основном кадре меняется только вызов системы:
G54
M98 P1001
G55
M98 P1001Подпрограмма O1001 содержит обработку одной детали, а станок сам переносит траекторию на нужное место. Если ошибка в шаге оснастки 0,05 мм, она целиком уходит во вторую деталь, поэтому для точных размеров вторую позицию лучше привязывать касанием, а не расчётом. Во сколько обходится лишняя наладка на каждую деталь, видно в статье о стоимости нормо-часа станка с ЧПУ.
Токарная привязка
На токарном станке всё устроено так же, но корректируются две оси. Кадр T0202 вызывает инструмент 2 и его ячейку коррекции 2. Ноль по Z обычно на торце готовой детали, по X на оси шпинделя, поэтому диаметр заготовки измеряют.
Порядок: проточить пробную шейку на длине 3–5 мм, не меняя X, остановить шпиндель, измерить диаметр. Пусть получилось Ø49,82 мм: это значение вводят в ячейку X функцией замера, и стойка сама вычислит смещение. Для Z касаются торца и вводят Z0. Затем отдельно ведут геометрию и износ: геометрия отвечает за привязку резца, износ за подгонку размера. Если деталь вышла на 0,04 мм больше чертежа, в износ по X вносят −0,04, привязку не трогают. Подробнее о цикле, который использует эти коррекции, — в разборе G71 и G70.
Ошибки, которые ломают первую деталь
- G92 вместо G54. G92 смещает ноль от текущей позиции и в LinuxCNC остаётся после сброса, пока его не отменят G92.1. Вторая программа, запущенная «с другого места», уедет на то же смещение. Для постоянной привязки используйте G54–G59.
- Привязка по относительным координатам. В окне стойки удобно нажать «обнулить», но в G54 это не попадает. После перезагрузки деталь «потеряется». Всегда записывайте значение в таблицу смещений.
- Забытая отмена. В конце программы без
G49и возврата в безопасную точку следующая программа стартует с чужой коррекцией. Начинайте любую программу с «безопасной строки», как в статье о G-коде для начинающих. - Сменили инструмент в патроне, а ячейку не обновили. Фреза вынута и поставлена заново с другим вылетом, а H осталось прежним. Разница в миллиметры выглядит как «станок режет глубже».
- Нет проверки после аварии. Удар по детали или зажиму сбивает привязку заготовки. Перед продолжением заново касаются кромок и сверяют с записанным значением.
- Постпроцессор выдаёт другой номер. CAM пишет
G54, а оператор привязывал в G55. Если стойка отказывается идти, проверьте, какую систему вызывает программа, и какой постпроцессор выбран.
В привязке спорных мест всего два: какую точку детали считать нулём и в каких единицах записана длина инструмента. Договоритесь об этом один раз в цехе и напишите на листе у станка. Станки, на которых каждый оператор привязывает по-своему, я узнаю по следам удара на оснастке.
Дмитрий ВолковИнженер-механик, фрезерные станки с ЧПУ и CAMЧастые вопросы
Чем G54 отличается от G92?
G54 вызывает постоянное смещение из таблицы, и оно не зависит от текущего положения осей. G92 сдвигает начало координат от точки, где инструмент находится сейчас, поэтому результат зависит от того, откуда запустили команду.
Сколько систем координат нужно в цехе?
Для одной детали достаточно G54. Если в тисках или на столе лежит несколько заготовок, каждую привязывают в своей системе, например G54 и G55, а программу вызывают с нужной. Это экономит наладку при серии.
Нужна ли коррекция G43, если инструмент один?
Если программа идёт одним инструментом и Z вершины записан прямо в G54, обойтись можно. На практике G43 включают всегда: инструмент рано или поздно заменят, и привязка сохранится в ячейке.
Как проверить привязку без детали?
Выполнить программу «в воздухе» с нулём по Z, поднятым на 20–30 мм, и покадровым режимом. Дойти до первых подходов и убедиться, что вершина инструмента останавливается там, где вы ожидали.
Источники
- Coordinate Systems ↗ — LinuxCNC Documentation
- Tool Compensation ↗ — LinuxCNC Documentation
- G Codes ↗ — LinuxCNC Documentation
- ГОСТ 20999-83. Устройства числового программного управления для металлообрабатывающего оборудования. Кодирование информации управляющих программ ↗ — Госстандарт СССР, 1983

Автор
Дмитрий ВолковИнженер-механик, фрезерные станки с ЧПУ и CAM, 15 лет в отрасли
Пятнадцать лет работает с фрезерными станками с ЧПУ: от мебельных раскроечных центров до обработки металла. Пишет о фрезерах, инструменте, CAM-программах и системах управления.
Все материалы автора →Как мы готовим материалы — в редакционной политике. Нашли ошибку? Напишите нам.
Комментарии
Пока никто не написал. Задайте вопрос — автор или эксперты редакции ответят.
Написать комментарий



