Что такое g-код для станков с чпу

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

Команда Описание Пример
G00 Ускоренное перемещение инструмента (холостой ход). При холостом перемещении НЕ ОБЯЗАТЕЛЬНО производится линейная интерполяция перемещения аналогично команде G01. Очень часто каждая ось едет с постоянной скоростью независимо. Так что нельзя производить обработку этой командой. G0 X0 Y0 Z100.
G01 Линейная интерполяция, модальная команда. Инструмент (рабочий орган) перемещается по отрезку прямой линии от исходной точки с координатами до исполнения команды в точку с заданными в команде координатами, скорость перемещения задаётся здесь же или ранее модальной командой F. G01 X0. Y0. Z100. F200.
G02 Круговая интерполяция по часовой стрелке, модальная команда. Инструмент перемещается по дуге окружности по часовой стрелке от исходной точки с координатами до исполнения команды в точку с заданными в команде координатами, радиус дуги задаётся параметром 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 — в секундах. G04 P500 или G04 X.5
G10 Переключение абсолютной системы координат. В примере начало координат станет в точке 10, 10, 10 старых координат. G10 X10. Y10. Z10.
G15 Отмена полярной системы координат G15 X15. Y22.5
G16 Переход в полярную систему координат (X радиус Y угол) 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 Компенсировать длину инструмента отрицательно G44 X15. Y15. Z4. H1 S1000 M3
G49 Отмена компенсации длины инструмента G49 Z100.
G50 Сброс всех масштабирующих коэффициентов в 1,0. G50
G51 Назначение масштабов. В примере — уменьшение масштаба по оси X в 10 раз. 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. D0.5 UO.2 W0.5
G80 Отмена циклов сверления, растачивания, нарезания резьбы метчиком и т. д. G80
G81 Цикл сверления G81 X0 Y0. Z-10. R3. F100.
G82 Цикл сверления с задержкой G82 X0. Y0. Z-10. R3. P100 F100.
G83 Цикл прерывистого сверления (с полным выводом сверла) G83 X0. Y0. Z-10. R3. Q8. F100.
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.

максимум 4 команды в кадре

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

Код Описание Пример
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 Конец подпрограммы M17
M25 Замена инструмента вручную M25
M97 Запуск подпрограммы, находящейся в той же программе (где P — номер кадра, в случае примера переход осуществится к строке N25), действует не везде, предположительно — только на станках HAAS M97 P25
M98 Запуск подпрограммы, находящейся отдельно от основной программы (где P — номер подпрограммы, в случае примера переход осуществится к программе O1015) M98 P1015
M99 Конец подпрограммы M99
M30 Конец программы, со сбросом модальных функций M30

не больше одного кода в кадре

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

Параметры команд задаются буквами латинского алфавита

Код Описание Пример
X Координата точки траектории по оси X G0 X100 Y0 Z0
Y Координата точки траектории по оси Y G0 X0 Y100 Z0
Z Координата точки траектории по оси Z G0 X0 Y0 Z100
P Параметр команды G04 P101
F Скорость рабочей подачи.

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

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

G1 G91 X10 F100
S Скорость вращения шпинделя S3000 M3
R Параметр стандартного цикла или радиус дуги (расширение стандарта) G81 R1 0 R2 −10 F50 или G2 G91 X12.5 R12.5
D Параметр коррекции выбранного инструмента G1 G41 D1 X10. F150.
L Число вызовов подпрограммы M98 L82 P10 или G65 L82 P10 X_Y_R_
I Параметр дуги при круговой интерполяции. Инкрементальное расстояние от начальной точки до центра дуги по оси X. G03 X10 Y10 I0 J0 F10
J Параметр дуги при круговой интерполяции. Инкрементальное расстояние от начальной точки до центра дуги по оси Y. G03 X10 Y10 I0 J0 F10
K Параметр дуги при круговой интерполяции. Инкрементальное расстояние от начальной точки до центра дуги по оси Z. G03 X10 Y10 I0 K0 F10
L Вызов подпрограммы с данной меткой

Дополнительные функции и символы при программировании станков с ЧПУ

X, Y, Z — команды осевого перемещения.

А, В, С — команды кругового перемещения вокруг осей X, Y, Z соответственно.

I, J, К — параметры круговой интерполяции параллельные осям X, Y, Z соответственно.

R

При круговой интерполяции G02 или G03, R определяет радиус, который соединяет начальную и конечную точки дуги. В постоянных циклах R определяет положение плоскости отвода. При работе с командой вращения R определяет угол поворота координатной системы.

D — значение коррекции на радиус инструмента.

Н — значение компенсации длины инструмента.

F — функция подачи.

S — функция главного движения.

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

N — нумерация кадров УП.

— пропуск кадра.

(…) — комментарии в УП.

Расшифровка основных G кодов для ЧПУ

Перейдем к рассмотрению того, как расшифровываются основные G коды для станков с ПУ.

G00

Задает скоростное позиционирование. Ее используют, когда нужно быстро переместить режущий инструмент в готовое состояние для начала работы или поместить его в безопасную позицию. Ускоренный вариант не применяют в процессе обработки деталей, поскольку скорость, которая развивается в данном случае, очень высока. Данную команду можно отменить с помощью команды G01, G02, G03.

G01

Представляет собой линейную интерполяцию. Такая команда необходима для движения инструмента по прямой, скорость задается символом F. Отмена функции осуществляется кодами G00,  G02, G03. Пример записи команды: G01 X20 Y150 F60.

G02

Задает движение по часовой стрелке, режущий инструмент начинает двигаться по дугообразной траектории, скорость задается символом F. Также задаются параметры в координатной плоскости. Символы I, J, K – определяющие координаты дуги в плоскости. Отмена осуществляется кодами G00, G01, G03.

G04

Задают перерыв в работе. продолжительность паузы задается Х или Р символом. Обычно пауза длится около одной секунды.

G17

Задает плоскость. С помощью кода G17 выбирают координаты XY. Такая функция необходима для вращающихся движений и процесса сверления.

G18

Задает плоскость в координатах XZ, эта плоскость становится рабочей в процессе круговой интерполяции, вращательных движениях и процессе сверления.

G19

Позволяет выбрать рабочую площадь в координатах YZ. Такая функция необходима для движения инструмента в круговой интерполяции и постоянном цикле сверления.

G40

Отменяет функцию автоматической коррекции на заданный радиус инструмента, задаваемого G41 и G42.

G41

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

G42

Аналогичен коду G41, он предназначен для автокоррекции на радиус, расположенный справа от обрабатываемой детали. Программу также задают с функцией D.

G43

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

Задает локальные координатные параметры помимо стандартных параметров.

G54 – G59

Осуществляют заданное смещение рабочего элемента относительно координатных параметров станка. Используя коды G54, G55, G56, G57, G58, G59 можно определить, в какой именно системе координат будет совершаться работа. Меняя коды, программист получает возможность обрабатывать разнообразные детали.

G68

Задается вращение координат, команда позволяет смещать координатную систему под определенным углом. Плоскость вращения, центр и угол поворота задается командами G17,  G18,  G19, R. Команда G69 отменяет эту функцию.

Используется для нарезания левой резьбы.

Позволяет установить абсолютные накопители положения.

G97

Задает параметры оборотов, производимых за одну минуту.

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

Какие бывают G-коды

Программы с G-кодом пишутся в виде текстового формата, каждую строчку называют кадром. Кадр состоит из буквенного символа – это адрес и цифра, в которой выражено числовое значение. Коды бывают основными и вспомогательными. На основе такой программы работает токарный и фрезерный станок с ЧПУ.

Команды группы G называют подготовительными. Они задают движение рабочих элементов на станке с определенной скоростью. Скорость может быть круговой или линейной. Также G-код используется для обработки отверстий и резьбы. Еще одной функцией является управление параметрами и координатными системами аппаратуры.

