# 01-项目功能内容

## 目标

以 LinuxCNC `gmoccapy_XYZAB.ini` 五轴仿真配置为行为基准，执行、测试并完善 `/home/meswork/cnc_wams/web-rtcp-5axis-sim-plan`。数控系统仿真功能应尽量与 LinuxCNC 源程序行为一致；发现不一致时，在 Web 项目中修复并补充验收证据。

## 对标范围

### 启动与配置

- INI 解析：`[DISPLAY]`、`[TASK]`、`[EMCMOT]`、`[TRAJ]`、`[KINS]`、`[HAL]`、`[RS274NGC]`、`[PYTHON]` 等关键段。
- 启动顺序：`linuxcncsvr`、RTAPI/HAL、`milltask`、`halui`、HALFILE、`halcmd start`、`gmoccapy`、POSTGUI_HALFILE。
- 五轴配置：`COORDINATES = X Y Z A B`、`JOINTS = 5`、`trivkins coordinates=xyzab`。

### 任务、状态与互锁

- NML 命令、状态、错误通道的 Web 等效模型。
- `STATE_ESTOP`、`STATE_ESTOP_RESET`、`STATE_OFF`、`STATE_ON`。
- `MODE_MANUAL`、`MODE_MDI`、`MODE_AUTO`。
- `INTERP_IDLE`、运行、暂停、停止、abort。
- `NO_FORCE_HOMING = 0` 下的全轴回零互锁。
- 自动运行、MDI、点动、回零、主轴、冷却、倍率、限位、换刀互锁。

### HAL 与仿真 IO

- `core_sim_XYZAB.hal`：motmod、五轴位置反馈回环、急停回环、换刀回环、主轴/冷却信号。
- `spindle_sim.hal`：速度斜坡、编码器反馈、`spindle.0.at-speed`。
- `simulated_home.hal`：X/Y/Z 回零开关模拟。
- `gmoccapy_postgui.hal`：GUI HAL pins、主轴反馈条、到速 LED、刀补显示、换刀回环。
- `HALUI = halui` 默认入口。

### G-code 解释与五轴运动

- RS274NGC 解释器行为。
- MDI 命令发送与状态回读。
- 自动运行文件、暂停、继续、单步、停止、从行运行。
- `M6`、`M61` REMAP 相关换刀语义。
- 五轴轨迹、单位换算、RTCP/运动学边界。

### gmoccapy 界面等效行为

- 周期轮询：`[DISPLAY] CYCLE_TIME = 100` ms。
- 按钮/页面敏感状态互锁。
- DRO、程序进度、主轴反馈、冷却液、工具/刀补、错误消息。
- 外部 HAL 硬按钮和点动 pin 驱动 GUI 后再通过命令通道进入任务层。

## 当前项目入口

- Web 应用：`/home/meswork/cnc_wams/web-rtcp-5axis-sim-plan/app`
- 核心运行时：`app/src/runtime`
- gmoccapy UI：`app/src/ui`
- 状态存储：`app/src/state`
- 机床配置/profile：`app/src/profiles`
- Node 验证：`tests/node`
- 浏览器验证：`tests/browser`

