Детальная расшифровка g кодов. Базовые M коды

На производстве, где работают различные станки с числовым программным управлением, используется множество различного программного обеспечения, но в большинстве случаев весь управляющий софт использует один и тот же управляющий код. Программное обеспечение для любительских станков, так же базируется на аналогичном коде. В обиходе его называют «G -код ». В данном материале представлена общая информация по G-коду (G-code).

G-code это условное именование языка для программирования устройств с ЧПУ (CNC) (Числовое программное управление). Был создан компанией Electronic Industries Alliance в начале 1960-х. Финальная доработка была одобрена в феврале 1980-о года как RS274D стандарт. Комитет ИСО утвердил G-code, как стандарт ISO 6983-1:1982, Госкомитет по стандартам СССР - как ГОСТ 20999-83. В советской технической литературе G-code обозначается, как код ИСО-7 бит.

Производители систем управления используют G-code в качестве базового подмножества языка программирования, расширяя его по своему усмотрению.

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

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

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

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

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

Код Описание Пример
G00 Ускоренное перемещение инструмента (холостой ход) G0 X0 Y0 Z100;
G01 Линейная интерполяция G01 X0 Y0 Z100 F200;
G02 Круговая интерполяция почасовой стрелки G02 X15 Y15 R5 F200;
G03 Круговая интерполяция против часовой стрелки G03 X15 Y15 R5 F200;
G04 Задержка на P миллисекунд G04 P500;
G10 Задать новые координаты для начала координат G10 X10 Y10 Z10;
G11 Отмена G10G11;
G15 Отмена G16G15 G90;
G16 Переключение в полярную систему координат G16 G91 X100 Y90;
G20 Режим работы в дюймовой системе G90 G20;
G21 Режим работы в метрической системе G90 G21;
G22 Активировать установленый предел перемещений (Станок невыйдет за их предел). G22 G01 X15 Y25;
G23 Отмена G22G23 G90 G54;
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;
G53 Переключиться на систему координат станка G53 G0 X0 Y0 Z0;
G54-G59 Переключиться на заданную оператором систему координат G54 G0 X0 Y0 Z100;
G68 Поворот координат на нужный угол G68 X0 Y0 R45;
G69 Отмена G68G69;
G80 Отмена циклов сверления (G81-G84)G80 Z100;
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 Цикл нарезание резьбы
G90 Абсолютная система координат G90 G21;
G91 Относительная система координат G91 G1 X4 Y5 F100;
G94 F (подача) - в формате мм/мин. G94 G80 Z100;
G95 F (подача)- в формате мм/об. G95 G84 X0 Y0 Z-10 R3 F1.411;
G98 Отмена G99G98 G15 G90;
G99 После каждого цикла не отходить на «подходную точку» G99 G91 X10 K4;

Таблица технологических кодов:

Технологические команды языка начинаются с буквы М. Включают такие действия, как:

  • Сменить инструмент
  • Включить/выключить шпиндель
  • Включить/выключить охлаждение
  • Вызвать/закончить подпрограмму

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

Код Описание Пример
M00 Приостановить работу станка до нажатия кнопки «старт» на пульте управления, так называемый «технологический останов» G0 X0 Y0 Z100 M0;
M01 Приостановить работу станка до нажатия кнопки «старт», если включен режим подтверждения останова G0 X0 Y0 Z100 M1;
M02 Конец программы M02;
M03 Начать вращение шпинделя по часовой стрелке M3 S2000;
M04 Начать вращение шпинделя против часовой стрелки M4 S2000;
M05 Остановить вращение шпинделя M5;
M06 Сменить инструмент M6 T15;
M07 Включить дополнительное охлаждение M3 S2000 M7;
M08 Включить основное охлаждение M3 S2000 M8;
M09 Выключить охлаждение G0 X0 Y0 Z100 M5 M9;
M30 Конец информации M30;
M98 Вызов подпрограммы M98 P101;
M99 Конец подпрограммы, возврат к основной программе M99;

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

Код константы Описание Пример
X Координата точки траектории по оси X G0 X0 Y0 Z100
Y Координата точки траектории по оси Y G0 X0 Y0 Z100
Z Координата точки траектории по оси Z G0 X0 Y0 Z100
F Скорость рабочей подачи G1 G91 X10 F100
S Скорость вращения шпинделя S3000 M3
R Радиус или параметр стандартного цикла G1 G91 X12.5 R12.5 или G81 R1 0 R2 -10 F50
D Параметр коррекции выбранного инструмента M06 T1 D1
P Величина задержки или число вызовов подпрограммы M04 P101 или G82 R3 Z-10 P1000 F50
I,J,K Параметры дуги при круговой интерполяции G03 X10 Y10 I0 J0 F10
L Вызов подпрограммы с данной меткой L12 P3

