Лучшие вопросы
Таймлайн
Чат
Перспективы
G-code
язык программирования устройств с числовым программным управлением Из Википедии, свободной энциклопедии
Remove ads
G-код — условное именование языка программирования устройств с числовым программным управлением (ЧПУ). Был создан компанией Electronic Industries Alliance в начале 1960-х. Окончательная доработка была одобрена в феврале 1980 года как стандарт RS274D. Комитет ISO утвердил G-код как стандарт ISO 6983-1:2009, Госкомитет по стандартам СССР — как ГОСТ 20999-83[1]. В советской технической литературе G-код обозначается как код ИСО 7-бит (ISO 7-bit), это вызвано тем, что G-код кодировали на 8-дорожечную перфоленту в коде ISO 7-bit (разработан для представления информации УЧПУ в виде машинного кода так же, как и коды AEG и PC8C), восьмая дорожка использовалась для контроля чётности.
Производители систем УЧПУ (CNC), как правило, используют ПО управления станком, для которого написана (оператором) программа обработки в качестве осмысленных команд управления, используется G-код в качестве базового подмножества языка программирования, расширяя его по своему усмотрению[2].
G-Code — это также стандартный язык, используемый многими моделями 3D-принтеров для управления процессом печати. Файлы GCODE могут быть открыты с помощью различных программ 3D-печати, например, Simplify3D, GCode Viewer, а также с помощью текстового редактора, поскольку их содержимое представляет собой обычный текст.
Remove ads
Структура программы
Суммиров вкратце
Перспектива
Remove ads
Основные требования к структуре
Программа, написанная с использованием G-кода, имеет жёсткую структуру. Все команды управления объединяются в кадры — группы, состоящие из одной или более команд. Кадр завершается символом перевода строки (CR/LF) и может необязательно иметь явно указанный номер, начинающийся с буквы N, за исключением первого кадра программы и комментариев. Этот номер является по сути меткой кадра и необязательно должен нарастать в программе или представлять собой последовательные целые числа, важно, чтобы номер не повторялся в пределах программы, например, допустимо:
... N200 G0 n100 x0 x5y4 ...
В большинстве современных интерпретаторов кода допустимо использовать в коде программы строчные и прописные буквы, как в примере.
Пробелы в строке кадра игнорируются, поэтому допустимо слитное написание команд кадра.
Первый (а в некоторых случаях ещё и последний) кадр содержит только один необязательный знак <%>. Завершается программа командами M02 или M30.
Комментарии к программе размещаются в круглых скобках. Комментарий может располагаться как в отдельной строке, так и в любом месте кадра среди команд. Недопустимо оформлять в качестве комментария несколько строк, охваченных парой круглых скобок.
Элементарные команды в каждом кадре выполняются одновременно, поэтому порядок команд в кадре строго не оговаривается, но традиционно предполагается, что первыми указываются подготовительные команды (например, выбор плоскости круговой интерполяции, скоростей перемещений по осям и др.), затем задание координат перемещения, затем выбора режимов обработки и технологические команды.
Максимальное число элементарных команд и заданий координат в одном кадре зависит от конкретного интерпретатора языка управления станками, но для большинства популярных интерпретаторов (стоек управления) не превышает 6.
Координаты задаются указанием оси с последующим числовым значением координаты. Целая и дробная части числа координаты разделяются десятичной точкой. Допустимо опускание незначащих нулей, либо их добавление. Также в подавляющем количестве интерпретаторов допустимо не добавлять десятичную точку к целым числам. Например: Y0.5 и Y.5, Y77, Y77. и Y077.0.
Существуют так называемые модальные и немодальные команды. Модальные команды изменяют некоторый параметр/настройку и эта настройка действует на все далее исполняемые кадры программы до их смены очередной модальной командой либо её отмены. К модальным командам, например, относятся скорости перемещения инструмента, управления скоростью шпинделя, подачи смазочно-охлаждающей жидкости (СОЖ) и др. Немодальные команды действуют только внутри их содержащего кадра. К немодальным командам относятся, например, команды разгона и торможения шпинделя.
Интерпретатор кода (стойка управления) станком запоминает значение введённых параметров и настроек до их смены очередной модальной командой или отмены ранее введённой модальной команды, поэтому необязательно указание в каждом кадре, например, скорости перемещения инструмента.
Remove ads
Описание и вызов подпрограмм
Язык допускает многократное исполнение однократно записанной последовательности команд и перемещений инструмента, вызываемую из разных частей программы, например, вырезания в листовой заготовке многих отверстий с одинаковым сложным контуром, расположенных в разных местах будущей детали. При этом в теле подпрограммы описывается траектория движения инструмента для вырезания одного отверстия, а в программе производится многократный вызов подпрограммы из разных мест. В теле подпрограммы перемещения инструмента задаются в относительных координатах — координатах, описывающих траекторию инструмента при обработке отверстия, переход к относительной системе координат (иногда такую систему координат называют <инкрементной>) производится командой G91 в начале тела подпрограммы, а возврат к абсолютной системе координат командой G90 — в конце тела подпрограммы. В инкрементной системе команды перемещения инструмента интерпретируются как приращения, например:
g90 x5 (назначение абсолютной системы координат, после исполнения этого кадра машинная координата по оси X станет равной 5) g91 x10 (назначение инкрементной системы координат, после исполнения этого кадра машинная координата по оси X станет равной 15) x-15 (после исполнения этого кадра машинная координата по оси X станет равной 0, так как продолжает действовать инкрементная система координат, заданная модальной командой g91)
Тело подпрограммы обязательно должно быть описано до команды конца программы — М30, но допустимо расположение подпрограммы после команды М02 — конца программы и иметь имя, начинающееся с буквы О с цифрами номера подпрограммы, например, О112. В конце тела подпрограммы помещается команда возврата в основную программу — М99.
В программе вызов подпрограммы производится командой М98 с указанием обязательного параметра имени подпрограммы P. Недопустимо совпадение имён подпрограмм в пределах одной программы. Пример вызова подпрограммы O112: M98 P112. Допустимо при вызове подпрограммы указание числа вызовов подпрограммы добавлением необязательного параметра L, например, двукратный вызов подпрограммы 112: M98 P112 L2, что, например, может быть полезно при описании выполнения второго прохода чистовой обработки после первого прохода черновой обработки. При опущенном параметре L подпрограмма вызывается однократно.
Управляющее математическое обеспечение некоторых станков или некоторые интерпретаторы G-кода допускают вызов подпрограмм по номеру строки (кадра) в программе, для этого используется команда M97 с параметром P, указывающем на номер (метку) строки, например, M97 P321 L4 — четырёхкратный вызов подпрограммы начинающейся с меткой N321. Оформленная таким образом подпрограмма как обычно должна заканчиваться командой M99 — возвратом в вызвавшую программу.
Допустимо вложение подпрограмм, то есть из подпрограммы возможен вызов другой подпрограммы. Максимально допустимое число уровней вложения зависит от реализации конкретного интерпретатора G-кода.
- Пример программы вырезания 2 прямоугольных отверстий 10 x 20 мм, увеличенных на диаметр торцевой фрезы, с координатами левых нижних углов отверстий x=57, y=62 и x=104, y=76 в листовой заготовке толщиной 5 мм с вызовом подпрограммы описывающей вырезание одного отверстия
... (Фрагмент программы) G00 X57 Y62 (позиционирование по X, Y на 1-е отверстие) M98 P112 (вырезание 1-го отверстия) G00 X104 Y76 (позиционирование по X, Y на 2-е отверстие) M98 P112 (вырезание 2-го отверстия) ... М02 (Конец программы) ... (Тело подпрограммы) O112 (Метка подпрограммы, номер 112) G00 Z1 (Подвод инструмента на высоту 1 мм над поверхностью заготовки со скоростью холостого перемещения) G01 F40 Z-5.5 (Врезание инструмента на глубину -5,5 мм в заготовку со скоростью 40 мм/мин) G91 (Переход в относительную систему координат, в этой системе вначале X=0, Y=0) G01 F20 X10 (Вырезание 1-й стороны прямоугольника со скоростью 20 мм/мин) Y20 (Вырезание 2-й стороны прямоугольника со скоростью 20 мм/мин) X-10 (Вырезание 3-й стороны прямоугольника со скоростью 20 мм/мин. Так как включена инкрементальная система координат, то возврат инструмента в исходную точку до вызова подпрограммы указывается в виде приращения координаты, здесь -10.) Y-20 (Вырезание 4-й стороны прямоугольника со скоростью 20 мм/мин) G90 (Переход в абсолютную систему координат, восстановление текущих координат до перехода в относительную систему) G00 Z5 (Подъём инструмента на высоту 5 мм над поверхностью заготовки со скоростью холостого перемещения) M99 (Возврат в вызывавшую программу или подпрограмму) ... М30 (Конец интерпретируемого кода программы. После исполнения этой команды указатель номера кадра устанавливается на 1-ю строку программы и исполнение программы останавливается)
Сводная таблица кодов
Основные (называемые в стандарте подготовительными) команды языка начинаются с буквы G (аббревиатура от слова General):
- Перемещение рабочих органов оборудования с заданной скоростью (линейное и круговое)
- Выполнение типовых последовательностей (таких, как обработка отверстий и резьба)
- Управление параметрами инструмента, системами координат, и рабочих плоскостей
Таблица основных команд
Remove ads
Таблица технологических кодов
Суммиров вкратце
Перспектива
Технологические команды языка начинаются с буквы М (аббревиатура от слова Miscellaneous — дополнительный). Включают такие действия, как:
- Сменить инструмент
- Включить/выключить шпиндель
- Включить/выключить охлаждение
- Работа с подпрограммами
Параметры команд
Суммиров вкратце
Перспектива
Параметры команд задаются буквами латинского алфавита
Пример
Суммиров вкратце
Перспектива

Пример гравировка буквы W на глубину 2 мм, вписанной в прямоугольник 40×30 мм, (см. рисунок) на условном вертикально-фрезерном станке с ЧПУ в листовой заготовке. Торцевая фреза диаметром 2 мм[4]:
% (метка начала программы, необязательна) (ось Z настроена так, что при Z=0 инструмент касается поверхности заготовки) O200 (метка программы, необязательна) G21 G40 G49 G53 G80 G90 G17 (Строка безопасности.) (Состояние станка или интерпретатора определяется предысторией, либо устанавливаются в некоторое исходное состояние при включении питания, и эти настройки могут вызвать нежелательные и непредвиденные действия, поэтому необходимо привести станок в <исходное состояние> с помощью «строки безопасности».) (G21 — выбор метрической системы единиц - миллиметры,) (G40 — отменяет автоматическую коррекцию на радиус инструмента.) (G49 — отменяет автоматическую коррекцию на длину инструмента.) (G53 — отменяет возможно введённые ранее дополнительные системы координат, смещённые относительно исходной и переводит станок в основную систему координат.) (G80 — отменяет все постоянные циклы, например, циклы сверления и их параметры.) (G90 — переводит в абсолютную систему координат.) (G17 — выбирается плоскость круговой интерполяции X-Y.) G0 F300 (задание скорости холостого перемещения инструмента в мм/мин) M3 S500 (включение вращения шпинделя по часовой стрелке и задание его скорости вращения 500 об/мин) G4 P2000 (выдержка 2 секунды для раскрутки шпинделя) X0 Y30 Z5 (подвод инструмента в точку с координатами X=0 Y=30 Z=5 со скоростью холостого перемещения) G1 Z-2 F40 (врезание в заготовку на глубину 2 мм со скоростью 40 мм/мин) G1 F20 X10 Y0 (фрезерование 1-го отрезка буквы W со скоростью 20 мм/мин) X20 Y30 (фрезерование 2-го отрезка буквы W со скоростью 20 мм/мин) X30 Y0 (фрезерование 3-го отрезка буквы W со скоростью 20 мм/мин) X40 Y30 (фрезерование 4-го отрезка буквы W со скоростью 20 мм/мин) G0 Z5 (отвод инструмента на высоту 5 мм над поверхностью заготовки со скоростью 300 мм/мин) M5 (выключение вращения шпинделя) M30 (конец программы и конец интерпретируемого кода)
Remove ads
См. также
Примечания
Ссылки
Wikiwand - on
Seamless Wikipedia browsing. On steroids.
Remove ads