Основные команды программы направлены на выполнение следующих функций:

  • G00 – G04 функция позиционирования;
  • G17 – G19 осуществляют переключение рабочих параметров;
  • G40 – G44 компенсация длины и диаметра разных элементов аппарата;
  • G54 – G59 переключение координатных систем;
  • G71 – функция обработки отверстий;
  • G80 – G84 функция нарезания резьбы и сверления;
  • G90 – G92 переключение абсолютной и относительной систем координат.

Символы бывают разными: М выполняет вспомогательные функции, такая команда необходима для смены инструмента, вызова подпрограммы и ее завершения, S – это функция основного движения, F – подача, Т, D, Н являются выражением функций инструмента.

Значение символа зависит от вида станка с ЧПУ. Программирование осуществляется на основе этих кодов.

On-line генерация G-кода по растровому изображению

Интернет-сервис формирования G-кода из BMP, JPG, GIF, PNG

Мощность

 Диапазон мощности


 Минимум — Максимум

 Дискретные значения

Описание сервиса

Сервис предназначен для формирования G-кода для станка с ЧПУ. On-line генератор G-кода создает программу для управления ЧПУ с установленным лазерным модулем.
Это может быть твердотельный лазер или CO2-лазер.
С помощью полученной программы для ЧПУ можно гравировать на различных поверхностях:

  • Дерево
  • Фанера
  • Стекло
  • Металлы

Псевдотонирование

Для гравировки на стекле можно воспользоваться псевдотонированием. Реализован алгоритм упорядоченного псевдотонирования.
Псевдотонирование позволяет смоделировать эффект полутонов с помощью двух цветов: белый и черный.
На стекле из-за малой площадки текучести, низкой теплопроводности и оптических свойств невозможно полноценно сформировать полутона.
В сервисе On-line генерация G-кода по растровому изображению после псевдотонирования выполняется инвертирование цветов.
Если необходимо получить псевдотонированное изображении без инвертирования цветов, то нажмите кноку Псевдотонирование повторно.

Формирование G-кода, реализованные команды

On-line сервис формирует код, эквивалентный коду, экспортируемому из программы ECNC. Следует заметить, что в программе ECNC для управления ЧПУ нет ограничений на размер загружаемого изображения.
В сервисе ограничения связаны с выделенным временем выполнения скриптов на сервере.
На данный момент в on-line генераторе G-кода используются команды:

  • X — перемещение вдоль оси X
  • Y — перемещение вдоль оси Y
  • M3 — включение лазера
  • M5 — выключение лазера
  • S — мощность лазера

Правила формирования кода

В блоке Размеры готового изображения определяется соответствие между растровым изображением и заготовкой, то есть количество пикселей на 1 миллиметр.
Все перемещения производятся на скорости холостого хода.
Если каретка движется слева-направо, то перед «темным» пикселем лазер включается на заданную мощность. Каретка проходит пиксель и лазер выключается. Аналогично при движении справа-налево.
Мощность лазера задается числом, следующим за S. Число является отображением степени «черноты» пикселя на отрезок, заданный в блоке Диапазон мощности.
То есть, для диапазона 20-80, 255 — белый пиксель — соответвует команде S20, 0 — черный пиксель — соответствует S80. Для указания мощности используются только целые числа.
Кроме того, если выставить галку Дискретные значения, то отрезок 0-255 будет разбит на одинаковые интервалы. При попадании яркости пикселя в какой-то интервал будет установлена соответвующая мощность.
Генератор формирует тело программы. Скорость перемещения, начальное и конечное положения задайте самостоятельно.

DO and END Addresses

You probably noticed the single digits after DO and END in the example. These are required and are typically 1, 2, or 3. Your controller may vary. Their purpose is to match up the different DO’s and END’s when WHILE loops are nested:

WHILE DO1

WHILE DO2

WHILE DO3

END3

END2

END1

Remember to keep the correct number so the correct END goes with its DO!

The G-Wizard CNC Editor Can Help You Debug Macros and Identify Infinite Loops

I got an inquiry from a G-Wizard G-Code Editor user wanting to know if I could help diagnose a problem he was having. It seems he was trying to figure out why a program that had been output by his BobCAD CAM software was getting an error message out of Mach3. I his post wasn’t set up quite right for the Mach3 g-code dialect at first, but his description of the problem was intriguing and sounded deeper than that, so I volunteered to try to help. He had run the code through the Predator Editor/Simulator that comes with BobCAD, but it saw no errors. Mach3 on the other hand was seemingly never finishing the backplot and complaining cryptically that “Return called with no sub in effect”:

Mach3 executing g-code that infinite loops…

I hadn’t had the pleasure of seeing this behavior from Mach, so I thought I’d learn something knew by helping diagnose the problem. I also suspected I could make GWE better in the process, and no sooner did I load this machinist’s program than GWE promptly locked up and started acting hung. Excellent–that which does not kill us, makes us stronger!

It didn’t take long looking at the program in Notepad to see what was happening. Looks like BobCAD wants to create a subprogram for each machining operation and then call them one after the other at the top. It can make reading the code less than obvious, but it is not that uncommon a practice. Unfortunately, for some reason, the software forgot to put a program stop after it was done calling the subprograms for each operation. This caused execution to just fall through the bottom of the main program and start executing the very first subprogram all over again. The subprogram wasn’t expecting this, since it was designed to have been directly called with an M98 (if you’re not following these g-codes, don’t worry, I will explain them in our G-Code tutorial). When the subprogram gets done, it uses an M99 to return to the block right after the M98. Therein lies the problem. If it was never called by M98, there is no return location.

Most g-code dialects, when faces with an M99 and no M98 having called will simply start executing the very first line of g-code at the top of the program again. It’s not the worst choice they could’ve made, but I would’ve preferred an error (or alarm as the CNC world likes to call them) be issued. Instead, we get a situation where this particular program was going round and round doing everything over and over again.

Now that Mach3 message makes a bit more sense. We did indeed issue a “Return” (M99) without a “Sub” (M98) in effect, and so we are indeed “looping”. In fact, we’re engaged in what the software world calls an “Infinite Loop”. Absent the operator stopping the program, it will never stop of its own accord. The fix is easy–just add an M02 in the right place to stop before falling through to the subprogram.

Here is some sample code that demonstrates the problem:

An infinite loop in g-code…

This code just draws a little 1″ square, then it calls the subprogram at line N600. Execution would jump down to the sub and run until it hits the return “M99” at line N1100. Right below the sub call I have commented out the line that should’ve been there to stop further execution–see line N800. We needed an M02 right there to stop the program. Since there is nothing there but a comment, the g-code falls on through N800 and starts executing the subprogram below. DOH!

Команды G-code для 3D-принтера

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

Всё многообразие команд делится на три большие группы:

  • G — от английского «general», что означает основные. Называют их также и подготовительными. С их помощью происходит регулирование перемещения внутренних частей принтера из одной точки в другую и так далее.
  • M — это вспомогательные команды, которых может быть огромное множество. Они предназначены для распознавания самых разных параметров и их воплощение во время работы. Сюда относится уровень нагрева, охлаждения и другие характеристики, которые имеют большое значение для того, чтобы результат получился максимально приближённым к заданной модели.
  • T — такие команды отвечают за смену инструмента.

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

Параметры также имеют своё конкретное значение для наилучшего результата. Например, S — температура, время в секундах, R — радиус дуги и так далее.

Теперь вы знаете, что такое G-code в 3D-принтере и для чего он предназначен. Прогресс не стоит на месте, поэтому постоянно появляются всё новые технические возможности, о которых раньше приходилось только мечтать. С помощью нескольких строк задаётся работа целому принтеру, который способен распечатать любое пластиковое изделие, если предварительно загрузить его специальную модель. Принцип работы, основанный на цифровом программном управлении, является не таким сложным, как может показаться сначала, и изучение G-code — первый шаг к его пониманию.

