docs: update README for workspace and web split layout
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
parent
a3bc280c0f
commit
837e648b7d
88
README.md
88
README.md
|
|
@ -47,25 +47,59 @@ PLC Control 是一个面向 PLC / OPC UA 场景的本地控制与监控系统,
|
||||||
- SSE 推送日志增量
|
- SSE 推送日志增量
|
||||||
- 日志流默认跟随最新 `app.log*` 文件,支持轮转切换
|
- 日志流默认跟随最新 `app.log*` 文件,支持轮转切换
|
||||||
|
|
||||||
## 系统设计
|
## 项目结构
|
||||||
|
|
||||||
## 后端结构
|
```text
|
||||||
|
plc_control/
|
||||||
|
Cargo.toml # Workspace root
|
||||||
|
crates/
|
||||||
|
plc_platform_core/ # 共享平台核心库(配置、数据库、连接、事件、WebSocket 等)
|
||||||
|
app_feeder_distributor/ # 投煤器布料机专用版
|
||||||
|
app_operation_system/ # 运转系统专用版
|
||||||
|
web/
|
||||||
|
core/ # 共享 HTML/CSS(数据源、点位、设备、图表、日志等)
|
||||||
|
feeder/ # 投煤器布料机页面 + JS
|
||||||
|
ops/ # 运转系统页面 + JS
|
||||||
|
```
|
||||||
|
|
||||||
- `src/main.rs`
|
### 共享平台核心库 (`plc_platform_core`)
|
||||||
- 启动 Axum 服务
|
|
||||||
- 注册 HTTP 路由、WebSocket 路由和静态页面
|
- `model` — 数据模型
|
||||||
- `src/handler`
|
- `db` — 数据库初始化
|
||||||
- HTTP 接口层
|
- `connection` — OPC UA 连接管理、订阅、轮询、批量写点
|
||||||
- `src/service`
|
- `service` — 数据查询与写入封装
|
||||||
- 数据查询与写入封装
|
- `control/command` — 通用控制命令
|
||||||
- `src/control`
|
- `control/runtime` — 运行时状态存储
|
||||||
- 自动控制引擎、运行时存储、手动控制校验、模拟反馈
|
- `event` — 事件信封与命名空间
|
||||||
- `src/connection.rs`
|
- `websocket` — WebSocket 房间与消息广播
|
||||||
- OPC UA 连接管理、订阅、轮询、批量写点
|
- `telemetry` — 点位遥测
|
||||||
- `src/event.rs`
|
|
||||||
- 控制事件、实时点位事件和事件持久化
|
### 业务应用
|
||||||
- `src/websocket.rs`
|
|
||||||
- WebSocket 房间与实时消息广播
|
- `app_feeder_distributor` — 投煤器/布料机控制引擎、业务 handler、业务事件
|
||||||
|
- `app_operation_system` — 运转系统控制逻辑(开发中)
|
||||||
|
|
||||||
|
## 构建
|
||||||
|
|
||||||
|
```powershell
|
||||||
|
# 投煤器布料机
|
||||||
|
cargo build -p app_feeder_distributor --release
|
||||||
|
|
||||||
|
# 运转系统
|
||||||
|
cargo build -p app_operation_system --release
|
||||||
|
```
|
||||||
|
|
||||||
|
## 部署
|
||||||
|
|
||||||
|
将编译产物和 `web/` 目录放在同一级目录下:
|
||||||
|
|
||||||
|
```text
|
||||||
|
deploy/
|
||||||
|
app_feeder_distributor.exe
|
||||||
|
web/
|
||||||
|
core/
|
||||||
|
feeder/
|
||||||
|
```
|
||||||
|
|
||||||
## 控制引擎设计
|
## 控制引擎设计
|
||||||
|
|
||||||
|
|
@ -86,22 +120,13 @@ PLC Control 是一个面向 PLC / OPC UA 场景的本地控制与监控系统,
|
||||||
|
|
||||||
## 前端 Web 设计
|
## 前端 Web 设计
|
||||||
|
|
||||||
前端采用原生 ES Module 和分片 HTML 结构。
|
前端采用原生 ES Module 和分片 HTML 结构,按应用拆分目录:
|
||||||
|
|
||||||
关键模块:
|
- `web/core/` — 共享 HTML 面板(数据源、点位、设备、图表、日志、文档抽屉)和样式
|
||||||
|
- `web/feeder/` — 投煤器专用入口、运维面板、控制单元表单、全部 JS 模块
|
||||||
|
- `web/ops/` — 运转系统专用入口(开发中)
|
||||||
|
|
||||||
- `web/js/app.js`: 页面启动、视图切换、事件绑定
|
每个应用的 Axum 路由使用 `ServeDir` 回退链:先查应用目录,再查 core 目录,URL 路径无需变化。
|
||||||
- `web/js/ops.js`: 运维视图渲染
|
|
||||||
- `web/js/logs.js`: WebSocket 与日志 SSE 处理
|
|
||||||
- `web/js/docs.js`: Markdown 文档抽屉
|
|
||||||
- `web/js/units.js` / `equipment.js` / `points.js`: 配置视图业务逻辑
|
|
||||||
|
|
||||||
文档查看入口:
|
|
||||||
|
|
||||||
- 可在前端页面中查看 `API.md`
|
|
||||||
- 可在前端页面中查看 `README.md`
|
|
||||||
|
|
||||||
两者都通过统一的文档抽屉组件展示。
|
|
||||||
|
|
||||||
## 实时日志设计
|
## 实时日志设计
|
||||||
|
|
||||||
|
|
@ -140,6 +165,7 @@ PLC Control 是一个面向 PLC / OPC UA 场景的本地控制与监控系统,
|
||||||
## 文档索引
|
## 文档索引
|
||||||
|
|
||||||
- API 接口说明: `API.md`
|
- API 接口说明: `API.md`
|
||||||
|
- 双应用共享核心设计: `docs/superpowers/specs/2026-04-14-dual-app-shared-core-design.md`
|
||||||
- 控制引擎计划: `docs/superpowers/plans/2026-03-24-control-engine.md`
|
- 控制引擎计划: `docs/superpowers/plans/2026-03-24-control-engine.md`
|
||||||
- 双视图前端计划: `docs/superpowers/plans/2026-03-25-dual-view-web.md`
|
- 双视图前端计划: `docs/superpowers/plans/2026-03-25-dual-view-web.md`
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue