G-code

Поделись знанием:
Перейти к: навигация, поиск

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

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

Подпрограммы могут быть описаны после команды M02, но до M30. Начинается подпрограмма с кадра вида Lxx, где xx — номер подпрограммы, заканчивается командой M17.

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

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

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

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

Команда Описание Пример
G00 Ускоренное перемещение инструмента (холостой ход) G0 X0 Y0 Z100;
G01 Линейная интерполяция G01 X0. Y0. Z100 F200;
G02 Круговая интерполяция по часовой стрелке G02 X15. Y15. R5 F200;
G03 Круговая интерполяция против часовой стрелки G03 X15. Y15. R5 F200;
G04 Задержка выполнения программы, способ задания величины задержки зависит от реализации системы управления G04 P500;
G10 Задать новые координаты для начала координат G10 X10 Y10 Z10;
G15 Отмена полярной системы координат G15 X15. Y22.5; G15;
G16 Полярная система координат (X радиус Y угол) G16 X15. Y22.5
G17 Выбор рабочей плоскости X-Y
G18 Выбор рабочей плоскости Z-X
G19 Выбор рабочей плоскости Y-Z
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
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
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 Параметр дуги при круговой интерполяции. Инкрементальное расстояние от начального G03 X10 Y10 I0 J0 F10
K Параметр дуги при круговой интерполяции. Инкрементальное расстояние дуги по оси Z. G03 X10 Y10 I0 K0 F10
L Вызов подпрограммы с данной меткой L12

Пример

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

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

Кадр Содержание Комментарий
 % Начало программы
N1 G90 G40 G17 Система координат абсолютная, компенсация на радиус инструмента выключена, плоскость интерполяции XoY
N2 S500 M3 Задать скорость вращения шпинделя и включить шпиндель
N3 G0 X2.54 Y26.15 Переход в точку начала обработки на холостом ходу
N4 Z1.0 Подход к заготовке по Z, не доходя 1 мм, на холостом ходу
N5 G1 Z-1.0 F100 Врезание в заготовку на подаче 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 Отвод инструмента от заготовки на холостом ходу
N14 M5 Выключить шпиндель
N15 M30 Конец программы

См. также

Напишите отзыв о статье "G-code"

Примечания

  1. [www.cncezpro.com/gcodes.cfm CNC G Codes Definitions Examples Programs Programming Learning Training]
  2. [www.solsylva.com/cnc/subroutine_gcode.shtml Subroutine G-Code]

Ссылки

  • [www.intuwiz.ru/services.html Создание и подготовка управляющих программ (G-кода) в режиме on-line.]
  • [cnc-club.ru/forum/viewtopic.php?f=15&t=34 CAM расширение Inkscape для экспорта в G-code]
  • [www.ncmanager.com Симуляция работы программ на G-коде в реальном времени]
  • [www.cncezpro.com/gcodes.cfm Real-Time 3D Graphics Simulation for G-code]  (англ.)
  • [www.isd.mel.nist.gov/personnel/kramer/pubs/RS274NGC_3.web/RS274NGC_3TOC.html Overview of canonical machining functions]  (англ.)
  • [www.ange-softs.com/simulcnc.php SIMUL CNC]  (англ.)
  • [nc-corrector.inf.ua/Pages/Links.htm Подборка ссылок на сайты редакторов визуализаторов G-кода]

Отрывок, характеризующий G-code

