6.3 KiB
gmoccapy XYZAC TRT RTCP 五轴对标验证评价
日期:2026-07-01
1. 评价结论
gmoccapy-xyzac-trt 页面功能已在 Web 仿真边界内对标 LinuxCNC gmoccapy 非平凡五轴 TRT 示例。结论为:通过。
通过范围是浏览器/Web/WASM 仿真边界:页面 profile、INI/HAL/TBL/NGC 项目文件 staging、gmoccapy POSTGUI 工具与主轴 HAL 语义、固定 TRT 默认 TCP 运动学、LinuxCNC interpreter canonical motion、TP planner sample、RTCP frame、DRO/Three.js 页面状态和 source guard 均已验证。该结论不声明原生 GTK gmoccapy.py 已移植,不声明真实硬件、host realtime kernel、host HAL shared memory、native LinuxCNC task 进程或 host tool DB process 已就绪。
2. LinuxCNC 基线
本轮对标的 LinuxCNC 来源位于 /home/mes123456/cnc_wams/linuxcnc:
| 类别 | 基线文件 | 对标要点 |
|---|---|---|
| gmoccapy TRT INI | configs/sim/gmoccapy/non_trivial_kinematics/table-rotary-tilting/xyzac-trt.ini |
DISPLAY=gmoccapy、OPEN_FILE=./examples/impeller-7bl-xyzac.ngc、JOG_AXES=XYZC、TRAJ=XYZAC、KINEMATICS=xyzac-trt-kins |
| gmoccapy POSTGUI HAL | configs/sim/gmoccapy/non_trivial_kinematics/table-rotary-tilting/postgui.hal |
gmoccapy.spindle_feedback_bar、gmoccapy.spindle_at_speed_led、gmoccapy.toolchange-*、gmoccapy.tooloffset-z |
| generated HAL / tool table / vars | xyzac-trt_cmds.hal、xyzac-trt.tbl、xyzac.var |
gmoccapy 机床项目文件、刀具表和 task/HAL session 来源 |
| remap macros | configs/sim/gmoccapy/macros/change_g43.ngc、settool_g43.ngc |
M6、M61 gmoccapy 工具更换/设刀 remap |
| 实际五轴程序 | examples/impeller-7bl-xyzac.ngc、boat-xyzac.ngc、boat-xyzbc.ngc、test-xyzac.ngc、test-xyzbc.ngc |
gmoccapy TRT 示例程序 staging、选择、解释、预览 |
| 运动学源码 | src/emc/kinematics/xyzac-trt-kins.c、trtfuncs.c、switchkins.c |
TRT 正逆解、TCP/identity/userk 类型语义 |
关键差异已经显式建模:axis/vismach TRT profile 使用 sparm=identityfirst,switchkinsType=1 为 TCP;gmoccapy TRT INI 不带 sparm=identityfirst,因此默认 type 0 即固定 TRT/TCP。Web profile 将这一点映射为 kinsType=tcp-xyzac、rtcpState=on 的默认状态。
3. Web 对标实现
| 实现项 | 文件 | 评价 |
|---|---|---|
| 新增 profile | app/src/profiles/gmoccapy-xyzac-trt.js、app/src/profiles/index.js |
已对齐 gmoccapy INI 路径、display、open file、jog axes、M6/M61 remap、POSTGUI HAL、tool table、fixed TRT 默认 TCP |
| source reference | app/src/profiles/source-reference-map.js |
已把 gmoccapy TRT INI、HAL、TBL、examples、macros、kinematics source 纳入可追溯来源 |
| vendored LinuxCNC 文件 | ../wasm-port/vendor/linuxcnc/configs/sim/gmoccapy/...、../wasm-port/tools/source-manifest.txt |
已复制 LinuxCNC gmoccapy TRT 配置、examples 和 macros;manifest 已纳入这些文件 |
| machine-file staging | app/src/runtime/linuxcnc-machine-file-staging.js |
已支持 profile-specific machineRel、demoDirectory=examples、gmoccapy examples source guard、OPFS/memory fallback |
| INI parser | app/src/runtime/linuxcnc-ini-runtime.js |
已区分 switchkins TRT 与 gmoccapy fixed TRT;gmoccapy 不强制 HALUI M428/M429/M430 和 HAL_PIN_VARS=1,改为要求 M6/M61 与 gmoccapy HALCMD 关键项 |
| store/main | app/src/state/store.js、app/src/main.js |
已让 fixed TRT 默认进入 tcp-xyzac/RTCP on,并按 profile 默认加载 impeller-7bl-xyzac.ngc |
| build/static | app/scripts/build-static.mjs |
已把 gmoccapy config assets 复制到 source/dist 两套浏览器路径 |
| 页面 smoke | tests/browser/gmoccapy_shell_smoke.html |
已通过真实页面 profile selector 切换到 gmoccapy-xyzac-trt,验证 gmoccapy display、examples staging、INI、kinematics runtime、RTCP frame |
4. 测试与验证
| 测试项 | 验证内容 | 结果 |
|---|---|---|
| profile/source map | profile 字段、fixed TRT 默认 type、gmoccapy HAL pins、source reference kinds | 通过 |
| INI 解析 | xyzac-trt.ini 的 DISPLAY、TRAJ、KINS、M6/M61、POSTGUI、HALCMD、servo/task period |
通过 |
| 文件 staging | gmoccapy INI、TBL、macros、examples 进入 staged project,source guard 接受 /examples/ |
通过 |
| 实际程序解释 | impeller-7bl-xyzac.ngc、boat-xyzac.ngc、boat-xyzbc.ngc 由 LinuxCNC interpreter runtime 输出 canonical motion 与 planner samples |
通过 |
| 运动学/RTCP | xyzac-trt WASM 以 fixed TRT type 0 构造 source-derived RTCP frame,页面默认 RTCP on |
通过 |
| store/run preconditions | 切换 profile、加载 INI/runtime、加载 gmoccapy example、programValidation source guard、tool DB readiness、run preconditions | 通过 |
| 浏览器页面 | source 与 dist 页面均完成 gmoccapy shell smoke,并显式覆盖 gmoccapy-xyzac-trt profile 切换 |
通过 |
| 静态构建 | gmoccapy config assets 被复制到 dist 并通过浏览器 dist smoke | 通过 |
已执行命令及关键输出:
node tests/node/verify_gmoccapy_xyzac_trt_parity.mjs
gmoccapy_xyzac_trt_parity_smoke=ok
npm --prefix app run smoke:node
xyzac_trt_kinematics_runtime=ok
xyzbc_trt_kinematics_runtime=ok
real_linuxcnc_5axis_program_cases_smoke=ok
machine_file_staging_smoke=ok
rtcp_store_smoke=ok
profile_boundary_smoke=ok
gmoccapy_xyzac_trt_parity_smoke=ok
gmoccapy_trt_project_sidebar_smoke=ok
linuxcnc_parity_matrix_smoke=ok
npm --prefix app run smoke
gmoccapy_shell_smoke=ok
gmoccapy_dist_smoke=ok
此前也已执行 npm --prefix app run build,输出 gmoccapy_static_build=ok。
5. 评价
gmoccapy-xyzac-trt 已达到本项目页面功能对标要求:页面选择、项目文件、默认程序、INI/HAL/TBL/macros、真实 gmoccapy TRT examples、fixed TCP 运动学和 RTCP 页面状态均来自 LinuxCNC 源文件或 source-derived runtime 证据,不再把 axis/vismach switchkins 配置误当作 gmoccapy fixed TRT 配置。
剩余边界不是本轮缺陷,而是明确的能力边界:浏览器不运行 native GTK gmoccapy,不连接 host HAL shared memory,不控制真实电机/IO,不启动 host realtime kernel,不执行任意 host user-M 或 native tool DB process。后续若要声明这些能力,需要新增 host/native 级验证,而不能沿用当前 Web simulation 结论。