172 lines
26 KiB
Markdown
172 lines
26 KiB
Markdown
# 14-04 125 项逐项源码证据绑定表
|
||
|
||
## 定位
|
||
|
||
本文件落实 `INT-013` 和 `W04-EVID-001`:把 `04基于Web的LinuxCNC兼容数控仿真平台.txt` 中逐行列出的 125 个功能项绑定到 LinuxCNC 源码/资产、`wasm-port` 最小 gate、`web-rtcp-5axis-xyzbc-trt-sim-plan` 代表 Web 应用证据入口。
|
||
|
||
严格口径:
|
||
|
||
- `04` 的状态列只作为目标声明,不直接作为通过结论。
|
||
- “严格状态”为本 working 对该项的当前归类:已有证据、条件通过或待补逐项证据。
|
||
- 若某项属于实时内核、外部进程、动态加载、完整 NML/process topology 或硬件边界,即使 04 写为通过,也必须保持条件通过或待补证据。
|
||
|
||
## 通用 gate
|
||
|
||
| 层级 | 最小 gate |
|
||
| --- | --- |
|
||
| LinuxCNC 基线 | `cd wasm-port && ./tools/verify_upstream_baseline.sh` |
|
||
| vendor/source 同步 | `cd wasm-port && ./tools/verify_vendor_sync.sh` |
|
||
| 禁止自研 CNC 语义 | `cd wasm-port && ./tools/verify_no_standalone_cnc_semantics.sh` |
|
||
| Native 核心 | `cd wasm-port && ./tests/native/verify_native_probes.sh` |
|
||
| Native 示例/配置 | `cd wasm-port && ./tests/native/verify_nc_files.sh && ./tests/native/verify_sim_configs.sh` |
|
||
| WASM 核心 | `cd wasm-port && ./tests/wasm/node/verify_ini_wasm.sh && ./tests/wasm/node/verify_interp_wasm.sh && ./tests/wasm/node/verify_tp_wasm.sh` |
|
||
| WASM 配置/运动学/task-HAL | `cd wasm-port && ./tests/wasm/node/verify_sim_configs_wasm.sh && ./tests/wasm/node/verify_kinematics_wasm.sh && ./tests/wasm/node/verify_task_hal_wasm.sh` |
|
||
| OPFS/UI | `cd wasm-port && ./tests/opfs/node/verify_file_service.sh && ./tests/ui/node/verify_ui_node_smokes.sh` |
|
||
| 浏览器核心 | `cd wasm-port && ./tests/browser/verify_ini_panel_browser.sh && ./tests/browser/verify_interp_browser.sh` |
|
||
| XYZBC TRT 代表应用 | `npm --prefix web-rtcp-5axis-xyzbc-trt-sim-plan/app run smoke:node`、`smoke:browser`、`smoke:buttons`、`evidence:web`、`evidence:compare` |
|
||
|
||
## 逐项绑定表
|
||
|
||
| 04 项 | 功能项 | LinuxCNC 源码/资产归属 | 最小 gate/evidence | 严格状态 |
|
||
| --- | --- | --- | --- | --- |
|
||
| 1.1 | 快速定位 G0 | `src/emc/rs274ngc/interp_convert.cc`、`src/emc/task/emccanon.cc`、`nc_files` | `verify_interp_wasm.sh`、`verify_nc_files.sh`、`verify_interp_browser.sh` | 已有核心证据 |
|
||
| 1.2 | 直线插补 G1 | `src/emc/rs274ngc/interp_convert.cc`、`src/emc/tp`、`nc_files` | `verify_interp_wasm.sh`、`verify_tp_wasm.sh` | 已有核心证据 |
|
||
| 1.3 | 顺圆弧 G2 | `src/emc/rs274ngc/interp_arc.cc`、`interp_convert.cc`、`nc_files` | `verify_interp_wasm.sh`、`verify_interp_browser.sh` | 已有核心证据 |
|
||
| 1.4 | 逆圆弧 G3 | `src/emc/rs274ngc/interp_arc.cc`、`interp_convert.cc`、`nc_files` | `verify_interp_wasm.sh`、`verify_interp_browser.sh` | 已有核心证据 |
|
||
| 1.5 | 平面选择 G17-G19 | `src/emc/rs274ngc/interp_convert.cc`、`interp_internal.hh` | `verify_interp_wasm.sh` | 已有核心证据 |
|
||
| 1.6 | 英制/公制 G20/G21 | `src/emc/rs274ngc/interp_convert.cc`、`tests/interp` | `verify_native_probes.sh`、`verify_interp_wasm.sh` | 已有核心证据 |
|
||
| 1.7 | 绝对/增量 G90/G91 | `src/emc/rs274ngc/interp_convert.cc`、`tests/interp` | `verify_interp_wasm.sh` | 已有核心证据 |
|
||
| 1.8 | 进给模式 G93/G94/G95 | `src/emc/rs274ngc/interp_convert.cc`、`tests/interp` | `verify_interp_wasm.sh` | 已有核心证据 |
|
||
| 1.9 | 坐标系 G54-G59.3 | `src/emc/rs274ngc/rs274ngc_pre.cc`、`interp_convert.cc`、parameter file | `verify_interp_wasm.sh`、`verify_file_service.sh` | 已有核心证据 |
|
||
| 1.10 | 坐标偏移 G92 | `src/emc/rs274ngc/interp_convert.cc`、parameter persistence | `verify_interp_wasm.sh` | 已有核心证据 |
|
||
| 1.11 | 钻孔循环 G81 | `src/emc/rs274ngc/interp_cycles.cc`、`nc_files` | `verify_interp_wasm.sh`、`verify_nc_files.sh` | 已有核心证据 |
|
||
| 1.12 | 深孔啄钻 G83 | `src/emc/rs274ngc/interp_cycles.cc`、`nc_files` | `verify_interp_wasm.sh`、`verify_nc_files.sh` | 已有核心证据 |
|
||
| 1.13 | 固定循环 G82/G84-G89 | `src/emc/rs274ngc/interp_cycles.cc`、`tests/interp` | `verify_interp_wasm.sh` | 已有核心证据 |
|
||
| 1.14 | 取消循环 G80 | `src/emc/rs274ngc/interp_convert.cc`、`interp_cycles.cc` | `verify_interp_wasm.sh` | 已有核心证据 |
|
||
| 1.15 | 车削粗车 G71 | `src/emc/rs274ngc/interp_g7x.cc`、lathe tests/assets | `verify_interp_wasm.sh` | 已有核心证据 |
|
||
| 1.16 | 车削精车 G70 | `src/emc/rs274ngc/interp_g7x.cc`、lathe tests/assets | `verify_interp_wasm.sh` | 已有核心证据 |
|
||
| 1.17 | 螺纹车削 G76 | `src/emc/rs274ngc/interp_convert.cc`、`tests/interp`、lathe assets | `verify_interp_wasm.sh` | 已有核心证据 |
|
||
| 1.18 | 刀径左补 G41 | `src/emc/rs274ngc/interp_convert.cc`、`tests/ccomp` | `verify_interp_wasm.sh` | 已有核心证据 |
|
||
| 1.19 | 刀径右补 G42 | `src/emc/rs274ngc/interp_convert.cc`、`tests/ccomp` | `verify_interp_wasm.sh` | 已有核心证据 |
|
||
| 1.20 | 取消刀补 G40 | `src/emc/rs274ngc/interp_convert.cc`、`tests/ccomp` | `verify_interp_wasm.sh` | 已有核心证据 |
|
||
| 1.21 | 刀长补偿 G43 | `src/emc/rs274ngc/interp_convert.cc`、tool table | `verify_interp_wasm.sh` | 已有核心证据 |
|
||
| 1.22 | 取消刀长 G49 | `src/emc/rs274ngc/interp_convert.cc` | `verify_interp_wasm.sh` | 已有核心证据 |
|
||
| 1.23 | 子程序调用 M98 | `src/emc/rs274ngc/interp_o_word.cc`、subroutine tests | `verify_interp_wasm.sh` | 已有核心证据 |
|
||
| 1.24 | 子程序返回 M99 | `src/emc/rs274ngc/interp_o_word.cc`、subroutine tests | `verify_interp_wasm.sh` | 已有核心证据 |
|
||
| 1.25 | O 字子程序 | `src/emc/rs274ngc/interp_o_word.cc`、`tests/interp/oword` | `verify_interp_wasm.sh` | 已有核心证据 |
|
||
| 1.26 | 条件分支 IF | `src/emc/rs274ngc/interp_o_word.cc`、parameter tests | `verify_interp_wasm.sh` | 已有核心证据 |
|
||
| 1.27 | 循环 WHILE | `src/emc/rs274ngc/interp_o_word.cc`、O-word tests | `verify_interp_wasm.sh` | 已有核心证据 |
|
||
| 1.28 | 无条件跳转 GOTO | `src/emc/rs274ngc/interp_o_word.cc`、line-number tests | `verify_interp_wasm.sh` | 已有核心证据 |
|
||
| 1.29 | 局部参数 #1-#30 | `src/emc/rs274ngc/interp_internal.*`、parameter tests | `verify_interp_wasm.sh` | 已有核心证据 |
|
||
| 1.30 | 全局参数 #500-#599 | `src/emc/rs274ngc/rs274ngc_pre.cc`、parameter file | `verify_interp_wasm.sh`、`verify_file_service.sh` | 已有核心证据 |
|
||
| 1.31 | 系统参数 #5400-#5399 | `src/emc/rs274ngc/interp_namedparams.cc`、system parameter handling | `verify_interp_wasm.sh` | 已有核心证据 |
|
||
| 1.32 | 主轴正转 M3 | `src/emc/rs274ngc/interp_convert.cc`、`src/emc/task/emccanon.cc` | `verify_interp_wasm.sh`、`verify_task_hal_wasm.sh` | 已有核心证据 |
|
||
| 1.33 | 主轴反转 M4 | `src/emc/rs274ngc/interp_convert.cc`、`src/emc/task/emccanon.cc` | `verify_interp_wasm.sh`、`verify_task_hal_wasm.sh` | 已有核心证据 |
|
||
| 1.34 | 主轴停止 M5 | `src/emc/rs274ngc/interp_convert.cc`、`src/emc/task/emccanon.cc` | `verify_interp_wasm.sh`、`verify_task_hal_wasm.sh` | 已有核心证据 |
|
||
| 1.35 | 恒线速 G96 | `src/emc/rs274ngc/interp_convert.cc`、lathe spindle tests | `verify_interp_wasm.sh` | 已有核心证据 |
|
||
| 1.36 | 取消恒线速 G97 | `src/emc/rs274ngc/interp_convert.cc`、lathe spindle tests | `verify_interp_wasm.sh` | 已有核心证据 |
|
||
| 1.37 | 等待输入 M66 | `src/emc/rs274ngc/interp_convert.cc`、HAL named parameter boundary | `verify_interp_wasm.sh`、HAL adapter evidence | 条件通过:真实 HAL 输入为虚拟边界 |
|
||
| 1.38 | M66 超时标志 #5399 | `src/emc/rs274ngc/interp_convert.cc`、parameter update path | `verify_interp_wasm.sh` | 条件通过:真实 HAL 输入为虚拟边界 |
|
||
| 1.39 | 探测循环 G38.x | `src/emc/rs274ngc/interp_convert.cc`、probe tests | `verify_interp_wasm.sh` | 条件通过:物理探针为虚拟边界 |
|
||
| 1.40 | 坐标旋转 G10 L2 Pn R | `interp_convert.cc` 的 `rotation_xy`/`SET_XY_ROTATION`,LinuxCNC rotation/G10 tests | `15`、`34`、`verify_interp_wasm.sh` | 已修订并通过:设置 G5x 坐标系 Z 轴旋转,45/-45/90 度 canonical evidence 已有 |
|
||
| 1.41 | 取消坐标旋转 G10 L2 Pn R0 | 同一 `rotation_xy`/`SET_XY_ROTATION` source-owned 路径 | `15`、`34`、`verify_interp_wasm.sh` | 已修订并通过:以 R0 清除坐标旋转;不再宣称 G51.1/G50.1 镜像 |
|
||
| 2.1 | 程序加载 | `src/emc/task/emctaskmain.cc`、`src/emc/task/emctask.cc` | `verify_task_hal_wasm.sh`、Web task evidence、`22-04-Full-Process-Realtime-Runtime-Proof实现缺口复核.md` | 条件通过:Web/WASM task runtime 可晋级;standalone runtime 仍非完整 native process topology |
|
||
| 2.2 | 模态指令保持 | `src/emc/rs274ngc/modal_state.*`、`emctaskmain.cc` | `verify_interp_wasm.sh`、`verify_task_hal_wasm.sh` | 已有核心证据 |
|
||
| 2.3 | 非模态指令 | `src/emc/rs274ngc/interp_convert.cc`、modal state | `verify_interp_wasm.sh` | 已有核心证据 |
|
||
| 2.4 | 暂停 Pause | `src/emc/task/taskintf.cc`、`emctask.cc` | `verify_task_hal_wasm.sh`、button/browser smoke | 条件通过:source-anchored standalone boundary |
|
||
| 2.5 | 继续 Resume | `src/emc/task/taskintf.cc`、`emctask.cc` | `verify_task_hal_wasm.sh`、button/browser smoke | 条件通过:source-anchored standalone boundary |
|
||
| 2.6 | 单步执行 | `src/emc/task/taskintf.cc`、`emctask.cc` | `verify_task_hal_wasm.sh`、button/browser smoke | 条件通过:source-anchored standalone boundary |
|
||
| 2.7 | 急停 Abort | `src/emc/task/taskintf.cc`、`emctask.cc` | task-HAL/button gate、`25-04-Host-Runtime-Opt-In-Promotion-Evidence-Gate落地蓝图.md` | 条件通过:Web/task abort 可验收;真实硬件 estop 不在 process opt-in 覆盖范围,保持 Blocked |
|
||
| 2.8 | 进给倍率 | `src/emc/task/emctaskmain.cc`、NML status/command types | `verify_task_hal_wasm.sh`、Web evidence | 条件通过:full NML/topology 未晋级 |
|
||
| 2.9 | 主轴倍率 | `src/emc/task/emctaskmain.cc`、spindle command/status | `verify_task_hal_wasm.sh`、Web evidence | 条件通过:真实 spindle IO 为虚拟边界 |
|
||
| 2.10 | 可选停止 M1 | `src/emc/rs274ngc/interp_convert.cc`、`emctaskmain.cc` | `verify_interp_wasm.sh`、`verify_task_hal_wasm.sh` | 条件通过:UI/task setting 需 browser evidence |
|
||
| 2.11 | 程序结束 M2/M30 | `src/emc/rs274ngc/interp_convert.cc`、task rewind behavior | `verify_interp_wasm.sh`、`verify_task_hal_wasm.sh` | 已有核心证据 |
|
||
| 2.12 | 程序队列管理 | `src/emc/task/emctaskmain.cc`、`interp_queue.*` | `verify_task_hal_wasm.sh`、`22-04-Full-Process-Realtime-Runtime-Proof实现缺口复核.md` | 条件通过:Web/WASM task queue 可作为 simulation proof;完整 NML/queue process topology 未晋级 |
|
||
| 3.1 | 轨迹规划 TP | `src/emc/tp/tp.c`、`tc.c` | `verify_tp_wasm.sh` | 已有核心证据 |
|
||
| 3.2 | 前瞻规划 | `src/emc/tp/tp.c`、`tcq.c` | `verify_tp_wasm.sh` | 已有核心证据 |
|
||
| 3.3 | 插补器 TC | `src/emc/tp/tc.c` | `verify_tp_wasm.sh` | 已有核心证据 |
|
||
| 3.4 | 多轴同步插补 | `src/emc/motion/control.c`、`src/emc/tp` | `verify_tp_wasm.sh`、Web path comparison | 条件通过:motion process 为 standalone boundary |
|
||
| 3.5 | 软限位 | `src/emc/motion/control.c`、axis/joint limit config | `verify_task_hal_wasm.sh`、`30` | L3 条件通过:`motion_soft_limit_drives_task_error=ok` 负例 runtime proof 通过 |
|
||
| 3.6 | 跟随误差监控 | `src/emc/motion/control.c`、FERROR config | `verify_motion_ferror_mpg.mjs`、`31` | L3 条件通过:动态 limit=0.5 下 0.4 pass/0.6 fault 成对 proof 通过 |
|
||
| 3.7 | 回零序列 | `src/emc/motion/homing.c` | `verify_task_hal_wasm.sh`、button smoke | 条件通过:真实 home switch 为虚拟边界 |
|
||
| 3.8 | 连续点动 | `src/emc/motion/control.c`、taskintf jog commands | `verify_task_hal_wasm.sh`、button smoke | 条件通过:输入设备为虚拟边界 |
|
||
| 3.9 | 增量点动 | `src/emc/motion/control.c`、taskintf jog commands | `verify_task_hal_wasm.sh`、button smoke | 条件通过:输入设备为虚拟边界 |
|
||
| 3.10 | 手轮脉冲响应 | `src/emc/motion/control.c`、HAL jog pins | `verify_motion_ferror_mpg.mjs`、`31` | L3 条件通过:joint jog pin、enable、scale、正反 count delta 位置响应通过;真实 MPG 硬件仍 Blocked |
|
||
| 3.11 | 电子齿轮 | `src/emc/motion/control.c`、spindle sync paths | interp threading/G95 fixtures、multi-spindle gate、`30` | 条件通过:G33/G33.1/G95 canonical sync 与 `$1` 选择通过;真实 encoder closed loop 仍 Blocked |
|
||
| 4.1 | bit 类型引脚 | `src/hal/hal.h`、`hal_lib.c` | `verify_hal_runtime.sh` | 已有核心证据 |
|
||
| 4.2 | float 类型引脚 | `src/hal/hal.h`、`hal_lib.c` | `verify_hal_runtime.sh` | 已有核心证据 |
|
||
| 4.3 | s32/u32 类型引脚 | `src/hal/hal.h`、`hal_lib.c` | `verify_hal_runtime.sh` | 已有核心证据 |
|
||
| 4.4 | 信号连接 net | `src/hal/hal_lib.c`、`halcmd_commands.cc` | `verify_hal_runtime.sh` | 已有核心证据 |
|
||
| 4.5 | 多驱动禁止 | `src/hal/hal_lib.c` signal/link validation | `verify_hal_runtime.sh` | 已有核心证据 |
|
||
| 4.6 | 参数系统 setp | `src/hal/hal_lib.c`、`halcmd_commands.cc` | `verify_hal_runtime.sh` | 已有核心证据 |
|
||
| 4.7 | and2 组件 | `src/hal/components/and2.comp` | `24`、`26`、`27-04-HAL-Component-Precompile-Runtime-Gate实施记录.md`、component gates | L3 条件通过:锁定 halcompile 派生、manifest、4 组 truth table、thread/net 和 Web/WASM 真实执行通过 |
|
||
| 4.8 | or2 组件 | `src/hal/components/or2.comp` | `24`、`26`、`27-04-HAL-Component-Precompile-Runtime-Gate实施记录.md`、component gates | L3 条件通过:锁定 halcompile 派生、manifest、4 组 truth table、thread/net 和 Web/WASM 真实执行通过 |
|
||
| 4.9 | not 组件 | `src/hal/components/not.comp` | `24`、`26`、`27-04-HAL-Component-Precompile-Runtime-Gate实施记录.md`、component gates | L3 条件通过:锁定 halcompile 派生、manifest、2 组 truth table、thread/net 和 Web/WASM 真实执行通过 |
|
||
| 4.10 | mux2 组件 | `src/hal/components/mux2.comp` | `24`、`26`、`27-04-HAL-Component-Precompile-Runtime-Gate实施记录.md`、Web component gate | L3 条件通过:`names=`、`sel` 两路、servo-step 和 XYZAC `J0_mux` 代表配置执行通过 |
|
||
| 4.11 | scale 组件 | `src/hal/components/scale.comp` | `24`、`26`、`27-04-HAL-Component-Precompile-Runtime-Gate实施记录.md`、Web component gate | L3 条件通过:三组浮点公式/容差、servo-step 和 XYZAC `rpm_rps` 代表配置执行通过 |
|
||
| 4.12 | servo-thread 调度 | `src/hal/components/threads.c`、motion servo cycle | HAL/task gates、`22`、`25-04-Host-Runtime-Opt-In-Promotion-Evidence-Gate落地蓝图.md` | 条件通过:virtual HAL thread 可验收;三个 process probe 不覆盖 Linux realtime,`hostRealtimeKernel=false` 必须保留 |
|
||
| 4.13 | HAL Scope | `src/hal/utils/scope.c`、`scope_rt.c`、`scope_shm.h`、native `halscope` UI/process | `23`、`28-04-HAL-Meter-Scope-JSON-Evidence-Gate实施记录.md`、scope/Web compare gate | L3 条件通过:1ms/多通道变化 waveform、trigger、source reference 和 Web compare 通过;原生 RT/GTK halscope 未运行 |
|
||
| 4.14 | HAL Meter | native `halmeter`、`src/hal/utils/meter.c`、`docs/src/man/man1/halmeter.1.adoc` | `23`、`28-04-HAL-Meter-Scope-JSON-Evidence-Gate实施记录.md`、meter/Web compare gate | L3 条件通过:pin/signal/parameter 当前值、类型、连接和 source reference JSON 通过;原生 GTK halmeter 未运行 |
|
||
| 4.15 | halcmd 命令行 | `src/hal/utils/halcmd_commands.cc` | `verify_hal_runtime.sh` | 条件通过:交互 shell 由 Web/adapter 替代 |
|
||
| 4.16 | loadrt 加载组件 | `src/hal/hal_lib.c`、RTAPI/module loading | `24`、`27-04-HAL-Component-Precompile-Runtime-Gate实施记录.md`、component blocked gate | 条件通过/Blocked:五组件 allowlist factory、`names/count`、`addf/servo-step` 已执行;未知组件和任意运行时动态模块加载仍阻塞 |
|
||
| 5.1 | 双通道并行 | LinuxCNC 单 task 为单 `pinterp`/`interp_list`;Web 使用独立 interpreter WASM modules | `16`、`35`、three-session interpreter gate | multi-session 条件通过:三个独立解释器实例并发创建并执行;不宣称单 task 内建多通道 |
|
||
| 5.2 | 三实例并行 | LinuxCNC 单 task 保持单解释器;Web 以独立 simulation store/session 承载多实例 | `16`、`34`、`verify_session_override_gantry_evidence.mjs` | multi-session 条件通过:三个独立 Web session 的 feed/spindle override 隔离通过 |
|
||
| 5.3 | 通道同步握手 | M62-M68/M66 canonical/HAL synchronization;上层实例编排 | `16`、`35`、`41`、three-session/User-M gate | multi-session 条件通过:P1/P2/P3 canonical output 独立;M128/M129 Web/WASM handler 已执行;任意宿主 User-M 仍锁定 |
|
||
| 5.4 | 独立倍率控制 | task/traj override 为全局 traj scale;spindle scale 按主轴而非通道 | `16`、`34`、`verify_session_override_gantry_evidence.mjs`、`30` | multi-session 条件通过:三个 Web session 的 feed/spindle override 隔离通过;非单 task 多通道 |
|
||
| 5.5 | 独立坐标系 | 三 interpreter modules、G10/G55/G56/G57、`rotation_xy` | `16`、`35`、three-session G5x gate | multi-session 条件通过:P2/P3/P4 与 10/20/30° rotation 独立且无跨实例泄漏 |
|
||
| 6.1 | trivkins | `src/emc/kinematics/trivkins.c` | `verify_kinematics_wasm.sh`、native probes | 已有核心证据 |
|
||
| 6.2 | 旋转轴 WRAPPED_ROTARY | `trivkins.c`、axis/joint config handling | kinematics gates、sim config gates | 已有核心证据 |
|
||
| 6.3 | 龙门双驱 | `configs/sim/axis/gantry/gantry_mm.ini/.hal` | vendor gate、Web gantry evidence、`30` | L1/L4 条件通过:XYYZ、Y 双 joint、同步 home 和双 feedback net 代表配置通过 |
|
||
| 6.4 | RTCP 刀尖跟随 | `xyzbc-trt-kins.c`、`trtfuncs.c`、switchkins/remap | `verify_kinematics_wasm.sh`、`evidence:compare` | 已有代表应用证据 |
|
||
| 6.5 | 自定义运动学 | `src/emc/kinematics` module interface | `verify_kinematics_wasm.sh`、`19-04动态加载与预编译Manifest复核.md` | 条件通过:列入 `source-manifest` 的预编译 kinematics 已有 WASM gate;运行时自定义加载仍 Blocked |
|
||
| 6.6 | 并联运动学 | `genhexkins.c`、`genserkins.c`、`pumakins.c`、`pentakins.c` 等 | `verify_kinematics_wasm.sh`、`19-04动态加载与预编译Manifest复核.md` | 条件通过:`genhex`/`genser`/`puma`/`pentakins` 等预编译 probe 已有;具体并联机床/profile 需单独 proof |
|
||
| 7.1 | 主轴启停 M3/M4/M5 | `src/emc/rs274ngc/interp_convert.cc`、`emccanon.cc` | `verify_interp_wasm.sh`、task/HAL gates | 已有核心证据 |
|
||
| 7.2 | 主轴速度 S 指令 | `src/emc/rs274ngc/interp_convert.cc`、spindle command path | `verify_interp_wasm.sh` | 已有核心证据 |
|
||
| 7.3 | 主轴定向 M19 | `interp_convert.cc` orient/wait path、`m-code.adoc`,M3/M4/M5 清除定向 | `15`、`34`、`verify_interp_wasm.sh` | 已修订:只声明 LinuxCNC M19 定向,不再宣称 M18 速度模式 |
|
||
| 7.4 | 多主轴选择 `$` | LinuxCNC `read_dollar`、`interp_convert.cc`、`[TRAJ] SPINDLES` | `verify_multispindle_dollar.mjs`、interp gate、`30` | L3 通过:WASM wrapper 读取 SPINDLES=2,spindle 1 的 speed/start/G95/stop canonical 通过 |
|
||
| 7.5 | 自动换刀 T/M6 | `src/emc/tooldata`、`src/emc/iotask`、interpreter tool commands | interp/tool DB gates、`25-04-Host-Runtime-Opt-In-Promotion-Evidence-Gate落地蓝图.md` | 条件通过:Web tool state 可验收;真实换刀 IO/native DB_PROGRAM 需独立 host/hardware evidence |
|
||
| 7.6 | 刀具表管理 | `src/emc/tooldata/tooldata_common.cc`、tool table files | `verify_interp_wasm.sh`、tool DB gates | 已有核心证据 |
|
||
| 7.7 | 刀具表持久化 | `tooldata_common.cc`、OPFS bridges | `verify_file_service.sh`、tool table OPFS evidence | 已有核心证据 |
|
||
| 8.1 | A/C 轴点动 | `xyzac-trt.ini` 为 XYZAC;默认代表应用 `xyzbc-trt.ini` 为 XYZBC | `18-04五轴范围差异与代表应用复核.md`、profile boundary gate | 条件通过:默认代表应用为 B/C;A/C 需走 XYZAC profile gate |
|
||
| 8.2 | A 轴限位 | `xyzac-trt.ini` `[AXIS_A] MIN_LIMIT=-100 MAX_LIMIT=50` | `18`、`34`、sim-config/profile gate | 已修订:绑定真实 XYZAC A 轴范围,不再把 Z 轴 ±120 或 XYZAB 范围误写为 A 轴 |
|
||
| 8.3 | A 轴回卷旋转 | 上游 `configs/sim/axis/wrapped_rotary/wrapped_rotary.ini` 的 `AXIS_A WRAPPED_ROTARY=1` | `18`、`35`、INI parser/vendor gate | 已修订并通过:source manifest/vendor 与结构化 `wrappedRotary=true` 断言通过 |
|
||
| 8.4 | RTCP 刀偏输入 G43.1 | interpreter dynamic TLO 与预编译 TRT kinematics 边界 | `15`、`34`、kinematics gates、evidence compare | 已修订:G43.1 作为动态刀偏输入,RTCP 由 kinematics/switchkins 提供;不声明 G43.4 |
|
||
| 8.5 | 取消刀长偏置 G49 | interpreter TLO cancel 与 TRT kinematics | `15`、`34`、kinematics gates、evidence compare | 已修订:只声明取消 RTCP 相关工具偏置输入,不把 G49 单独等同于关闭运动学 |
|
||
| 8.6 | 五轴联动插补 | `xyzbc-trt-kins.c`、TP/task path、`xyzbc_switchkins.ngc`、`boat-xyzbc.ngc` | `verify_kinematics_wasm.sh`、`evidence:compare`、`18-04五轴范围差异与代表应用复核.md` | 已有 XYZBC 代表应用证据;不得跨 profile 宣称全部五轴族 |
|
||
| 8.7 | 斜面钻孔 | fixed cycles plus rotary kinematics | `verify_fiveaxis_inclined_drilling.mjs`、`30` | L3 条件通过:XYZAC A/C 定位后 G81 feed/retract canonical 姿态保持通过 |
|
||
| 8.8 | 曲面加工 | 上游 `boat-xyzbc.ngc`、`boat-xyzac.ngc` 五轴连续刀路 | `18`、`34`、program-case/staging/run gates | 已修订并条件通过:绑定现有上游曲面代表程序,不再引用不存在的 `sphere.ngc` |
|
||
| 8.9 | 叶轮加工 | `impeller-7bl-xyzac.ngc`、XYZAC/gmoccapy profile evidence | `verify_impeller_feed_task_hal_run.mjs`、`verify_real_linuxcnc_5axis_program_cases.mjs`、`18-04五轴范围差异与代表应用复核.md` | 条件通过:叶轮代表程序存在;不是默认 XYZBC profile |
|
||
| 8.10 | 旋转轴进给率 | canonical angular distance、G93 feed、XYZAC INI angular limit | `35`、impeller Task-HAL/timing gate | 条件通过:4066 旋转段公式通过,6 段受限;请求峰值 319782.84、实际峰值/INI 上限均为 1800 deg/min |
|
||
| 9.1 | INI 文件读取 | `src/emc/ini/inifile.cc` | `verify_ini_wasm.sh`、browser INI panel | 已有核心证据 |
|
||
| 9.2 | HAL 文件加载 | HAL parser/model, sim config HAL files | sim-config gates、HAL runtime gates | 条件通过:真实 HAL process/full loadusr 为边界 |
|
||
| 9.3 | G 代码加载 | interpreter file open/read path、OPFS program files | `verify_interp_wasm.sh`、OPFS/browser gates | 已有核心证据 |
|
||
| 9.4 | 刀具表读写 | `tooldata_common.cc`、OPFS tool bridge | tool DB gates、OPFS gates | 已有核心证据 |
|
||
| 9.5 | 参数持久化 | `rs274ngc_pre.cc`、parameter file bridge | interp/OPFS gates | 已有核心证据 |
|
||
| 9.6 | 多配置目录 | `configs/sim` inventory、OPFS path model | `verify_sim_configs_inventory_wasm.sh`、browser session gates | 已有核心证据 |
|
||
| 10.1 | 3D 刀路显示 | AXIS/Vismach reference, Web scene | `xyzbc-trt` browser smoke/evidence | 已有代表应用证据 |
|
||
| 10.2 | XY/XZ/YZ/3D 视图 | AXIS view behavior reference | browser smoke/button view evidence | 已有代表应用证据 |
|
||
| 10.3 | 绝对坐标显示 | LinuxCNC status/task/motion snapshot | UI node/browser evidence | 已有代表应用证据 |
|
||
| 10.4 | 相对坐标显示 | LinuxCNC status/task/motion snapshot | UI node/browser evidence | 已有代表应用证据 |
|
||
| 10.5 | 机床坐标显示 | LinuxCNC G53/machine coordinate status | UI node/browser evidence | 已有代表应用证据 |
|
||
| 10.6 | HAL 信号监视 | HAL pin/signal status、gmoccapy HAL pin model | `28`、Web evidence/compare | L3 条件通过:HAL model 与 meter 三类结构化当前值均通过 |
|
||
| 10.7 | HAL Scope | native `halscope` reference、`src/hal/utils/scope_rt.c`、`scope_shm.h` | `28`、Web waveform evidence/compare | L3 条件通过:结构化 waveform 数据合同通过;独立 L5 交互 Scope UI 可继续增强 |
|
||
| 10.8 | 急停按钮 | AXIS/task state behavior、task/HAL runtime | button smoke、task status evidence | 已有代表应用证据 |
|
||
| 10.9 | 启动/暂停/单步 | AXIS/task state behavior、taskintf | button smoke、task status evidence | 已有代表应用证据 |
|
||
| 10.10 | 倍率旋钮 | task override status/commands | UI/button/evidence gates | 已有代表应用证据 |
|
||
| 10.11 | MDI 命令行 | interpreter MDI/task queue path | UI/browser/evidence gates | 已有代表应用证据 |
|
||
|
||
## 当前缺口汇总
|
||
|
||
| 类别 | 具体项 | 处理要求 |
|
||
| --- | --- | --- |
|
||
| 04 语法口径已修订 | 1.40、1.41、6.4、7.3、8.4、8.5 | 详见 `15`、`34`;已改为 G10/G5x rotation、M19、TRT kinematics 与 G43.1/G49 刀偏边界,不再宣称不存在的指令语义 |
|
||
| full-process / realtime 已实现缺口复核 | 2.1、2.4-2.12、3.4-3.11、4.12 | 详见 `22-04-Full-Process-Realtime-Runtime-Proof实现缺口复核.md`;Web/WASM `linuxcnc_task_motion_hal_wasm_simulation_runtime` 可按 gate 晋级,宿主实时内核、硬件驱动、完整 native process topology 和任意宿主外部进程继续条件通过或 Blocked |
|
||
| HAL Scope/Meter JSON gate 已闭合 | 4.13、4.14、10.6、10.7 | 详见 `28`;两个结构化 JSON、Web evidence 和 compare 已通过,原生 process/L5 UI 边界继续保留 |
|
||
| HAL component 预编译运行时已闭合,动态加载仍锁定 | 4.7-4.11、4.16、6.5、6.6 | 详见 `24`、`26`、`27`;五组件的 P1、halcompile 派生、manifest、truth-table/formula/thread-net 和 Web 代表配置 gate 已通过,任意动态 `loadrt` 仍 Blocked,预编译 kinematics 继续按模块 gate 条件通过 |
|
||
| 多通道已源码边界复核并补三 session/User-M gate | 5.1-5.5 | 详见 `16`、`34`、`41`;三独立 session 倍率隔离与 M128/M129 WASM 状态同步已通过,任意宿主程序和单 task 边界继续按精确证据解释 |
|
||
| 五轴范围差异已修订 | 8.1-8.10 | 详见 `18`、`34`;A 轴范围、五轴联动和曲面程序已绑定真实配置/fixture,各 profile 仍不得跨 profile 继承 |
|
||
|
||
## 结论
|
||
|
||
`INT-026` 到 `INT-033` 已闭合 HAL component、Meter/Scope JSON、host opt-in evidence/release separation、剩余 runtime case、native 全量回归、验收口径修订和三 session gate。动态加载、实时内核、硬件与人工 promotion 继续保持条件通过或 Blocked。
|