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

6.3 KiB
Raw Permalink Blame History

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.xmlxyzbc-trt.xmlswitchkins_postgui.halxyzac-trt_cmds.hal SWITCHKINS 按钮语义、HALUI MDI 命令、motion.switchkins-type 映射
remap 子程序 remap_subs/428remap.ngc429remap.ngc430remap.ngc M428 TCP、M429 identity、M430 userk 的 kinstype 切换语义
Vismach Python src/hal/user_comps/vismach/xyzac-trt-gui.pyxyzbc-trt-gui.py 机床预览层级、关节反馈 pin、刀补/偏置显示语义
Kinematics C 源码 src/emc/kinematics/xyzac-trt-kins.cxyzbc-trt-kins.ctrtfuncs.cswitchkins.c XYZAC/XYZBC 正逆解、TCP/identity/userk 切换、DRO/TCP frame 更新Node direct proof 覆盖 switchkinsType=1、A/B/C TCP 姿态和 XYZBC B 轴保留
Tool DB / task tool state src/emc/task/taskclass.ccsrc/emc/tooldata/tooldata_common.ccsrc/emc/nml_intf/emctool.hsrc/emc/rs274ngc/interp_convert.ccxyzac-trt.tblxyzbc-trt.tbl staged tool.tbl 解析、CANON_TOOL_TABLE 字段、非随机刀库 idx/pocketno 分离、spindle pocket idx=0、tool prepare/load/read_tool_inputs/offset、OPFS/memory fallback 保存
controlled user-M/remap remap_subs/428remap.ngc429remap.ngc430remap.ngc、LinuxCNC millturn M128/M129 用法 白名单 M128/M129/M428/M429/M430 转换为可追溯 HAL/state 事件,不执行 host 脚本
gmoccapy TRT 示例 configs/sim/gmoccapy/non_trivial_kinematics/table-rotary-tilting/xyzac-trt.inipostgui.hal gmoccapy 入口、POSTGUI 工具/主轴 HAL、TRT 示例程序来源
gmoccapy 原生界面 src/emc/usr_intf/gmoccapy/gmoccapy.pyshare/gmoccapy/gmoccapy.glade、gmoccapy 图标清单 操作台布局、右侧状态入口、按钮颜色/禁用/激活规则、HAL pin 语义
LinuxCNC task/NML src/emc/nml_intf/emc.hhsrc/emc/task/emctaskmain.ccsrc/emc/task/emctask.cc E-STOP/POWER/RESET、AUTO/MANUAL/JOG/MDI、RUN/PAUSE/RESUME/STEP/STOP 的互锁
task/HAL/motion 状态 src/emc/motion/control.csrc/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 程序验证覆盖
gmoccapy/.../examples/impeller-7bl-xyzac.ngc gmoccapy fixed TRT 默认打开程序
gmoccapy/.../examples/boat-xyzac.ngc gmoccapy XYZAC TCP 船体程序
gmoccapy/.../examples/boat-xyzbc.ngc gmoccapy 示例目录中的 XYZBC TCP 程序,用于 interpreter/planner source guard 覆盖
gmoccapy/.../examples/test-xyzac.ngctest-xyzbc.ngc gmoccapy TRT 示例 staging 完整性验证

3. 已承接的功能

功能 当前 Web 实现
右侧纵向入口 E-STOPPOWERRESETAUTOMANUALJOGMDIIDENTITYTCP 全部建模
模式互锁 未复位急停不能上电;未回零不能 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 路径和文本比对,暴露 sourceMatchesProfiletextMatchesLoadedIni
程序验证 LinuxCNC interpreter runtime 产出 canonical motion、switchkins 事件、planner sample
实时轴值 G-code 执行反馈驱动 axisPosetcpPose、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 仿真误标为真实机床控制
tool DB Web 仿真 读取 staged tool.tbl,支持刀具号/刀长/刀径/刀袋查询、编辑、保存;按 LinuxCNC 非随机刀库语义保留真实 pocketno,使用内部 idx=1..n 和 spindle pocket idx=0;接入 Tn/M6/G43/M61、HAL loopback read_tool_inputs() 与 #5400/#5401-#5413 工具参数快照
受控 user-M Web 仿真 只允许白名单 user-M/remap 行为输出 HAL/state patch任意未白名单 user-M 被标记为 blocked

4. 当前边界

  • Web 端运行的是浏览器仿真状态机和 WASM/JS runtime不运行原生 GTK gmoccapy.py
  • gmoccapy.py、Glade、Vismach Python 是界面/机床模型/HAL 语义参考,不是浏览器运行时。
  • 硬件驱动、实时内核、真实 HAL shared memory、host external user-M 进程、host tool DB process 不在浏览器内提升为 readyexternalUserMProcessReady=truetoolDbProcessReady=true 只代表 web_simulation_only
  • linuxCncParityMatrixsemanticBoundary 固定为 linuxcnc_source_function_parity_matrix_for_browser_simulation_not_hardware_control