На производстве, где работают различные станки с числовым программным управлением, используется множество различного программного обеспечения, но в большинстве случаев весь управляющий софт использует один и тот же управляющий код. Программное обеспечение для любительских станков, так же базируется на аналогичном коде. В обиходе его называют "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 | Отмена G10 | G11; |
G15 | Отмена G16 | G15 G90; |
G16 | Переключение в полярную систему координат | G16 G91 X100 Y90; |
G20 | Режим работы в дюймовой системе | G90 G20; |
G21 | Режим работы в метрической системе | G90 G21; |
G22 | Активировать установленый предел перемещений (Станок не выйдет за их предел). | G22 G01 X15 Y25; |
G23 | Отмена G22 | G23 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 | Отмена G68 | G69; |
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 | Отмена G99 | G98 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; |
В погоне за мощными постт процесорами - CAM-приложениями станочники не замечают недорогой, доступный и легкий в применении и изучении программмный продукт. На всех форумах, куча вопросов умным гуру - как разобраться в настройках универсальных программ, рыская по интернету в поисках взломанных копий дорогих программам, мы почему-то не задумываемся, что легче приобрести недорогой программмный продукт и честно и законно, а что важно - и весьма эффективно, применять его на своем оборудовании.
Всё большее распространение сейчас получают домашние хоббийные и самодельные или ретрофитные станки с ЧПУ или станки конструкторы. С программой управления обычно всё понятно - это MACH, практически, нет альтернатив. А с выбором пост-процессора у домашнего мастера обычно возникают проблеммы.
Рассмотрим использование станка с ЧПУ для создания несложного барельефа.
Недорогое решение вопроса G-кода для этой цели - простая и удобная программа Bmp2Cnc.
G-кодовую управляющую программу (УП G-кодов) Bmp2Cnc создает по полутоновому изображению. В программу также можно закачать и цветную фотографию: есть возможность конвертирования цветной картинки в полутоновую, но мы здесь для примера будем применять уже готовый черно-белый рисунок:
Разберём работу с программой по шагам.
Итак, загружаем картинку в программу . Меняем размер изображения на тот, который соответствует размеру будущей барельефа. Вводим значение 100 мм в окошко "Ширина" и, если в чекбоксе ниже стоит птичка, высота картинки изменяется с тем же масштабом:
Далее выбираем ноль. Проще всего за начало координат УП принимать левый нижний угол картинки. Почему? Удобство заключается в том, что габариты барельефа будут в дальнейшем понятнее отображаться в программе управления Mach3, легче далее будет манипулировать управляющей программой - масштабировать деталь, зацикливать, т.е. выполнять несколько одинаковых обработок одной управляющей программой на одной заготовке, и так далее:
Наступает самый интересный момент. Сейчас мы увидим деталь в объеме. В секции "Глубина" мы задаем глубины для белого и черного цвета изображения. Для нашей барельефа размерами 100 на 100 устанавливаем глубину для самого темного оттенка черного сначала 10 мм, нажимаем кнопку "Применить". Через секунду мы видим полученный рельеф в окне графической визуализации:
Нужно добавить еще объему? Задаем глубину 15 мм. Теперь деталь смотрится достаточно объемно:
В следующем диалоге bmp2cnc выбираем подходящий для нашей системы постпроцессор - Mach2-3 в миллиметрах и переходим к выбору инструмента :
Подбираем подходящую фрезу с острым носиком, которая будет достаточно чисто обрабатывать нашу деталь:
Выбирая диаметр инструмента - фрезы и иту параллельных проходов, не стоит увлекаться и задавать слишком высокие параметры - иначе обработка растянется на часы или даже сутки! Здесь лучше пойти на компромисс, пусть деталь получится слегка шершавой, в конце концов, пройтись шкуркой, в любом случае, придется (так как исходная картинка была невысокого качества), зато станок выполнит обработку гораздо быстрее:
Число проходов по глубине можно задать любое в зависимости от твердости материала, качества инструмента и т.д.
Здесь в шестом диалоге программы есть очень полезная функция, которая, кстати, в других маститых программах и реализуется "со скрипом". Нажатием одной кнопки можно отсечь лишние для обработки плоскости, чем существенно укоротить время обработки. Мы отсекаем нижнюю плоскость - и наша модель принимает окончательный вид :
Нажатие кнопки "Вычислить" - и мы видим полученные траектории обработки. В отдельном окошке - готовая управляющая программа:
Далее можно запустить имитацию обработки . Анимированный инструмент-фреза на экране программы будет перемещаться по созданным в Bmp2Cnc траекториям, предоставляя нам прекрасную визуализацию работы станка:
Вот и всё . Файл УП G-кодов можно отдавать на станок, а результаты работы можно сохранить как Bmp2Cnc-проект для последующих обращений и изменений, или как Stl или Dxf модель.
Готовая УП G-кодов загружена в Mach3:
Добрый день Уважаемые читатели!
Программа, написанная с использованием 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 – звуковой сигнал
Благодарю Вас за внимание!
G-код - наименование языка программирования систем с числовым программным управлением (ЧПУ).
Управляющая программа представляет собой обычный текстовый файл и состоит из последовательности кадров и обычно начинается с символа начало программы (%) и заканчивается М02 или М30.
Каждый кадр программы представляет собой один шаг обработки и (в зависимости от УЧПУ) может начинаться с номера кадра (N1...N10 и т.д.), а заканчиваться символом конец кадра (;).
Кадр управляющей программы состоит из операторов в форме слов (G91, M30, X10. и т.д.). Слово состоит из символа (адреса) и цифры, представляющее арифметическое значение.
Адреса X, Y, Z, U, V, W, P, Q, R, A, B, C, D, E являются размерными перемещениям, используют для обозначения координатных осей, вдоль которых осуществляются перемещения.
Слова, описывающие перемещения, могут иметь знак (+) или (-). При отсутствии знака перемещение считается положительным.
Адреса I, J, K означают параметры интерполяции.
G - подготовительная функция.
M - вспомогательная функция.
S - функция главного движения.
F - функция подачи.
T, D, H - функции инструмента.
Символы могут принимать другие значения в зависимости от конкретного УЧПУ.
Подготовительные функции (G коды)
G00 - быстрое позиционирование.
Функция G00 используется для выполнения ускоренного перемещения режущего инструмента к позиции обработки или к безопасной позиции. Ускоренное перемещение никогда не используется для выполнения обработки, так как скорость движения исполнительного органа станка очень высока. Код G00 отменяется кодами: G01, G02, G03.
G01 - линейная интерполяция.
Функция G01 используется для выполнения прямолинейных перемещений с заданной скоростью (F). При программировании задаются координаты конечной точки в абсолютных значениях (G90) или приращениях (G91) с соответственными адресами перемещений (например X, Y, Z). Код G01 отменяется кодами: G00, G02, G03.
G02 - круговая интерполяция по часовой стрелке.
Функция GO2 предназначена для выполнения перемещения инструмента по дуге (окружности) в направлении часовой стрелки с заданной скоростью (F). При программировании задаются координаты конечной точки в абсолютных значениях (G90) или приращениях (G91) с соответственными адресами перемещений (например X, Y, Z).
Код G02 отменяется кодами: G00, G01, G03.
G03 - круговая интерполяция против часовой стрелки.
Функция GO3 предназначена для выполнения перемещения инструмента по дуге (окружности) в направлении против часовой стрелки с заданной скоростью (F). При программировании задаются координаты конечной точки в абсолютных значениях (G90) или приращениях (G91) с соответственными адресами перемещений (например X, Y, Z).
Параметры интерполяции I, J, K, которые определяют координаты центра дуги окружности в выбранной плоскости, программируются в приращениях от начальной точки к центру окружности, в направлениях, параллельных осям X, Y, Z соответственно.
Код G03 отменяется кодами: G00, G01, G02.
G04 - пауза.
Функция G04 - команда на выполнение выдержки с заданным временем. Этот код программируется вместе с X или Р адресом, который указывает длительность времени выдержки. Обычно, это время составляет от 0.001 до 99999.999 секунд. Например G04 X2.5 - пауза 2.5 секунды, G04 Р1000 - пауза 1 секунда.
G17 - выбор плоскости XY.
Код G17 предназначен для выбора плоскости XY в качестве рабочей. Плоскость XY становится определяющей при использовании круговой интерполяции, вращении системы координат и постоянных циклов сверления.
G18 - выбор плоскости XZ.
Код G18 предназначен для выбора плоскости XZ в качестве рабочей. Плоскость XZ становится определяющей при использовании круговой интерполяции, вращении системы координат и постоянных циклов сверления.
G19 - выбор плоскости YZ.
Код G19 предназначен для выбора плоскости YZ в качестве рабочей. Плоскость YZ становится определяющей при использовании круговой интерполяции, вращении системы координат и постоянных циклов сверления.
G20 - ввод дюймовых данных.
Функция G20 активизирует режим работы с дюймовыми данными.
G21 - ввод метрических данных.
Функция G21 активизирует режим работы с метрическими данными.
G40 - отмена коррекции на радиус инструмента.
Функция G40 отменяет действие автоматической коррекции на радиус инструмента G41 и G42.
G41 - левая коррекция на радиус инструмента.
Функция G41 применяется для включения автоматической коррекции на радиус инструмента находящегося слева от обрабатываемой поверхности (если смотреть от инструмента в направлении его движения относительно заготовки). Программируется вместе с функцией инструмента (D).
G42 - правая коррекция на радиус инструмента.
Функция G42 применяется для включения автоматической коррекции на радиус инструмента находящегося справа от обрабатываемой поверхности (если смотреть от инструмента в направлении его движения относительно заготовки). Программируется вместе с функцией инструмента (D).
G43 - коррекция на положение инструмента.
Функция G43 применяется для компенсации длинны инструмента. Программируется вместе с функцией инструмента (H).
G52 - локальная система координат.
СЧПУ позволяет устанавливать кроме стандартных рабочих систем координат (G54-G59) еще и локальные. Когда СЧПУ станка выполняет команду G52, то начало действующей рабочей системы координат смещается на значение указанное при помощи слов данных X, Y и Z. Код G52 автоматически отменяется с помощью команды G52 ХО YO Z0.
G54 - G59 - заданное смещение.
Смещение рабочей системы координат детали относительно системы координат станка.
G68 - вращение координат.
Код G68 позволяет выполнить поворот координатной системы на определенный угол. Для выполнения поворота требуется указать плоскость вращения, центр вращения и угол поворота. Плоскость вращения устанавливается при помощи кодов G17, G18 и G19. Центр вращения устанавливается относительно нулевой точки активной рабочей системы координат (G54 - G59). Угол вращения указывается при помощи R. Например: G17 G68 X0. Y0. R120.
G69 - отмена вращения координат.
Код G69 отменяет режим вращения координат G68.
G73 - высокоскоростной цикл прерывистого сверления.
Цикл G73 предназначен для сверления отверстий. Движение в процессе обработки происходит на рабочей подаче с периодическим выводом инструмента. Движение в исходное положение после обработки идет на ускоренной подаче.
G74 - цикл нарезания левой резьбы.
Цикл G74 предназначен для нарезания левой резьбы метчиком. Движение в процессе обработки происходит на рабочей подаче, шпиндель вращается в заданном направлении. Движение в исходное положение после обработки идет на рабочей подаче с обратным вращением шпинделя.
G80 - отмена постоянного цикла.
Функция, которая отменяет любой постоянный цикл.
G81 - стандартный цикл сверления.
Цикл G81 предназначен для зацентровки и сверления отверстий. Движение в процессе обработки происходит на рабочей подаче. Движение в исходное положение после обработки идет на ускоренной подаче.
G82 - сверление с выдержкой.
Цикл G82 предназначен для сверления и зенкования отверстий. Движение в процессе обработки происходит на рабочей подаче с паузой в конце. Движение в исходное положение после обработки идет на ускоренной подаче.
G83 - цикл прерывистого сверления.
Цикл G83 предназначен для глубокого сверления отверстий. Движение в процессе обработки происходит на рабочей подаче с периодическим выводом инструмента в плоскость отвода. Движение в исходное положение после обработки идет на ускоренной подаче.
G84 - цикл нарезания резьбы.
Цикл G84 предназначен для нарезания резьбы метчиком. Движение в процессе обработки происходит на рабочей подаче, шпиндель вращается в заданном направлении. Движение в исходное положение после обработки идет на рабочей подаче с обратным вращением шпинделя.
G85 - стандартный цикл растачивания.
Цикл G85 предназначен для развертывания и растачивания отверстий. Движение в процессе обработки происходит на рабочей подаче. Движение в исходное положение после обработки идет на рабочей подаче.
G86 - цикл растачивания с остановкой вращения шпинделя.
Цикл G86 предназначен для растачивания отверстий. Движение в процессе обработки происходит на рабочей подаче. В конце обработки происходит остановка шпинделя. Движение в исходное положение после обработки идет на ускоренной подаче.
G87 - цикл растачивания с отводом вручную.
Цикл G87 предназначен для растачивания отверстий. Движение в процессе обработки происходит на рабочей подаче. В конце обработки происходит остановка шпинделя. Движение в исходное положение после обработки идет вручную.
G90 - режим абсолютного позиционирования.
В режиме абсолютного позиционирования G90 перемещения исполнительных органов производятся относительно нулевой точки рабочей системы координат G54-G59 (программируется, куда должен двигаться инструмент). Код G90 отменяется при помощи кода относительного позиционирования G91.
G91 - режим относительного позиционирования.
В режиме относительного (инкрементального) позиционирования G91 за нулевое положение каждый раз принимается положение исполнительного органа, которое он занимал перед началом перемещения к следующей опорной точке (программируется, на сколько должен переместиться инструмент). Код G91 отменяется при помощи кода абсолютного позиционирования G90.
G94 - скорость подачи в дюймах/миллиметрах в минуту.
При помощи функции G94 указанная скорость подачи устанавливается в дюймах за 1 минуту (если действует функция G20) или в миллиметрах за 1 минуту (если действует функция G21). Программируется вместе с функцией подачи (F). Код G94 отменяется кодом G95.
G95 - скорость подачи в дюймах/миллиметрах на оборот.
При помощи функции G95 указанная скорость подачи устанавливается в дюймах на 1 оборот шпинделя (если действует функция G20) или в миллиметрах на 1 оборот шпинделя (если действует функция G21). Т.е. скорость подачи F синхронизируется со скоростью вращения шпинделя S. Код G95 отменяется кодом G94.
G98 - возврат к исходной плоскости в цикле.
Если постоянный цикл станка работает совместно с функцией G98, то инструмент возвращается к исходной плоскости в конце каждого цикла и между всеми обрабатываемыми отверстиями. Функция G98 отменяется при помощи G99.
G99 - возврат к плоскости отвода в цикле.
Если постоянный цикл станка работает совместно с функцией G99, то инструмент возвращается к плоскости отвода между всеми обрабатываемыми отверстиями. Функция G99 отменяется при помощи G98
На производстве, где работают различные станки с числовым программным управлением, используется множество различного программного обеспечения, но в большинстве случаев весь управляющий софт использует один и тот же управляющий код. Программное обеспечение для любительских станков, так же базируется на аналогичном коде. В обиходе его называют «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 |