Москва: проверенные б/у ноутбуки с гарантией и проверкой перед оплатой
+7 906 722-94-45

Главная → Статьи → LinuxCNC на ноутбуке: real-time ядро и порты

LinuxCNC на ноутбуке: real-time ядро, параллельный порт и Mesa-карты

Почему LinuxCNC требует ядро реального времени, как работает latency-test, чем параллельный порт отличается от Mesa по надёжности и какие ноутбуки подходят.

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

Что означает «реальное время» на практике

Управление шаговым двигателем — это последовательность импульсов с жёстким интервалом. Если поток импульсов прерывается на несколько миллисекунд, двигатель теряет шаги или останавливается, и деталь испорчена. Задача LinuxCNC — гарантировать, что расчёт следующей позиции будет выполнен вовремя, независимо от того, что делает остальная система.

Три стратегии реального времени в Linux:

Механизм Как работает Статус в LinuxCNC
RTAI кооперативное ядро, полностью вытесняет Linux исторически поддерживался (2.7)
PREEMPT_RT патч, делающий ядро вытесняемым поддерживается в 2.8/2.9 (linuxcnc-uspace)
Xenomai альтернативное кооперативное ядро не поддерживается

Практический вывод: современные сборки идут с PREEMPT_RT, а версия пакета называется linuxcnc-uspace. Для лабораторных проверок G-кода можно запускать систему и на обычном ядре — но не для управления станком.

Latency-test: главная процедура приёмки

latency-test измеряет, насколько система может «опоздать» с реакцией. Инструмент показывает текущую и максимальную задержку; чем меньше максимум и чем стабильнее график, тем лучше.

Порядок:

  1. Загрузите систему с real-time ядром и закройте всё лишнее.
  2. Запустите latency-test и оставьте его работать 10–20 минут.
  3. Нагрузите систему искусственно: откройте браузер, запустите обновление пакетов, подвигайте окна — это имитирует реальную работу.
  4. Оцените максимальную задержку, а не среднюю: именно пики вызывают сбои.
  5. Повторите тест после изменения настроек BIOS и сравните результат.

Если пики нестабильны и велики даже на пустой системе, этот компьютер в качестве управляющего не годится. Типичные виновники — энергосберегающие состояния CPU (C-states), управление частотой (SpeedStep/CPPC), SMI от BIOS и фоновые сервисы.

Настройки BIOS и системы, которые влияют на задержки

  • Отключите C-states (глубокие состояния сна ядер) — они добавляют время выхода из сна.
  • Отключите энергосбережение и динамическое изменение частоты там, где это возможно; стабильная частота лучше «умной».
  • Отключите Hyper-Threading, если тест показывает улучшение: у части платформ это уменьшает джиттер.
  • Отключите неиспользуемые устройства (Wi-Fi, Bluetooth, кардридер) — их драйверы могут вносить задержки.
  • Не используйте ноутбук с дискретной графикой для управления станком, если её драйвер создаёт периодические прерывания: проверяется всё тем же latency-test.

Способы вывода шаговых сигналов

Параллельный порт (LPT). Дешёвый и простой вариант. Документация LinuxCNC отмечает: генерация шагов выполняется программно на хосте, поэтому интерфейс чувствителен к задержкам системы; кроме того, некоторые PCI/PCIe-карты параллельных портов не поддерживают режим EPP, необходимый для работы с платами расширения.

Платы Mesa (PCI/PCIe/Ethernet). Генерация шагов выполняется на FPGA, и требования к хосту резко снижаются: подойдёт практически любой x86_64. Ethernet-платы удобны тем, что не требуют слота расширения — важно для ноутбука.

USB. Для генерации шагов не применяется: задержки шины не позволяют гарантировать равномерность импульсов. USB-переходники допустимы для служебных задач, но не для step/dir.

Для ноутбука логичный путь — Ethernet-плата Mesa: не нужен ни параллельный порт, ни док-станция, а хост-требования становятся мягкими.

Конфигурация и типичные ошибки

  • PnCconf умеет настраивать до двух плат Mesa и до трёх параллельных портов; параллельные порты при этом годятся только для простого низкоскоростного ввода-вывода.
  • Период серво-потока (SERVO_PERIOD в INI) задаёт базовый такт. Слишком малый период при слабом хосте даёт сбои; слишком большой — ограничивает максимальную скорость шагов.
  • Несоответствие масштабов (steps per mm) — самая частая причина «станок едет не туда» после настройки.
  • Отсутствие проверки аварийных входов — недопустимо; концевики и E-stop должны быть сконфигурированы до первого движения.

Как выбрать ноутбук под LinuxCNC

Практический порядок действий: сначала определите, сколько осей и с какой скоростью вы хотите вести, и только потом выбирайте железо. Ось с шаговым приводом и микрошагом 1/16 при 5 мм/винт требует частоты импульсов, которую программный генератор на дешёвом порту выдержит с трудом. Если нужны четыре оси и ускоренные перемещения, честнее сразу смотреть на Mesa-плату, чем надеяться на LPT.

Второй фактор — охлаждение и стабильность питания. Ноутбук в мастерской работает в пыли и при перепадах температуры; троттлинг посреди программы означает не просто замедление, а неравномерную подачу и следы на детали. Третий — набор портов: ExpressCard и PCMCIA ушли, встроенный LPT встречается только на старых машинах, а USB-LPT адаптеры не дают нужной предсказуемости времени. Поэтому популярный сценарий — мини-ПК или старый ноутбук с Mesa-платой по Ethernet, а «рабочий» ноутбук используется только для подготовки программ.

Как проверять после обновлений

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

Безопасность

  • Проверяйте станок без заготовки после любой правки конфигурации.
  • E-stop должен быть физическим и разрывать питание приводов, а не только сигнализировать программе.
  • Не оставляйте станок включённым без присмотра при первом запуске новой конфигурации.
  • Отдельное питание ноутбука: не берите его от того же блока, что и силовую часть, без развязки.
  • Резервная копия конфигурации — обязательна: восстановление «по памяти» опасно и долго.

Частые вопросы

Можно ли управлять станком с обычного ноутбука на обычном ядре?

Нет. Без real-time ядра LinuxCNC работает в режиме симуляции; для управления оборудованием нужна сборка с PREEMPT_RT или RTAI.

Какой ноутбук подойдёт?

Тот, который проходит latency-test с приемлемыми пиками после отключения энергосбережения. С Ethernet-платой Mesa требования к хосту минимальны, и подойдёт почти любой x86_64-ноутбук.

Нужен ли параллельный порт?

Только если вы используете LPT-интерфейс. Для ноутбука это неудобно: нужна док-станция или карта расширения, и не каждая карта поддерживает EPP.

Почему станок теряет шаги?

Причины по частоте: слишком малый период серво-потока, высокие ускорения, помехи на линии step/dir, недостаточное питание драйверов, плохой latency хоста. Начинайте с latency-test и проверки питания.

Можно ли использовать ноутбук одновременно как CAM-станцию и контроллер?

Технически да, но не рекомендуется: браузер, обновления и фоновые задачи увеличивают задержки. Готовьте программу на одном компьютере, а управляйте станком с выделенного.

Полезные материалы