Промышленное производство
Промышленный Интернет вещей | Промышленные материалы | Техническое обслуживание и ремонт оборудования | Промышленное программирование |
home  MfgRobots >> Промышленное производство >  >> Manufacturing Technology >> Промышленные технологии

Освоение программирования ЧПУ: язык, структура и G/M-коды

Цель

После изучения данного раздела вы сможете:

Программы ЧПУ перечисляют инструкции в порядке выполнения. Они читаются как книга: слева направо, сверху вниз. Каждое предложение программы записано на отдельной строке — блоке (Block). Блоки расположены в определенной последовательности, обеспечивающей безопасность, предсказуемость и читаемость, поэтому важно придерживаться стандартной структуры программы.

Блоки располагаются в следующем порядке:

Приведенные шаги — простейший тип программы: один инструмент, одна операция. Программы с несколькими инструментами повторяют шаги 2–9 для каждого.

Таблицы 3 и 4 в разделе G- и M-коды показывают самые частые коды, желательно запомнить.

Как у любого языка, у G-кода есть правила. Некоторые коды модальные — остаются в силе до отмены или изменения. Некоторые имеют разный смысл в зависимости от контекста. Эти правила описаны в главе, но не стоит учить каждый нюанс — задача постпроцессора CAD/CAM — правильно отформатировать и записать программу.

Формат программы

Программа в Таблице 1 обрабатывает квадратный контур и сверлит отверстие.

БлокОписаниеНазначение
%
O1234
(T1 0.25 END MILL)
G17 G20 G40 G49 G80 G90
Начало программы.
Номер программы (Имя).
Описание инструмента для оператора.
Блок безопасности — обеспечить безопасный режим.
Начало программы
T1 M6
S9200 M3
Установить инструмент №1.
Обороты 9200 об/мин, по часовой стрелке.
Смена инструмента
G54
M8
G00 X-0.025 Y-0.275
G43 Z1. H1
Z0.1
G01 Z-0.1 F18.
Использовать приспособление №1 (G54).
СОЖ вкл.
Быстрое перемещение над деталью.
Быстрое перемещение в безопасную плоскость, TLO №1.
Быстрое перемещение в плоскость подачи.
Линейный ход на глубину резания 18 дюйм/мин.
Перемещение в позицию
G41 Y0.1 D1 F36.
Y2.025
X2.025
Y-0.025
X-0.025
G40 X-0.4
G00 Z1.
Компенсация диаметра (CDC) влево, вход, компенсация D1, 36 дюйм/мин.
Линейный ход.
Линейный ход.
Линейный ход.
Линейный ход.
Выкл. CDC с выходным движением.
Быстрое перемещение в безопасную плоскость.
Обработка контура
M5
M9
(T2 0.25 DRILL)
T2 M6
S3820 M3
Шпиндель выкл.
СОЖ выкл.
Описание инструмента для оператора.
Установить инструмент №2.
Обороты 3820 об/мин, по часовой стрелке.
Смена инструмента
M8
X1. Y1.
G43 Z1. H2
Z0.25
СОЖ вкл.
Быстрое перемещение над отверстием.
Быстрое перемещение в безопасную плоскость, TLO №2.
Быстрое перемещение в плоскость подачи.
Перемещение в позицию
G98 G81 Z-0.325 R0.1 F12.
G80
Z1.
Цикл сверления (canned), глубина Z-.325, F12.
Отмена цикла сверления.
Быстрое перемещение в безопасную плоскость.
Сверление отверстия
M5
M9
G91 G28 Z0
G91 G28 X0 Y0
G90
M30
%
Шпиндель выкл.
СОЖ выкл.
Возврат в домашнюю позицию по Z.
Возврат в домашнюю позицию по XY.
Сброс в абсолютный режим (безопасность).
Сброс программы в начало.
Конец программы.
Конец программы

Коды адресных команд (Letter Address Commands)

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

Коды бывают модальными (действуют до отмены/изменения) или не модальными (действуют только в текущем блоке). Многие адреса выбраны логично (T — tool, S — spindle, F — feed rate).

Таблица 2: Коды адресных команд

