«Фрезер 3 оси», «фрезер 5+2», «локтевой манипулятор 6R» — вот породы. «KUKA», «Inovance», «через LPT» — это не порода, а данные конкретного экземпляра. Два станка с одной кинематикой — один тип, даже если приводы у них от разных заводов: различие обязано жить в паспорте двойника, а не во втором описании станка.
Он сверяется с модулями кинематики LinuxCNC — теми, что физически лежат на управляющей машине. Замер на нашем стенде: девятнадцать модулей.
Каждый такой модуль отвечает на один вопрос: как из координат, которые называет программа, получить положения приводов, и обратно. Есть модуль — есть решатель; нет решателя — механизм всё равно управляется, но другим родом программ (см. ниже).
Станок заводится с выбора шаблона: он приносит модуль кинематики, порядок осей и роль каждой (что двигается — стол или голова). Дальше правятся пределы и приводы.
| Шаблон | Кинематика | Оси | Класс | Программа реза |
|---|---|---|---|---|
| 3-осевой вертикальный фрезер | trivkins coordinates=XYZ | XYZ | станок | да |
| Роутер портального типа | trivkins coordinates=XYYZ kinstype=BOTH | XYYZ | станок | да |
| Плоттер / роутер с двумя X | trivkins coordinates=XXYZ kinstype=BOTH | XXYZ | станок | да |
| 2-осевой токарный | trivkins coordinates=XZ | XZ | токарный | да, токарный процесс |
| 4-осевой фрезер с поворотным столом | trivkins coordinates=XYZA | XYZA | станок | да |
| 5-осевой, поворотно-наклонный стол | xyzbc-trt-kins | XYZBC | станок | да |
| 5-осевой, поворотная головка | xyzac-trt-kins | XYZAC | станок | да |
| SCARA-робот | scarakins | XYZA | робот | нет — шарнирная кинематика |
| 6-осевая рука | genserkins | XYZABC | робот | нет — шарнирная кинематика |
| Гексапод (платформа Стюарта) | genhexkins | XYZABC | робот | нет — XYZ решаются из длин штанг |
| Линейная дельта | lineardeltakins | XYZ | робот | нет — XYZ решаются из высот кареток |
| Трипод (3-PRS наклонная голова) | ptripodkins | ZAB | робот | нет — свободных X/Y нет |
| Своя конфигурация | trivkins coordinates=XYZ | XYZ | прочее | нет, пока кинематика не описана |
Порода определяется не именем станка и не именем файла, а тем, какой модуль кинематики уезжает в конфигурацию. Совпал — та же порода.
Столбец «программа реза» отвечает только за геометрию. Второе условие — навесное: голова обязана уметь этот процесс. Фрезерная станина с горелкой резать не будет, и никакая кинематика этого не переголосует.
Конструктор — это параметрический тип оборудования: вы задаёте размеры, ход, приводы и навесное, а конфигурация станка собирается из двойника. Зрелость помечена честно: рабочий — ездит на железе каждый день, бета — работает, но вне основной линии, опытный — исследовательский, на цех не выпускался.
Основной класс: три линейные оси, сервоприводы по EtherCAT, шпиндель. На нём платформа ездит каждый день.
Чего не делает. Наклонов и поворотов нет: обработка 2.5D и плоский контур.
DIY и настольный класс (3018, CNC3040) на драйверах DRV8825 / A4988 / TB6600 через параллельный порт. Тот же движок программ, что и у серво-фрезера.
Чего не делает. Шины нет — значит нет и обратной связи привода: положение известно ровно настолько, насколько верны настройки хода.
Trunnion-стол: деталь наклоняется и поворачивается, шпиндель остаётся вертикальным. Под обработку 3+2 — позиционирование поворотных осей и рез в плоскости.
Чего не делает. Непрерывная пятикоординатная обработка сложных поверхностей — не наша игра. Наклонная ГОЛОВА — это другой модуль (xyzac-trt-kins) и другая порода.
Поперечная X и продольная Z, шпиндель с патроном. Класс bench / hobby (Taig, Sherline, mini-lathe 7×14). Есть стол инструментов: резцы точения, торцовки, отрезки, резьбы.
Чего не делает. Оси Y у токарного нет вовсе — и в описании станка её быть не должно.
Плоский портал на ремнях и лазер (диодный или CO₂) через ШИМ. Луч управляется как шпиндель: M3 с числом — мощность, M5 — выключить. Класс K40 и диодных гравёров.
Чего не делает. Оси Z нет — голова с фиксированным фокусом. Стола инструментов нет: сменного инструмента у луча не бывает.
Две компоновки в одном конструкторе: «конусность» — X Y (нижняя направляющая) и U V (смещение верхней) интерполируются, Z установочная; «поворотная» — X Y плюс вращение детали A и наклон B. Подача идёт по зазору.
Чего не делает. Только симуляция: на железе не проверялся. Стола инструментов нет.
Шарнирный промышленный робот. Геометрия задаётся таблицей DH — то есть тот же конструктор обслуживает любую руку 6R, а не только KR16. Пока приводы не назначены, оси виртуальные; назначили серво суставам — рендерится шина.
Чего не делает. Программы реза на нём не пишутся: у шарнирной кинематики нет прямой декартовой оси, и плоский G-code на ней не значит того, что нарисован.
Та же рука 6R, но навесное — горелка MIG/MAG, и в паспорте появляются параметры процесса: подача проволоки, скорость ведения. Отдельной кинематики у него нет и не должно быть.
Чего не делает. То же ограничение, что у руки: движения — да, рез по объёму детали — нет.
Подвижная платформа на шести линейных штангах, полная поза: три перемещения и три поворота. Геометрия (радиусы базы и платформы, разнос пар, высота, ход) задаётся параметрами.
Чего не делает. Замкнутая цепь: в URDF такой механизм не выражается, программы реза недоступны.
Три линейных цилиндра держат головку: синхронно — подача по Z, врозь — наклон. Класс Sprint Z3 / Tricept.
Чего не делает. Модуль кинематики нестандартный: его надо собрать и установить на боксе до первого запуска, в том числе в симуляции. Свободных X и Y у трипода нет.
Платформа на трёх тягах к трём вертикальным кареткам, три степени свободы. Платформа остаётся уровневой — инструмент всегда вертикально. Геометрия — длина тяги и дельта-радиус.
Чего не делает. Не путать с триподом: там голова наклоняется, здесь нет. Замкнутая цепь — те же ограничения, что у гексапода.
Разница не в навесном и не в отрасли, а в том, откуда берётся траектория. Отсюда и правило доступности.
| Род | Кому доступен | Откуда траектория | В каких координатах |
|---|---|---|---|
| Рез (CAD-программа) | только породам, у которых есть решатель под этот процесс | траектория ВЫВОДИТСЯ из объёма детали: карман, контур, сверловка, резьба, фаска, гравировка | координаты ДЕТАЛИ, стол слотов инструмента, смена инструмента |
| Движение (PLC-программа) | ЛЮБОМУ механизму, включая узел автоматики и гексапод | траекторию НАЗЫВАЕТ автор: каждая ось получает своё задание, шаг за шагом | координаты ЯЧЕЙКИ, слотов инструмента нет вовсе |
Станочность — это способность механизма, а не его порода. Станок есть частный случай автоматики. Поэтому гексапод, трипод и шарнирная рука прекрасно программируются движениями — перенос, установка, сварочный проход, — но программу реза на них система не даст: у их кинематики нет решателя под этот процесс, и плоский G-code на них означал бы не то, что нарисовано.
Обратное тоже верно: обычный трёхосевой фрезер доступен роду «движение» наравне с конвейером. Ограничение здесь одностороннее.
Оборудование выбирается ОДИН раз — при создании программы, и внутри лаборатории его больше не переспрашивают. Непригодный станок из списка не исчезает: он показывается с названной причиной («это гексапод: XYZ решаются из длин штанг»), потому что исследовательский запуск иногда нужен, а молчаливый запрет объясняет хуже, чем честная строка.
Всё, что знает станок, живёт в двойнике. Конфигурация для управляющей машины всегда генерируется из него — она производная, а не второй источник правды. Импорт с реального станка засевает двойник, но второй истины не создаёт.
| Что | Значение | Откуда |
|---|---|---|
| Тип оси | линейная или угловая | задаёт человек |
| Границы хода | минимум и максимум в координатах станка | задаёт человек |
| Максимальная скорость и ускорение | мм/мин и мм/с² | задаёт человек |
| Допуск слежения | предельная и минимальная ошибка следования | задаёт человек |
| Люфт | мм, доезжает до станка как компенсация | задаёт человек |
| Направление | инверсия знака оси — геометрия, а не настройка привода | задаёт человек |
| Шаг винта, редуктор, энкодер | физика передачи: мм на оборот, отношение, импульсов на оборот | задаёт человек |
| Импульсов на миллиметр | то самое число, от которого зависит «станок проехал ровно столько» | ВЫВОДИТСЯ, руками не вписывается |
| Источник масштаба | «умолчание стенда» либо «наладка двойника» | называется словом |
| Привязка к приводу | позиция слейва на шине плюс снимок его личности при привязке | приходит из наладки |
| Виртуальная / отключена | ось едет в петле, привязка при этом сохраняется | флаг |
Число «импульсов на миллиметр» руками не вписывается никогда. Это единственное число, от которого зависит «станок проехал ровно столько, сколько сказали», и оно выводится из физики: шаг винта, внешний редуктор, разрешение энкодера. Вводятся причины — считается следствие.
Источник масштаба называется словом, а не выводится из совпадения чисел. Ось, до которой наладчик ещё не дошёл, помечена как «умолчание», даже если её значения верны. Молчание двойника не может значить знание.
Привязка оси к приводу — это личность, а не позиция. При привязке снимается, какой именно привод стоял на этом месте шины (модель, идентификаторы производителя и изделия). Поменяли местами два привода — позиция осталась, машина за ней другая, и такую ось система вести откажется.
Ноль детали станку не принадлежит. Он принадлежит установке заготовки: где лежит деталь — знает установка и смещение нуля, а программа описывает саму деталь от угла болванки. Поэтому одна и та же программа переносится между установками без единой правки.
Правило, к которому платформа сведена: число, описывающее конкретный станок, принадлежит двойнику — ходы и пределы, скорости и ускорения, люфт, масштаб, смещение нуля осей, паспорт шпинделя. Генератор конфигурации такое число печатает, но не знает.
Кинематика отвечает на вопрос «как считаются оси». На вопрос «как эта машина выглядит и из чего состоит» отвечает описание механизма — звенья, шарниры, пределы, точки датчиков: URDF, шарниры, имена, меши.