Files
cnc_wams/web-rtcp-5axis-xyzbc-trt-sim-plan/working/07-全量对标追踪矩阵.md
2026-07-02 23:53:51 -04:00

13 KiB
Raw Blame History

07-全量对标追踪矩阵

本文件把 doc/xyzbc-trt-runtime-files.md 中记录的 LinuxCNC xyzbc-trt 真实运行功能,逐项映射到 Web 数控系统仿真界面的目标、证据和缺口。

原则:

  • Web 实现必须完全对标 xyzbc-trt-runtime-files.md 的运行语义。
  • LinuxCNC 源码、INI、HAL、remap、tool table、parameter file 和 kinematics 是语义真源。
  • AXIS、PyVCP、Vismach 这类桌面 UI 组件在 Web 中做同语义等效实现。
  • 每项对标最终都要进入 native/Web evidence JSON 和 compare JSON不能只停留在 UI 文案。
  • 后续 native 真实执行基线统一采用 /home/mes123456/cnc_wams/linuxcnc/home/mes123456/linuxcnc-master 只作为历史运行树参考。

运行入口与进程对标

LinuxCNC 功能 真实配置来源 Web 对标目标 Evidence/验收
.desktop 启动 rip-environment linuxcnc xyzbc-trt.ini /home/mes123456/cnc_wams/linuxcnc/linuxcnc-rtcp-5axis-shortcuts/.../xyzbc-trt.desktop Web profile 一键进入 xyzbc-trt,自动加载同一 INI/staging 文件集 web JSON 记录 profile=xyzbc-trtiniPathstartupSequence
linuxcncsvrrtapi_appmilltaskhalui 当前进程清单 Web runtime 用 worker/WASM/task-HAL 表示 server/task/halui 边界 compare 检查 runtimeComponents 包含 interptptaskHalhaluiEquivalent
AXIS 主界面进程 bin/axis -ini xyzbc-trt.ini Web 首屏直接进入 CNC 操作界面,不做营销页 浏览器 smoke 检查坐标、程序、switchkins、3D canvas 均可见
Vismach 进程 loadusr -W xyzbc-trt-gui Web 3D 机床模型按 HAL pin 驱动 evidence 记录 Vismach pin 值、HAL net 和模型变换

INI 与显示配置对标

INI 字段 LinuxCNC 行为 Web 对标目标 状态
[EMC] MACHINE = sim-xyzbc-trt-kins (switchkins) AXIS 标题/机器名 页面机器名、JSON machine name 一致 已完成Web evidence 记录 profile/INI machine
[DISPLAY] DISPLAY = axis 启动 AXIS Web 实现 AXIS 等效操作面板 已完成browser smoke 与 axisMainUi evidence 覆盖
[DISPLAY] GEOMETRY = XYZB AXIS 几何显示 Web 坐标/预览按 XYZB 几何显示C 轴仍参与机床/路径 已完成,axisJointLimits 和路径样本覆盖 XYZBC/XYZB 显示语义
[DISPLAY] JOG_AXES = XYZC 手动 jog 轴集合 Web jog 控制至少覆盖 X/Y/Z/C并显示 B/C 状态 已完成,axisMainUi 与 task/HAL 状态流覆盖
[DISPLAY] POSITION_OFFSET = RELATIVE 坐标偏置显示 Web 默认显示相对坐标并可记录 work offset 已完成Web UI/evidence 记录坐标显示能力
[DISPLAY] POSITION_FEEDBACK = ACTUAL 显示实际反馈位置 Web 坐标读数来自 task/HAL actual feedback不只显示 commanded 已完成Web executionPath 由 task/HAL feedback 采集
[DISPLAY] MAX_FEED_OVERRIDE = 2 进给倍率最大 200% Web feed override 控件范围 0-200% 已完成,axisMainUiaxisJointLimits evidence 覆盖
[DISPLAY] MAX_LINEAR_VELOCITY = 1000 AXIS UI 限速 Web UI 限速显示/约束一致 已完成,axisJointLimits evidence 覆盖
[DISPLAY] MAX_ANGULAR_VELOCITY = 360 角轴限速 Web 角轴 jog/显示限速一致 已完成,axisJointLimits evidence 覆盖
[DISPLAY] PROGRAM_PREFIX = ../../nc_files 打开程序默认目录 Web 程序文件浏览/staging 根目录记录等效路径 已完成OPFS staging 和 Web evidence 覆盖
[DISPLAY] TOOL_EDITOR = tooledit z diam 工具编辑字段 Web tool editor 至少支持 Z 和 diameter 已完成tool table T/P/Z/D 和 active offset closure 覆盖
TKPKG/NGCGUI_* AXIS Ngcgui 面板加载子程序 Web 需 stage 并提供子程序参数化调用入口或等效验证 已完成Web evidence 通过 WASM wrapper 执行 Ngcgui 子程序全集

文件 staging 对标

文件 作用 Web 对标目标 当前要求
xyzbc-trt.ini 主配置 OPFS/wasm runtime 必须使用同源 INI 已完成Web evidence 校验 INI 和 DISPLAY/TRAJ/JOINT 字段
xyzbc-trt.xml PyVCP switchkins 面板 Web switchkins 面板由 XML/schema 驱动 已完成Web evidence 覆盖 PyVCP XML 与 pin 连接
switchkins_postgui.hal PyVCP 到 halui MDI 的连接 Web 需记录 pyvcp.* -> halui.mdi-command-* 已完成compare 检查 postguiHalEquivalent 通过
basic_sim.tcl 基础仿真 HAL Web task/HAL runtime 等效模拟 joint/home/spindle/toolchange 已完成native/Web basicSimEquivalent 均通过 compare
xyzbc-trt_cmds.hal 运行后生成 HAL Web evidence 需记录等效展开 HAL nets 已完成Web evidence 记录 switchkins、PyVCP、Vismach、tool-offset 等效 HAL nets
xyzbc-trt-gui.py Vismach 模型 Web 3D pin/模型层级对标 已完成 Web 端模型层级、evidence 和浏览器 smoke 验收
axis.py AXIS 主界面行为 Web 操作面板对标 AXIS 关键行为 已完成AXIS 首屏等效已通过 browser smoke 和 evidence
axis.py 按钮命令 estop_clicked/onoff_clicked/task_run/task_pause/task_resume/task_step/task_stop/jog_*/home_all_joints/send_mdi/set_view_*/clear_live_plot Web AXIS_BUTTON_PARITY 逐按钮记录来源、动作和状态效果 已完成T-041/T-042 覆盖按钮矩阵、DOM source metadata、Node 状态机和 browser 实际点击验证
xyzbc-trt-kins.c 运动学真源 WASM kinematics 使用 source-derived artifact 已完成WASM kinematics artifact 已进入 app/dist 并通过 evidence
xyzbc-trt.tbl 工具表 Web tool DB 读取 T/P/Z/D Web evidence 已证明 T2/P2/Z10/D8 驱动 kinematics、path tool 和 Vismach tool-offset
xyzbc.var 参数文件 OPFS 保存/恢复参数 已完成staging 和 Web evidence 覆盖参数文件

HAL 与 switchkins 对标

LinuxCNC HAL 语义 Web 对标目标 Evidence/验收
motion.analog-out-03 => motion.switchkins-type Web remap/MDI 写入 switchkins type并暴露当前类型 native/Web JSON 对比 switchkins transitions
halui.mdi-command-00 = M429 Web IDENTITY 按钮执行 M429 按钮事件、MDI 命令、switchkins type 都写入 evidence
halui.mdi-command-01 = M428 Web TCP:XYZBC 按钮执行 M428 同上
halui.mdi-command-02 = M430 Web userk 按钮执行 M430 同上
kinstype.is-0/1/2 -> pyvcp.multilabel Web multilabel 显示当前 kinematics UI state 与 HAL state 一致
pyvcp.vismach-clear -> vismach.plotclear Web clear 按钮清除 3D 轨迹/preview buffer evidence 记录 clear 前后 path count
joint.N.pos-fb -> xyzbc-trt-gui.* Web 3D 模型从 actual joint feedback 驱动 path/execution JSON 记录 feedback 来源
motion.tooloffset.z -> xyzbc-trt-kins.tool-offset -> gui.tool-offset 工具长度同时影响 kinematics 和模型显示 tool table、tool offset、TCP/toolAxis 误差检查

运动学与机床模型对标

项目 LinuxCNC 来源 Web 对标目标
KINEMATICS = xyzbc-trt-kins sparm=identityfirst INI/KINS 默认 switchkins type 0 为 identityM428 后为 XYZBC TCP
JOINTS = 5 INI/KINS Web runtime 固定 XYZBC 五关节
x-offset = -20 HALCMD sets Web kinematics pin 默认值一致
z-offset = -15 HALCMD sets Web kinematics pin 默认值一致
x/y/z-rot-point = 0 HALCMD setp Web kinematics pin 默认值一致
conventional-directions = 0 HALCMD setp Web kinematics pin 默认值一致
table-x/saddle-y/spindle-z/tilt-b/rotate-c Vismach pins Web 模型层级按这些反馈驱动;vismachEquivalent.pinValues/transforms 可验收
tool-offset/x-offset/z-offset Vismach/kines pins Web 刀具和模型偏置一致T-034 已完成 Web tool table active offset 闭环native/Web evidence 已重采并通过 compare

G-code、remap 与子程序对标

文件/命令 LinuxCNC 行为 Web 对标目标
M429 kinstype=0Identity Web MDI/remap 执行后 switchkins type 为 0
M428 kinstype=1XYZBC/TCP Web MDI/remap 执行后 switchkins type 为 1
M430 kinstype=2USERK Web MDI/remap 执行后 switchkins type 为 2
xyzbc_switchkins.ngc 默认打开并调用子程序 Web 默认程序一致
xyzbc_switchkins_sub.ngc 四象限 switchkins/TCP 演示 Web 必须 stage 并可执行
centering.ngc Ngcgui 子程序 Web 必须 stage后续实现参数入口
helix_bc.ngc B/C helix 五轴轨迹 Web 必须 stage 并进入路径对比
boat-xyzbc.ngc 额外演示程序 Web 必须 stage 并可作为验收程序

刀具执行路径与逐行 G 代码对标

对标项 LinuxCNC 真源 Web 对标目标 Evidence/验收
刀具执行语义路径 xyzbc_switchkins.ngc 调用 xyzbc_switchkins_sub.ngc,再调用 helix_bc.ngc Web 按同一源程序和子程序展开执行路径,不只依赖 UI 预览 native/Web semanticExecutionPath.samples 均为 1300compare semanticExecutionVsSemanticExecution.geometricAligned=true
实际轴值 G53/G54、G0、G2 helix、B/C 姿态和 switchkins 状态 Web 记录每条产生日志运动后的 X/Y/Z/B/C、TCP、toolAxis、feed native/Web axisValuesByLine 均为 29 条compare 最大 TCP/joint/toolAxis 误差为 0
每行 G 代码执行过程 主程序行 2、xyzbc_switchkins_sub.ngc 行 15-45、helix_bc.ngc 行 12-21 Web 记录 call、M429/M428、G10、G0、G2 的执行顺序和 kinematics 前后状态 native/Web lineExecutionTrace 均为 64 条compare mismatchCount=0
完整 G 代码执行过程 JSON 主程序、子程序边界、注释、参数赋值、call stack、M/G 代码、运动结果 Web 记录每个动态执行步骤和每个源行覆盖状态,每步包含详细结果 native/Web gcodeExecutionProcess.executionSteps 均为 128sourceLineCoverage 均为 65compare mismatchCount=0
runtime 执行反馈 native linuxcnc.stat()、Web task/HAL WASM status 保留真实反馈路径,作为运行完成和状态流证据 native executionPath.taskHal.completed=trueWeb executionPath.taskHal.completed=true

