Лучшие вопросы
Таймлайн
Чат
Перспективы

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 — дополнительный). Включают такие действия, как:

  • Сменить инструмент
  • Включить/выключить шпиндель
  • Включить/выключить охлаждение
  • Работа с подпрограммами
Подробнее Код, Описание ...

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

Суммиров вкратце
Перспектива

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

Подробнее Код, Описание ...

Пример

Суммиров вкратце
Перспектива
Thumb
Гравировка буквы W. Красной ломаной линией показано движение инструмента от левой верхней точки.

Пример гравировка буквы 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

См. также

Примечания

Ссылки

Loading related searches...

Wikiwand - on

Seamless Wikipedia browsing. On steroids.

Remove ads