Жюли собиралась на другой день уезжать из Москвы и делала прощальный вечер.
– Безухов est ridicule [смешон], но он так добр, так мил. Что за удовольствие быть так caustique [злоязычным]?
– Штраф! – сказал молодой человек в ополченском мундире, которого Жюли называла «mon chevalier» [мой рыцарь] и который с нею вместе ехал в Нижний.
В обществе Жюли, как и во многих обществах Москвы, было положено говорить только по русски, и те, которые ошибались, говоря французские слова, платили штраф в пользу комитета пожертвований.
– Другой штраф за галлицизм, – сказал русский писатель, бывший в гостиной. – «Удовольствие быть не по русски.
– Вы никому не делаете милости, – продолжала Жюли к ополченцу, не обращая внимания на замечание сочинителя. – За caustique виновата, – сказала она, – и плачу, но за удовольствие сказать вам правду я готова еще заплатить; за галлицизмы не отвечаю, – обратилась она к сочинителю: – у меня нет ни денег, ни времени, как у князя Голицына, взять учителя и учиться по русски. А вот и он, – сказала Жюли. – Quand on… [Когда.] Нет, нет, – обратилась она к ополченцу, – не поймаете. Когда говорят про солнце – видят его лучи, – сказала хозяйка, любезно улыбаясь Пьеру. – Мы только говорили о вас, – с свойственной светским женщинам свободой лжи сказала Жюли. – Мы говорили, что ваш полк, верно, будет лучше мамоновского.
– Ах, не говорите мне про мой полк, – отвечал Пьер, целуя руку хозяйке и садясь подле нее. – Он мне так надоел!
– Вы ведь, верно, сами будете командовать им? – сказала Жюли, хитро и насмешливо переглянувшись с ополченцем.
Ополченец в присутствии Пьера был уже не так caustique, и в лице его выразилось недоуменье к тому, что означала улыбка Жюли. Несмотря на свою рассеянность и добродушие, личность Пьера прекращала тотчас же всякие попытки на насмешку в его присутствии.
– Нет, – смеясь, отвечал Пьер, оглядывая свое большое, толстое тело. – В меня слишком легко попасть французам, да и я боюсь, что не влезу на лошадь…
В числе перебираемых лиц для предмета разговора общество Жюли попало на Ростовых.
– Очень, говорят, плохи дела их, – сказала Жюли. – И он так бестолков – сам граф. Разумовские хотели купить его дом и подмосковную, и все это тянется. Он дорожится.
– Нет, кажется, на днях состоится продажа, – сказал кто то. – Хотя теперь и безумно покупать что нибудь в Москве.
– Отчего? – сказала Жюли. – Неужели вы думаете, что есть опасность для Москвы?
– Отчего же вы едете?
– Я? Вот странно. Я еду, потому… ну потому, что все едут, и потом я не Иоанна д'Арк и не амазонка.
– Ну, да, да, дайте мне еще тряпочек.
– Ежели он сумеет повести дела, он может заплатить все долги, – продолжал ополченец про Ростова.
– Добрый старик, но очень pauvre sire [плох]. И зачем они живут тут так долго? Они давно хотели ехать в деревню. Натали, кажется, здорова теперь? – хитро улыбаясь, спросила Жюли у Пьера.
– Они ждут меньшого сына, – сказал Пьер. – Он поступил в казаки Оболенского и поехал в Белую Церковь. Там формируется полк. А теперь они перевели его в мой полк и ждут каждый день. Граф давно хотел ехать, но графиня ни за что не согласна выехать из Москвы, пока не приедет сын.
– Я их третьего дня видела у Архаровых. Натали опять похорошела и повеселела. Она пела один романс. Как все легко проходит у некоторых людей!
– Что проходит? – недовольно спросил Пьер. Жюли улыбнулась.
– Вы знаете, граф, что такие рыцари, как вы, бывают только в романах madame Suza.
– Какой рыцарь? Отчего? – краснея, спросил Пьер.
– Ну, полноте, милый граф, c'est la fable de tout Moscou. Je vous admire, ma parole d'honneur. [это вся Москва знает. Право, я вам удивляюсь.]
– Штраф! Штраф! – сказал ополченец.
– Ну, хорошо. Нельзя говорить, как скучно!
– Qu'est ce qui est la fable de tout Moscou? [Что знает вся Москва?] – вставая, сказал сердито Пьер.
– Полноте, граф. Вы знаете!
– Ничего не знаю, – сказал Пьер.
– Я знаю, что вы дружны были с Натали, и потому… Нет, я всегда дружнее с Верой. Cette chere Vera! [Эта милая Вера!]
– Non, madame, [Нет, сударыня.] – продолжал Пьер недовольным тоном. – Я вовсе не взял на себя роль рыцаря Ростовой, и я уже почти месяц не был у них. Но я не понимаю жестокость…
– Qui s'excuse – s'accuse, [Кто извиняется, тот обвиняет себя.] – улыбаясь и махая корпией, говорила Жюли и, чтобы за ней осталось последнее слово, сейчас же переменила разговор. – Каково, я нынче узнала: бедная Мари Волконская приехала вчера в Москву. Вы слышали, она потеряла отца?
– Неужели! Где она? Я бы очень желал увидать ее, – сказал Пьер.
– Я вчера провела с ней вечер. Она нынче или завтра утром едет в подмосковную с племянником.
– Ну что она, как? – сказал Пьер.
– Ничего, грустна. Но знаете, кто ее спас? Это целый роман. Nicolas Ростов. Ее окружили, хотели убить, ранили ее людей. Он бросился и спас ее…
– Еще роман, – сказал ополченец. – Решительно это общее бегство сделано, чтобы все старые невесты шли замуж. Catiche – одна, княжна Болконская – другая.
– Вы знаете, что я в самом деле думаю, что она un petit peu amoureuse du jeune homme. [немножечко влюблена в молодого человека.]
– Штраф! Штраф! Штраф!
– Но как же это по русски сказать?..


