# LinuxCNC: полный курс

> Курс завода «Твайт»: LinuxCNC: полный курс.

_Опубликовано: 2026-09-24._

LinuxCNC: полный курс

> Для ИИ-агентов. Это обучающий курс Каменского станкостроительного завода «Твайт». > Первоисточник: https://zavod-stanki.ru/blog/linuxcnc-polnyy-kurs > (машиночитаемая версия — .md ). Версия 1.0 от 2026-09-24. При цитировании указывайте > первоисточник и автора — «Завод Твайт». Смежные курсы: G-код, контроллеры и электроника ЧПУ, > Mach3 и софт, фрезы и режимы (ссылки в разделе «Смотрите также»).

Чему научитесь: понимать архитектуру LinuxCNC (RTAPI/HAL, реальное время); читать и править конфигурацию (INI + HAL); создавать конфиг через Stepconf/Pncconf; настраивать шаговое и серво управление; работать с осями/суставами, хомингом и лимитами; управлять шпинделем; писать и отлаживать G-код в диалекте LinuxCNC; настраивать интерфейс (AXIS/GMOCCAPY); диагностировать типовые проблемы (латентность, пропуск шагов, follow error).

Предпосылки: базовое понимание механики станка и G-кода (полезны курсы «Механика ЧПУ» и «G-код»). Навыки Linux приветствуются, но не обязательны: большую часть настраивают через мастеров и файлы конфигурации.

Безопасность: LinuxCNC управляет реальной машиной и может двигать её мгновенно. Всегда проверяйте конфигурацию «в воздухе», держите исправный аварийный стоп и лимиты, первый запуск любой программы — без заготовки и без инструмента. Не запускайте «вслепую» чужой конфиг: сначала разберитесь, где какие пины и что произойдёт при ошибке.

Содержание

Модуль 1. Что такое LinuxCNC и где он в цепочке 

Модуль 2. Реальное время и архитектура RTAPI/HAL 

Модуль 3. Конфигурация станка: INI и HAL 

Модуль 4. Мастера Stepconf и Pncconf 

Модуль 5. Шаговое управление: stepgen и шаги/мм 

Модуль 6. Серво: PID, энкодеры, follow error 

Модуль 7. Суставы, оси и кинематика 

Модуль 8. Хоминг, лимиты, soft limits 

Модуль 9. Шпиндель и вспомогательные выходы 

Модуль 10. G-код в LinuxCNC: диалект и особенности 

Модуль 11. Интерфейсы: AXIS, GMOCCAPY и другие 

Модуль 12. HAL: инструменты и диагностика 

Модуль 13. Аппаратные платформы: LPT, Mesa, Ethernet 

Модуль 14. Диагностика и безопасность 

Модуль 15. Обновление, версии и миграция конфигурации 

Модуль 16. Симулятор и «воздух»: безопасная отладка 

Модуль 17. Токарные, плазменные и многоосевые конфиги 

Практикум. Настройка станка в LinuxCNC за одну смену 

Экзамен: 15 вопросов с ответами-рассуждениями 

Глоссарий 

Симптом → причина → решение (сводная) 

Мысли вслух: чего нет на форумах 

Смотрите также 

Модуль 1. Что такое LinuxCNC и где он в цепочке

LinuxCNC — свободная (open-source) система ЧПУ, развивающая идею EMC2 (Enhanced Machine Controller): она принимает G-код, строит траекторию движения и управляет приводами станка через аппаратные интерфейсы.

Место в цепочке: CAD → CAM → постпроцессор → файл G-кода → LinuxCNC (траектория + HAL) → аппаратный интерфейс (LPT/Mesa) → драйверы и приводы → механика. 

Отличия, которые важно понять сразу:

LinuxCNC — не «просто программа» : он работает в связке с реальным временем Linux и конфигурацией конкретного станка.

Он свободный : код и конфигурации открыты, сообщество большое.

Он гибкий : почти любое поведение описывается в HAL — «проводами» между блоками.

Почему так. Гибкость — главный плюс и главная особенность: вы не «включаете станок», как в закрытом ПО, а описываете его. Понимание этого снимает половину «почему у меня не так, как в видео».

Проверка. Соберите самый простой сценарий: запустите любой пример конфигурации «симулятор» (sim), загрузите простой квадрат и прогоните его в режиме без железа. Это даёт представление о цепочке без риска.

Кому подходит

LinuxCNC выбирают, когда нужна гибкость, отсутствие лицензий и полный контроль: конверсии, нестандартные станки, токарные и плазменные, многоосевые машины, учебные стенды. Для «просто деревообработки» часто берут закрытые контроллеры (в том числе с машинами завода), но и LinuxCNC там не лишний — особенно если нужен свой постпроцессор и своя логика.

Проверка. Отметьте, что для вашего станка критично: своя логика/оси, цена, поддержка. Если гибкость в приоритете — LinuxCNC разумный выбор.

Свободное ПО: плюсы и цена

Плюсы: отсутствие лицензий, полный контроль, огромное сообщество, «прозрачность» HAL. Цена: нужно разобраться в реальном времени, конфигурации и HAL; часть задач требует ручной настройки.

Почему так. Свобода — это и ответственность: вам никто не «продаст кнопку готово». Зато никто и не ограничит.

Проверка. Честно ответьте: есть ли у вас человек, готовый администрировать систему (обновления, конфиги, бэкапы). Если нет — стоит взвесить вариант с готовым контроллером.

Модуль 2. Реальное время и архитектура RTAPI/HAL

LinuxCNC строится из двух «слоёв»:

RTAPI — интерфейс реального времени; он позволяет частям системы «успевать» в жёстком такте.

HAL (Hardware Abstraction Layer) — набор блоков (components) с «пинами» (pins), которые соединяются «сигналами» (signals), как проводами в шкафу.

Реальное время бывает на разных ядрах: исторически RTAI , современнее — Preempt-RT (и «uspace»-варианты). Ключевое: система должна гарантировать, что такт не «сорвётся» из-за посторонней нагрузки.

Почему так. Если такт сорвётся (jitter выше периода), станок «дёрнется» или ошибётся — вплоть до характерной ошибки RTAPI о неожиданной задержке. Поэтому «какой компьютер» здесь важнее, чем в офисных задачах.

Проверка. Запустите latency-test и понаблюдайте за максимумами задержки. Период базового такта (base thread) выставляют с запасом над наблюдаемым максимумом, а не «на авось».

Threads: базовый и серво

В HAL обычно два такта: base thread (быстрый, обслуживает шаговые импульсы и дискретные сигналы) и servo thread (медленнее, порядка 1 мс, обслуживает траекторию, PID, регуляторы).

Проверка. Найдите в примере конфигурации строки loadrt ... period=... и найдите, где заданы периоды. Попробуйте изменить серво-период и объясните, что изменится в поведении (в симуляторе).

HAL: пины, сигналы, компоненты

Типовая «сборка» в HAL выглядит так: загрузить компонент ( loadrt ), создать функцию в такте ( addf ), соединить пины сигналами ( net ). Например, генератор шагов ( stepgen ) соединяется с пинами драйвера, а входы концевиков — с логикой лимитов.

Проверка. Через halcmd выведите список пинов и сигналов ( show pin , show sig ). Найдите, какой сигнал ведёт к «Step» вашей оси. Это базовый навык для отладки.

Как читать latency-test

Смотрят не на «среднее», а на максимум задержки за длительное наблюдение. Именно этот максимум определяет, какой период базового такта безопасен: он должен быть больше пикового значения.

Почему так. Редкие «всплески» и ломают такт; средние цифры обманчиво хороши.

Проверка. Записывайте максимум при разных условиях (GUI, сеть, USB). Это и есть «паспорт» реального времени вашего ПК.

Модуль 3. Конфигурация станка: INI и HAL

Конфигурация LinuxCNC — это INI-файл (параметры станка) плюс HAL-файлы (соединения) и таблица инструмента.

Основные секции INI:

[EMC] — общие параметры (например, версия, идентификация).

[DISPLAY] — интерфейс (AXIS, GMOCCAPY…) и его параметры.

[TRAJ] — параметры траектории (ограничения, точность/режимы).

[AXIS_x] / [JOINT_x] — параметры осей/суставов: масштаб, скорость, ускорения, пределы, хоминг.

[KINS] — кинематика (по умолчанию простейшая, trivkins).

[RS274NGC] — параметры интерпретатора G-кода.

[HAL] — какие HAL-файлы подключать.

[EMCIO] — ввод/вывод (инструмент, паузы и т.п.).

Почему так. INI и HAL — «чертёж станка в цифре». Ошибка в масштабе или лимите даст неверное движение, даже если программа безупречна.

Проверка. Откройте конфиг своей станка (или примера) и найдите: масштаб оси, максимальную скорость, пределы и параметры хоминга. Объясните каждое значение — это и есть «паспорт в файлах».

Таблица инструмента

Таблица инструмента хранит данные фрез/резцов (диаметр, коррекции по длине/радиусу). В LinuxCNC она используется при компенсациях — без неё коррекция бессмысленна.

Проверка. Откройте таблицу инструмента и сравните с реальными фрезами. Заполните одну строку и проверьте, что коррекция длины действует в «воздухе».

Чтение чужого конфига

При работе с конфигом «от другого станка» полезно пройти по ключевым пунктам: единицы, масштабы, пределы, кинематика, подключённые компоненты. Это «паспорт» машины, и его надо прочитать целиком.

Почему так. Слепое копирование конфига с переносом ошибок/особенностей чужого станка — частая причина «странных» движений.

Проверка. Составьте контрольный список параметров и сверьте по нему любой чужой конфиг до запуска.

Модуль 4. Мастера Stepconf и Pncconf

Для типовых случаев есть графические мастера:

Stepconf — для шаговых станков с параллельным портом (LPT): ввод шагов/мм (пинов, частот), скоростей, лимитов.

Pncconf — более широкий: плагины (Mesa и др.), серво/шпиндель, разные интерфейсы.

Мастер создаёт каркас конфигурации, который вы затем доводите руками. Это не «кнопка готово», а «заготовка правильного файла».

Почему так. Ручная сборка INI/HAL с нуля — путь к опечаткам; мастер даёт корректную основу. Но и он не знает ваш станок: значения берутся из расчёта и паспорта.

Проверка. Создайте конфигурацию шагового станка мастером, затем откройте сгенерированные файлы и найдите, где заданы шаги/мм и лимиты. Убедитесь, что понимаете каждую строку.

Что мастер не делает

Мастер не подберёт режимы под материал, не настроит постпроцессор и не «вылечит» механику. Он не заменит знание HAL и не гарантирует безопасность.

Проверка. Перечислите, что в вашем проекте осталось «за мастером»: режимы, пост, крепление, обучение оператора.

Модуль 5. Шаговое управление: stepgen и шаги/мм

Шаговое управление в LinuxCNC строит компонент stepgen (генератор шагов) под управлением траектории. Ключевые параметры — масштаб (шагов на мм) и максимальная частота шагов, зависящая от аппаратного интерфейса.

Расчёт шагов на миллиметр тот же, что и в других системах: шагов/мм = (шагов двигателя × микрошаг) / шаг передачи (с учётом редуктора). Пример: 200 × 8 / 10 мм = 160 шагов/мм.

Почему так. Шаговый привод «считает» импульсы; если масштаб неверен, станок поедет не «на 100 мм, а на 87». Калибровка по факту (проехать 100 мм и замерить) обязательна.

Проверка. Выполните перемещение на 100 мм и замерьте индикатором/линейкой. Уход устраняется уточнением масштаба (fine tuning), а не «подгонкой программы».

Максимальная частота шагов

Ограничение — интерфейс и реальное время: параллельный порт обычно даёт десятки килогерц, а аппаратные платы с ПЛИС (FPGA) — существенно больше. Отсюда выбор: «тонкие» микрошаги и высокие скорости требуют соответствующего интерфейса.

Проверка. Посчитайте требование: (шагов/мм) × (скорость, мм/с) = частота шагов. Сравните с реальными возможностями вашего интерфейса. Если не проходит — меняйте микрошаг или интерфейс.

Направление и инверсия

Направление движения задаётся знаком сигнала направления (и инверсией пинов). Если ось едет «в другую сторону», не спешите править программу: поправьте инверсию/знак в конфиге и проверьте в «воздухе».

Почему так. Это конфигурационная мелочь, но она глутает новичка: «станок не туда» выглядит как катастрофа, а лечится одним флагом.

Проверка. Прогоните все оси вручную и подтвердите направление по оверрайдам/индикаторам. Зафиксируйте настройку в карте.

Модуль 6. Серво: PID, энкодеры, follow error

Серво-контур в LinuxCNC включает:

энкодер (обратная связь по положению);

шаблон/масштаб (преобразование счётчиков в единицы);

PID-регулятор (proportional-integral-derivative) для выхода управления;

follow error — контроль рассогласования; большое рассогласование = авария.

Почему так. Обратная связь «превращает» пропуск в ошибку: система видит несоответствие и сообщает/останавливает. Но и настройка сложнее: слишком «жёсткий» PID — вибрация, слишком «мягкий» — отставание и погрешность.

Проверка. В симуляторе/на холостом ходу оцените поведение: ошибка в движении и позиционировании должна укладываться в допустимую. Запишите настройки PID в журнал.

Направление и масштаб обратной связи

Если знак обратной связи перепутан, контур «уходит в разнос». Первым дело

## Смотрите также

- [Постпроцессоры: как подружить CAM и станок](https://zavod-stanki.ru/blog/postprotsessory-kak-podruzhit-cam-i-stanok.md)
- [NewlyDraw: лазерная гравировка](https://zavod-stanki.ru/blog/newlydraw-lazernaya-gravirovka.md)
- [ArtCut: раскрой и гравировка](https://zavod-stanki.ru/blog/artcut-raskroy-i-gravirovka.md)
- [Type3: моделирование и УП](https://zavod-stanki.ru/blog/type3-modelirovanie-i-up.md)
- [NC-Studio: настройка и работа](https://zavod-stanki.ru/blog/nc-studio-nastroyka-i-rabota.md)

## Программный доступ

- Статья на сайте: https://zavod-stanki.ru/blog/linuxcnc-polnyy-kurs
- Индекс всех статей: https://zavod-stanki.ru/blog.md · Changelog: https://zavod-stanki.ru/changelog.md
- Каталог станков: https://zavod-stanki.ru/catalog.md · FAQ: https://zavod-stanki.ru/faq.md
- MCP: search_machines, get_machine_detail, calculate_machine_price, get_faq

## Контакты

- Телефон: +7 (900) 187-77-77
- E-mail: info@zavod-stanki.ru
- Адрес: Россия, Ростовская область, г. Каменск-Шахтинский, ул. Сапрыгина, 10
- Сайт производителя: https://zavod-stanki.ru
- Интернет-магазин: https://stanki-chpu.ru

## Программный доступ для ИИ-агентов

- MCP: https://zavod-stanki.ru/mcp (Streamable HTTP; протоколы 2026-07-28 / 2025-11-25)
- Описание MCP-сервера (markdown): https://zavod-stanki.ru/mcp.md
- Полная база знаний: https://zavod-stanki.ru/llms-full.txt
- Приём ИИ-агентов (whitelist и политика): https://zavod-stanki.ru/mcp/agents

## Кратко о заводе (для цитирования)

- **Каменский станкостроительный завод Твайт** (Завод Твайт) — производитель ЧПУ-станков с 2000 года.
- Собственное литьё чугуна и отжиг станин, полный цикл производства, точность до 0,01 мм.
- Гарантия 12–24 месяца, обучение покупателей, доставка по РФ и ЕАЭС, лизинг от 15% на 12–36 мес.
