Объяснение основных команд G-кода


В данной статье мы рассмотрим основы языка G-кода, его самые важные и распространенные команды и объясним как они работают. Понимание принципов работы G-кода необходимо тем, кто так или иначе связан связан со станками с ЧПУ (плоттерами) или 3D-принтерами. Несколько вариантов подобных плоттеров на основе платы Arduino ранее мы уже рассматривали на нашем сайте - в них вы можете наглядно посмотреть пример практического использования G-кода:

Основные принципы G-кода

Что такое G-код?

G-код — это язык программирования для станков с числовым программным управлением (ЧПУ). G-код означает «геометрический код». Мы используем этот язык, чтобы сказать машине, что делать или как что-то делать. Команды G-кода указывают машине, куда двигаться, как быстро двигаться и по какому пути следовать.

В случае станка, такого как, например, токарный станок или фрезерный станок, режущий инструмент приводится в действие этими командами, чтобы следовать определенной траектории инструмента, вырезая материал для получения желаемой формы.

Точно так же в случае использования 3D-принтеров команды G-кода предписывают машине наносить материал слой за слоем, формируя точную геометрическую форму.

Как читать команды G-кода?

На первый взгляд, когда вы видите файл G-кода, он может показаться довольно сложным, но на самом деле его не так уж сложно понять если знать основные принципы его формирования.

Пример команд G-кода

Если внимательно посмотреть на код, то можно заметить, что большинство строк имеют одинаковую структуру. Кажется, что «сложная» часть G-кода — это все те числа, которые мы видим. На самом деле они являются просто декартовыми координатами.

Давайте посмотрим на одну такую строку и объясним, как она работает.

G01 X247.951560 Y11.817060 Z-1.000000 F400.000000

Строка имеет следующую структуру:

G## X## Y## Z## F##

  • во-первых, это команда G-кода, и в данном случае G01 означает «переместиться по прямой линии в определенное положение»;
  • далее мы объявляем позицию или координаты со значениями X , и Z;
  • наконец, с помощью значения F мы устанавливаем скорость подачи или скорость, с которой будет выполняться перемещение исполнительного механизма.

Подводя итог можно сказать, что строка G01 X247.951560 Y11.817060 Z-1.000000  F400  указывает станку с ЧПУ двигаться по прямой от текущего положения к координатам X247.951560, Y11.817060 и Z-1.000000 со скоростью 400 мм/мин. Единицей является мм/мин, потому что, если мы вернемся к примеру изображения G-кода, мы увидим, что мы использовали команду G21 (вверху рисунка), которая устанавливает единицы измерения в миллиметры. Если нам нужны единицы измерения в дюймах, вместо этого необходимо использовать команду G20.

Самые важные/распространенные команды G-кода

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

G00 — Быстрое позиционирование

Команда G00 перемещает исполнительный механизм с максимальной скоростью перемещения из текущего положения в указанную точку или координаты, указанные командой. Станок будет перемещать все оси одновременно, поэтому они совершают перемещение одновременно. Это приводит к прямолинейному движению к новой точке положения.

Команда G00 - быстрое позиционирование

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

G01 — линейная интерполяция

Команда G-кода G01 дает указание станку двигаться по прямой линии с заданной скоростью подачи или скоростью. Мы указываем конечную позицию значениями X , Y и Z , а скорость — значением F. Контроллер машины вычисляет (интерполирует) промежуточные точки, через которые нужно пройти, чтобы получить эту прямую линию. Хотя эти команды G-кода просты и интуитивно понятны, за ними контроллер станка выполняет тысячи вычислений в секунду, чтобы выполнять эти движения.

Команда G01 - линейная интерполяция

В отличие от команды G00, которая используется только для позиционирования, команда G01 используется когда станок выполняет свою основную работу. В случае токарного станка или фрезерного станка резка материала по прямой линии, а в случае 3D-принтера — экструдирование материала по прямой линии.

G02 — круговая интерполяция по часовой стрелке

Команда G02 указывает станку двигаться по часовой стрелке по кругу. Это та же концепция, что и у команды G01, и она используется при выполнении соответствующего процесса обработки. В дополнение к параметрам конечной точки здесь также необходимо определить центр вращения или расстояние начальной точки дуги от центральной точки дуги. Начальная точка на самом деле является конечной точкой предыдущей команды или текущей точкой.

Для лучшего понимания мы добавим команду G02 после команды G01 из предыдущего примера.

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

Итак, в первом примере у нас есть команда G01, которая перемещает станок в точку X5, Y12. Теперь это будет отправной точкой для команды G02. С помощью параметров X и Y команды G02 мы устанавливаем конечную точку. Теперь, чтобы добраться до этой конечной точки, используя круговое движение или дугу, нам нужно определить ее центральную точку. Мы делаем это, используя параметры I и J. Значения I и J относятся к начальной или конечной точке предыдущей команды. Итак, чтобы получить центральную точку X5 и Y7, нам нужно сделать смещение 0 по оси X и смещение -5 по оси Y.