Когда Пьер вернулся домой, ему подали две принесенные в этот день афиши Растопчина.
В первой говорилось о том, что слух, будто графом Растопчиным запрещен выезд из Москвы, – несправедлив и что, напротив, граф Растопчин рад, что из Москвы уезжают барыни и купеческие жены. «Меньше страху, меньше новостей, – говорилось в афише, – но я жизнью отвечаю, что злодей в Москве не будет». Эти слова в первый раз ясно ыоказали Пьеру, что французы будут в Москве. Во второй афише говорилось, что главная квартира наша в Вязьме, что граф Витгснштейн победил французов, но что так как многие жители желают вооружиться, то для них есть приготовленное в арсенале оружие: сабли, пистолеты, ружья, которые жители могут получать по дешевой цене. Тон афиш был уже не такой шутливый, как в прежних чигиринских разговорах. Пьер задумался над этими афишами. Очевидно, та страшная грозовая туча, которую он призывал всеми силами своей души и которая вместе с тем возбуждала в нем невольный ужас, – очевидно, туча эта приближалась.
«Поступить в военную службу и ехать в армию или дожидаться? – в сотый раз задавал себе Пьер этот вопрос. Он взял колоду карт, лежавших у него на столе, и стал делать пасьянс.
– Ежели выйдет этот пасьянс, – говорил он сам себе, смешав колоду, держа ее в руке и глядя вверх, – ежели выйдет, то значит… что значит?.. – Он не успел решить, что значит, как за дверью кабинета послышался голос старшей княжны, спрашивающей, можно ли войти.
– Тогда будет значить, что я должен ехать в армию, – договорил себе Пьер. – Войдите, войдите, – прибавил он, обращаясь к княжие.
(Одна старшая княжна, с длинной талией и окаменелым лидом, продолжала жить в доме Пьера; две меньшие вышли замуж.)
– Простите, mon cousin, что я пришла к вам, – сказала она укоризненно взволнованным голосом. – Ведь надо наконец на что нибудь решиться! Что ж это будет такое? Все выехали из Москвы, и народ бунтует. Что ж мы остаемся?
– Напротив, все, кажется, благополучно, ma cousine, – сказал Пьер с тою привычкой шутливости, которую Пьер, всегда конфузно переносивший свою роль благодетеля перед княжною, усвоил себе в отношении к ней.
– Да, это благополучно… хорошо благополучие! Мне нынче Варвара Ивановна порассказала, как войска наши отличаются. Уж точно можно чести приписать. Да и народ совсем взбунтовался, слушать перестают; девка моя и та грубить стала. Этак скоро и нас бить станут. По улицам ходить нельзя. А главное, нынче завтра французы будут, что ж нам ждать! Я об одном прошу, mon cousin, – сказала княжна, – прикажите свезти меня в Петербург: какая я ни есть, а я под бонапартовской властью жить не могу.
– Да полноте, ma cousine, откуда вы почерпаете ваши сведения? Напротив…
– Я вашему Наполеону не покорюсь. Другие как хотят… Ежели вы не хотите этого сделать…
– Да я сделаю, я сейчас прикажу.
Княжне, видимо, досадно было, что не на кого было сердиться. Она, что то шепча, присела на стул.
– Но вам это неправильно доносят, – сказал Пьер. – В городе все тихо, и опасности никакой нет. Вот я сейчас читал… – Пьер показал княжне афишки. – Граф пишет, что он жизнью отвечает, что неприятель не будет в Москве.
– Ах, этот ваш граф, – с злобой заговорила княжна, – это лицемер, злодей, который сам настроил народ бунтовать. Разве не он писал в этих дурацких афишах, что какой бы там ни был, тащи его за хохол на съезжую (и как глупо)! Кто возьмет, говорит, тому и честь и слава. Вот и долюбезничался. Варвара Ивановна говорила, что чуть не убил народ ее за то, что она по французски заговорила…
– Да ведь это так… Вы всё к сердцу очень принимаете, – сказал Пьер и стал раскладывать пасьянс.
Несмотря на то, что пасьянс сошелся, Пьер не поехал в армию, а остался в опустевшей Москве, все в той же тревоге, нерешимости, в страхе и вместе в радости ожидая чего то ужасного.
На другой день княжна к вечеру уехала, и к Пьеру приехал его главноуправляющий с известием, что требуемых им денег для обмундирования полка нельзя достать, ежели не продать одно имение. Главноуправляющий вообще представлял Пьеру, что все эти затеи полка должны были разорить его. Пьер с трудом скрывал улыбку, слушая слова управляющего.