ПеременнаяОписаниеОпределения
AАбсолютная/инкрементная позиция оси A (вращательная вокруг X)A,B,C — 4/5-я вращательные оси. Угол в градусах до 3 знаков. G01 A45.325 B90.
BАбсолютная/инкрементная позиция оси B (вращательная вокруг Y)Аналогично A
CАбсолютная/инкрементная позиция оси C (вращательная вокруг Z)Аналогично B
DЗадает диаметровое/радиальное смещение для компенсации диаметра режущего инструментаКомпенсация износа и дефлекции диаметра. D сопровождается целым числом, совпадающим с номером инструмента (T5 → D5). Без десятичной точки. Всегда с G41/G42 и XY движением (не дугой). Контроллер считывает регистр и смещает траекторию влево (G41) или вправо (G42) на значение регистра. G01 G41 X2. D1
EТочная подача для резьбонарезания на токарных—
FЗадает скорость подачиУстанавливает подачу при фрезеровании линий, дуг, циклах сверления. Подача в дюйм/мин (G94) или обратное время (G93). До 3 знаков после запятой (для резьбы), нужна десятичная точка. G01 X2. Y0. F30.
GАдрес подготовительных командG-команды говорят контроллеру, какое движение нужно (быстрое позиционирование, линейная подача, круговая, фиксированный цикл) или какое смещение использовать. G02 X2. Y2. I.50 J0.
HЗадает смещение длины инструмента; инкрементная ось, соответствующая C (на токарно-фрезерных)Вызывает регистр TLO на контроллере. Контроллер комбинирует TLO и Fixture Offset Z, чтобы знать положение инструмента относительно нуля детали. Всегда с целым числом (H1, H2), G43 и Z координатой. G43 H1 Z2.
IЗадает размер дуги по оси X для G02/G03. Также параметр в некоторых фиксированных циклах.Для дуг (G2/G3) — инкрементное X-расстояние от начала дуги к центру. Некоторые циклы сверления используют I как опциональный параметр. G02 X.5 Y2.500 I0. J0.250
JЗадает размер дуги по оси Y для G02/G03. Также параметр в некоторых фиксированных циклах.Для дуг — инкрементное Y-расстояние от начала дуги к центру. Некоторые циклы используют J. G02 X.5 Y2.500 I0. J0.250
KЗадает размер дуги по оси Z для G02/G03. Также параметр в циклах, равен L.Для дуги — инкрементное Z-расстояние от начала дуги к центру. В плоскости G17 — инкремент Z для винтовых движений. Некоторые циклы используют K. G18 G03 X.3 Z2.500 I0. K0.250
LСчетчик циклов фиксированного цикла; спецификация регистра для G10Счетчик циклов: число повторений фиксированного цикла в каждой позиции. По умолчанию 1. Иногда используется K вместо L. С инкрементным позиционированием (G91) серию равноудалённых отверстий можно запрограммировать как цикл. G10: спецификация регистра для редактирования (смещения приспособления, радиуса инструмента, длины инструмента).
MВспомогательная функцияВсегда с целым числом, определяющим смысл. Только один M-код в блоке. Расширенные определения позже. M08
NНомер строки (блока) в программе; номер системного параметра для G10Номера блоков облегчают чтение. Редко нужны для CAD/CAM программ без подпрограмм. Занимают память — большинство 3D программ не используют. Целые до 5 знаков, без десятичной точки. Не могут быть перед % и обычно не перед комментарием. N100 T02 M06
OИмя программыПрограммы хранятся по номеру. Целое число с буквой O, без десятичных. O1234 (Exercise 1)
PПараметр для различных G и M кодовВыдержка (задержка) в секундах. С G4, если не в циклах сверления. G4 P.1
QШаг погружения в циклах сверления (peck increment)Инкремент подачи за проход в цикле пошагового сверления. G83 X2. Y2. Z-.625 F20. R.2 Q.2 P9.
RЗадает радиус дуги или высоту отхода в циклах сверленияДуги можно задать радиусом R или векторами I,J,K. IJK надежнее R — рекомендуется использовать их. R также в циклах сверления — плоскость возврата Z. G83 Z-.625 F20. R.2 Q.2 P9.
SЗадает скорость: обороты шпинделя или скорость резания в зависимости от режимаОбороты шпинделя (RPM). Целое без десятичной, всегда с M03 (по часовой) или M04 (против). S2500 M03
TВыбор инструментаВыбирает инструмент. Целое, всегда с M6 (код смены). T01 M06
UИнкрементная ось, соответствующая X (обычно только токарные группа А); также время выдержки на некоторых станкахВ этих системах X и U заменяют G90/G91. На этих токарных G90 — адрес фиксированного цикла для черновой обработки.
VИнкрементная ось, соответствующая YДо 2000-х V редко использовался — большинство токарных с U,W не имели Y. Сейчас с живым инструментом и токарно-фрезеровкой V встречается чаще.
WИнкрементная ось, соответствующая Z (обычно только токарные группа А)В этих системах Z и W заменяют G90/G91. На этих токарных G90 — адрес фиксированного цикла для черновой обработки.
XАбсолютная/инкрементная позиция оси XКоординатные данные X. До 4 знаков после запятой, конечные нули не используются. Координаты модальны — не повторять, если не меняются. G01 X2.250 F20.
YАбсолютная/инкрементная позиция оси YКоординатные данные Y. G01 Y2.250 F20.
ZАбсолютная/инкрементная позиция оси ZКоординатные данные Z.