Конечно, мы можем установить центральную точку в любом другом месте, таким образом, мы получим другую дугу, которая заканчивается в той же конечной точке. Вот пример этого:

Еще один пример команды G2

Итак, здесь у нас по-прежнему та же конечная точка, что и в предыдущем примере (X10, Y7), но центральная точка теперь находится в другом положении (X0, Y2). Благодаря этому мы получили более широкую дугу по сравнению с предыдущей.

G00, G01, G02 - пример программирования G-кода вручную

Давайте рассмотрим простой пример фрезерной обработки с ЧПУ, используя рассмотренные нами три основные команды G-кода: G00, G01 и G02.

Пример траектории для G-кода

Чтобы получить траекторию для формы, показанной на рисунке выше, нам нужно выполнить следующие команды G-кода:

С помощью первой команды G00 мы быстро переводим исполнительный механизм из исходного положения в точку B(5,5). Отсюда мы начинаем с «резки» со скоростью подачи 200, используя команду G01 . Здесь мы можем отметить, что для перехода из точки B(5,5) в точку C(5,25) мы используем значения для X и Y относительно начальной точки B. Таким образом, +20 единиц в направлении Y приведут нас к точке C(5,25). На самом деле это зависит от того, выбрали ли мы машину для интерпретации координат как абсолютных или относительных. Мы объясним это в следующем разделе.

Как только мы достигаем точки C(5,25), у нас есть еще одна команда G01 для достижения точки D(25,25). Затем мы используем команду G02, круговое движение, чтобы добраться до точки E(35,15) с центральной точкой (25,15). На самом деле у нас есть та же самая центральная точка (25,15) для следующей команды G02, чтобы добраться до точки F(31,7). Однако мы должны отметить, что параметры I и J отличаются от предыдущей команды, потому что мы смещаем центр от последней конечной точки или точки E. Мы заканчиваем траекторию с помощью другой команды G01, которая доставит нас из точки F(31, 7) в точку B(5,5).

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

G03 — круговая интерполяция против часовой стрелки

Как и G02, команда G-кода G03 определяет движение машины по круговой схеме. Единственная разница здесь в том, что движение происходит против часовой стрелки. Все остальные функции и правила аналогичны команде G02.

Команда G03 - круговая интерполяция против часовой стрелки

Итак, с помощью этих трех основных команд G-кода, G01 , G02 и G03, мы можем сгенерировать траекторию буквально для любой формы, которую захотим. На первый взгляд вам показаться это сложной задачей, но на самом деле с ней очень просто справляется специализированное программное обеспечение (CAM) на компьютере. Да, конечно можно и самому вручную программировать программировать команды G-кода, но амного проще и безопаснее доверить это компьютеру.

Но, тем не менее, далее мы рассмотрим еще несколько важных и часто используемых команд G-кода, а в конце статьи приведем реальный пример G-кода.

G20/ G21 – выбор единиц измерения

Команды G20 и G21 определяют единицы измерения G-кода: дюймы или миллиметры.

  • G20 = дюймы
  • G21 = миллиметры

Необходимо заметить, что единицы измерения должны быть установлены в начале программы. Если мы не укажем единицы измерения, машина будет считать значения по умолчанию, установленные предыдущей программой.

G17/ G18/ G18 – выбор плоскости G-кода

С помощью этих команд G-кода мы выбираем рабочую плоскость станка.

  • G17 - плоскость XY
  • G18 - плоскость XZ
  • G19 - плоскость YZ

Команды для выбора плоскости G-кода

G17 используется по умолчанию для большинства станков с ЧПУ, но две других команды также можно использовать для выполнения определенных движений.

G28 — возвращение домой

Команда G28 указывает станку переместить инструмент в исходную точку или исходное положение. Чтобы избежать столкновения с каким-нибудь выступом, мы можем включить промежуточную точку с параметрами X, Y и Z. Инструмент пройдет через эту точку, прежде чем перейти к контрольной точке. G28 X## Y## Z## 

Команда G28 - возвращение домой

Исходное положение можно определить с помощью команды G28.1 X## Y## Z##.

G90/G91 – команды режима позиционирования G-кода 

С помощью команд G90 и G91 мы сообщаем станку как интерпретировать координаты: G90абсолютный режим, G91относительный режим .

В абсолютном режиме позиционирование инструмента всегда происходит от абсолютной точки или нуля. Таким образом, команда G01 X10 Y5переместит инструмент точно в эту точку (10,5), независимо от предыдущей позиции.

С другой стороны, в относительном режиме инструмент позиционируется относительно последней точки. Таким образом, если станок в данный момент находится в точке (10,10), команда G01 X10 Y5переместит инструмент в точку (20,15). Этот режим также называют «инкрементным режимом».

Дополнительные команды и правила

Итак, команды G-кода, которые мы объяснили выше, являются наиболее распространенными, но их намного больше. Существуют такие команды, как компенсация режущего инструмента, масштабирование, рабочие системы координат, выдержка и т. д.

