TorqueWrench/README_ARCHITECTURE.md

200 lines
4.3 KiB
Markdown
Raw Normal View History

2026-01-24 02:54:01 +08:00
# 电动扳手系统架构说明
## 目录结构
```
TorqueWrench/
├── backend/ # 后端API服务器
│ ├── app.py # Flask API服务器
│ ├── work_orders.json # 工单数据文件
│ ├── claimed_orders.json # 已认领工单(自动生成)
│ └── requirements.txt # Python依赖
├── frontend/ # 前端GUI应用
│ ├── wrench_gui.py # 图形界面程序
│ └── requirements.txt # Python依赖
├── wrench_controller.py # 扳手控制模块(共享)
├── wrench_simulator.py # 模拟扳手服务器(测试用)
└── config.json # 配置文件
```
## 系统架构
### 后端API服务器 (backend/app.py)
提供RESTful API接口
1. **GET /api/work-orders** - 查询工单列表
- 参数: `trace_id` (追溯号), `process_id` (工序号)
- 返回: 符合条件的未认领工单列表
2. **POST /api/work-orders/claim** - 认领工单
- 参数: `trace_id`, `process_id`, `operator`
- 返回: 工单详情
3. **POST /api/work-orders/submit** - 提交工单数据
- 参数: `trace_id`, `process_id`, `bolts` (螺栓数据)
- 返回: 提交结果
4. **POST /api/work-orders/release** - 释放工单
- 参数: `trace_id`
- 返回: 释放结果
5. **GET /api/health** - 健康检查
### 前端GUI (frontend/wrench_gui.py)
主要功能:
1. **轮询查询工单列表**
- 根据追溯号和工序号自动轮询可用工单
- 默认每3秒查询一次
2. **认领工单**
- 从工单列表中选择并认领工单
- 认领后显示工单详情和螺栓列表
3. **自动拧紧流程**
- 连接扳手设备
- 按顺序拧紧所有螺栓
- 实时更新进度和状态
4. **自动提交数据**
- 工作完成后自动提交结果到后端
- 包含每个螺栓的详细数据
## 数据格式
### 工单数据结构
```json
{
"trace_id": "TR20260119001", // 追溯号(原工单号)
"process_id": "P001", // 工序号
"process_name": "前轮装配", // 工序名称
"product_name": "汽车底盘组件",
"station": "装配工位A1",
"operator": "张三",
"status": "pending",
"bolts": [
{
"bolt_id": 1,
"name": "前轮螺栓1",
"target_torque": 280,
"mode": 1,
"torque_tolerance": 0.10,
"angle_min": 1,
"angle_max": 360,
"status": "pending"
}
]
}
```
### 提交数据格式
```json
{
"trace_id": "TR20260119001",
"process_id": "P001",
"bolts": [
{
"bolt_id": 1,
"name": "前轮螺栓1",
"target_torque": 280,
"actual_torque": 285,
"actual_angle": 0,
"status": "success",
"timestamp": "2026-01-19 10:30:00",
"result": {
"success": true,
"status": "成功-扭矩到达",
...
}
}
]
}
```
## 使用说明
### 1. 安装依赖
**后端:**
```bash
cd backend
pip install -r requirements.txt
```
**前端:**
```bash
cd frontend
pip install -r requirements.txt
```
### 2. 启动后端服务器
**Windows:**
```bash
cd backend
start_backend.bat
```
**Linux/Mac:**
```bash
cd backend
chmod +x start_backend.sh
./start_backend.sh
```
后端服务器将在 `http://localhost:5000` 启动
### 3. 启动前端GUI
**Windows:**
```bash
cd frontend
start_frontend.bat
```
**Linux/Mac:**
```bash
cd frontend
chmod +x start_frontend.sh
./start_frontend.sh
```
### 4. 使用流程
1. **设置查询条件**
- 在界面中输入追溯号和工序号
- 点击"查询工单"或等待自动轮询
2. **认领工单**
- 从工单列表中选择要处理的工单
- 点击"认领工单"按钮
3. **开始工作**
- 认领成功后,点击"开始拧紧"
- 系统自动连接扳手并执行拧紧流程
4. **自动提交**
- 所有螺栓拧紧完成后,系统自动提交数据到后端
- 提交成功后,可以认领下一个工单
## 注意事项
1. **追溯号和工序号必须同时匹配**才能查询到工单
2. **工单只能被认领一次**,认领后其他客户端无法再认领
3. **工作完成后会自动提交数据**,无需手动操作
4. **轮询功能默认开启**,会自动刷新工单列表
5. 后端数据文件保存在 `backend/` 目录下
## API配置
前端默认连接 `http://localhost:5000`,如需修改,编辑 `frontend/wrench_gui.py` 中的 `api_base_url` 变量。
2026-02-04 11:35:09 +08:00