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-код в качестве базового подмножества языка программирования, расширяя его по своему усмотрению.
G-Code – это также стандартный язык печати, используемый многими 3D-принтерами для управления процессом печати. Файлы GCODE могут быть открыты с помощью различных программ 3D-печати, например, Simplify3D, GCode Viewer, а также с помощью текстового редактора, поскольку их содержимое представляет собой обычный текст.
Программа, написанная с использованием G-кода, имеет жёсткую структуру. Все команды управления объединяются в кадры — группы, состоящие из одной или более команд. Кадр завершается символом перевода строки (CR/LF) и может иметь явно указанный номер, начинающийся с буквы N, за исключением первого кадра программы и комментариев. Первый (а в некоторых случаях ещё и последний) кадр содержит только один необязательный знак «%». Завершается программа командами M02 или M30.
Комментарии к программе размещаются в круглых скобках. Комментарий может располагаться как в отдельной строке, так и после программных кодов. Недопустимо оформлять в качестве комментария несколько строк, охваченных парой круглых скобок.
Команды в каждом кадре выполняются одновременно, поэтому порядок команд в кадре строго не оговаривается, но традиционно предполагается, что первыми указываются подготовительные команды (например, выбор рабочей плоскости, скоростей перемещений по осям и др.), затем задание координат перемещения, затем выбора режимов обработки и технологические команды.
Максимальное число элементарных команд и заданий координат в одном кадре зависит от конкретного интерпретатора языка управления станками, но для большинства популярных интерпретаторов (стоек управления) не превышает 6.
Координаты задаются указанием оси с последующим числовым значением координаты. Целая и дробная части числа координаты разделяются десятичной точкой. Допустимо опускание незначащих нулей, либо их добавление. Также в подавляющем количестве интерпретаторов допустимо не добавлять десятичную точку к целым числам. Например: Y0.5 и Y.5, Y77, Y77. и Y077.0.
Существуют так называемые модальные и немодальные команды. Модальные команды изменяют некоторый параметр/настройку и эта настройка действует на все последующие кадры программы до их смены очередной модальной командой. К модальным командам, например, относятся скорости перемещения инструмента, управления скоростью шпинделя, подачи СОЖ и др. Немодальные команды действуют только внутри их содержащего кадра.
Интерпретатор кода (стойка управления) станком запоминает значение введённых параметров и настроек до их смены очередной модальной командой или отмены ранее введенной модальной команды, поэтому необязательно указание в каждом кадре, например, скорости перемещения инструмента.
Программа G-код
Цель каждого написанного G-кода — производить детали максимально безопасным и эффективным способом. Чтобы достичь этого, блоки G-кода располагают в логичном и простом порядке, например:
- Запуск программы
- Загрузка необходимого инструмента
- Включение шпинделя
- Включение охлаждения жидкостью
- Перемещение инструмента в положение над деталью
- Начало процесса обработки
- Выключение охлаждающей жидкости
- Отключение шпинделя
- Отвод шпинделя от детали
- Завершение программы
Модальные и адресные коды
Как и другие языки программирования, G-код имеет возможность повторять действие до бесконечности. Этот процесс использует зацикливание модального кода и выполняет действие, пока вы не отключите его или запустите выполнение другого кода. Например, M03 — это модальный код, который будет запускать шпиндель до бесконечности, пока вы не скажете ему остановиться на M05. Теперь подождите секунду. Это слово (помните: слово — это маленький кусочек кода) не начиналось с буквы G, но все равно это G-код. Слова, начинающиеся с буквы M, являются машинными кодами и включают или выключают такие функции машины, как охлаждающая жидкость, шпиндель и зажимы.
G-код также включает в себя полный список кодов адресов. Коды адресов начинаются с буквенного обозначения, например G, затем идет набор цифр. Например, X2 определяет код адреса X-координаты, где 2 — это значение на оси X, на которое перемещается инструмент.
Пишем программу по заданию
Дан чертеж детали (Приложение 1). Деталь на чертеже из плоского проката толщиной 3 мм марки Ст 3 кп ГОСТ 380 – 94. Необходимо Написать программу в ISO 7-bit (G-коды) для изготовления детали на фрезерном станке с ЧПУ.
Обработка контура детали
На чертеже детали (Приложение 1) проставлены Базы А и Б. База А — ось X, База Б — ось Y. Начинаем обход контура по часовой стрелке, начиная с левого нижнего угла детали, это будет «Нулевая точка детали» (нуль детали), с координатами X;Y (0;0), строим для всех точек детали координаты X;Y. Сначала на листке бумаги записываем координаты точек в миллиметрах:
Обход контура детали
1. X0, Y0;
2. X0, Y15;
3. X10, Y15;
4. X10, Y35;
5. X0, Y35;
6. X0, Y80;
7. X60, Y80;
8. X60, Y0;
9. X0, Y0;
После обхода контура, переходим к сверлению отверстий. На чертеже детали (Приложение 1) два отверстия, начинаем от нулевой точки детали, безопасной плоскости 15 мм. над деталью.
Отвесите №1
1. X0, Y0, Z 15; (Вывод фрезы в нулевую точку на высоту 15 мм. над деталью)
2. X30, Y10, Z 15; (Вывод фрезы над отверстием на высоте 15 мм. над деталью)
3. X30, Y10, Z 5; (Опускание фрезы в плоскость отвода на высоте 5 мм. над деталью)
4. X30, Y10, Z -3; (Цикл простого сверление, на глубину 3 мм.)
5. X30, Y10, Z 5; (Подъем фрезы в плоскость отвода на высоте 5 мм. над деталью)
Отвесите №2
6. X40, Y60, Z 15; (Вывод фрезы в нулевую точку на высоту 15 мм. над деталью)
7. X40, Y60, Z 5; (Вывод фрезы над отверстием на высоте 15 мм. над деталью)
8. X40, Y60, Z -3; (Цикл простого сверление, на глубину 3 мм.)
9. X40, Y60, Z 5; (Подъем фрезы в плоскость отвода на высоте 5 мм. над деталью)
10. X0, Y0, Z 15; (Вывод фрезы в нулевую точку на высоту 15 мм. над деталью)