2.1 Модель Machine
Двойник Machine — единственный источник правды о станке. Конфиг LinuxCNC порождается из него при каждом
запуске; импорт со стенда только засевает двойник и второй истины не создаёт. Ниже — схема модели, снятая с самой
модели: 42 полей верхнего уровня и 18 вложенных схем.
Поля верхнего уровня
| поле | тип | обязательно | умолчание |
|---|---|---|---|
id | string | да | — |
name | string | да | — |
profile_id | string | да | — |
token | string | да | — |
online | boolean | — | false |
last_seen_at | string? | — | — |
last_state | object | — | — |
created_at | string | да | — |
notes | string? | — | — |
is_service | boolean | — | false |
description | string? | — | — |
kinematics_template_id | string | — | custom |
kinematics_raw | string? | — | — |
coordinates | string? | — | — |
axes | AxisLimits[] | — | — |
world_axes | AxisLimits[] | — | — |
axis_drives | AxisDrive[] | — | — |
bus_slaves | BusSlave[] | — | — |
spindle | SpindleSpec? | — | — |
end_effector | EndEffector? | — | — |
work_offsets | object? | — | — |
current_setup | MachineSetup? | — | — |
cell_frames | CellFrame[] | — | — |
tools | ToolSpec[] | — | — |
table_size_mm | number[]? | — | — |
units | string | — | mm |
safe_z_mm | number | — | 5 |
plunge_feed_mm_min | number | — | 100 |
tool_setter | ToolSetterSpec? | — | — |
tool_change_mode | string | — | manual |
deenergize_after_program | boolean | — | false |
idle_torque_off_min | integer | — | 10 |
idle_session_off_min | integer | — | 30 |
stand_no_mechanics | boolean | — | false |
allow_motion_without_homing | boolean | — | false |
preferred_run_mode | string? | — | — |
palette_gripper | PaletteGripperSpec? | — | — |
outputs | MachineOutput[]? | — | — |
inputs | MachineInput[]? | — | — |
custom_properties | object | — | — |
mechanism_id | string? | — | — |
current_program_id | string? | — | — |
Тип с ? допускает null. Что двойник ЗНАЕТ (паспорт), что ВЫВОДИТ (функция, а не поле) и что
ОТРАЖАЕТ с железа (позиции, statusword) — три разных класса полей; выводимое в двойнике не хранится.
Вложенные схемы
| схема | поля |
|---|---|
AxisDrive | axis_kind · backlash_mm · disabled · drive_egear_den · drive_egear_num · drive_io · drive_type · dynamics_source · effector_axis_id · enc_cpr · enc_zero · enc_zero_shift_mm · enc_zero_source · enc_zero_stale_reason · enc_zero_stale_ts · enc_zero_ts · ferror_mm · gear_den · gear_num · gravity_loaded · home_is_shared · home_offset_mm · home_sequence · invert · joint_index · lcec_type · lead_mm · max_acceleration_mm_s2 · max_limit_mm · max_velocity_mm_min · min_ferror_mm · min_limit_mm · motor · name · scale_source · servo_limit_margin_mm · slave_name · slave_pid · slave_position · slave_vid · travel_source · type · virtual |
AxisLimits | home_offset_mm · max_acceleration_mm_s2 · max_limit_mm · max_velocity_mm_min · min_limit_mm · name · scale_counts_per_mm |
BusSlave | alias · device_type · kind · last_seen_at · lcec_type · matched_by · model · name · pid · position · present · vendor · vid |
CellFrame | abc · id · label · machine_id · notes · role · source · taught_ts · xyz |
DriveIoBinding | direction · invert · note · port · role |
EffectorBinding | address · kind · max_value · min_value · notes · scale · transport · units · value_off · value_on · verb |
EffectorProfile | material · name · notes · values |
EndEffector | bindings · config_id · kind · label · needs · needs_servos · notes · params · profiles · program_id · signals · spindles · verbs |
Fixture | clamp_output · closed_input · effector_config_id · kind |
MachineInput | active_low · kind · name · pin · port |
MachineOutput | kind · name · pin · port · trigger |
MachineSetup | created_at · cut_through_mm · fixture · id · material_id · measured_at · notes · origin_mm · sacrificial_mm · skew_checked_at · skew_deg · stock_size_mm · stock_source · updated_at · z_offset_mm · zero |
MotorPassport | encoder_bits · max_rpm · model · motor_code · note · power_w · rated_current_a · rated_rpm · rated_torque_nm · source · stated_at |
PaletteGripperSpec | engage_pin · max_capacity_kg · notes · palette_standard_id · pickup_time_s · release_pin · sensor_engaged_pin · travel_range_mm · type |
SetupZero | contact_source · corner · touch_diameter_mm |
SpindleSpec | er_collet · gear_den · gear_num · gear_source · has_vfd · max_rpm · min_rpm · motor · power_w · ramp_s · rpm_source · slave_pid · slave_position · slave_vid · vel_gain |
ToolSetterSpec | enabled · feed_mm_min · max_probe_mm · x_mm · y_mm · z_safe_mm |
ToolSpec | a_offset_deg · b_offset_deg · back_angle_deg · c_offset_deg · catalog_tool_id · diameter_mm · flutes · front_angle_deg · length_mm · material · measured_at · measured_by · name · nose_radius_mm · orientation · pocket · tool_id · type · u_offset_mm · v_offset_mm · w_offset_mm · x_offset_mm |
Три схемы, на которых держится путь программы: MachineSetup — где лежит заготовка и ноль детали;
ToolSpec — слот стола с вылетом и его происхождением; AxisDrive — привязка оси к приводу и
числа, которые уезжают в .ini.
Порождено из кода. Источник:
backend/src/aicnc/models/machine.py :: Machine.model_json_schema()Пересборка:
bash /opt/synctwin/site/scripts/refresh-integrator.sh · снято 2026-09-11T20:07:30+00:00Руками на этой странице написано: вводный абзац и пояснение к трём схемам