Определения специальных символов

G- и M-коды

G- и M-коды составляют основу программы ЧПУ. Определения классов кодов и конкретные значения важнейших кодов ниже.

G-коды (подготовительные)

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

КодОписание
G00Быстрое перемещение (Rapid). Для позиционирования без резания.
G01Линейное движение с заданной подачей.
G02Круговая интерполяция по часовой стрелке.
G03Круговая интерполяция против часовой стрелки.
G04Выдержка (Dwell).
G28Возврат в домашнюю позицию станка.
G40Выключение компенсации диаметра режущего инструмента (CDC).
G41CDC влево.
G42CDC вправо.
G43Компенсация длины инструмента (TLO).
G54Смещение приспособления №1.
G55Смещение приспособления №2.
G56Смещение приспособления №3.
G57Смещение приспособления №4.
G58Смещение приспособления №5.
G59Смещение приспособления №6.
G80Отмена цикла сверления.
G81Простой цикл сверления.
G82Простой цикл сверления с выдержкой.
G83Цикл пошагового сверления (peck drilling).
G84Цикл нарезания резьбы (растачивание).
G90Режим абсолютного программирования координат.
G91Режим инкрементного программирования координат.
G98Возврат цикла сверления к исходной точке (R).
G99Возврат цикла сверления к референсной плоскости (последняя Z высота).

M-коды (вспомогательные)

Коды, начинающиеся с M — вспомогательные (miscellaneous). Управляют дополнительными функциями: СОЖ, направление шпинделя. В одном блоке может быть только один M-код.

КодОписание
M00Останов программы. Нажать Cycle Start для продолжения.
M01Опциональный останов.
M02Конец программы.
M03Шпиндель по часовой стрелке (CW).
M04Шпиндель против часовой стрелки (CCW).
M05Останов шпинделя.
M06Смена инструмента.
M08СОЖ включить.
M09СОЖ выключить.
M30Конец программы и возврат к началу (нажать Cycle Start для повтора).

Расширенные определения избранных G-кодов

G00 — Быстрое перемещение (Rapid Move)

Команда двигаться максимально быстро к заданной точке. Всегда с координатной позицией, модальна. В отличие от G01, G00 не координирует оси для движения по прямой. Каждая ось движется с макс. скоростью до выполнения. Движение получается как на рис. 18.

G00 X0. Y0.

Освоение программирования ЧПУ: язык, структура и G/M-коды
Рис. 1. Движение G00

Внимание: Скорость rapid на некоторых станках может превышать 1 м/с. Неверное смещение или координата могут разбить станок быстрее, чем оператор нажмет аварийную остановку. Используйте переопределение rapid feed override при первом запуске программы.

Линейное движение — движение по прямой

G-код — о движении. Самый частый тип — прямолинейное (линейное). Движение модально: вы говорите контроллеру тип движения G-кодом, он запоминает и делает его до смены другим G-кодом.

F-word = «F» как «Feedrate». S-word = «S» как «Spindle Speed», адрес — об/мин.

Задание линейного движения через X, Y, Z

Указание G00 или G01 не вызывает движения — они лишь говорят контроллеру, какой тип движения ожидать, когда вы наконец скажете, куда двигаться. Для реального движения нужно указать пункт назначения словами X, Y, Z. Чтобы перейти в нуль детали:

G00 X0 Y0 Z0 или медленнее G01 X0 Y0 Z0 F40.

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

Если задать ту же цель, но разнести координаты по строкам — каждый блок отдельное движение:

G00 X0 Y0 (движение к X0 Y0, Z неизменно)
Z0 (движение к Z0, X,Y неизменны)

G00 и G01 модальны — указываем только при смене режима.

Ось Z

Интерполированные движения поднимают вопрос для оси Z. Часто лучше двигать ось глубины резания отдельно, а не в координированном движении с X и Y. Легче судить о возможном столкновении, когда резец приближается к детали и оснастке. Сначала двигаем по X и Y, потом по Z — гораздо проще оценить риск случайного столкновения. Также меньше шансов задеть случайный предмет (зажим), если держать резец высоко, пока не окажетесь прямо над началом резания.

G02 и G03 — Круговое движение как модальный режим

