Share to: share facebook share twitter share wa share telegram print page

G-code

G-code
Массачусетський технологічний інститут
ПарадигмаПроцедурна, імперативна
Дата появи1950-ті (перші варіації)
Основні реалізаціїє багато. Переважно Siemens, Sinumerik, FANUC, Haas, Heidenhain, Mazak. Є міжнародний стандарт — ISO 6983
Звичайні розширення файлів.mpt, .mpf .nc і декілька інших

G-код є загальною назвою для найбільш широко використовуваної мови програмування числовим програмним керуванням, яка має багато реалізацій. Застосовують здебільшого в галузі автоматизації, є частиною автоматизованого проектування.

В загальному, G-код — це мова, якою люди взаємодіють з комп'ютеризованими верстатами, задають їм що робити і як це зробити. «Як» визначається інструкціями про те, де перейти до (повернути або виконати дію), як швидко рухатися, і якою траєкторією переміщуватися.

Використання

G-код використовується в системі керування верстатами з числовим програмним керуванням LinuxCNC, програмі Mach3, інших системах.

Приклад використання: запрограмований верстат переміщує різальний інструмент відповідно до заданих G-кодом інструкцій через визначені траєкторії, зрізаючи надлишки матеріалу, щоб отримати деталь відповідно до креслення. Це ж саме поняття поширюється також на нерізальні (незрозумілий термін???) технології, такі як інструменти формування або полірування; 3D-друк; вимірювальне зондування для перевірки результатів.

Див. також

Структура программы

Пробіли в рядку кадру ігноруються, тому припустимо злите написання команд кадру.

У більшості сучасних інтерпретаторів коду допустимо використовувати в коді програми малі та великі літери, як у прикладі.

Основні вимоги до структури

Програма, написана мовою G-коду, має жорстко визначену структуру. Усі команди управління згруповані у кадри — блоки, які містять одну або кілька команд. Кадр закінчується символом переходу на новий рядок (CR/LF) і може необов’язково містити явний номер, що починається з літери N, за винятком першого кадру програми та коментарів. Цей номер виступає як позначка кадру і не обов’язково повинен збільшуватися у програмі або бути послідовними цілими числами, головне, щоб він не повторювався в межах програми.

...
N200 G0
n100 x0
x5y4
...

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

Перший (а іноді й останній) кадр містить лише один необов’язковий знак <%>. Програма завершується командами M02 або M30.

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

Елементарні команди в кадрі виконуються одночасно, тому порядок їх розміщення не є жорстко визначеним, але зазвичай спочатку йдуть підготовчі команди (наприклад, вибір площини інтерполяції, швидкості переміщення за осями тощо), потім вказівка координат руху, а далі — вибір режимів обробки та технологічні команди.

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

Координати задаються вказанням осі з подальшим числовим значенням, де ціла і дробова частини розділяються десятковою крапкою. Допускається опускання незначущих нулів або їх додавання. Також у більшості інтерпретаторів можна не ставити десяткову крапку після цілих чисел. Наприклад: Y0.5 і Y.5, Y77, Y77. та Y077.0.

Команди поділяються на модальні та немодальні. Модальні змінюють певний параметр чи налаштування, які діють на всі подальші кадри програми до їхньої зміни наступною модальною командою або її відміною. До модальних належать, наприклад, швидкість руху інструмента, керування швидкістю шпинделя, подача холодильно-мастильної рідини (СОЖ) та інші. Немодальні діють лише в межах одного кадру, наприклад, команди прискорення або гальмування шпинделя.

Інтерпретатор (стійка керування верстатом) зберігає значення введених параметрів і налаштувань до їхньої зміни іншою модальною командою або скасуванням попередньої, тому необов’язково вказувати у кожному кадрі, наприклад, швидкість руху інструмента.

Опис та виклик підпрограм

