LinuxCNC (раніше «Enhanced Machine Controller» або «EMC2») — вільна відкрита операційна система на базі ядра GNU/Linux для персональних комп'ютерів загального призначення, яка реалізує числове програмне керування верстатами, роботами тощо. Система розробляється спільнотою linuxcnc.org і надається, як правило, як ISO-образ з модифікованою версією 32-бітної Ubuntu Linux з ядром реального часу. Типове ядро Ubuntu Linux через жорсткі вимоги обладнання до часу виконання операцій може використовуватись лише в демо-режимі.

Призначення ред.

LinuxCNC — це програмна система для числового програмного керування машин та верстатів, таких як фрезерні, токарні, плазмового різання, фрезерування деревини, розкрою, промислових роботів, гексаподів та інших декартових координатних роботів. Як вхідні дані система використовує G-код (RS-274NGC) і може контролювати до 9 осей або приводів верстатів з кроковими двигунами або сервомашинками. Система має кілька графічних інтерфейсів користувача відповідно до конкретних видів використання (сенсорний екран, інтерактивне керування).

Система не забезпечує функцій креслення (CAD — Computer Aided Design) та генерації G-коду з креслення (CAM — Computer Automated Manufacturing).

Історія ред.

Системне програмне забезпечення EMC було розроблене Національним інститутом стандартів і технології (NIST) та надане у суспільне надбання. Програмне забезпечення та стандарт на мову G-code інтерпретації інструкцій керування рухом інструмента або рушія в режимі реального часу зацікавило аматорів та професійних користувачів верстатів. Приблизно в червні 2000 року NIST переніс вихідний код на sourceforge.net з тим, щоб добровільні розробники могли надалі самостійно вносити зміни та розвивати проект. У 2003 році були переписані деякі частини системи, реорганізовані і спрощені інші частини, оновлений проект отримав назву EMC2. На поточний момент EMC2 ліцензований під GNU General Public License та активно розвивається.

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

Близько 2011 року за наполяганням корпорації EMC і згоди керівників проект отримав назву LinuxCNC.

LinuxCNC також включає в себе програмований логічний контролер (PLC), який зазвичай використовується в великих проектах (наприклад, складних обробних центрах). Програмне забезпечення PLC базується на вихідному відкритому проекті Classicladder і працює в режимі реального часу.

Посилання ред.