1. Вступ
Цей документ присвячений використанню LinuxCNC і призначений для читачів, які вже встановили та налаштували цю систему. Деяка інформація про встановлення наведена в наступних розділах. Повна документація щодо встановлення та налаштування міститься в посібнику інтегратора.
2. Як працює LinuxCNC
LinuxCNC — це набір висококонфігурованих програм для управління фрезерними та токарними верстатами з числовим програмним управлінням (CNC), 3D-принтерами, роботами, лазерними та плазмовими різаками та іншими автоматизованими пристроями. Він здатний забезпечувати скоординоване управління до 9 осей руху.
По суті, LinuxCNC складається з кількох ключових компонентів, які об’єднані разом, утворюючи одну повноцінну систему:
-
графічний інтерфейс користувача (GUI), який утворює базовий інтерфейс між оператором, програмним забезпеченням та самим верстатом з CNC;
-
Рівень абстракції обладнання (HAL), який забезпечує метод зв’язку всіх різноманітних внутрішніх віртуальних сигналів, що генеруються та отримуються LinuxCNC, із зовнішнім світом,
-
контролери високого рівня, які координують генерацію та виконання управління рухом верстата з CNC, а саме контролер руху (EMCMOT), контролер дискретного вводу/виводу (EMCIO) та виконавець завдань (EMCTASK).
Наведена нижче ілюстрація — це проста блок-схема, яка показує, як може виглядати типовий 3-осьовий фрезерний верстат з CNC та кроковими двигунами:
Комп’ютер під управлінням LinuxCNC надсилає послідовність імпульсів через паралельний порт до крокових приводів, до кожного з яких підключено один кроковий двигун. Кожен привід отримує два незалежні сигнали: один сигнал для управління приводом з метою переміщення пов’язаного з ним крокового двигуна за годинниковою стрілкою або проти годинникової стрілки, а другий сигнал визначає швидкість обертання крокового двигуна.
Хоча на малюнку зображена система крокового двигуна під керуванням паралельного порту, система LinuxCNC також може використовувати широкий спектр спеціальних апаратних інтерфейсів керування рухом для підвищення швидкості та можливостей вводу-виводу. Повний перелік інтерфейсів, що підтримуються LinuxCNC, можна знайти на сторінці Supported Hardware вікі.
У більшості випадків користувачі створюють конфігурацію, специфічну для їхнього верстата, використовуючи або Майстер конфігурації крокового двигуна (для систем CNC, що працюють з використанням паралельного порту комп’ютера), або Майстер апаратного забезпечення Mesa (для більш просунутих систем, що використовують PCI-карту Mesa Anything I/O). Запуск будь-якого з цих майстрів призведе до створення на жорсткому диску комп’ютера декількох папок, що містять низку файлів конфігурації, специфічних для даного верстата з CNC, а також піктограму на робочому столі, що дозволяє легко запускати LinuxCNC.
Наприклад, якщо майстер налаштування крокового двигуна був використаний для створення налаштувань для 3-осьового фрезерного верстата з CNC, зображеного вище під назвою «My_CNC», папки, створені майстром, зазвичай містять такі файли:
-
Папка:
My_CNC-
My_CNC.ini
INI-файл містить всю основну інформацію про апаратне забезпечення, що стосується роботи фрезерного верстата з CNC, таку як кількість кроків, які повинен зробити кожен кроковий двигун для виконання одного повного оберту, максимальна швидкість, з якою може працювати кожен кроковий двигун, межі переміщення кожної осі або конфігурація та поведінка кінцевих вимикачів на кожній осі. -
My_CNC.hal
Цей файл HAL містить інформацію, яка повідомляє LinuxCNC, як пов’язати внутрішні віртуальні сигнали з фізичними з’єднаннями за межами комп’ютера. Наприклад, вказати контакт 4 на паралельному порту для відправки сигналу напрямку кроку осі Z або наказати LinuxCNC припинити привід двигуна осі X, коли спрацьовує кінцевий вимикач на контакті 13 паралельного порту. -
custom.hal
Налаштування конфігурації верстата, що виходять за межі можливостей майстра, можна виконати, додавши в цей файл HAL додаткові посилання на інші віртуальні точки в LinuxCNC. Під час запуску сеансу LinuxCNC цей файл читається і обробляється до завантаження графічного інтерфейсу користувача. Прикладом може бути ініціювання зв’язку Modbus із двигуном шпинделя, щоб підтвердити його працездатність до відображення графічного інтерфейсу користувача. -
custom_postgui.hal
Файл custom_postgui HAL дозволяє додатково налаштувати LinuxCNC, але відрізняється від custom.HAL тим, що обробляється після відображення графічного інтерфейсу користувача. Наприклад, після встановлення зв’язку Modbus з двигуном шпинделя в custom.hal, LinuxCNC може використовувати файл custom_postgui для зв’язку показань швидкості шпинделя з приводом двигуна з гістограмою, що відображається на графічному інтерфейсі користувача. -
postgui_backup.hal
Це резервна копія файлу custom_postgui.hal, яка дозволяє користувачеві швидко відновити попередню конфігурацію postgui HAL. Це особливо корисно, якщо користувач хоче запустити майстер конфігурації знову під тим самим іменем «My_CNC», щоб змінити деякі параметри фрезерного верстата. Збереження конфігурації фрезерного верстата в майстрі призведе до перезапису існуючого файлу custom_postgui, але файл postgui_backup залишиться без змін. -
tool.tbl
Файл таблиці інструментів містить параметризований список всіх ріжучих інструментів, що використовуються фрезерним верстатом. Ці параметри можуть включати діаметр і довжину різака і використовуються для створення каталогу даних, який повідомляє LinuxCNC, як компенсувати рух інструментів різних розмірів під час фрезерування.
-
-
Папка:
nc_files
Папка nc_files надається як місце за замовчуванням для зберігання програм G-коду, що використовуються для керування фрезерним верстатом. Вона також містить низку підпапок із прикладами G-коду.
3. Графічні інтерфейси користувача
Графічний інтерфейс користувача — це частина LinuxCNC, з якою взаємодіє оператор верстата. LinuxCNC постачається з декількома типами інтерфейсів користувача, які можна вибрати, редагуючи певні поля, що містяться у файлі INI:
- AXIS
-
AXIS, стандартний графічний інтерфейс клавіатури. Це також графічний інтерфейс за замовчуванням, який запускається, коли майстер налаштування використовується для створення панелі запуску значків на робочому столі:
- Доторкливий
-
Touchy, графічний інтерфейс для сенсорних екранів:
- G-екран
-
Gscreen, графічний інтерфейс із сенсорним екраном, що налаштовується користувачем:
- GMOCCAPY
-
GMOCCAPY, Сенсорний графічний інтерфейс користувача на базі Gscreen. GMOCCAPY також розроблений для однаково ефективної роботи в програмах, де клавіатура та миша є переважними методами керування графічним інтерфейсом:
- NGCGUI
-
NGCGUI, підпрограма GUI, що забезпечує програмування G-коду у форматі майстра. NGCGUI може працювати як самостійна програма або бути вбудована в інший GUI у вигляді серії вкладок. На наступному знімку екрана показано NGCGUI, вбудовану в AXIS:
- 'TkLinuxCNC
-
TkLinuxCNC, ще один інтерфейс на основі Tcl/Tk. Колись найпопулярніший інтерфейс після AXIS.
- QtDragon
-
QtDragon, графічний інтерфейс користувача для сенсорних екранів на базі QtVCP з використанням бібліотеки PyQt5. Він доступний у двох версіях: «QtDragon» і «QtDragon_hd». Вони дуже схожі за функціональністю, але QtDragon_hd призначений для більших моніторів.
- QtPlasmaC
-
QtPlasmaC, Графічний інтерфейс для плазмового різання з сенсорним екраном, заснований на QtVCP та бібліотекі PyQt5. Він доступний у трьох співвідношеннях сторін: 16:9, 4:3 та 9:16.
4. Інтерфейс користувача
Ці інтерфейси користувача є способом взаємодії з LinuxCNC поза межами графічних інтерфейсів користувача.
- halui
-
Інтерфейс користувача на основі HAL, що дозволяє керувати LinuxCNC за допомогою кнопок та перемикачів
- linuxcncrsh
-
Інтерфейс користувача на основі Telnet, що дозволяє надсилати команди з віддалених комп’ютерів.
5. Віртуальна панель керування
Як згадувалося вище, багато графічних інтерфейсів LinuxCNC можуть бути налаштовані користувачем. Це може бути зроблено для додавання індикаторів, перемикачів або повзунків до базового вигляду одного з графічних інтерфейсів для підвищення гнучкості або функціональності. У LinuxCNC пропонуються два стилі віртуальної панелі керування:
- PyVCP
-
PyVCP — віртуальна панель керування на базі Python, яку можна додати до графічного інтерфейсу AXIS. PyVCP використовує лише віртуальні сигнали, що містяться в шарі апаратної абстракції, такі як індикатор швидкості шпинделя або вихідний сигнал аварійної зупинки, і має простий вигляд без зайвих деталей. Це робить її чудовим вибором, якщо користувач хоче додати віртуальну панель керування з мінімальними зусиллями.
- GladeVCP
-
GladeVCP, віртуальна панель керування на базі Glade, яку можна додати до графічних інтерфейсів AXIS або Touchy. GladeVCP має перевагу над PyVCP, оскільки не обмежується відображенням або керуванням віртуальними сигналами HAL, а може включати інші зовнішні інтерфейси поза LinuxCNC, такі як події вікна або мережі. GladeVCP також є більш гнучкою в тому, як її можна налаштувати для відображення в графічному інтерфейсі:
- QtVCP
-
QtVCP, віртуальна панель керування на базі PyQt5, яку можна додати до більшості графічних інтерфейсів користувача або запустити як самостійну панель. QtVCP має перевагу над PyVCP, оскільки не обмежується відображенням або керуванням віртуальними сигналами HAL, а може включати інші зовнішні інтерфейси поза LinuxCNC, такі як події вікна або мережі, шляхом розширення за допомогою коду python. QtVCP також є більш гнучким у налаштуванні для відображення в графічному інтерфейсі користувача за допомогою багатьох спеціальних віджетів:
6. Мови
LinuxCNC використовує файли перекладу для перекладу інтерфейсів користувача LinuxCNC на багато мов, включаючи французьку, німецьку, італійську, фінську, російську, румунську, португальську та китайську. Якщо переклад вже створено, LinuxCNC автоматично використовуватиме мову, якою ви входите в систему, під час запуску операційної системи Linux. Якщо ваша мова не перекладена, зверніться за допомогою до розробника в IRC, списку розсилки або форумі користувачів.
7. Думай як оператор CNC
Цей посібник не претендує на те, щоб навчити вас користуватися токарним або фрезерним верстатом. Щоб стати досвідченим оператором, потрібно багато часу і багато роботи. Один автор колись сказав: «Ми вчимося на досвіді, якщо він у нас є». Зламані інструменти, пошкоджені лещата і шрами — це свідчення отриманого досвіду. Гарне покриття, жорсткі допуски і обережність під час роботи — це свідчення отриманого досвіду. Жодна машина чи програма не може замінити людський досвід.
Тепер, коли ви починаєте працювати з програмним забезпеченням LinuxCNC, ви повинні поставити себе на місце оператора. Ви повинні виконувати роль людини, відповідальної за роботу верстата. Це верстат, який буде чекати ваших команд і виконувати ваші вказівки. На цих сторінках ми надамо пояснення, які допоможуть вам стати хорошим оператором CNC з LinuxCNC.
8. Режими роботи
Під час роботи LinuxCNC існує три основні режими введення команд. Це ручний, автоматичний та ручний ввід даних (MDI). Перехід з одного режиму в інший суттєво впливає на поведінку системи управління LinuxCNC. У одному режимі можна виконати певні дії, які неможливо виконати в іншому. Оператор може повернути вісь у вихідне положення в ручному режимі, але не в автоматичному або MDI. Оператор може змусити верстат виконати весь файл, заповнений G-кодами, в автоматичному режимі, але не в ручному або MDI.
У ручному режимі кожна команда вводиться окремо. У людських термінах ручна команда може бути «увімкнути охолодження» або «перемістити X зі швидкістю 25 дюймів на хвилину». Це приблизно еквівалентно натисканню перемикача або повороту маховика для осі. Ці команди зазвичай обробляються на одному з графічних інтерфейсів натисканням кнопки мишею або утриманням клавіші на клавіатурі. В автоматичному режимі подібна кнопка або клавіша може використовуватися для завантаження або запуску виконання всієї програми G-коду, яка зберігається у файлі. У режимі MDI оператор може ввести блок коду і наказати верстату виконати його, натиснувши клавішу <return> або <enter> на клавіатурі.
Деякі команди керування рухом доступні одночасно і спричиняють однакові зміни руху в усіх режимах. До них належать «Перервати», «Аварійна зупинка» та «Перевищення швидкості подачі». Такі команди не потребують додаткових пояснень.
Інтерфейс користувача AXIS приховує деякі відмінності між режимом Auto та іншими режимами, роблячи автоматичні команди доступними в більшості випадків. Він також стирає відмінності між режимами Manual та MDI, оскільки деякі команди Manual, такі як Touch Off, фактично реалізуються шляхом надсилання команд MDI. Це досягається шляхом автоматичного переходу до режиму, необхідного для виконання дії, яку запросив користувач.