Когда режим G02/G03 установлен, дуги определяются в G-коде двумя концами и центром, равноудалённым от концов. Концы просты: текущая контрольная точка (положение в начале блока) — один конец. Другой — координаты XYZ. Центр чаще всего задают через I, J, K — инкрементные смещения от начала дуги к центру.

ПРИМЕР ПО ЧАСОВОЙ СТРЕЛКЕ:

Освоение программирования ЧПУ: язык, структура и G/M-коды
Рис. 2. Центр дуги через IJK

Дуга начинается в X0 Y2., заканчивается в X2. Y0. Центр в X0 Y0. В G-коде:

G02 (установка режима по часовой стрелке)
X2 Y0 I0 J-2.0

Центр через радиус «R»

Можно задать центр просто радиусом окружности. Радиус 2, тогда G-код:

G02 X2 Y0 R2

G17/G18/G19 — Обозначение плоскости

Дуги должны лежать в плоскости, заданной командой G17 (XY), G18 (XZ) или G19 (YZ). G17 — по умолчанию.

Освоение программирования ЧПУ: язык, структура и G/M-коды
Рис. 3. Обозначение плоскости

G40/G41/G42 — Компенсация диаметра режущего инструмента (CDC)

CDC — ключ к точному ЧПУ, позволяя оператору компенсировать износ и дефлекцию инструмента, приказывая станку отклониться влево (G41) или вправо (G42) от запрограммированной траектории. G40 отменяет компенсацию. Величина смещения вводится в D-регистр контроллера. Регистр износа — как таблица, к которой контроллер обращается при каждом движении.

Таблица 5: Регистр диаметрового смещения

Смещение диаметра инструментаЗначение
D10.0125
D20.0000
D30.0000
D40.0000
D50.0000
D60.0000

Значение в D-регистре вычисляет оператор, контролируя готовые размеры элементов детали, сравнивая с чертежом и внося разницу в регистр для поддержания спецификаций. Если отклонения нет — регистр = 0.

G01 G41 D1 X1.0 Y.25 F40.

G43 — Компенсация длины инструмента

G43 активирует компенсацию длины инструмента. Всегда с H-кодом и Z-движением: H — регистр TLO для чтения, Z — высота относительно нуля детали.

TLO как таблица на контроллере:

Таблица 6: Рабочие смещения (Tool Length Register)

Регистр длины инструментаZ
H110.236
H24.7510
H36.9652
H47.6841
H512.4483
H68.2250

TLO комбинируется с активным фикстуром на контроллере, так станок знает, где кончик инструмента относительно нуля детали.

G43 H1 Z1.

G54 — Рабочее смещение (Work Offset)

Рабочие смещения — регистры данных в контроллере ЧПУ, хранящие расстояние от домашней позиции станка X,Y,Z до нуля детали. Их можно представить как таблицу:

Таблица 7: Рабочее смещение

Рабочее смещениеXYZ
G5414.25676.65970.0000
G550.00000.00000.0000
G560.00000.00000.0000
G570.00000.00000.0000
G580.00000.00000.0000
G590.00000.00000.0000

Совет: G54 обычно для первой наладки. Дополнительные смещения — для других сторон детали.

X и Y — расстояние от домашней позиции станка до нуля детали по XY. Z — расстояние от референсной точки инструмента (например, верха блока 1-2-3) до Z-нуля детали.

G54 X0. Y0.

Тест по блоку

  1. Опишите инструкции списка программы ЧПУ.
  2. Все программы ЧПУ начинаются и заканчиваются чем?
  3. Опишите коды адресных команд (Letter Address Commands).
  4. Перечислите три специальных символа.
  5. Опишите G- и M-коды.
  6. Опишите G00 G90 G54 X0 Y0.
  7. Опишите G00 G90 G43 H1 Z1.
  8. В чем разница между G00 и G01?
  9. В чем разница между G02 и G03?
  10. Опишите F- и S-слова.

Промышленные технологии

  1. Основы программирования микропроцессоров
  2. Структура программы на C: разбор Hello World и процесс компиляции
  3. Структура программы на C#: основные компоненты и пример Hello World
  4. Мастерство ЧПУ-обработки: контроль переменных для стабильных результатов
  5. Мастерство точности ЧПУ фрезеровки: проверенные шаги для точных деталей
  6. Премиальные услуги ЧПУ-обработки и инструментального производства в Портленде, Орегон
  7. Блок 5: Операция ЧПУ — наладка и управление станком Haas Mill
  8. Повышение точности и прецизионности ЧПУ-станочного инструмента: комплексное руководство
  9. ЧПУ-шлифовальные станки для инструментов: функции, применение и преимущества
  10. Прессеттер и измерение инструментов ЧПУ: основное руководство по точности и эффективности