TorqueWrench/README_ARCHITECTURE.md

198 lines
4.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

# 电动扳手系统架构说明
## 目录结构
```
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` 变量。