G-Code at a Glance

Manufacturers all around the world use CNC programming to control a machine’s tools to produce parts. At the heart of this automated manufacturing process is a set of instructions that tells a CNC machine where – and how – to move. These instructions are called G-Code.

G-code was first established in the 1960s by the Electronics Industry Association (EIA). While the official language was documented as RS-274D, you’ll hear everyone refer to it as G-code. Why? Many of the words, or individual pieces of code, that make up this machine-based language start with the letter G.

While G-code is supposed to be a universal standard, you’ll find that many CNC machine companies have developed their own unique flavor. We’re all be eating ice cream at the end of the day, but a Haas might be strawberry, and a Tormach chocolate. Because of this difference in G-code flavors, it’s really important to understand how your own machine uses G-code.

Why the difference in G-code flavors? It really comes down to the capabilities of each machine. Take one machine that can process a coordinate system rotation based on probe inputs. You’ll need a set of G-code commands that can enable or disable this rotation. Another machine without this adjustment capability won’t require that G-code.

When in doubt, always refer to the documentation of your CNC machine as you work through the rest of this article. We’ll be walking through the basics, but you never know if your machine might have taken a slightly different path to the same end destination.

Canned Cycles

The last aspect of G-code to touch on is canned cycles. These are similar to methods or functions in computer programming. They allow you to perform a complicated action in only a few lines of code without having to type out all of the details.

Take for example the canned cycle below. Here we are telling the CNC tool to create a hole with a peck drill in only two lines of code on the left. This same action takes over 20 lines of regular G-code.

Some common drill cycles includes:

G81 – Simple Drill Cycle

This cycle will make a hole by plunging to a specific Z-axis coordinate and then retracting. Programming this cycle requires a depth, feed rate, XY coordinates, and plane to drill on.

G83 – Peck Drill

This cycle is used for quickly drilling deep holes. A tool will first drill a defined distance and then retract, which clears any material out of the hole and allows coolant to flush away chips. The simplest implementation of this cycle requires an initial height, feed plane, peck increment, and depth.

G98 – Return to Initial Rapid Height

This cycle will retract a tool to a clearance plane between holes which helps to avoid clamps. Programming this cycle requires an initial height and feed plane to drill on.

Пример

Обработка буквы W (вписанной в прямоугольник 34х27 мм, см. рис.) на условном вертикально-фрезерном станке с ЧПУ, фрезой диаметром 4 мм, в заготовке из органического стекла:

Красным цветом выделен результат обработки.

Кадр Комментарий
% Начало программы
N1 G90 G40 G17 Система координат абсолютная, компенсация на радиус инструмента выключена, плоскость интерполяции XoY
N2 S500 M3 Задать скорость вращения шпинделя 500 об/мин и включить вращение шпинделя
N3 G0 X2.54 Y26.15 Переход в координаты по x и y начала обработки на холостом ходу
N4 Z1.0 Подвод инструмента к заготовке по Z, не доходя до поверхности 1 мм, на холостом ходу
N5 G1 Z-1.0 F100 Врезание в заготовку на глубину 1 мм на подаче 100 мм/мин
N6 X5.19 Y 2.0 Первый штрих буквы W
N7 X7.76 Продолжение движения
N8 X16.93 Y26.15 Второй штрих буквы W
N9 X18.06 Продолжение движения
N10 X25.4 Y2.0 Третий штрих буквы W
N11 X25.96 Продолжение движения
N12 X32.17 Y 26.15 Четвертый штрих буквы W
N13 G0 Z12 Отвод инструмента от заготовки на высоту 12 мм на холостом ходу
N14 M5 Выключить вращение шпинделя
N15 M30 Конец программы

Modals and Address Codes

