Files
cnc_wams/完善wasm/working/31-04-Motion-FERROR-Virtual-MPG-Gate实施记录.md
2026-07-10 21:26:42 -04:00

1.5 KiB
Raw Permalink Blame History

31-04 Motion FERROR / Virtual MPG Gate 实施记录

定位

本文件落实 ACC-043/INT-030,闭合 125 项绑定表最后两个可在无真实硬件条件下开发的 3.63.10

LinuxCNC 对标

依据 src/emc/motion/control.c

ferror = pos_cmd - pos_fb
ferror_limit = max_ferror * abs(vel_cmd) / vel_limit
ferror_limit = max(ferror_limit, min_ferror)
abs(ferror) > ferror_limit -> motion error

delta = new_jog_counts - old_jog_counts
distance = delta * jog_scale

依据 motion.c/mot_priv.h 创建 joint.N.jog-countsjog-enablejog-scalejog-vel-mode 四类 HAL pin。

实现与 Gate

linuxcnc_motion_runtime.c 新增 FERROR 诊断命令,记录实际 ferror/limit 并按上游公式锁存 motion errorvirtual MPG 在 servo cycle 读取 count delta启用时按 scale 更新 joint/axis command-feedback。

motion_ferror_threshold_pair=ok
virtual_mpg_count_delta_response=ok
motion_hal_sync_smoke=ok
linuxcnc_task_runtime_smoke=ok

FERROR 测试在相同 MIN_FERROR=0.01FERROR=1vel_limit=100vel_cmd=50 下,验证 limit=0.5、error=0.4 不报警、error=0.6 报警。MPG 测试验证 counts 0 -> 5 -> 2、scale=0.1 时位置 0 -> 0.5 -> 0.2

边界

本轮证明 Web/WASM virtual servo 与 HAL pin 行为;没有物理编码器、真实伺服驱动或 USB/现场总线 MPG。真实硬件仍需独立授权和 IO loopback evidence。

结论

ACC-043/INT-030 完成,3.63.10 可在 L3 Web/WASM simulation 边界内条件通过。