Мова програмування дозволяє багаторазове виконання одного й того самого набору команд і переміщень інструменту, який можна викликати з різних частин програми. Це особливо зручно, наприклад, при обробці листового матеріалу, коли потрібно вирізати багато отворів зі складним однаковим контуром, розташованих у різних місцях деталі. У тілі такої підпрограми описується траєкторія руху інструмента для вирізання одного отвору, а в основній програмі ця підпрограма багаторазово викликається з різних позицій.

У підпрограмі переміщення інструмента задаються у відносних координатах, які описують шлях інструмента під час обробки отвору. Перехід до відносної системи координат (інкрементної) здійснюється командою G91 на початку підпрограми, а повернення до абсолютної системи координат — командою G90 у кінці.

g90 x5 ( призначення абсолютної системи координат після виконання цього кадру машинна координата по осі X стане рівною 5 )
g91 x10 ( призначення інкрементної системи координат, після виконання цього кадру машинна координата по осі X стане рівною 15 )
x-15 ( після виконання цього кадру машинна координата по осі X стане рівною 0, тому що продовжує діяти інкрементна система координат, задана модальною командою g91 )

Тіло підпрограми обов'язково повинно мати бути описане до команди кінця програми - М30, проте допустимо розташування підпрограми після команди М02 - кінця програми і мати ім'я, що починається з літери О з цифрами номера підпрограми, наприклад, О112. Наприкінці тіла підпрограми міститься команда повернення до основної програми — М99.

У програмі виклик підпрограми здійснюється командою М98 із зазначенням обов'язкового параметра імені підпрограми P. Неприпустимий збіг імен підпрограм у межах однієї програми. Приклад виклику підпрограм O112: M98 P112 . Допустимо при виклику підпрограми вказівку кількості викликів підпрограми додаванням необов'язкового параметра L, наприклад, дворазовий виклик підпрограми 112: M98 P112 L2, що, наприклад, може бути корисним при описі виконання другого проходу чистової обробки після першого проходу чорнової обробки. При опущеному параметрі підпрограма L викликається одноразово.

Керуюче математичне забезпечення деяких верстатів або деякі інтерпретатори G-коду допускають виклик підпрограм за номером рядка (кадра) у програмі, для цього використовується команда M97 з параметром P, що вказує на номер (мітку) рядка, наприклад, M97 P321 L4 - чотириразовий виклик підпрограми, що починається з 3. Оформлена таким чином підпрограма, як звичайно, повинна закінчуватися командою M99 — поверненням у програму, що викликала.

Приклад програми вирізання 2 прямокутних отворів 10 x 20 мм, збільшених на діаметр торцевої фрези, з координатами лівих нижніх кутів отворів x=57, y=62 і x=104, y=76 у листовій заготовці товщиною 5 мм з викликом підпрограми описує вирізання
...
(Фрагмент програми)
G00 X57 Y62 (поз. X, Y на 1-й отвір)
M98 P112 (вирізання 1-го отвору)
G00 X104 Y76 (поз. X, Y на 2-й отвір)
M98 P112 (вирізання 2-го отвору)
...
М02 (Кінець програми)
...
(Тіло підпрограми)
O112 (Підмітка підпрограми, номер 112)
G00 Z1 (Підведення інструменту на висоту 1 мм над поверхнею заготовки зі швидкістю холостого переміщення)
G01 F40 Z-5.5 (Врізання інструменту на глибину -5,5 мм у заготовку зі швидкістю 40 мм/хв) 
G91 (Перехід у відносну систему координат, у цій системі спочатку X=0, Y=0) 
G01 F20 X10 (Вирізання 1-ї сторони прямокутника зі швидкістю 20 мм/хв) 
Y20 (Вирізання 2-ї сторони прямокутника зі швидкістю 20 мм/хв)
X-10 (Вирізання 3-ї сторони прямокутника зі швидкістю 20 мм/хв. Оскільки включена інкрементальна система координат, то повернення інструмента у вихідну точку до виклику підпрограми вказується у вигляді збільшення координати, тут -10.)
Y-20 (Вирізання 4-ї сторони прямокутника зі швидкістю 20 мм/хв)
G90 (перехід в абсолютну систему координат, відновлення поточних координат до переходу в відносну систему)
G00 Z5 (Підйом інструменту на висоту 5 мм над поверхнею заготовки зі швидкістю холостого переміщення) 
M99 (Повернення до програми або підпрограми, що викликала) 
...
М30 (Кінець інтерпретуємого коду програми, після виконання цієї команди покажчик номера кадру встановлюється на 1-й рядок програми і виконання програми зупиняється)

Програма, написана за допомогою G-коду, має жорстку структуру. Усі команди управління об'єднуються у кадри — групи, які з однієї чи більше команд. Кадр завершується символом перекладу рядка (CR/LF) і може необов'язково мати явно вказаний номер, що починається з літери N, за винятком першого кадру програми та коментарів. Цей номер є по суті міткою кадру і необов'язково повинен наростати в програмі або бути послідовними цілими числами, важливо, щоб номер не повторювався в межах програми, наприклад, допустимо:

Таблиця кодів

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

  • Переміщення робочих органів обладнання із заданою швидкістю (лінійне та кругове)
  • Виконання типових послідовностей (таких, як обробка отворів та різьблення)
  • Управління параметрами інструмента, системами координат та робочих площин
Підготовчі (основні) команди
Коди Опис
G00-G03 Позиціонування інструменту
G17-G19 Перемикання робочих площин (XY, ZX, YZ)
G20-G21 Не стандартизовано
G40-G44 Компенсація розміру різних частин інструменту (довжина, діаметр)
G53-G59 Перемикання систем координат
G80-G85 Цикли свердління, розточування, нарізування різьблення
G90-G91 Перемикання систем координат (абсолютна, відносна)

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

Команда Опис Приклад
G00 Прискорене переміщення інструменту (холостий хід). При холостому переміщенні НЕ ОБОВ'ЯЗКОВО виконується лінійна інтерполяція переміщення аналогічно команді G01. У деяких інтерпретаторах при виконанні команди переміщення по декількох осях одночасно, переміщення по осях відпрацьовується з максимальною швидкістю, тому лінійне переміщення від вихідної точки до кінцевої точки не забезпечується, тому не можна виконувати хід обробки деталі при дії цієї модальної команди. G0 X0 Y0 Z100.
G01 Лінійна інтерполяція, модальна команда. Інструмент (робочий орган) переміщається по відрізку прямої лінії від вихідної точки з координатами до виконання команди в точку із заданими в команді координатами, швидкість переміщення задається тут же або раніше модальною командою F. При цьому швидкість переміщення пов'язана зі швидкостями переміщення по осях як

 — приріст координат між кадрами;  — швидкості по осям.

G01 X0. Y0. Z100. F200.
G02 Кругова інтерполяція за годинниковою стрілкою, модальна команда. Інструмент переміщується по дузі кола за годинниковою стрілкою від вихідної точки з координатами до виконання команди в точку із заданими в команді координатами, швидкість переміщення задається в цій команді параметром F, радіус дуги задається параметром R, або зазначенням координат центру дуги параметрами I — (зсув центру по осі X відносно початкової координати X), J — (зсув центру по осі Y відносно початкової координати Y), К — (зсув центру по осі Z відносно початкової координати Z) відносно початкових координат інструменту. Для вказівки площини, в якій проводиться кругова інтерполяція, попередньо повинна бути вказана площина кругової інтерполяції (в цьому ж або в іншому попередньому кадрі) модальною командою G17 (площина X-Y), або G18 (площина X-Z), або G19 (площина Y-Z). Швидкість переміщення задана модальною командою F. G02 G17 X15. Y15. R5. F200.

чи

G02 G17 X20. Y15. I-50. J-60.
G03 Кругова інтерполяція проти годинникової стрілки. Параметри та дія аналогічні команді G02. G03 X15. Y15. R5. F200.
G04 Затримка виконання програми, спосіб завдання величини затримки залежить від реалізації системи управління, P зазвичай задає паузу в мілісекундах, X — в секундах. У деяких інтерпретаторах P задає паузу в секундах і параметр X в цій команді не використовується. Також в деяких інтерпретаторах можливе завдання затримки параметром U. G04 P500 чи G04 X.5
G10 Перемикання абсолютної системи координат. У прикладі початок координат буде в точці 10, 10, 10 старих координат. G10 X10. Y10. Z10.
G15 Перехід в полярну (циліндричну) систему координат. У цій системі параметр X задає радіус, а Y кут в градусах. Якщо ввімкнено абсолютну систему координат (G90), то початок полярних координат буде в точці поточних координат 0; 0, якщо ввімкнено інкрементну систему координат, то початок координат буде в точці, досягнутій під час відпрацювання попереднього кадру. G15 X15. Y22.5
G16 Відміна полярної системи координат G16 X15. Y22.5
G17 Вибір рабочої площини X-Y G17
G18 Вибір рабочої площини Z-X G18
G19 Вибір рабочої площини Y-Z G19
G20 Режим работи у дюймовій системі G90 G20
G21 Режим работм в метричній системі G90 G21
G22 Активувати встановлену межу переміщень (Інструмент не вийде за їх межу) G22 G01 X15. Y25.
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 Компенсувати довжину інструменту в негативну сторону. Дія аналогічна G43. G44 X15. Y15. Z4. H1 S1000 M3
G49 Скасування компенсації довжини інструменту G49 Z100.
G50 Скидання всіх коефіцієнтів масштабування в 1,0 G50
G51 Призначення масштабів. У прикладі — зменшення масштабу по осі X в 10 разів. Після цієї модальної команди всі вказані в командах переміщення і координати по осі X будуть множитися на коефіцієнт масштабування 0,1 і результат інтерпретуватися як необхідне переміщення. Якщо задати коефіцієнт масштабування по деякій осі (або по будь-яких осях) рівним −1, то подальший рух буде дзеркальним по цій осі (або осях, де коефіцієнт масштабування −1). G51 X.1

чи G51 X-1
G53 Перехід в систему координат верстата. G53 G0 X0. Y0. Z0.
G54-G59 Переключитися на задану оператором систему координат G54 G0 X0. Y0. Z100.
G61-G64 Перемикання режимів Точний стоп/Постійна швидкість
G68 Поворот координат на потрібний кут G68 X0 Y0 R45.
G70 Цикл поздовжнього чистового точіння G70 P10 Q15.
G71 Цикл багатопрохідного поздовжнього чорнового точіння G71 P10 Q15. D.5 U.2 W.5
G80 Скасування циклів свердління, розточування, нарізання різьби мітчиком тощо. G80
G81 Цикл свердління G81 X0 Y0. Z-10. R3. F100.
G82 Цикл свердління із затримкою G82 X0. Y0. Z-10. R3. P100 F100.
G83 Цикл переривчастого свердління (з періодичним повним виведенням свердла). Параметр Z вказує повну глибину свердління від поверхні (Z=0), R — висота виведення інструменту над поверхнею для виведення стружки, а також кінцеве положення після завершення свердління, Q — величина заглиблення одного з декількох заглиблень при свердлінні, F — швидкість подачі (необов'язкова, за відсутності цього параметра швидкість визначається раніше заданою швидкістю в команді G1. G83 Z-20 R1 Q2 f20
G84 Цикл нарізання різьби G95 G84 M29 X0. Y0. Z-10. R3 F1.411
G90 Задання абсолютних координат опорних точок траєкторії G90 G1 X0.5. Y0.5. F10.
G91 Задання координат інкрементально відносно координат останньої введеної опорної точки, переміщення інструменту в цій системі координат задається у вигляді приростів G91 G1 X4. Y5. F100.
G94 F (подача) — у форматі мм/хв G94 G80 Z100. F75.
G95 F (подача) — у форматі мм/об G95 G84 X0. Y0. Z-10. R3 F1.411
G99 Після кожного циклу не відходити на <прохідну точку> G99 G91 X10. K4.

Таблиця технічних кодів

Технологічні команди мови починаються з літери М (абревіатура від Miscellaneous — додатковий). Включають такі дії, як:

  • Змінити інструмент
  • Увімкнути/вимкнути шпиндель
  • Увімкнути/вимкнути охолодження
  • Робота з підпрограмами
Допоміжні (технологічні) команди
Код Опис Приклад
M00 Призупинити роботу верстата до натискання кнопки <старт> на пульті управління, так звана <безумовна технологічна зупинка> G0 X0 Y0 Z100 M0
M01 Призупинити роботу верстата до натискання кнопки <старт>, якщо ввімкнено режим підтвердження зупинки. Якщо цей режим вимкнено, то команда ігнорується. Використовується для початкової перевірки (налагодження) коду. G0 X0 Y0 Z100 M1
M02 Кінець програми, без скидання модальних функцій. Покажчик номера кадру не змінюється. M02
M03 Почати обертання шпинделя за годинниковою стрілкою M3 S2000
M04 Почати обертання шпинделя проти годинникової стрілки M4 S2000
M05 Зупинити обертання шпинделя M5
M06 Змінити інструмент T15 M6
M07 Увімкнути додаткове охолодження M3 S2000 M7
M08 Увімкнути основне охолодження. Іноді використання більше одного M-коду в одному рядку (як у прикладі) неприпустимо, для цього використовуються M13 і M14. M3 S2000 M8
M09 Вимкнути охолодження G0 X0 Y0 Z100 M5 M9
M13 Увімкнути одночасно охолодження і обертання шпинделя за годинниковою стрілкою S2000 M13
M14 Увімкнути одночасно охолодження і обертання шпинделя проти годинникової стрілки S2000 M14
M17 Повернення з підпрограми або з макросу (дія аналогічна М99) M17
M48 Дозволити перевизначати швидкість подачі
M49 Заборонити перевизначення швидкості подачі
M25 Заміна інструменту вручну M25
M97 Запуск підпрограми, що знаходиться в тій же програмі (де P — номер кадру, в прикладі перехід відбудеться до рядка з міткою N25), реалізований не у всіх інтерпретаторах, імовірно — тільки на верстатах HAAS. M97 P25
M98 Запуск підпрограми, що знаходиться окремо від основної програми (де P — номер підпрограми, у прикладі перехід відбудеться до програми O1015) M98 P1015
M99 Кінець підпрограми і перехід до програми, що її викликала M99
M30 Кінець програми, зі скиданням модальних функцій і зміною покажчика номера кадру на початок програми. M30

Параметри команд

Код Опис Приклад
X Переміщення інструменту в задану точку із заданою координатою по осі X при роботі в абсолютній системі координат (див. G90) або завдання зміщень відносно точки, досягнутої в попередньому кадрі при роботі в інкрементній системі координат (див. G91) G0 X100 Y0 Z0
Y Аналогічно Х по осі Y G0 X0 Y100 Z0
Z Аналогічно Х по осі Z G0 X0 Y0 Z100
P При використанні в команді виклику підпрограми (М98) — вказівка номера підпрограми, що викликається, з іменем, заданим після літери О, наприклад Р301 викличе підпрограму з міткою О301. При використанні в команді затримки (G04) вказує час затримки в мілісекундах. G04 P500;

М98 Р301

О Мітка підпрограми із зазначеним номером О301
F Лінійна швидкість переміщення інструменту.

Для фрезерних верстатів це дюйми за хвилину (IPM) або міліметри за хвилину (мм/хв),

Для токарних верстатів це дюйми за оборот (IPR) або міліметри за оборот (мм/об). Вибір одиниць вимірювання, дюйми або міліметри, виконується командами G20 і G21.

G1 G91 X10 F100
S Частота обертання шпинделя в обертах за хвилину. S3000 M3
Т Вказівка номера інструменту в команді зміни інструменту. Зазвичай вказується перед командою М6. Т1 М6
R Відстань відведення інструменту в повторюваних циклах обробки, наприклад, переривчастого свердління глибоких отворів (G81-G89) або радіус дуги при кругових інтерполяціях переміщення інструменту (G02, G03). G81 Z-20 R2 чи

G2 G91 X12.5 R12.5

D Параметр корекції радіуса вибраного інструменту G1 G41 D1 X10. F150.
L Кількість викликів підпрограми, кількість викликів макросу або кількість циклів у повторюваних операціях X_Y_R_ — параметри, що передаються в макрос M98 L82 P10 чи G65 L82 P10 X_Y_R_
I Вказівка зміщення по осі X координати центру дуги при круговій інтерполяції переміщення інструменту (див. G02, G03). Координати центру дуги по осях вказуються у вигляді зміщення відносно початкової точки (досягнутої в попередньому кадрі). Площина інтерполяції (площина, яка паралельна заданій координатній площині вказується командами G17, G18, G19. G03 X10 Y10 I10 J0 F10
J Аналогічно параметру I для осі Y. G03 X10 Y10 I0 J10 F10
K Аналогічно параметру I для осі Z. G03 X10 Y10 I0 K0 F10

Приклад

Гравіювання літери W. Червоною лінією позначено рух інструменту від лівої верхньої точки.

Гравіювання літери W глибиною 2 мм, вписаної в прямокутник розміром 40×30 мм (див. рисунок), виконується на умовному вертикальному фрезерному верстаті з ЧПУ у листовій заготівлі. Для цього використовується кінцева фреза діаметром 2 мм.[1]:

% (мітка початку програми, необов’язкова)
(вісь Z налаштована так, що при Z=0 інструмент торкається поверхні заготовки)
O200 (мітка програми, необов’язкова)
G21 G40 G49 G53 G80 G90 G17 (рядок безпеки)
(Стан верстата або інтерпретатора визначається попередніми налаштуваннями або встановлюється у певний початковий стан при увімкненні живлення, і ці налаштування можуть спричинити небажані та непередбачувані дії, тому необхідно привести верстат у <початковий стан> за допомогою «рядка безпеки».)
(G21 — вибір метричної системи одиниць — міліметри,)
(G40 — скасування автоматичної компенсації радіуса інструменту,)
(G49 — скасування автоматичної компенсації довжини інструменту,)
(G53 — скасування можливих раніше введених додаткових систем координат зі зміщенням відносно початкової та переведення верстат у основну систему координат,)
(G80 — скасування всіх постійних циклів, наприклад, циклів свердління та їх параметрів,)
(G90 — перехід в абсолютну систему координат,)
(G17 — вибір площини кругової інтерполяції X-Y.)

G0 F300 (задання швидкості холостого переміщення інструменту в мм/хв)
M3 S500 (увімкнення обертання шпинделя за годинниковою стрілкою з частотою 500 об/хв)
G4 P2000 (затримка 2 секунди для набору обертів шпинделя)
X0 Y30 Z5 (переміщення інструмента у точку з координатами X=0, Y=30, Z=5 зі швидкістю холостого ходу)
G1 Z-2 F40 (врізання інструмента у заготовку на глибину 2 мм зі швидкістю 40 мм/хв)
G1 F20 X10 Y0 (фрезерування першого відрізка літери W зі швидкістю 20 мм/хв)
X20 Y30 (фрезерування другого відрізка літери W зі швидкістю 20 мм/хв)
X30 Y0 (фрезерування третього відрізка літери W зі швидкістю 20 мм/хв)
X40 Y30 (фрезерування четвертого відрізка літери W зі швидкістю 20 мм/хв)
G0 Z5 (підйом інструмента на висоту 5 мм над поверхнею заготовки зі швидкістю 300 мм/хв)
M5 (зупинка обертання шпинделя)
M30 (кінець програми та кінець інтерпретованого коду)
  1. Subroutine G-Code. Архів оригіналу за 17 січня 2016. Процитовано 2 січня 2016.
Prefix: a b c d e f g h i j k l m n o p q r s t u v w x y z 0 1 2 3 4 5 6 7 8 9

Portal di Ensiklopedia Dunia

Kembali kehalaman sebelumnya