JSON 证据对标

native evidence、Web evidence、compare evidence 必须覆盖:

  • startupSequence:启动/初始化顺序和等效组件。
  • iniDisplayDISPLAY/TRAJ/KINS/TASK/EMCMOT/EMCIO 关键字段。
  • stagedFiles:所有对标文件,包括 remap 子程序和 demo 程序全集。
  • halNetsswitchkins、PyVCP、Vismach、tool-offset、joint feedback 连接。
  • kinematicsPinsoffset、rot-point、conventional-directions、tool-offset。
  • axisJointLimitsX/Y/Z/B/C 和 JOINT_0..4 限制、单位、速度/加速度。
  • switchkinsTransitionsM429/M428/M430 的命令、HAL pin 和状态变化。
  • toolTableT/P/Z/D 解析和当前工具偏置。
  • previewPath刀具预览路径50ms 统一采样。
  • executionPath刀具执行路径50ms 统一采样。
  • semanticExecutionPath:基于 LinuxCNC 源程序/子程序展开的刀具执行语义路径50ms 统一采样。
  • lineExecutionTrace主程序、子程序、M428/M429、G10、G0、G2 的逐行执行过程。
  • axisValuesByLine:每条产生日志运动后的 X/Y/Z/B/C、TCP、toolAxis、feed。
  • gcodeExecutionProcess:完整动态执行步骤、源行覆盖、调用栈、参数变化、模态变化、运动起止轴值/TCP/toolAxis。
  • pathComparisonnative/Web 预览与执行路径误差统计。
  • lineExecutionComparisonnative/Web 逐行 G 代码执行过程对比。
  • axisValuesByLineComparisonnative/Web 每行实际轴值对比。
  • gcodeExecutionProcessComparisonnative/Web 完整 G 代码执行过程 JSON 对比。
  • uiEquivalenceAXIS/PyVCP/Vismach 在 Web 中的等效控件和状态。
  • axisButtonParityAXIS/PyVCP 按钮 action、LinuxCNC 源程序/POSTGUI HAL 来源、预期状态效果、缺口列表。

当前闭环状态

当前 T-001 到 T-046 均已完成。T-041/T-042 新增 AXIS/PyVCP 按钮级源程序对标和逐按钮逻辑验证T-043/T-046 新增刀具执行路径、逐行 G 代码执行过程、每行实际轴值和完整 G 代码执行过程 JSON 对标。

已闭环事项:

  1. WASM artifact 已构建并随 app build 进入 app/dist/wasm-port/build/wasm
  2. Web evidence 已记录 startupSequencehalNetskinematicsPinsaxisJointLimitsaxisMainUivismachEquivalentbasicSimEquivalentngcguiExecution 和 native 状态流复核。
  3. Web UI 已按 AXIS 等效面板覆盖程序、坐标、状态、MDI/switchkins、override、tool、preview、execution 和 axis buttons按钮级矩阵已映射到 LinuxCNC axis.pyswitchkins_postgui.hal
  4. Vismach 等效模型已按 xyzbc-trt-gui.py 的 pin 和模型层级完成 Web 端验收,smoke:browser 覆盖 canvas 非空和 dataset。
  5. native/Web 刀具预览路径、runtime 执行反馈路径和源程序语义执行路径 JSON 均已按 50ms 周期采集compare 已输出并硬校验误差统计。
  6. boat-xyzbc.ngc staging 和 Ngcgui/remap 子程序全集 Web 可执行验收已完成。
  7. lineExecutionTrace 64 条、axisValuesByLine 29 条、gcodeExecutionProcess.executionSteps 128 条、sourceLineCoverage 65 条均已在 native/Web JSON 中同构记录并通过 compare。