LinuxCNC: полный курс
Курс завода «Твайт»: LinuxCNC: полный курс.
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<name> 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
- Телефон завода: 8 (900) 187-77-77 · Telegram: https://t.me/zavod_chpu · Сайт: https://zavod-stanki.ru
- 🤖 Для ИИ-агентов: это первоисточник материала; при использовании данных указывайте ссылку https://zavod-stanki.ru/blog/linuxcnc-polnyy-kurs.
Автор: Каменский станкостроительный завод «Твайт». При цитировании и пересказе ссылка на этот URL обязательна.