Добрый день Уважаемые читатели!

Программа, написанная с использованием G-кода, имеет жесткое строение.

Все команды управления объединяются в кадры - состоящие из одной или более команд.

Кадр завершается символом перевода строки (CR/LF).

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

Если говорить коротко, то наш ПК через USB, просто посылают команды на порт принтера (микроконтроллера), а принтер без прикословно их выполняет.

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

Описание команд будет производится для прошивки MARLIN , возможно будет работать и на других прошивках.

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

Сами команды делятся на группы:

G - Подготовительные (основные) команды;

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

Эти команды имеют параметры.

X - Координата точки траектории по оси X [G0 X100 Y0 Z0 ]

Y - Координата точки траектории по оси Y [G0 X0 Y100 Z0 ]

Z - Координата точки траектории по оси Z [G0 X0 Y0 Z100 ]

E - Координата точки выдавливания пластика [G1 E100 F100 ]

P - Параметр команды [M300 S5000 P280 ]

S - Параметр команды [G04 S15 ]

F - Параметр команды, подача (скорость) [G1 Y10 X10 F1000 ]

G - команды

G0 - Холостой ход, без работы инструмента [G 0 X 10 ]

G1 - Координированное движение по осям X Y Z E [G 1 X 10 ]

G4 - Пауза в секундах [G4 S15 ]

G28 - Команда Home - паркуем головку [G28 Y0 X0 Z0 ]

G90 - Использовать абсолютные координаты [G90 ]

G91 - Использовать относительные координаты [G91 ]

G92 - Установить текущую заданную позицию [G92 ]

Пояснение:

Относительные координаты - это координаты относительно текущего положения головки.

На пример, если головка находиться в положении X10 Y10, то при подаче команды G91

G1 X10 F1000 , произойдет смещение головы на 10 мм по оси Х на скорости 1000.

Эту команду можно делать много раз, до достижения «софтового» ограничение в прошивке.

Абсолютные координаты - это координаты, строго привязанные к рабочей области.

При выполнении команды G90 G1 X10 F1000 - головка сместиться в координату X10 на скорости 1000.

Команда выполниться только один раз.

Обычные команды

M0 - Сделать паузу и ожидать нажатия кнопки на LCD дисплеи (работает если в прошивку установлен параметр ULTRA_LCD) [G0 X10 Y10 Z10 M0 ]

M17 - Подать ток на двигатели (двигатели руками не вращаются)

M18 - Убрать ток с двигателей (двигатели можно вращать руками, аналог M84)

M42 - Управление контактами ARDUINO MEGA 2560 [M42 P4 S255 ]

M80 - Включить питание, только для ATX - блок питания

M81 - Выключить питания, только для ATX - блок питания

M84 - Выключение всех осей (моторов после простоя) [M84 S10 ]

М112 - Экстренная остановка

M114 - Получить текущие координаты

M115 - Получить версию прошивки

M117 - Написать сообщение на экране [M117 Hello World ]

M119 - Получить статус концевиков

M300 - Проиграть звук [M300 S5000 P280 ]

Команды SD карты

M21 - Инициализировать SD карту

M22 - Использовать SD карту

M23 - Выбрать файл с SD карты [M23 filename.gcode ]

M24 - Начать/возобновить печать с SD карты

M25 - Пауза печати с SD карты

M26 - Установить позицию SD карты в байтах [M 26 S 12345 ]

M27 - Узнать статус печати с SD карты

M28 - Записать файл на SD карту [M 28 filename . gcode ]

M29 - Закончить записать файла на SD карте

M30 - Удалить файл с SD карты [M 30 filename . gcode ]

M31 - Получить значение, сколько прошло времени с последнего M109

M32 - Выбрать файл с SD карты и начать печатать [M 32 / path / filename # ]

M928 - Логирование на SD карту [M 928 filename . gcode ]

Экструдер

M82 - Установить экструдер в абсолютную систему координат

M83 - Установить экструдер в относительную систему координат

M104 - Ожидание нагрева экструдера до определенной температуры [M104 S190 ]

M105 - Получить текущую температуру экструдера [M105 S2 ]

M106 - Включение вентилятора обдува детали [M106 S127 ] - мощность 50%

M107 - Выключение вентилятора обдува детали [M 107 ]

M109 - Нагреть экструдер и удерживать температуру [M109 S215 ]

Стол

M140 - Установить температуру стола [M140 S65 ]

M190 - Нагреть стол и удерживать температуру [M190 S60 ]

В Pronterface можно включить режим ответа в меню Settings / Debug communications , программа будет писать все ответы от принтера.

Можно дописать в слайсерах (Slic3r и Cura) в начале и в конце G-код файла.

Или открыть файл с G-кодом в блокноте и написать все руками. =)

M190 S60 - включаем нагрев стола и ждём, пока он не нагреется до температуры 60 градусов

M109 S210 - включаем нагрев сопла и ждём, пока оно не нагреется до температуры 210 градусов

G21 - устанавливает метрическую систему координат

G90 - устанавливает абсолютную систему координат

M82 - устанавливает абсолютную систему координат для экструдера

M107 - выключаем обдув детали

M300 S5000 P280 – звуковой сигнал

G28 X0 Y0 - команда Home X Y

G28 Z0 - команда Home Z

G1 X100 Y100 Z5 F1000 - центруем сопло относительно стола

G92 E0 - обнуляет количество выдавленного пластика

G1 F300 E4 - выдавливаем 4 мм пластика со скоростью 300 мм

M117 Printing - выводит сообщение на экран

M106 S125 - включаем обдув детали со скоростью 50%

G1 Z0 - опускаем сопло на 0 мм

G1 X96.11 Y110.92 E87.55

G1 Z0.2 - поднимаем сопло на 0.2 мм

G1 X96.11 Y111.00 E89.60 - ездим по координатам и выдавливаем пластик

M140 S50 - изменяем температуру стола

G1 Z4.8 - поднимаем сопло на 4.8 мм

G1 X96.11 Y110.92 E87.55 - ездим по координатам и выдавливаем пластик

G1 Z5 - поднимаем сопло на 5 мм

G1 X96.11 Y111.00 E89.60 - ездим по координатам и выдавливаем пластик

G91 - устанавливает относительную систему координат

G1 E-5 F200 - всасывание экструдером 5 мм прутка

M104 S0 - отключением нагрев экструдера

M140 S0 - отключением нагрев стола

M107 - выключаем обдув детали

M84 - выключаем шаговые двигатели

M300 S5000 P280 – звуковой сигнал

Благодарю Вас за внимание!

М00 – запрограммированный останов. Когда СЧПУ исполняет команду М00, то происходит так называемый запрограммированный останов. Все осевые перемещения останавливаются и возобновляются лишь после того, как оператор станка нажмет клавишу Старт цикла на панели УЧПУ. При этом шпиндель продолжает вращаться (у большинства станков) и другие функции остаются активными. Если оператор станка нажимает клавишу Старт цикла, то выполнение программы будет продолжено с кадра, следующего за М00.

М01 – останов по выбору. Код М01 предназначен для останова по выбору. Действует он аналогично коду М00, однако предоставляет выбор оператору – нужно или не нужно прерывать выполнение управляющей программы. На панели УЧПУ практически любого станка имеется клавиша (или переключатель) М01. Если эта клавиша нажата, то при чтении кадра с М01 происходит останов. Если же клавиша не нажата, то кадр М01 пропускается и выполнение УП не прерывается.

М02 – конец программы. Код М02 информирует СЧПУ о завершении программы.

М03 – прямое вращение шпинделя. При помощи кода М03 включается прямое (по часовой стрелке) вращение шпинделя с запрограммированным числом оборотов (S-слово). Команда М03 остается действующей до тех пор, пока она не будет отменена с помощью М04 или М05.

М04 – обратное вращение шпинделя. При помощи кода М04 включается обратное (против часовой стрелки) вращение шпинделя с запрограммированным числом оборотов (S-слово). Команда М04 остается действующей до тех пор, пока она не будет отменена с помощью М03 или М05.

М05 – останов шпинделя. Команда М05 останавливает вращение шпинделя, но не останавливает осевые перемещения (за исключением режима G95).

М06 – автоматическая смена инструмента. При помощи команды М06 инструмент, закрепленный в шпинделе, меняется на инструмент, находящийся в положении готовности в магазине инструментов.

М07 – включение подачи СОЖ в распыленном виде. Команда М07 включает подачу СОЖ в зону обработки в распыленном виде, если станок обладает такой возможностью.

М08 – включение подачи СОЖ. Команда М08 включает подачу СОЖ в зону обработки в виде струи.

М09 – выключение подачи СОЖ. Команда М09 выключает подачу СОЖ и отменяет команды М07 и М08.

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

М20 – отмена юстировки шпинделя. При помощи команды М20 отменяется команда юстировки шпинделя М19.

М30 – конец программы. Код М30 информирует СЧПУ о завершении программы.

М98 – вызов подпрограммы. Команда М98 предназначена для вызова подпрограммы. Вместе с этой командой программируется Р-слово данных, которое обозначает номер вызываемой подпрограммы.

Пример:
М98 Р1001 – вызвать подпрограмму О1001.

М99 – конец подпрограммы. При помощи команды М99 по окончании подпрограммы осуществляется возврат к главной программе, из которой была вызвана подпрограмма.

Коды, обозначающиеся буквой М, называются вспомогательными и предназначены для управления режимами работы станка. М код может стоять как отдельно, так и находится в кадре с G кодами. Некоторые М коды работают совместно с другими адресами. Например, М код, отвечающий за направление вращения шпинделя, обычно указывается с адресом S, который необходим для задания числа его оборотов при вращении. Порядок выполнения команд и действий при нахождении в кадре M и G-кодов зависит от модели ЧПУ. Некоторые системы ЧПУ позволяют задавать в кадре только один М код.

Таблица 1 - Базовые М коды

Останов выполнения управляющей программы - М00 и М01. Очень часто возникают ситуации, когда необходимо временно прервать выполнение программы. Например, для того чтобы удалить стружку, проверить размеры обрабатываемой детали или переставить крепежные элементы в другое положение.

Коды М00 и М01 временно приостанавливают выполнение программы обработки или, говоря другими словами, делают паузу в производственном цикле станка. Когда система ЧПУ читает код М00, то происходит так называемый запрограммированный останов. Все осевые перемещения останавливаются и возобновляются лишь после того, как оператор станка нажмет клавишу "Старт цикла" на панели устройства ЧПУ. При этом шпиндель продолжает вращаться, и другие функции остаются активными. Если оператор станка нажимает клавишу "Старт цикла", то выполнение программы будет продолжено с кадра, следующего за М00.

N40 М05 /Останов шпинделя

N50 М00 /Останов выполнения управляющей программы

N60 М03 S1000 /Включение шпинделя 1000 об/мин

Код М01 предназначен для останова по выбору. Действует он аналогично коду М00, однако, предоставляет выбор оператору - нужно или не нужно прерывать выполнение управляющей программы. На панели УЧПУ практически любого станка имеется клавиша (или переключатель) "М01". Если эта клавиша нажата, то при чтении кадра с М01 происходит останов. Если же клавиша не нажата, то команда М01 пропускается и выполнение УП не прерывается.



Управление вращением шпинделя – М0З, М04, М05. Вспомогательные коды М0З и М04 предназначены для управления вращением шпинделя. Код М0З отвечает за прямое (по часовой стрелке), а М04 - за обратное вращение шпинделя (против часовой стрелки). Направление вращения определяется, если смотреть в отрицательном направлении оси Z (со стороны шпинделя в сторону заготовки). При фрезеровании режущие инструменты должны иметь прямое вращение (М03). При выводе метчика из отверстия, при нарезании левой резьбы, в циклах автоматического измерения диаметра инструмента может потребоваться обратное вращение шпинделя (М04). В конце программы обработки и перед сменой инструмента нужно остановить вращение шпинделя при помощи команды М05.

Рисунок 1 – Прямое и обратное вращение шпинделя

Для задания частоты вращения шпинделя используется S адрес. За S следует числовое значение, выражающее скорость вращения шпинделя в оборотах за одну минуту. Большинство СЧПУ воспринимают только целочисленное значение S. Обычно код М03 и S находятся в одном кадре.

Управление подачей смазывающе-охлаждающей жидкости - М07, М08, М09. В процессе фрезерования охлаждающая жидкость подается в зону обработки для увеличения стойкости инструмента, улучшения качества обрабатываемой поверхности и удаления (вымывания) стружки Станки с ЧПУ оснащаются системой автоматической подачи СОЖ. Управление этой системой осуществляется при помощи нескольких М кодов. Обычно код М08 используется для включения подачи охлаждающей жидкости, а код М09 – для выключения. Некоторые станки позволяют подавать СОЖ в зону обработки в различном виде. Например, код М08 может вызывать подачу охлаждающей жидкости в виде струи, а код М07 - в распыленном виде.

Подачу СОЖ принято отключать перед сменой инструмента и в конце программы обработки. Многие современные станки делают это автоматически при чтении кода М06 (смена инструмента), кодов М30 и М02 (конец программы). Кроме программного управления системой автоматической подачи СОЖ существует и ручное управление, позволяющее оператору станка при помощи определенных клавиш на панели УЧПУ включать или выключать подачу охлаждающей жидкости в случае необходимости.

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

Адрес T обозначает номер вызываемого инструмента (в данном случае инструмент №1), а М06 обеспечивает смену. Большинство СЧПУ допускают любой порядок слов данных в кадре смены инструмента.

Завершение программы – М30 и М02. В конце любой управляющей программы должен находиться код ее завершения – М30 или М02. При выполнении любого из этих кодов станок останавливается независимо от того, какую функцию он выполнял. Разница между М30 и М02 заключается лишь в том, что при окончании программы обработки с М30 курсор текущего положения переводится в самое начало программы, а с М02 остается в конце.

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

Понравилась статья? Поделиться с друзьями: