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

1. Контроль траєкторії

1.1. Планування траєкторії

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

Програму G-коду ніколи не можна повністю виконати. Наприклад, уявіть, що ви вказуєте як однорядкову програму наступний рух:

G1 X1 F10 (G1 – лінійний рух, X1 – пункт призначення, F10 – швидкість)

Насправді весь рух не може бути виконаний на F10, оскільки верстат повинен прискоритися з місця, рухатися до X=1, а потім сповільнитися, щоб знову зупинитися. Іноді частина руху виконується зі швидкістю F10, але для багатьох рухів, особливо коротких, задана швидкість подачі взагалі не досягається. Наявність коротких рухів у вашому G-коді може призвести до уповільнення та прискорення вашої машини для довших рухів, якщо «наївний детектор кулачка» не використовується з G64 Pn.

Описані вище основні прискорення та уповільнення не є складними і не вимагають компромісів. У файлі INI зазначені обмеження машини, такі як максимальна швидкість осі та прискорення осі, повинні дотримуватися планувальником траєкторії.

Для отримання додаткової інформації про параметри INI-файлу Планувальника траєкторії див. розділ Траєкторія у розділі INI.

1.2. Слідування шляхом

Менш простою проблемою є проходження траєкторії. Коли ви програмуєте кут у G-коді, планувальник траєкторії може виконувати кілька дій, усі з яких у деяких випадках правильні:

  • Він може сповільнитися до повної зупинки точно в координатах кута, а потім прискоритися в новому напрямку.

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

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

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

1.3. Програмування Планувальника

Команди керування траєкторією такі:

G61

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

G61.1

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

G64

(Режим змішування без толерантності) G64 є стандартним налаштуванням при запуску LinuxCNC. G64 є лише змішуванням, а наївний детектор кулачка не ввімкнений. G64 та G64 P0 вказують планувальнику пожертвувати точністю відстеження траєкторії, щоб зберегти швидкість подачі. Це необхідно для деяких типів матеріалів або інструментів, де точні зупинки є шкідливими, і може чудово працювати, якщо програміст пам’ятає, що траєкторія інструменту буде дещо більш криволінійною, ніж зазначено в програмі. При використанні G0 (швидких) переміщень з G64 будьте обережні при переміщеннях з проміжком і залишайте достатню відстань для уникнення перешкод, виходячи з можливостей прискорення вашої машини.

G64 P- Q-

(Режим змішування з допуском) Ця опція вмикає «наївний детектор кулачка» і дозволяє змішувати з допуском. Якщо ви програмуєте G64 P0.05, ви повідомляєте планувальнику, що хочете безперервну подачу, але на запрограмованих кутах ви хочете, щоб вона сповільнювалася настільки, щоб траєкторія інструменту залишалася в межах 0,05 одиниць користувача від запрограмованої траєкторії. Точна величина уповільнення залежить від геометрії запрограмованого кута і обмежень верстата, але єдине, про що повинен турбуватися програміст, це допуск. Це дає програмісту повний контроль над компромісом між траєкторією і допуском. Допуск змішування можна змінювати протягом програми за необхідності. Зверніть увагу, що специфікація G64 P0 має той самий ефект, що і G64 окремо (вище), що необхідно для зворотної сумісності зі старими програмами G-коду. Дивіться розділ G64 глави G-коду.

Змішування без допуску

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

Наївний CAM-детектор

Послідовні рухи G1, що включають тільки осі XYZ, які відхиляються від прямої лінії менше ніж на Q-, об’єднуються в одну пряму лінію. Цей об’єднаний рух замінює окремі рухи G1 з метою згладжування з допуском. Між послідовними рухами контрольована точка пройде не більше ніж P- від фактичних кінцевих точок рухів. Контрольована точка торкнеться принаймні однієї точки на кожному русі. Машина ніколи не рухатиметься з такою швидкістю, що не зможе точно зупинитися в кінці поточного руху (або наступного руху, якщо ви зробите паузу, коли змішування вже розпочалося). При рухах G2/3 в площині G17 (XY), коли максимальне відхилення дуги від прямої лінії менше, ніж допуск G64 Q, дуга розбивається на дві лінії (від початку дуги до середини і від середини до кінця). Ці лінії потім підлягають наївному алгоритму кулачка для ліній. Таким чином, випадки лінії-дуги, дуги-дуги та дуги-лінії, а також лінії-лінії отримують переваги від «наївного детектора кулачка». Це покращує продуктивність контурування шляхом спрощення траєкторії.

