- Регистрация
- 10.09.2025
- Сообщения
- 13
- Решения
- 1
- Реакции
- 31
- Баллы
- 13
- Город
- Москва
- Имя
- NoName
Не буду перечислять ошибки в справочнике, так как текст получился и так большой. После внесения изменений в справочник тему необходимо будет удалить, чтобы не дублировать информацию. А также я бы удалил другие темы, которые есть с аналогичной темой.
Далее опишу раздел G-кода так, как я его вижу более корректным.
Будет описана работа только тех команд, которые поддерживаются прошивкой GRBL 1.1h.
Примечание. В прошивке есть пустые команды, которые обрабатываются прошивкой, но никак не влияют на работу станка. Сделано это по той причине, что некоторые CAD-программы генерируют эти команды, но, чтобы не вызывать ошибку и остановку выполнения УП, эти команды обрабатываются без изменений в работе станка.
Первое, с чего стоит начать, это с определения модальных команд (групп, слов).
Весь G-код делится на несколько так называемых модальных групп.
Модальная команда (группа, состояние, слово) — это такая команда, которая переключает состояние станка и остается в нем постоянно до того момента, пока другая модальная команда из той же группы не заменит её. Это означает, что более одной команды из одной группы не могут быть активными одновременно. Вызов одной команды отменяет действие любой другой из той же группы, которая была активна.
В прошивке GRBL имеются следующие модальные группы:
Группа G0 - команды: G4, G10, G28, G28.1, G30, G30.1, G53, G92, G92.1 - Не является(!) модальной группой
Группа G1 - команды: G0, G1, G2, G3, G38.2, G38.3, G38.4, G38.5, G80 - Движение (Motion)
Группа G2 - команды: G17, G18, G19 - Выбор плоскости (Plane selection)
Группа G3 - команды: G90, G91 - Режим расстояния (Distance mode)
Группа G4 - команды: G91.1 - Режим расстояния дуги IJK (Arc IJK distance mode)
Группа G5 - команды: G93, G94 - Режим подачи (Feed rate mode)
Группа G6 - команды: G20, G21 - Единицы измерения (Units)
Группа G7 - команды: G40 - Компенсация радиуса инструмента (Cutter radius compensation mode), G41/42 не поддерживаются
Группа G8 - команды: G43.1, G49 - Смещение длины инструмента (Tool length offset)
Группа G12 - команды: G54, G55, G56, G57, G58, G59 - Выбор системы координат (Coordinate system selection)
Группа G13 - команды: G61 - Режим управления (Control mode)
Модальные М группы:
Группа M4 - Коды: M0, M1, M2, M30 - Остановка (Stopping)
Группа M7 - Коды: M3, M4, M5 - Вращение шпинделя (Spindle turning)
Группа M8 - Коды: M7, M8, M9 - Управление охлаждением (Coolant control)
Группа M9 - Код: M56 - Управление переопределением (Override control)
Также модальными являются некоторые переменные, например T — выбор инструмента. S — установка скорости шпинделя. F — установка скорости подачи и т. д.
Просмотреть некоторые активные модальные состояния можно при помощи команды $G.
Пример выдачи $G < [GC:G1 G54 G17 G21 G91 G94 M5 M9 T0 F10 S200]:
- G1 — группа G1: Режим движения (движение инструмента, линейная интерполяция)
- G54 — группа G12: Выбор системы координат (Coordinate system selection)
- G17 — группа G2: Выбор рабочей плоскости (Плоскость XY YZ XZ)
- G21 — группа G6: Единицы измерения (Units, миллиметры)
- G91 — группа G3: Режим перемещения. (Абсолютный или относительный)
- G94 — группа G5: Режим подачи (Feed rate mode, подача в минуту)
- M5 — Группа M7: Состояние шпинделя (Spindle stop)
- M9 — Группа M8: Управление охлаждением (Coolant off)
- T0 — Выбор инструмента (Tool selection) (Поддерживаются значения от 0 до 255)
- F10 — Скорость подачи (Feedrate, задается в коде)
- S200 — Скорость вращения шпинделя (Spindle speed)
Например, если в данный момент активна команда G91 (относительный режим перемещения), то её может заменить только G90 (абсолютный режим перемещения). Ни один другой код не может изменить это активное состояние кода G91.
Группа_G0(не путать с командой G0) не является модальной, а это значит что вызывать код (G4, G10, G28, G28.1, G30, G30.1, G53, G92, G92.1) необходимо каждый раз заново. Эти команды выполняют некие действия, но не изменяют активное состояние.
Некоторые ошибки кода связанные c неверной работой модальных групп.
Например хотим переместить фрезу на x50 y50. Произвести зондирование и вернуть фрезу в ноль.
Код:
G90 G0 X50 Y50
G38.2 Z-10 F100
X0 Y0
Код:
G90 G0
X50 Y50 F100
Z-10
X0 Y0
... и т.д.
Также прежде чем перейти к описанию кодов стоит упомянуть что G-коды делятся еще на два типа. На команды с обязательными параметрами и без обязательных параметров которые могут выполняться самостоятельно.
Модальная группа №1:
G0Холостое линейное перемещение шпинделя.
Перемещение шпинделя в этом режиме будет осуществляться без учета скорости подачи Fxxx.
Не требует обязательные параметры.
G1
Рабочее линейное перемещение шпинделя.
Перемещение шпинделя в этом режиме будет осуществляться с учетом скорости подачи Fxxx.
Не требует обязательные параметры. Но может вызывать ошибку, если подача F = 0.
G2, G3
Криволинейное перемещение шпинделя по часовой стрелке (G2) и движение против часовой стрелки (G3). При помощи этой команды можно перемещать шпиндель по окружности или дуге окружности.
Требует обязательные параметры. Ручное написание команды имеет сложный синтаксис, команда выдает ошибку, если между указанными точками невозможно построить дугу.
Важные правила:
1) Начальная точка — это текущее положение. Конечная точка должна лежать на окружности. Полная окружность — задать ту же начальную точку как конечную. Проверка расчета, что конечная точка лежит на окружности с центром (I, J), осуществляется формулой (X — (startX + I) )² + (Y — (startY + J) )² = R²
2) Нельзя смешивать R и I, J, K в одной команде.
3) P работает только с I,J (не с R) в GRBL не поддерживается.
4) Z обычно требует I, J для определения плоскости дуги.
5) Выполнение зависит от того, какая активна команда G91 или G90.
6) По умолчанию интерпретация координат I, J, K выполняется в относительном режиме G91.1 (смотри описание модальной группы 4)
I, J — смещение центра дуги от начальной точки по горизонтали и вертикали (обязательны, если нет R).
R — радиус дуги (альтернатива I, J).
P — параметр который в некоторых системах может задавать, например, количество кругов. Не используется в GRBL
Примеры:
Код:
G2 X0 I1 ; минимальные условия для окружности диаметром 1мм
G2 X1 I1 ;Ошибка: X1 ≠ X0 (неполная окружность без Y)
G2 X10 Y5 R3 F200 ; Дуга по часовой стрелке до точки (10,5) радиусом 3mm
G2 X0 Y0 I10 P2 ; Ошибка:2 полные окружности радиусом 10mm // P - команды не поддерживаются
G91 G2 X0 Y0 Z-2 I2 F200 ; Простая спираль (только Z + I,J)
G90 G2 X0 Y0 Z-2 I2 F200 ; Ошибка: G90 + Z (только в G91)
Для построения простой окружности можно использовать простой код G2 X0 Y0 I1 F200. В этом случае будет построена окружность. Точка старта построения окружности будет лежать на окружности. I1 — это смещение центра окружности от фактического положения фрезы вправо на 1 мм.
Пример фрезерования цилиндрического кармана в два захода
Код:
G21 G90 ; Первоначальные настройки
G0 Z5 ; Поднять фрезу на безопасную высоту
G0 X10 Y10 ; Переходим в центр окружности фрезерования
M3 S1000 ; Включаем шпиндель со скоростью 1000 (условных единицы)
G90 G1 Z-1 F100 ; Погружение на глубину 1 мм
G91 G0 X-2 ; смещаемся влево на размер радиуса окружности
G91 G2 X0 Y0 I2 F150 ; Круговое движение по часовой стрелке с радиусом 2 мм. Подачей 150
G91 G1 X-1 ; Смещаемся еще на 1 мм(общий радиус 3мм)
G91 G2 X0 Y0 I3 F150 ; Круговое движение по часовой стрелке с радиусом 3 мм
G90 G0 Z5 ; Поднимаем инструмент на безопасную высоту. Переключаемся в режим абсолютных координат
G0 X50 Y50 ; Перемещаемся на новую точку в режиме абсолютных координат
;... повторяем цикл фрезерования на новом месте если требуется
G38.2
G38.3
G38.4
G38.5
Зондирование.
- G38.2 — выполнение перемещения к заданной точке с остановкой при контакте щупа; если контакт не достигнут, считается ошибкой.
- G38.3 — выполнение перемещения с остановкой при контакте щупа, но без сигнализации ошибки при отсутствии контакта.
- G38.4 — перемещение с остановкой при потере контакта щупа, с ошибкой, если контакт не теряется.
- G38.5 — перемещение с остановкой при потере контакта щупа, без сигнализации ошибки при отсутствии потери контакта.
1) Координаты X Y Z(можно перемещать как по одной оси так и по всем сразу). Перемещение может быть как в абсолютных координатах так и в относительных (G91 G90).
2) F - подача
Пример настройки макроса зондирования:
Код:
G21 G91 ; настройка систем станка
G38.2 Z-30 F100 ; Зондирование на -30 мм с подачей 100
G0 Z1 ; Подъем шпинделя
G38.2 Z-2 F10 ; Повторное зондирование с меньшей подачей для более точного позиционирования.
G92 Z19.28 ; Устанавливаем значение высоты Z на толщину пробника
G90 G0 Z25 ; Поднимаем шпиндель чтобы можно было достать пробник из под фрезы.
Ваши сообщения автоматически объединены:
Остальной текст не вместился из-за ограничения на форуме более 2000 слов.
Так что вопрос к модераторам как опубликовать остальное?