Сварочный робот KUKA KR16 и двухосевой позиционер (вращение U + наклон V) одним станком LinuxCNC: 8 суставов в одном цикле траектории. Та же рука и горелка, что у «КУКА — сварщик»; ход осей позиционера — типовой, до замера. Без приводов — вирт. оси.
Тип станка — это кинематика и то, что конструктор умеет напечатать; числа экземпляра (ход, скорости, пределы) живут в двойнике конкретного станка.
| Кинематика LinuxCNC | genserkins |
| Координаты | X Y Z A B C U V |
| Оси | X · Y · Z · A · B · C · U · V |
| Рабочая зона, мм | 370 × 190 × 284 |
| Макс. подача | 18 000 мм/мин |
| Обороты головы | нет шпинделя |
| Рабочий орган по умолчанию | Сварочная горелка — MIG/MAG или TIG-горелка: ведёт шов по траектории. Ток, напряжение и газ живут режимами головы, программа выбирает режим по имени. |
| E-STOP · щуп | нет · нет |
| Что печатает конструктор | .ini · .hal · tools.tbl · kuka_kr16_svarschik_pozicioner.tbl |
Шесть блоков карточки одинаковы у всех пород; поля ниже — те, что читает конструктор этого типа станка (имена из реестра, 38 полей).
cartesian_reach_mm · clamp_max_acceleration_mm_s2 · clamp_max_velocity_mm_s · dh_a · dh_alpha_deg · dh_d · dh_theta_offsets_deg · joint_limits_deg · max_joint_acceleration_deg_s2 · max_joint_velocity_deg_s · max_linear_acceleration_mm_s2 · max_linear_velocity_mm_s · positioner_travel_deg · servo_period_us · travel_speed_mm_s
bench_no_gearbox · spindle_max_rpm · wire_feed_m_min
axis_drives · bus_identities · io_coupler_slave
has_probe · io_coupler_modules · machine_inputs · machine_io_channels · machine_outputs
cartesian_rot_limit_deg · effector_kind · effector_tcp_offset_mm · end_effector · headless · home_deg · kinematics_boot · machine_name · seat_point_mm · seat_yaw_deg · simulation_mode · var_file
Эталон породы: род motion. Проходит preflight без предупреждений и отправку без замечаний — иначе порода не настроена.
// КОЛЬЦЕВОЙ ШОВ НА ПОЗИЦИОНЕРЕ: горелка стоит, деталь крутит стол.
// Шов назван на ДЕТАЛИ (кромка трубы у планшайбы), ячейку считает платформа.
const v = param('подача шва', 480); // 8 мм/с профиля горелки
const r = 50; // радиус шва на детали, мм
const k = 30 / Math.SQRT2; // отход 30 мм по оси горелки
const home = [700, 0, 800]; // парковка (место home)
part({ label: 'труба', shape: 'cylinder', size: [100, 100, 100], at: [0, 0, 0], on: 'U' }); // деталь ячейки — та же, что cell_parts
orient({ tilt: 0, turn: 0 });
phase('подход');
table({ turn: 0, tilt: 45 }); // наклон к руке
orient({ part: 'труба', bisect: [[0, 0, 1], 'rim'] }); // биссектриса: лицо планшайбы, стенка трубы
moveTo({ rim: r + k, z: k }, { part: 'труба' });
moveTo({ rim: r, z: 0 }, { part: 'труба', feed: v }); // верх кромки при этой позе стола
phase('шов');
weld({ table: { turn: 360 }, radius: r, feed: v }); // зажечь -> оборот детали -> погасить
phase('отход');
moveTo({ rim: r + k, z: k }, { part: 'труба', feed: v });
moveTo(home); // стол выравнивается из парковки
table({ tilt: 0 });
| операция | движок | слот · Ø | параметры |
|---|---|---|---|
| Кольцевой шов на позиционере | python_motion_path | — | arc_port cell_parts feed_mm_min grasp_from home_abc home_xyz orientation_model path_json |
Сверяется с железом: смены инструмента нет. Все примеры типов станков — одной таблицей.
Руководство «Станки» · Все типы станков и кинематики · Как пишется программа этого рода · От программы к станку · Стенд и железо