Like other programming languages, G-code has the ability to repeat an action indefinitely until stopped. This looping process uses modal code, which performs an action until you either turn it off or modify it with another modal code. For example, M03 is a modal code that will run a spindle indefinitely until you tell it to stop with M05. Now wait a second. That word (remember: a word is a little piece of code) didn’t start with a G, but it’s still G-code. Words that start with an M are machine codes, and they turn machine functions like coolant, spindle, and clamps on or off. I’ll list some common ones in the next section, but you can find a list of your machine’s M-codes in its documentation.

G-code also includes a complete list of address codes. You can think of these as the dictionary for G-code that defines particular behaviors. Address codes begin with the letter designation, like G, and then with a set of numbers. For example, X2 defines an X-coordinate address code, where 2 is value on the X-axis to move the machine to.

The complete list of address codes includes:

There are also several special character codes that can be added into a G-code program. These are typically used to start a program, comment out text, or ignore characters and include:

  • % Begins or ends a CNC program
  • () Defines a comment written by a CNC operator, occasionally these must be in all caps
  • Ignores all characters that come after the slash
  • ; Determines when a block of code ends, not shown in a text editor

IF: Conditional Branching

While GOTO represents an “unconditional branch” in G-Code execution, IF allows for “conditional branching”. Imagine being able to ask a question, and perform the GOTO only if the answer to the question is “Yes”. In essence, that’s what the IF does:

IF GOTO x

The entity enclosed in the square brackets is called a “conditional expression”, and they don’t really look like “condition is true”, that’s just an English translation of their general form.

Instead, Conditional Expression consist of a comparison of some kind:

IF GOTO 110

GOTO 200

That “” is a conditional expression that checks whether the value of #100 is zero. If it is, the G-Code will perform a GOTO taking it to N110. If its value isn’t zero, the G-Code falls through to the next line, which we see is an alternate GOTO that takes us to N200. That’s how conditional branching with IF and GOTO work together. Note that the line following the IF statement could have been anything, it doesn’t have to be a GOTO.

But what if we wanted to do something other than “GOTO” if #100 is equal to zero? Perhaps we simply want to change the value of #100 so it isn’t zero, avoiding a potential divide by zero problem down the line. When we want to do something other than GOTO, we use an “IF..THEN” statement:

IF THEN #100 = 1 (Avoid dividing by zero!)

#110 = #105 / #100

We can put any macro expression after the THEN, but no g or m-codes. If you want g or m-codes, use the GOTO’s to arrange to go to lines containing those codes.

G-Code Programs

The goal of every G-code program is to produce parts in the safest and most efficient way possible. To achieve this you’ll typically find G-code blocks arranged in a very specific order like this:

  1. Start the CNC program
  2. Load the required tool
  3. Turn the spindle on
  4. Turn the coolant on
  5. Move to position above a part
  6. Start the machining process
  7. Turn the coolant off
  8. Turn the spindle off
  9. Move away from the part to a safe location
  10. End the CNC program

This flow is an extremely simple program using only one tool for one operation. In practice, you will typically rinse and repeat steps 2 through 9. For example, the G-code program below encompasses all of the code blocks above with repeating sections where needed:

G-Code Blocks

The G-code standard was published back in the days when machines had small amounts of memory. Because of this memory limitation, G-code is an extremely compact and concise language that might almost seem archaic at first glance. Take for example this line of code:

G01 X1 Y1 F20 T01 M03 S500

In this single line we’re giving the machine a series of instructions:

  • G01 – Perform a linear feed move
  • X1/Y1 – Move to these X and Y coordinates
  • F20 – Move at a feed rate of 20
  • T01 – Use Tool 1 to get the job done
  • M03 – Turn the spindle on
  • S500 – Set a spindle speed of 500

Multiple lines of G-code like these combine to form a complete CNC program. Your CNC machine will then read the code one line at a time from left to right and top to bottom, like reading a book. Each set of instructions is on a separate line, or a block.

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

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

Adblock
detector