WikiSort.ru - Программирование

ПОИСК ПО САЙТУ | о проекте

G-код — условное именование языка программирования устройств с числовым программным управлением (ЧПУ). Был создан компанией Electronic Industries Alliance в начале 1960-х. Окончательная доработка была одобрена в феврале 1980 года как стандарт RS274D. Комитет ISO утвердил G-код как стандарт ISO 6983-1:2009, Госкомитет по стандартам СССР — как ГОСТ 20999-83. В советской технической литературе G-код обозначается как код ИСО 7-бит (ISO 7-bit). G-код кодировали на 8-дорожечную перфоленту в коде ISO 7-bit (разработан для представления информации УЧПУ в виде машинного кода так же, как и коды AEG и PC8C), восьмая дорожка использовалась для контроля чётности.

Производители систем УЧПУ (CNC), как правило, используют ПО управления станком, для которого написана (оператором) программа обработки в качестве осмысленных команд управления, используется G-код в качестве базового подмножества языка программирования, расширяя его по своему усмотрению.[1]

G-Code – это также стандартный язык печати, используемый многими 3D-принтерами для управления процессом печати. Файлы GCODE могут быть открыты с помощью различных программ 3D-печати, например, Simplify3D, GCode Viewer, а также с помощью текстового редактора, поскольку их содержимое представляет собой обычный текст.

Структура программы

Основные требования к структуре

Программа, написанная с использованием G-кода, имеет жёсткую структуру. Все команды управления объединяются в кадры — группы, состоящие из одной или более команд. Кадр завершается символом перевода строки (CR/LF) и может иметь явно указанный номер, начинающийся с буквы N, за исключением первого кадра программы и комментариев. Первый (а в некоторых случаях ещё и последний) кадр содержит только один необязательный знак «%». Завершается программа командами M02 или M30.

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

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

Максимальное число элементарных команд и заданий координат в одном кадре зависит от конкретного интерпретатора языка управления станками, но для большинства популярных интерпретаторов (стоек управления) не превышает 6.

Координаты задаются указанием оси с последующим числовым значением координаты. Целая и дробная части числа координаты разделяются десятичной точкой. Допустимо опускание незначащих нулей, либо их добавление. Также в подавляющем количестве интерпретаторов допустимо не добавлять десятичную точку к целым числам. Например: Y0.5 и Y.5, Y77, Y77. и Y077.0.

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

Интерпретатор кода (стойка управления) станком запоминает значение введённых параметров и настроек до их смены очередной модальной командой или отмены ранее введенной модальной команды, поэтому необязательно указание в каждом кадре, например, скорости перемещения инструмента.

Описание и вызов подпрограмм

Язык допускает многократное исполнение однократно записанной последовательности команд и перемещений инструмента, вызываемую из разных частей программы, например, вырезания в листовой заготовке многих отверстий с одинаковым сложным контуром, расположенных в разных местах будущей детали. При этом в теле подпрограммы описывается траектория движения инструмента для вырезания одного отверстия, а в программе производится многократный вызов подпрограммы. В теле подпрограммы перемещения инструмента задаются в относительных координатах — координатах связанных с формой отверстия, переход к относительной системе координат (иногда такую систему координат называют «инкрементной») производится командой G91 в начале тела подпрограммы, а возврат к абсолютной системе координат командой G90 — в конце тела подпрограммы.

Тело подпрограммы обязательно должно быть описано до команды конца программы — М30, но допустимо расположение подпрограммы после команды М02 — конца программы и иметь имя, начинающееся с буквы О с цифрами номера подпрограммы, например, О112. В конце тела подпрограммы помещается команда возврата в основную программу — М99.

В программе вызов подпрограммы производится командой М98 с указанием обязательного параметра имени подпрограммы P. Недопустимо совпадение имён подпрограмм в пределах одной программы. Пример вызова подпрограммы O112: M98 P112. Допустимо при вызове подпрограммы указание числа вызовов подпрограммы добавлением необязательного параметра L, например, двукратный вызов подпрограммы 112: M98 P112 L2, что, например, может быть полезно при описании выполнения второго прохода чистовой обработки после первого прохода черновой обработки. При опущенном параметре L подпрограмма вызывается однократно.

Управляющее математическое обеспечение некоторых станков или некоторые интерпретаторы G-кода допускают вызов подпрограмм по номеру строки в программе, для этого используется команда M97 с параметром P, указывающем на номер строки, например, M97 P321 L4 — четырёхкратный вызов подпрограммы начинающейся со строки 321. Оформленная таким образом подпрограмма как обычно должна заканчиваться командой M99 — возвратом в вызвавшую программу.

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

Пример программы вырезания 2 прямоугольных отверстий 10×20 мм с координатами левого нижнего угла отверстий x=57, y=62 и x=104, y=76 в листовой заготовке толщиной 5 мм с вызовом подпрограммы описывающей вырезание 1 отверстия
...
(Фрагмент программы)
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 мм/мин)
X0 (Вырезание 3-й стороны прямоугольника со скоростью 20 мм/мин)
Y0 (Вырезание 4-й стороны прямоугольника со скоростью 20 мм/мин)
G90 (Переход в абсолютную систему координат, восстановление текущих координат до перехода в относительную систему)
G00 Z5 (Подъём инструмента на высоту 5 мм над поверхностью заготовки со скоростью холостого перемещения) 
M99 (Возврат в вызывавшую программу или подпрограмму) 
...
М30 (Конец интерпретируемого кода программы. После исполнения этой команды указатель номера кадра устанавливается на 1-ю строку программы и исполнение программы останавливается)

