Описание G и M кодов для программирования ЧПУ (CNC) станков
На производстве, где работают различные станки с числовым программным управлением, используется множество различного программного обеспечения, но в большинстве случаев весь управляющий софт использует один и тот же управляющий код. Программное обеспечение для любительских станков, так же базируется на аналогичном коде. В обиходе его называют «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-G04 | Позиционирование инструмента |
G17-G19 | Переключение рабочих плоскостей (XY, XZ, YZ) |
G20-G21 | Не стандаризовано |
G40-G44 | Компенсация размера различных частей инструмента (длина, диаметр) |
G53-G59 | Переключение систем координат |
G80-G84 | Циклы сверления, нарезания резьбы |
G90-G92 | Переключение систем координат (абсолютная, относительная) |
Таблица основных команд:
Код | Описание | Пример |
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 | Цикл нарезание резьбы | G95 G84 X0 Y0 Z-10 R3 F1.411; |
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 |