TorqueWrench/README_ARCHITECTURE.md

4.3 KiB
Raw Blame History

电动扳手系统架构说明

目录结构

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. 自动提交数据

    • 工作完成后自动提交结果到后端
    • 包含每个螺栓的详细数据

数据格式

工单数据结构

{
  "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"
    }
  ]
}

提交数据格式

{
  "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. 安装依赖

后端:

cd backend
pip install -r requirements.txt

前端:

cd frontend
pip install -r requirements.txt

2. 启动后端服务器

Windows:

cd backend
start_backend.bat

Linux/Mac:

cd backend
chmod +x start_backend.sh
./start_backend.sh

后端服务器将在 http://localhost:5000 启动

3. 启动前端GUI

Windows:

cd frontend
start_frontend.bat

Linux/Mac:

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 变量。