Сводная таблица кодов

Основные (называемые в стандарте подготовительными) команды языка начинаются с буквы G:

  • Перемещение рабочих органов оборудования с заданной скоростью (линейное и круговое)
  • Выполнение типовых последовательностей (таких, как обработка отверстий и резьба)
  • Управление параметрами инструмента, системами координат, и рабочих плоскостей
Подготовительные (основные) команды
Коды Описание
G00-G03Позиционирование инструмента
G17-G19Переключение рабочих плоскостей (XY, ZX, YZ)
G20-G21Не стандартизовано
G40-G44Компенсация размера различных частей инструмента (длина, диаметр)
G53-G59Переключение систем координат
G80-G85Циклы сверления, растачивания, нарезания резьбы
G90-G91Переключение систем координат (абсолютная, относительная)

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

Команда Описание Пример
G00Ускоренное перемещение инструмента (холостой ход)G0 X0 Y0 Z100.
G01Линейная интерполяция, модальная команда. Инструмент перемещается по прямой линии от исходной точки в точку с заданными координатами, скорость перемещения задаётся здесь же или ранее модальной командой F.G01 X0. Y0. Z100. F200.
G02Круговая интерполяция по часовой стрелкеG02 X15. Y15. R5. F200.
G03Круговая интерполяция против часовой стрелкиG03 X15. Y15. R5. F200.
G04Задержка выполнения программы, способ задания величины задержки зависит от реализации системы управления, P обычно задает паузу в миллисекундах, X — в секундах.G04 P500 или G04 X.5
G10Переключение абсолютной системы координат. В примере начало координат станет в точке 10, 10, 10 старых координат.G10 X10. Y10. Z10.
G15Переход в полярную систему координат (X радиус Y угол)G15 X15. Y22.5
G16Отмена полярной системы координатG16 X15. Y22.5
G17Выбор рабочей плоскости X-YG17
G18Выбор рабочей плоскости Z-XG18
G19Выбор рабочей плоскости Y-ZG19
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.
G94F (подача) — в формате мм/мин.G94 G80 Z100. F75.
G95F (подача) — в формате мм/об.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 и M14M3 S2000 M8
M09Выключить охлаждениеG0 X0 Y0 Z100 M5 M9
M13Включить охлаждение и вращение шпинделя по часовой стрелкеS2000 M13
M14Включить охлаждение и вращение шпинделя против часовой стрелкиS2000 M14
M17Конец подпрограммыM17
M48 Разрешить переопределять скорость подачи
M49 Запретить переопределение скорости подачи
M25Замена инструмента вручнуюM25
M97Запуск подпрограммы, находящейся в той же программе (где P — номер кадра, в случае примера переход осуществится к строке N25), действует не везде, предположительно — только на станках HAASM97 P25
M98Запуск подпрограммы, находящейся отдельно от основной программы (где P — номер подпрограммы, в случае примера переход осуществится к программе O1015)M98 P1015
M99Конец подпрограммыM99
M30Конец программы, со сбросом модальных функцийM30

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

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

Код Описание Пример
XКоордината точки траектории по оси XG0 X100 Y0 Z0
YКоордината точки траектории по оси YG0 X0 Y100 Z0
ZКоордината точки траектории по оси ZG0 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

Пример

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

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

Кадр Содержание Комментарий
%Начало программы
N1G90 G40 G17Система координат абсолютная, компенсация на радиус инструмента выключена, плоскость интерполяции XoY
N2S500 M3Задать скорость вращения шпинделя 500 об/мин и включить вращение шпинделя
N3G0 X2.54 Y26.15Переход в координаты по x и y начала обработки на холостом ходу
N4Z1.0Подвод инструмента к заготовке по Z, не доходя до поверхности 1 мм, на холостом ходу
N5G1 Z-1.0 F100Врезание в заготовку на глубину 1 мм на подаче 100 мм/мин
N6X5.19 Y 2.0Первый штрих буквы W
N7X7.76Продолжение движения
N8X16.93 Y26.15Второй штрих буквы W
N9X18.06Продолжение движения
N10X25.4 Y2.0Третий штрих буквы W
N11X25.96Продолжение движения
N12X32.17 Y 26.15Четвертый штрих буквы W
N13G0 Z12Отвод инструмента от заготовки на высоту 12 мм на холостом ходу
N14M5Выключить вращение шпинделя
N15M30Конец программы

См. также

Примечания

Ссылки

Данная страница на сайте WikiSort.ru содержит текст со страницы сайта "Википедия".

Если Вы хотите её отредактировать, то можете сделать это на странице редактирования в Википедии.

Если сделанные Вами правки не будут кем-нибудь удалены, то через несколько дней они появятся на сайте WikiSort.ru .




Текст в блоке "Читать" взят с сайта "Википедия" и доступен по лицензии Creative Commons Attribution-ShareAlike; в отдельных случаях могут действовать дополнительные условия.

Другой контент может иметь иную лицензию. Перед использованием материалов сайта WikiSort.ru внимательно изучите правила лицензирования конкретных элементов наполнения сайта.

2019-2024
WikiSort.ru - проект по пересортировке и дополнению контента Википедии