2.8 KiB
2.8 KiB
怎么运行 operation-system
1. 准备数据库
应用启动不会自动执行迁移(db.rs:13 注释:「如有迁移请手动执行」),第一次启动前要把 migrations/ 目录里的 SQL 跑到 Postgres 里:
# 任选一种
sqlx migrate run --source migrations
# 或用 psql / DataGrip 直接执行 migrations/*.sql 按文件名升序
仓库根目录已有 .env,指向远程 postgresql://postgres:zcDsj%402024@10.0.11.51:5432/gateway。要本地跑就在 .env 里改 DATABASE_URL。
2. 设置环境变量
.env 会被 bootstrap::init_process 通过 dotenv 自动加载,所以直接改 .env 或在 shell 里 export 都行。
| 变量 | 默认 | 说明 |
|---|---|---|
DATABASE_URL |
必填 | Postgres 连接串 |
OPS_SERVER_HOST |
127.0.0.1 |
监听 host |
OPS_SERVER_PORT |
3100 |
监听端口 |
RUST_LOG |
— | 建议 info |
OPS_SEED_TEMPLATES |
关 | 设为 1 启动时自动写入 12 段 + 11 工位骨架 |
SIMULATE_PLC |
关 | 设为 1 引擎发命令后自动回写确认信号,无需 PLC 也能跑通段 |
3. 启动
# 开发态
cargo run -p app_operation_system
# 或带种子 + 模拟器,方便首次端到端验证
OPS_SEED_TEMPLATES=1 SIMULATE_PLC=1 cargo run -p app_operation_system
# 打 release exe
cargo build -p app_operation_system --release
# 产物在 target\release\app_operation_system.exe
启动日志会打印 Starting operation-system server at http://127.0.0.1:3100。
4. 验证
- 健康检查 —
curl http://127.0.0.1:3100/api/health→ 返回operation-system:ok - 段总览 —
curl http://127.0.0.1:3100/api/runtime/overview - 前端 — 浏览器打开
http://127.0.0.1:3100/ui/,左上角两个 tab:- 运行监控 — 段卡片 + WebSocket 实时刷新 + 启停 / 故障确认 / 复位
- 段 / 工位配置 — 工位 CRUD(含信号绑定)和段 CRUD(含步骤 / 联锁 / 资源声明)
5. 端到端冒烟(无 PLC)
- 用
OPS_SEED_TEMPLATES=1 SIMULATE_PLC=1启动。 - 浏览器进 段 / 工位配置,挑一个段(例如
SEG-DRY1-INFEED),把mode改成auto。 - 切到 运行监控,点该卡片的「启动」。
- 看着卡片上 state 从
idle→checking→executing→confirming→ 下一步循环(因为SIMULATE_PLC在每步派发后会注入确认信号)。
注意事项
- 与 feeder 同时跑没问题:进程互斥名是
PLCControl.OperationSystem,端口默认 3100(feeder 是 60309)。 - Windows release 用
windows_subsystem = "windows",不出黑窗;要看日志直接打开logs/下的app.log*,或者从命令行跑 debug build。 - OPC UA 数据源在
source表里配,启动时connect_all_enabled_sources会自动连。没配数据源不影响 UI / 段配置使用。