Files
cnc_wams/web-rtcp-5axis-sim-plan/docs/linuxcnc-parity-matrix.md

56 lines
4.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# LinuxCNC 对标程序与功能矩阵
本文记录 Web-RTCP 五轴数控仿真界面当前对标的 LinuxCNC 程序、配置文件和功能边界。运行时状态对象为 `linuxCncParityMatrix`,界面在 gmoccapy diagnostics 中显示摘要Node smoke 通过 `tests/node/verify_linuxcnc_parity_matrix.mjs` 持续校验。
## 1. 对标的 LinuxCNC 程序和配置
| 类别 | LinuxCNC 来源 | Web 对标内容 |
| --- | --- | --- |
| XYZAC TRT 配置 | `configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzac-trt.ini` | `xyzac-trt` profile、TRAJ `XYZAC`、INI 解析、项目目录 staging |
| XYZBC TRT 配置 | `configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzbc-trt.ini` | `xyzbc-trt` profile、TRAJ `XYZBC`、INI 解析、项目目录 staging |
| PyVCP/POSTGUI/HAL | `xyzac-trt.xml``xyzbc-trt.xml``switchkins_postgui.hal``xyzac-trt_cmds.hal` | SWITCHKINS 按钮语义、HALUI MDI 命令、`motion.switchkins-type` 映射 |
| remap 子程序 | `remap_subs/428remap.ngc``429remap.ngc``430remap.ngc` | `M428` TCP、`M429` identity、`M430` userk 的 kinstype 切换语义 |
| Vismach Python | `src/hal/user_comps/vismach/xyzac-trt-gui.py``xyzbc-trt-gui.py` | 机床预览层级、关节反馈 pin、刀补/偏置显示语义 |
| Kinematics C 源码 | `src/emc/kinematics/xyzac-trt-kins.c``xyzbc-trt-kins.c``trtfuncs.c``switchkins.c` | 正逆解、TCP/identity/userk 切换、DRO/TCP frame 更新 |
| gmoccapy TRT 示例 | `configs/sim/gmoccapy/non_trivial_kinematics/table-rotary-tilting/xyzac-trt.ini``postgui.hal` | gmoccapy 入口、POSTGUI 工具/主轴 HAL、TRT 示例程序来源 |
| gmoccapy 原生界面 | `src/emc/usr_intf/gmoccapy/gmoccapy.py``share/gmoccapy/gmoccapy.glade`、gmoccapy 图标清单 | 操作台布局、右侧状态入口、按钮颜色/禁用/激活规则、HAL pin 语义 |
| LinuxCNC task/NML | `src/emc/nml_intf/emc.hh``src/emc/task/emctaskmain.cc``src/emc/task/emctask.cc` | E-STOP/POWER/RESET、AUTO/MANUAL/JOG/MDI、RUN/PAUSE/RESUME/STEP/STOP 的互锁 |
| task/HAL/motion 状态 | `src/emc/motion/control.c``src/hal/hal_lib.c` | task cycle、servo cycle、HAL pin 变化、实时轴值反馈边界 |
## 2. 对标的真实五轴 G-code 程序
当前验证程序来源限定为 LinuxCNC 源目录中的五轴程序,不把普通用户文件误标为 LinuxCNC 对标程序:
| 程序 | 用途 |
| --- | --- |
| `demos/xyzac_switchkins.ngc` | XYZAC switchkins 基准程序 |
| `demos/xyzbc_switchkins.ngc` | XYZBC switchkins 基准程序 |
| `demos/boat-xyzac.ngc` | XYZAC TCP 船体程序 |
| `demos/boat-xyzbc.ngc` | XYZBC TCP 船体程序 |
| `demos/impeller-7bl-xyzac.ngc` | XYZAC 叶轮长路径程序 |
| `demos/xyzac_switchkins_test_1.ngc` | M428/M429 多次切换验证 |
| `demos/xyzac_switchkins_test_2.ngc` | TCP/identity 过渡验证 |
| `demos/xyzac_switchkins_test_3.ngc` | switchkins 程序验证覆盖 |
## 3. 已承接的功能
| 功能 | 当前 Web 实现 |
| --- | --- |
| 右侧纵向入口 | `E-STOP``POWER``RESET``AUTO``MANUAL``JOG``MDI``IDENTITY``TCP` 全部建模 |
| 模式互锁 | 未复位急停不能上电;未回零不能 AUTO/MDIAUTO 运行时阻止离开 AUTO、JOG、TCP/IDENTITY 切换 |
| 颜色规则 | emergency/power/reset/mode/identity/tcp 各自有 active、ready、blocked、active-blocked 状态 |
| 项目目录 | 按 profile 生成 `web-rtcp-5axis-sim-plan/machines/<profile>`,保存当前机床 INI、HAL、TBL、NGC/remap 文件 |
| INI 对标 | staged INI 与当前 profile INI 路径和文本比对,暴露 `sourceMatchesProfile``textMatchesLoadedIni` |
| 程序验证 | LinuxCNC interpreter runtime 产出 canonical motion、switchkins 事件、planner sample |
| 实时轴值 | G-code 执行反馈驱动 `axisPose``tcpPose`、DRO、当前行、feed/DTG |
| 预览路径 | Three.js/WebGL 预览程序路径、当前刀具位置、TCP 点和刀轴方向 |
| gmoccapy HAL 语义 | 硬按钮、jog、override、spindle、coolant、tool change、message/tool/user inputs 建模 |
| task/HAL 边界 | 保留 native task/HAL 与硬件实时边界,不把 Web 仿真误标为真实机床控制 |
## 4. 当前边界
- Web 端运行的是浏览器仿真状态机和 WASM/JS runtime不运行原生 GTK `gmoccapy.py`
- `gmoccapy.py`、Glade、Vismach Python 是界面/机床模型/HAL 语义参考,不是浏览器运行时。
- 硬件驱动、实时内核、真实 HAL shared memory、外部 user M 进程和真实 tool DB 不在浏览器内提升为 ready。
- `linuxCncParityMatrix``semanticBoundary` 固定为 `linuxcnc_source_function_parity_matrix_for_browser_simulation_not_hardware_control`