На наступному малюнку синя лінія відображає фактичну швидкість машини. Червоні лінії відображають здатність машини до прискорення. Горизонтальні лінії під кожним графіком відображають запланований рух. Верхній графік показує, як планувальник траєкторії сповільнює машину при коротких рухах, щоб залишатися в межах налаштувань прискорення машини і мати можливість точно зупинитися в кінці наступного руху. Нижній графік показує ефект Naive Cam Detector, який об’єднує рухи і краще підтримує заплановану швидкість.

Наївний CAM-детектор
Figure 1. Наївний CAM-детектор

1.4. Планування переїздів

Переконайтеся, що рухи є «достатньо довгими» для вашої машини/матеріалу. В основному через правило, що машина ніколи не рухатиметься з такою швидкістю, яка не дозволить їй повністю зупинитися в кінці поточного руху, існує мінімальна довжина руху, яка дозволить машині підтримувати задану швидкість подачі з заданим налаштуванням прискорення.

Фази прискорення та уповільнення використовують половину значення MAX_ACCELERATION з файлу INI. У випадку точного зворотного руху це призводить до того, що загальне прискорення осі дорівнює значенню MAX_ACCELERATION з файлу INI. В інших випадках фактичне прискорення машини дещо менше, ніж прискорення з файлу INI.

Щоб підтримувати швидкість подачі, рух повинен бути довшим, ніж відстань, необхідна для прискорення від 0 до бажаної швидкості подачі, а потім знову зупинки. Використовуючи A як 1/2 файлу INI MAX_ACCELERATION і F як швидкість подачі в одиницях за секунду, час прискорення становить ta = F/A, а відстань прискорення — da = F*ta/2. Час і відстань уповільнення є однаковими, що робить критичну відстань d = da + dd = 2 * da = F2/A.

Наприклад, для швидкості подачі 1 дюйм за секунду та прискорення 10 дюймів/с2 критична відстань становить 12/10 = 1/10 = 0,1 дюйма.

Для швидкості подачі 0,5 дюйма за секунду критична відстань становить 52/100 = 25/100 = 0,025 дюйма.

2. G-код

2.1. Значення за замовчуванням

При першому запуску LinuxCNC за замовчуванням завантажується багато G- та M-кодів. Поточні активні G- та M-коди можна переглянути на вкладці MDI у вікні «Active G-codes:» (Активні G-коди) в інтерфейсі AXIS. Ці G- та M-коди визначають поведінку LinuxCNC, і перед запуском LinuxCNC важливо зрозуміти, що робить кожен з них. За замовчуванням можна змінити під час запуску файлу G-коду і залишити в іншому стані, ніж під час запуску сеансу LinuxCNC. Найкраща практика — встановити необхідні для роботи параметри за замовчуванням у преамбулі файлу G-коду і не припускати, що параметри за замовчуванням не змінилися. Роздрукування сторінки G-коду Quick Reference може допомогти вам запам’ятати, що означає кожен з них.

2.2. Швидкість подачі

Спосіб застосування швидкості подачі залежить від того, чи є вісь, що бере участь у переміщенні, обертовою. Прочитайте та зрозумійте розділ Feed Rate, якщо у вас обертова вісь або токарний верстат.

2.3. Зміщення радіуса інструмента

Зсув радіуса інструменту (G41/42) вимагає, щоб інструмент міг торкатися будь-якої точки вздовж кожного запрограмованого руху, не зачіпаючи два сусідні рухи. Якщо це неможливо з поточним діаметром інструменту, ви отримаєте помилку. Інструмент меншого діаметра може працювати без помилок на тому самому шляху. Це означає, що ви можете запрограмувати фрезу так, щоб вона проходила по шляху, який є вужчим за фрезу, без будь-яких помилок. Докладнішу інформацію див. у розділі Cutter Compensation.

3. Самонаведення

Після запуску LinuxCNC кожна вісь повинна бути повернена в початкове положення перед запуском програми або виконанням команди MDI. Якщо ваша машина не має перемикачів початкового положення, позначка на кожній осі може допомогти повернути координати машини в одне і те ж місце кожного разу. Після повернення в початкове положення будуть використовуватися м’які обмеження, встановлені в файлі INI.

Якщо ви хочете відхилитися від стандартної поведінки або хочете використовувати інтерфейс Mini, вам потрібно встановити опцію NO_FORCE_HOMING = 1 у розділі [TRAJ] вашого INI-файлу. Більш детальну інформацію про повернення в початкове положення можна знайти в посібнику з інтегратора.

4. Зміни інструментів

Існує кілька варіантів ручної заміни інструментів. Інформацію про налаштування цих варіантів див. у розділі [EMCIO]. Також див. розділи G28 та G30 у розділі «G-код».

5. Системи координат

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

5.1. G53 Координати машини

Під час переведення LinuxCNC у вихідне положення ви встановлюєте систему координат верстата G53 на 0 для кожної осі, переведеної у вихідне положення.

Жодні інші системи координат або зміщення інструменту не змінюються під час повернення до початкового положення.

Єдиний раз, коли ви переміщуєтеся в системі координат машини G53, це коли ви програмуєте G53 на тому ж рядку, що й переміщення. Зазвичай ви перебуваєте в системі координат G54.

5.2. G54-59.3 Координати користувача

Зазвичай використовується система координат G54. Коли до поточної системи координат користувача застосовується зміщення, невелика синя кулька з лініями буде знаходитися в точці machine origin, коли ваш DRO відображає «Position: Relative Actual» в AXIS. Якщо ваші зміщення є тимчасовими, використовуйте систему координат нуль з меню Machine або програму «G10 L2 P1 X0 Y0 Z0» в кінці файлу G-коду. Змініть число «P» відповідно до системи координат, в якій ви хочете очистити зміщення.

  • Зміщення, збережені в системі координат користувача, зберігаються після завершення роботи LinuxCNC.

  • За допомогою кнопки «Touch Off» в AXIS встановлюється зміщення для вибраної системи координат користувача.

5.3. Коли ти загубився

Якщо у вас виникають проблеми з отриманням значення 0,0,0 на DRO, коли вам здається, що це необхідно, можливо, у вас запрограмовано деякі зміщення, і їх потрібно вилучити.

  • Переміщення до початку координат машини за допомогою G53 G0 X0 Y0 Z0

  • Очистіть будь-яке зміщення G92 за допомогою G92.1

  • Використовуйте систему координат G54 з G54

  • Встановіть систему координат G54 такою ж, як і систему координат верстата, за допомогою G10 L2 P1 X0 Y0 Z0 R0.

  • Вимкніть зміщення інструменту за допомогою G49

  • Увімкніть відображення відносних координат у меню

Тепер ви повинні бути в початку координат машини X0, Y0, Z0, а відносна система координат має збігатися з системою координат машини.

6. Конфігурації машини

На наступній схемі показано типовий фрезерний верстат із зазначенням напрямку руху інструменту, фрезерного столу та кінцевих вимикачів. Зверніть увагу, як фрезерний стіл рухається у напрямку, протилежному стрілкам декартової системи координат, показаним на зображенні «Напрямок руху інструменту». Це забезпечує рух «інструменту» у правильному напрямку відносно матеріалу.

Зверніть також увагу на положення кінцевих вимикачів і напрямок активації їх кулачків. Можливі кілька комбінацій, наприклад, можна (на відміну від креслення) розмістити один фіксований кінцевий вимикач посередині столу і два рухомі кулачки для його активації. У цьому випадку межі будуть змінені на протилежні: +X буде праворуч від столу, а -X — ліворуч. Ця зміна не впливає на напрямок руху інструменту.

Типова конфігурація млина
Figure 2. Типова конфігурація млина

На наступній діаграмі показано типовий токарний верстат із зазначенням напрямку руху інструменту та кінцевих вимикачів.

Типова конфігурація токарного верстата
Figure 3. Типова конфігурація токарного верстата