В дополнение к G-коду существуют также команды М-кода, которые используются при создании реальной полноценной программы G-кода. Вот несколько общих команд М-кода:

  • M00 – остановка программы
  • M02 – конец программы
  • M03 — шпиндель ON — по часовой стрелке
  • M04 — шпиндель ON — против часовой стрелки
  • M05 — останов шпинделя
  • M06 — смена инструмента
  • M08 – подача охлаждающей жидкости ON
  • M09 – охлаждающая жидкость OFF
  • M30 – конец программы

В случае 3D-принтера:

  • M104 — pапустить нагрев экструдера
  • M109 — подождать, пока экструдер не достигнет T0
  • M140 — запустить подогрев нагревательного элемента
  • M190 — подождать, пока кровать не достигнет T0.
  • M106 — установить скорость вентилятора

Некоторым из этих команд нужны соответствующие параметры. Например, при включении шпинделя с помощью M03 мы можем установить скорость шпинделя с помощью параметра S. Таким образом, команда M30 S1000 будет включать шпиндель на скорости 1000 об/мин.

Мы также можем отметить, что многие коды являются модальными , что означает, что они остаются в силе до тех пор, пока не будут отменены или заменены другим кодом. Например, предположим, что у нас есть код для линейного движения резки G01 X5 Y7 F200. Если следующим движением снова будет линейная резка, мы можем просто ввести координаты X и Y без надписи G01 впереди.

То же самое относится и к параметру скорости подачи F. Нам не нужно включать его в каждую строку, если только мы не хотим изменить его значение.

В некоторых файлах G-кода вы также можете увидеть «N##» перед командами. Слово N служит просто для нумерации строки или блока кода. Это может быть полезно для определения конкретной строки в случае ошибки в огромной программе.

Пример простой программы G-кода

Теперь, прочитав все изложенное выше, мы можем вручную сделать настоящий, актуальный код. Вот его пример:

Пример простой программы G-кода

Описание представленного кода:

  1. Инициализация кода. Символ % всегда присутствует в начале и в конце программы.
  2. Пустая строка - не нужна, присутствует здесь из-за ограниченных возможностей инструмента показа кода в веб-браузере.
  3. Настройки кода: задаем программирование в метрической системе (все размеры в мм), плоскость XY, абсолютное позиционирование и скорость подачи 100 дюймов/мин.
  4. Шпиндель по часовой стрелке со скоростью 1000 об/мин.
  5. Быстрое позиционирование на B(5,5).
  6. Контролируемое движение в том же положении, но с опусканием инструмента на -1.
  7. Линейное режущее движение в положение C(5,15).
  8. Круговое движение по часовой стрелке к точке D(9,19) с центром в точке (9,15).
  9. Линейный разрез до точки E(23,19).
  10. Линейный разрез до точки F(32,5).
  11. Тот же прямой разрез до точки G(21,5).
  12. Еще один прямой переход к точке H(21,8).
  13. Круговая интерполяция против часовой стрелки до позиции I(19,10) с центральной точкой (19,8).
  14. Линейный разрез до точки J(13,10).
  15. Круговая резка против часовой стрелки до позиции K(11,8) с центром в точке (13,8).
  16. Линейная резка в положение L(11,5).
  17. Заключительное линейное движение резки в положение B(5,5).
  18. Поднимем инструмент.
  19. Перейдем в исходное положение.
  20. Выключим шпиндель.
  21. Конец основной программы.

А вот как этот код выглядит готовым к отправке на наш станок с ЧПУ через программное обеспечение Universal G-code Sender:

Пример G-кода в программном обеспечении Universal G-code Sender

Итак, используя рассмотренные основные команды G-кода, нам удалось написать собственный полноценный G-код. Конечно, этот пример довольно прост, и для более сложных форм нам нужно будет использовать программное обеспечение CAM. Вот пример сложного G-кода формы лошади:

Пример сложного G-кода формы лошади

Для сравнения, в этом коде около 700 строк, но все они сгенерированы автоматически. G-код был сделан с использованием программного обеспечения Inkscape. С его помощью можно, например, создать вот такую фигуру из пенопласта:

Пример лошади, вырезанной из пенопласта

Заключение

Итак, мы рассмотрели основы G-кода, объяснили наиболее важные и распространенные команды G-кода и вручную создали собственный настоящий G-код. В конце концов, я думаю, что понять G-код не так уж и сложно. Конечно, существует так много других команд и функций, используемых в обработке с ЧПУ или 3D-печати, о которых вы должны знать, но я, думаю, их вы, если понадобится, сможете изучить в специализированных руководствах.

(Проголосуй первым!)
Загрузка...
6 265 просмотров

Комментарии

Объяснение основных команд G-кода — 6 комментариев

      • в коде 22 строки в описании 20. Всё понятно если вчитываться, но если хочется сравнить определенную строку то возникают проблемы. Смещение начинается со строки 02. она пустая )

        • Хорошо, спасибо, увидел. Вставил в описание кода что пустая строка не нужна и ее можно убрать. Убрать ее из материала я не смог, инструмент для показа кода почему то не дает это сделать. Видимо, он воспринимает знак "%" как какой то управляющий символ

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *