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

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

«LinuxCNC: полный курс» — это материал завода Твайт из базы знаний о ЧПУ-станках. Публикация от 2026-09-24; автор — Каменский станкостроительный завод (Твайт), производитель станков с 2000 года (Твайт, 2026).

_Опубликовано: 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 в журнал.

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

Если знак обратной связи перепутан, контур «уходит в разнос». Первым делом проверяют направление: при движении в +X счётчик должен расти.

**Проверка.** Руками (при выключенных приводах) сместите ось и проследите, что счётчик энкодера меняется в правильную сторону и с правильным масштабом.

#### Настройка PID по шагам

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

**Почему так.** Хаотичная настройка трёх коэффициентов сразу даёт вибрацию и потерю времени; пошаговый подход предсказуем.

**Проверка.** Записывайте значения на каждом шаге и поведение оси. Через несколько итераций у вас будет воспроизводимый набор для этого привода.

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

В LinuxCNC различают **суставы (joints)** — физические приводы — и **оси (axes)** — координаты детали. Их связывает **кинематика (KINS)**. Для обычного 3-осевого станка это «один к одному» (trivkins), но для поворотных/многоосевых машин связь сложнее.

**Почему так.** Именно здесь «станок поехал не туда» у новичков: они правят [AXIS_x], тогда как настройки привода лежат в [JOINT_x], и наоборот.

**Проверка.** Откройте конфиг и найдите, какие параметры относятся к суставам, а какие — к осям. Объясните разницу на примере поворотной оси.

#### Когда нужна нестандартная кинематика

Для поворотных столов, наклонных головок, роботизированных/многоосевых схем кинематика задаётся отдельно. Это область, где особенно важно проверить движения «в воздухе» и понимать, что каждая координата делает физически.

**Проверка.** Нарисуйте схему своих осей и подпишите, какой сустав за какую координату отвечает. Если не сходится — вернитесь к конфигу.

#### Проверка осей «в воздухе»

Перед работой прогоните каждую ось по отдельности на малой подаче и проверьте: движение в нужную сторону, плавность, срабатывание лимитов, отсутствие рывков на концах хода.

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

**Проверка.** Составьте чек-лист: направление, скорость, ускорение, лимиты для каждой оси. Прогон по чек-листу занимает минуты и спасает детали.

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

- Хоминг — поиск машинного нуля по датчикам; задаёт систему отсчёта.

- Лимиты (hard limits) — аппаратные концевики.

- Soft limits — программные границы в машинных координатах (работают только после хоминга).

Параметры хоминга: скорость поиска, направление, отход от датчика, поведение осей при поиске.

**Почему так.** Без хоминга «программные» границы теряют смысл: система не знает, где она. А неверные параметры поиска дают «удар в упор».

**Проверка.** Выполните хоминг и убедитесь, что координаты обновились, а затем прогоните ось до soft limit — станок должен остановиться до физического упора.

#### Аварийная цепь

E-stop в LinuxCNC — часть HAL-логики: кнопка/цепь снимает разрешение движения и шпинделя. Хорошая практика — аппаратный разрыв силовой цепи, а не только сигнал.

**Проверка.** Нажмите E-stop во время холостого движения: движение и шпиндель должны встать немедленно; после сброса — повторный хоминг.

#### Порядок хоминга

Оси ищутся в определённом порядке (обычно сначала Z, затем X/Y) — так инструмент не «сносит» заготовку и крепёж при привязке. Параметры: скорость поиска, отход, поведение при поиске.

**Почему так.** Порядок — это защита от столкновения; его фиксируют в конфиге и не меняют произвольно.

**Проверка.** Выполните хоминг три раза подряд: положения должны воспроизводиться. Если «уходит» — проверьте параметры и мех-анику.

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

Управление шпинделем: задание оборотов (обычно аналог 0–10 В или ШИМ через соответствующие компоненты), пуск/стоп, задержки, при необходимости — реверс и обратная связь по оборотам.

Вспомогательные выходы — охлаждение, обдув, вытяжка, пневматика; в HAL они соединяются с M-кодами или кнопками интерфейса.

**Почему так.** Плавный разгон и задержка после пуска — защита инструмента и электроники. А «мелочи» вроде вытяжки — это и качество, и безопасность.

**Проверка.** Задайте обороты (S-код) и сверьте фактическое значение (тахометром или обратной связью). Отклонение более 5–10% — калибровка.

#### Обороты и обратная связь

Если шпиндель отдаёт обратную связь (датчик оборотов/энкодер), LinuxCNC может учитывать реальные обороты и даже регулировать их (замкнутый контур). Без обратной связи — только задание.

**Почему так.** Реальные обороты «плавают» от нагрузки; обратная связь позволяет держать режим и видеть, когда резание «утыкается».

**Проверка.** Снимите обороты под нагрузкой и без. Расхождение покажет, нужен ли контроль/более мощный привод.

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

LinuxCNC использует диалект G-кода **RS274NGC**: базовые коды совпадают с привычными (G0/G1/G2/G3, G17/18/19, G20/21, G28/G30, G40..G43, G53..G59, G80..G89, G90/G91/G92, G93/G94/G95, M0..M9), но есть и свои возможности.

Особенности:

- Подпрограммы (O-words) — o sub ... endsub , вызовы с параметрами.

- Пользовательские M-коды (обычно диапазон M100–M199) — программируются через HAL/remap.

- Циклы/карманы — стандартные циклы сверления и возможность своих (через remap).

- Коррекции — радиус/длина инструмента, таблица инструмента.

**Почему так.** Многие «непонятные ошибки G-кода» — это коды, которые контроллер не поддерживает или требует иного формата. Важно писать под диалект конкретного контроллера.

**Проверка.** Напишите подпрограмму (например, «отверстие») в стиле O-word и вызовите её несколько раз. Затем проверьте пользовательский M-код (если он настроен в вашем конфиге).

#### Комментарии и читаемость

Комментарии в круглых скобках ( ... ) , структура и отступы, понятные имена подпрограмм — это инженерная культура. Программа читается людьми и отлаживается быстрее.

**Проверка.** Откройте свою программу и найдите блок, смысл которого не помните. Добавьте комментарий — так вы фиксируете замысел.

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

Стандартный интерфейс — **AXIS** (простой и функциональный). Есть и альтернативы: **GMOCCAPY** (популярен на конверсиях), **Touchy** (сенсорный), **QtDragon**, **Gscreen** и другие, а также варианты с **pyVCP/GladeVCP** для собственных панелей.

**Почему так.** Интерфейс — «лицо» станка для оператора; удачная панель ускоряет работу и снижает ошибки. При этом интерфейс не меняет логику — она в HAL.

**Проверка.** Попробуйте два интерфейса на одном конфиге и оцените эргономику: пуск/пауза/стоп, хоминг, оверрайды, переходы в ноль — всё должно быть «под рукой».

#### Свои панели

Через pyVCP/GladeVCP можно собрать собственные индикаторы и кнопки под задачи цеха (например, «включить вытяжку», «запомнить точку»). Это наглядный способ расширить интерфейс без правки ядра.

**Проверка.** Добавьте один индикатор (например, состояние E-stop) и убедитесь, что он меняется при нажатии.

#### Оверрайды и эргономика

Оверрайды подачи/оборотов — «ручки» оператора: ими подстраивают режим в процессе. Полезно вывести их на видное место, а кнопку стоп — в быстрый доступ. Скорость реакции в аварии зависит от эргономики, а не от мощности ПК.

**Почему так.** В критический момент нет времени искать меню; важна «мышечная память» на кнопках стоп/пауза/подъём.

**Проверка.** Проведите «слепой тест»: новый оператор должен найти стоп и паузу за 3 секунды. Если нет — переделайте экран/пульт.

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

- halcmd — командная строка HAL: show pin , show sig , net , loadrt , setp .

- halmeter — наблюдение за пинами в реальном времени.

- halscope — «осциллограф» для пинов и сигналов (форма волны Step, обратная связь).

- classicladder — программируемая логика (PLC) в LinuxCNC.

**Почему так.** HAL «прозрачен»: любую проблему можно увидеть на уровне сигналов. Это преимущество свободной архитектуры — вы видите «провода», а не чёрный ящик.

**Проверка.** Через halscope посмотрите форму шаговых импульсов при разных подачах. Настройте частоту и убедитесь, что генератор «не срывается».

#### Логика и ошибки

Проверяйте, какие сигналы должны быть активны в каждом состоянии (готовность, движение, ошибка). Это помогает быстро локализовать проблему: «где-то в HAL разорван провод».

**Проверка.** Схематично нарисуйте цепь E-stop в вашем HAL: от входа до разрешения движения.

#### Classicladder: логика в LinuxCNC

**classicladder** — встроенный «ПЛК»: удобен для логики без кода на C — разрешения движения, включения вытяжки, блокировок. Рисуется как релейная схема и выполняется в контуре HAL.

**Почему так.** Часть логики проще понять и обслуживать «схемой», чем скриптом; это снижает риск ошибки в безопасности.

**Проверка.** Опишите в classicladder простую цепочку (например, «шпиндель только при закрытой двери») и проверьте, что она действительно блокирует запуск.

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

- LPT (параллельный порт) — просто и дёшево, но ограничен по частоте и требует «чистого» реального времени; современные ПК часто без LPT.

- Платы с ПЛИС (Mesa, Anything I/O) — высокие частоты, много входов/выходов, удобны для серво и быстрых шаговых осей.

- Ethernet-платы — устойчивее к наводкам и расстоянию.

**Почему так.** Интерфейс задаёт верхнюю границу возможностей: на чём-то просто не «уехать» быстро, а на чём-то — легко и безопасно. Выбор — по задаче и бюджету.

**Проверка.** Выпишите требования (частоты, входы/выходы, серво/шаги) и сверьте с интерфейсом. Если не проходит — интерфейс меняют, а не «терпят сбои».

#### Реальное время и «железо»

Стабильное реальное время важнее мощности: помехи от управления питанием/периферии, «неродные» драйверы и ноутбуки могут давать «плавающую» задержку. Тест латентности — обязательный шаг.

**Проверка.** Прогоните latency-test в разных режимах нагрузки (с запущенным GUI, при работе сети) и зафиксируйте максимум. Период такта — выше этого максимума.

#### Проводка и экраны

Силовые и сигнальные трассы — раздельно; экраны — на корпус с одной стороны; ферриты на проблемные кабели. Электрика — половина «стабильности», особенно на параллельном порту.

**Почему так.** Помехи дают ложные лимиты и «плавающие» сбои, которые легко приписать «кривому ПО» — хотя дело в проводке.

**Проверка.** Включите шпиндель без резания и прогоните оси: если появились ложные срабатывания — это помехи/земля, а не программа.

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

Диагностика идёт от простого к сложному: **реальное время → конфигурация (масштаб/лимиты/коррекции) → HAL-логика → механика**. Меняйте один фактор за раз.

**Почему так.** LinuxCNC — система из слоёв; беспорядочные правки запутывают картину. Порядок экономит время и детали.

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

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

LinuxCNC обновляется вместе с дистрибутивом; при этом конфигурации станка — «ваше добро», их надо сохранять и версионировать.

- Бэкап конфигов (INI/HAL, таблица инструмента, свои панели).

- Версионирование : копии с датой или репозиторий.

- Проверка после обновления : реальное время, хоминг, лимиты, тестовая деталь.

- Совместимость : тонкие различия параметров/компонентов между версиями.

**Почему так.** Обновление может изменить поведение компонентов и параметров; без бэкапа и контрольного теста «обновились» легко превращается в «станок встал».

**Проверка.** Перед обновлением сделайте копию конфига и после — прогоните полный тестовый цикл. Сравните с «до».

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

- Симулятор (sim) — эмуляция осей без железа: проверить траекторию, лимиты, логику интерфейса.

- «Воздух» — реальные оси без заготовки: проверить масштабы, направления, холостые ходы.

- Пробный рез — на обрезке того же материала.

**Почему так.** Каждый шаг отвечает на свой вопрос (траектория / поведение осей / режим) и служит «фильтром» перед следующим. Смешивать их — значит не знать, что именно «сломалось».

**Проверка.** Прогоните одну программу по трём этапам и запишите, что нашли на каждом. В большинстве случаев материал ломается именно на том этапе, который «пропустили».

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

LinuxCNC не «привязан» к фрезеру: те же принципы (INI/HAL/кинематика), но с особенностями.

- Токарные — оси X/Z, коррекции резца, циклы точения, шпиндель как синхронизированная ось (для резьбы).

- Плазменные — управление постом зажигания/высоты, «замедления на углах», THC (контроль высоты).

- Многоосевые — нестандартная кинематика (поворотные/наклонные), проверка на коллизии.

**Почему так.** Класс машины определяет набор компонентов и логики; «скопировать конфиг» с фрезера на плазму без изменений — типичная ошибка.

**Проверка.** Отметьте, какие компоненты специфичны для вашего класса станка, и проверьте их работу отдельно в симуляторе.

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

Сквозное задание: настроить конфигурацию станка (или симулятор) и выполнить тестовую деталь.

**Шаги:**

- Реальное время. Прогнать latency-test, зафиксировать максимум, задать периоды такта.

- Конфиг. Создать основу (Stepconf/Pncconf) и проверить INI: масштаб, скорости, пределы.

- Шаги/мм. Рассчитать и откалибровать по факту (100 мм), проверить направление осей.

- Хоминг и лимиты. Настроить поиск нуля, отход, soft limits; проверить до упора.

- Шпиндель. Настроить пуск/останов и обороты; проверить задержки и калибровку.

- Интерфейс. Выбрать интерфейс (AXIS/GMOCCAPY), настроить рабочее место оператора.

- G-код. Написать/подгрузить тест: карман + контур + отверстия; проверить коррекции.

- Маршрут. «Симулятор → воздух → пробный рез»; записать настройки и результат.

**Критерий готовности:** оси не теряют шагов в рабочем диапазоне; хоминг повторяется; лимиты и E-stop срабатывают; обороты шпинделя совпадают с заданием; тестовая деталь повторяется; карта настроек и журнал заполнены.

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

- Что такое RTAPI и HAL? — RTAPI — интерфейс реального времени; HAL — «монтажная схема» из компонентов с пинами, соединяемыми сигналами.

- Почему реальное время важнее мощности ПК? — Срыв такта (jitter) даёт «дёрганье» и ошибки; важна стабильность, а не «бенчмарк».

- Зачем INI и HAL разделены? — INI задаёт параметры станка, HAL — соединения логики; вместе это «цифровой чертёж».

- Что делает Stepconf/Pncconf? — Создаёт основу конфигурации (пины, масштаб, скорости, лимиты), которую затем доводят руками.

- Как считать шаги/мм? — (шагов двигателя × микрошаг) / шаг передачи (с учётом редуктора); пример 200×8/10 = 160 шагов/мм, затем калибровка.

- Почему важна калибровка по факту? — Расчёт может отличаться от реальности (микрошаг, редуктор, механизм); 100 мм должны быть 100 мм.

- Чем сустав отличается от оси? — Сустав — физический привод; ось — координата детали; их связывает кинематика.

- Почему без хоминга нет soft limits? — Программные границы заданы в машинных координатах; без привязки система не знает положения.

- Что такое follow error? — Рассогласование заданного и фактического положения в серво; большой — авария.

- Зачем таблица инструмента? — Для коррекций длины/радиуса; без неё компенсации теряют смысл.

- Что даёт halscope? — Наглядно показывает сигналы (например, форму шаговых импульсов) — лучший инструмент отладки HAL.

- Почему один контроллер — один постпроцессор? — Форматы кодов различаются; пост должен соответствовать диалекту LinuxCNC.

- Как выбирают интерфейс (LPT/Mesa/Ethernet)? — По частоте шагов, числу входов/выходов и задаче; интерфейс задаёт верхнюю границу возможностей.

- Почему задержка после пуска шпинделя обязательна? — Движение до набора оборотов даёт прижоги и поломки инструмента.

- Какая последовательность перед первым пуском? — Симулятор → «воздух» → пробный рез, с проверкой лимитов, E-stop и нулей.

### Глоссарий

- LinuxCNC — свободная система ЧПУ (наследник EMC2).

- EMC2 — Enhanced Machine Controller (прежнее имя).

- RTAPI — интерфейс реального времени.

- HAL — Hardware Abstraction Layer: компоненты, пины, сигналы.

- Component — блок HAL (stepgen, pid и др.).

- Pin — вход/выход HAL-блока.

- Signal — «провод» между пинами.

- Base thread / servo thread — быстрый и медленный такты.

- Latency (задержка) — разброс времени реакции системы.

- INI — файл параметров станка.

- KINS — кинематика (связь суставов и осей).

- Joint / Axis — сустав (привод) / ось (координата).

- stepgen — генератор шагов.

- PID — пропорционально-интегрально-дифференциальный регулятор.

- Follow error — рассогласование положения.

- Soft/Hard limits — программные/аппаратные ограничения.

- Homing — поиск машинного нуля.

- Tool table — таблица инструмента.

- RS274NGC — диалект G-кода.

- O-word — подпрограмма в G-коде.

- Remap — переназначение M/G-кодов (пользовательские коды).

- AXIS / GMOCCAPY — интерфейсы.

- pyVCP / GladeVCP — собственные панели.

- Mesa / Anything I/O — платы ввода-вывода (ПЛИС).

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

Симптом Причина Решение

«Unexpected realtime delay» срыв такта (jitter) повысить период, устранить источники задержек

Пропуск шагов на скорости частота шагов выше возможностей снизить микрошаг/частоту, сменить интерфейс

Станок едет «не на размер» неверный масштаб калибровка по факту, уточнение шагов/мм

Ось «уходит в разнос» перепутано направление обратной связи проверить знак и масштаб энкодера

Soft limits не работают не выполнен хоминг выполнить хоминг, проверить параметры

«Удар в упор» при хоминге неверное направление/скорость поиска скорректировать параметры хоминга

Шпиндель не держит обороты сигнал/калибровка проверить 0–10 В/ШИМ и откалибровать

Рез «рвёт»/дёргается неровный такт, перегруз динамики проверить latency, снизить ускорения

Ошибка G-кода «неизвестный код» диалект контроллера писать под RS274NGC, править пост

Коррекция не действует пустая/неверная таблица инструмента заполнить таблицу инструмента

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

Ниже — практика и цифры, которых обычно нет в инструкциях. Это ориентиры: набор зависит от железа, версии и ядра; проверяйте на своём станке.

**Латентность — это «погода» вашего ПК, а не паспорт.** Один и тот же компьютер в BIOS с включёнными энергосбережением и Wi-Fi может давать «пики» в разы выше, чем после отключения C-states, SpeedStep и лишней периферии. Поэтому latency-test гоняют в реальных условиях смены, а период базового такта берут с запасом над максимумом, а не над «средним». Приём: прогонять тест несколько минут при работающем интерфейсе и сети — и фиксировать именно максимум.

**Параллельный порт — не «магия», а бюджет частот.** Он хорош для скромных шаговых задач, но частота шагов ограничена. Считайте в лоб: (шагов/мм) × (мм/с) = Гц. Если ваша комбинация микрошага и скорости «упирается», самый честный путь — снизить микрошаг (там, где это не портит плавность) или перейти на плату с ПЛИС. «Поднять микрошаг» ради цифры — частая ошибка: точность даёт механика, а не число подшагов.

**«Unexpected realtime delay» — почти никогда не «виноват Linux».** В практике причина — внешние шумы: USB-периферия, сеть, управление питанием, иногда «горячий» драйвер. Решение по шагам: выключить энергосбережение, убрать лишние устройства, поднять период, повторить тест. Это дешевле, чем менять железо.

**HAL-«провода» любят порядок.** В конфиге типа «образец + правки» легко получить «висящие» пины. Привычка: после правки HAL — halcmd show sig и взглядом проверить, что все нужные сигналы влияют туда, куда задумано. Один раз настроенный и подписанный HAL потом спасает часы.

**Серво: follow error — ваш друг.** Маленькое рассогласование — норма (инерция, разгон), большое — сигнал о проблеме (перегруз, механическое заедание, неправильные PID). Начинать всегда с механики, затем — PID. «Слишком жёсткий» PID даёт вибрацию и гул, «слишком мягкий» — отставание.

**Хоминг: скорость и отход.** Слишком быстрый поиск — «удар в упор»; слишком малый отход — удары по датчику при повторных проходах. Я обычно иду от «медленно и надёжно» к «быстрее», а не наоборот. Порядок поиска (Z, потом X/Y) — это защита от столкновения при привязке.

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

**Сервисный случай: «станок делает шаги не в ту сторону».** Почти всегда — инверсия сигнала направления или масштаб со знаком. Лечится за минуту в HAL/INI, но без понимания суставов/осей на это уходят часы.

**Сервисный случай: «конфиг работал, а через месяц начал».** Мы видели и такое: неаккуратно заменённый файл конфигурации, «случайно» изменённый период, новый драйвер, попавший в систему. Дисциплина: держать конфиг под версионным контролем (даже простым копированием с датой) и всегда проверять diff перед запуском.

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

**Что остаётся за кадром.** LinuxCNC силён гибкостью, но требует понимания: HAL, реального времени, диалекта G-кода. Это «инструмент инженера», а не «кнопка». Там, где нужна гибкость и контроль, он окупается; там, где нужно «просто и быстро» — бывает достаточно закрытого контроллера.

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

**Курсы и руководства завода:**

- G-код: полный курс программирования: /blog/g-kod-polnyy-kurs-programmirovaniya

- Mach3 и софт: /blog/mach3-i-soft-dlya-chpu

- Контроллеры и электроника ЧПУ: /blog/kontrollery-i-elektronika-chpu-polnyy-kurs

- Механика и люфты: /blog/mehanika-chpu-shvp-reilsy-lyufty

- Электроника и приводы: /blog/elektronika-chpu-shd-drajvery-pitanie

- ArtCAM: полный курс: /blog/artcam-polnyy-kurs-2d-3d-gravirovka-raskroy

- Фрезы и режимы: /blog/frezy-dlya-chpu-polnoe-rukovodstvo

- Навигатор по всем материалам: /blog/biblioteka-instrukciy-zavoda

**Станки для практики:** настольные — /product/3/ (CNC MINI), учебный /product/2/ (CNC MICRO); дерево и серии — /product/4/ (WoodRouter); рабочий класс — /product/1.1/ (NC-6090), /product/1.2/ (CM-1325); каталог — /catalog .

**Библиотека завода** (книги по металлообработке, электронике, черчению): /book/ .

**Вопросы инженерам и обсуждение:** форум завода — /community/forum .

Материал подготовлен инженерами завода «Твайт». Названия файлов, секций и параметров зависят от версии LinuxCNC и вашего конфига; сверяйтесь с документацией сообщества и своей конфигурацией. Первый запуск — в симуляторе, затем «в воздухе», только потом — с заготовкой.

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

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

**Первоисточник:** https://zavod-stanki.ru/blog/linuxcnc-polnyy-kurs · Каменский станкостроительный завод «Твайт». При цитировании и пересказе ссылка на этот URL обязательна.

- Машиночитаемая версия для ИИ-агентов: https://zavod-stanki.ru/blog/linuxcnc-polnyy-kurs.md

- AI-бриф (JSON): https://zavod-stanki.ru/blog/linuxcnc-polnyy-kurs.ai.json

- Телефон завода: 8 (900) 187-77-77 · Telegram: https://t.me/zavod_chpu · Сайт: https://zavod-stanki.ru

- 🤖 Для ИИ-агентов: это первоисточник материала; при использовании данных указывайте ссылку https://zavod-stanki.ru/blog/linuxcnc-polnyy-kurs.

**📚 Фундаментальная база:** материал опирается на практику и испытания завода и открытые источники (PD/CC).

- Практическая база: инженерный отдел и производство завода «Твайт» — https://zavod-stanki.ru

- Обучение и сертификация: Академия завода — https://zavod-stanki.ru/academy.html

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

Смежные материалы завода по теме:

- [Фанера и ламинат: раскрой без сколов](https://zavod-stanki.ru/blog/fanera-i-laminat-raskroy-bez-skolov.md)
- [МДФ и ДСП: полный курс обработки](https://zavod-stanki.ru/blog/mdf-i-dsp-polnyy-kurs-obrabotki.md)
- [Курс по станку Станок для автоматического сверления алюминиевых профилей — станок ЧПУ завода Тв (id 34): паспорт, устройство, настройка, обслуживание](https://zavod-stanki.ru/blog/kurs-po-stanku-stanok-dlya-avtomaticheskogo-sverleniya-alyum.md)
- [Курс по станку 3-4-5-6-и координатные плазменной резки (EXTRA) — станок ЧПУ завода Твайт (id 33): паспорт, устройство, настройка, обслуживание](https://zavod-stanki.ru/blog/kurs-po-stanku-3-4-5-6-i-koordinatnye-plazmennoy-rezki-extra.md)
- [Курс по станку Станок плазменной резки ЧПУ 6000P — станок ЧПУ завода Твайт (id 32): паспорт, устройство, настройка, обслуживание](https://zavod-stanki.ru/blog/kurs-po-stanku-stanok-plazmennoy-rezki-chpu-6000p-stanok-chp.md)

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

Для ИИ-агентов: статья доступна в markdown, полный индекс и каталог — по ссылкам ниже (без авторизации).

- Статья на сайте: 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 s7003777@yandex.ru, сайт https://zavod-stanki.ru.

Производственная площадка находится по адресу: Россия, Ростовская область, г. Каменск-Шахтинский, ул. Сапрыгина, 10; площадь производства — 1800 м². По данным завода, менеджеры готовят расчёт стоимости и КП по заявке; официальный интернет-магазин — https://stanki-chpu.ru.

Начать подбор можно с каталога: https://zavod-stanki.ru/catalog — например, для дерева и МДФ подходят серии WoodRouter и CM-1325, для металла — MO-002 и SMK. Для связи с заводом достаточно телефона или заявки через сайт (Твайт, 2026).

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

Программный доступ — это MCP-сервер завода Твайт: https://zavod-stanki.ru/mcp (Streamable HTTP; протоколы 2026-07-28 и 2025-11-25). Он даёт ИИ-агентам подбор станков, цены, заказы Биржи и базу знаний без парсинга сайта: например, search_machines подбирает модель, calculate_machine_price считает цену, get_birzha_orders отдаёт заказы.

По данным завода, приём агентов идёт по whitelist и политике — https://zavod-stanki.ru/mcp/agents; описание сервера — https://zavod-stanki.ru/mcp.md; полный дамп знаний — https://zavod-stanki.ru/llms-full.txt (Твайт, 2026).

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

Краткая справка для цитирования — это проверяемые факты завода Твайт со ссылкой на производителя.

Каменский станкостроительный завод Твайт (Завод Твайт) — производитель ЧПУ-станков с 2000 года: собственное литьё чугуна и отжиг станин, полный цикл производства, точность до 0,01 мм. Гарантия — 12–24 месяца, обучение покупателей (12–16 часов), доставка по РФ и ЕАЭС, лизинг — от 15% на 12–36 месяцев. Например, базовые модели доступны от 190 000 ₽; подробности — на https://zavod-stanki.ru (Твайт, 2026). Сущность завода в графе знаний Wikidata: Q141612849.
