数字化工厂中央控制室驾驶舱系统架构文档

数字化工厂中央控制室驾驶舱系统架构文档

1. 系统整体架构

本系统采用三层架构设计,包括前端、中端和后端三个主要部分,实现了完整的数据采集、处理、分析和可视化流程。

复制代码
+-------------------+    +-------------------+    +-------------------+
|      前端层       |    |      中端层       |    |      后端层       |
| (数据可视化展示)  |<-->| (数据处理与算法)  |<-->| (数据源与模拟器)  |
+-------------------+    +-------------------+    +-------------------+
         ^                       ^                        ^
         |                       |                        |
         v                       v                        v
+-------------------+    +-------------------+    +-------------------+
|   React前端界面   |    |    MongoDB数据库   |    |   设备数据模拟器  |
|   交互式大屏展示  |    |    算法计算模块    |    |   传感器数据采集  |
+-------------------+    +-------------------+    +-------------------+

1.1 系统层次结构说明

前端层(Frontend)
  • 基于React框架构建的Web应用
  • 使用Ant Design组件库实现现代化界面
  • 采用ECharts和Canvas实现数据可视化
  • 实时展示工厂运行状态和AGV调度情况
中端层(Middleware)
  • 基于Python FastAPI构建的中端服务
  • 使用MongoDB存储和分类处理后端数据
  • 实现路径规划和任务调度等算法模块
  • 提供API接口供前端访问数据和算法服务
后端层(Backend)
  • 基于Python的后端服务
  • 实现设备数据模拟和采集功能
  • 提供基础API和WebSocket服务
  • 负责原始数据的初步处理和存储

1.2 数据流向

复制代码
+-------------+    +--------------+    +-------------+    +-------------+
| 设备数据源  |--->| 后端数据采集 |--->| 中端数据处理 |--->| 前端数据展示 |
+-------------+    +--------------+    +-------------+    +-------------+
                          |                  ^
                          v                  |
                   +--------------+    +-------------+
                   | 数据分类存储 |<-->| 算法计算模块 |
                   +--------------+    +-------------+

2. 中端系统详细设计

2.1 目录结构

复制代码
middleware/
├── api/                  # API接口
│   ├── data_api.py       # 数据访问API
│   └── algorithm_api.py  # 算法服务API
├── collector/            # 数据采集模块
│   └── data_collector.py # 数据采集器
├── database/             # 数据库模块
│   └── db_config.py      # MongoDB配置
├── algorithm/            # 算法模块
│   ├── path_planning/    # 路径规划算法
│   │   └── a_star.py     # A*算法实现
│   └── scheduling/       # 任务调度算法
│       └── task_scheduler.py # 任务调度器
├── run.py                # 中端启动脚本
└── requirements.txt      # 依赖管理

2.2 数据库设计

MongoDB数据库集合设计:

集合名称 说明 主要字段
machine_data 机床设备数据 device_id, status, production_rate, temperature
agv_data AGV数据 device_id, position, status, battery_level
path_planning 路径规划数据 agv_id, path, timestamp
task_scheduling 任务调度数据 tasks, assignments, timestamp
stamping_data 冲压设备数据 device_id, status, production_count, pressure

2.3 算法模块设计

2.3.1 A*路径规划算法
  • 功能:计算AGV从起点到终点的最优路径
  • 特点:
    • 支持障碍物避让
    • 路径平滑处理
    • 网格化地图表示
    • 可配置启发式函数
2.3.2 任务调度算法
  • 功能:为多个AGV分配多个任务
  • 特点:
    • 多维度成本函数(距离、电量、优先级)
    • 基于优先级的任务排序
    • 实时路径规划集成
    • 电量感知调度策略

3. 接口规范

3.1 中端API接口

3.1.1 数据API接口
接口路径 方法 功能说明 参数
/api/collector/data/{data_type} GET 获取最新数据 data_type: 数据类型
/api/collector/data/{data_type}/history GET 获取历史数据 data_type, start_time, end_time
/api/collector/device/{device_type}/{device_id} GET 获取设备数据 device_type, device_id
/api/collector/agv/positions GET 获取所有AGV位置
3.1.2 算法API接口
接口路径 方法 功能说明 参数
/api/algorithm/path/plan POST 规划路径 agv_id, start_point, end_point, obstacles
/api/algorithm/task/schedule POST 调度任务 tasks, available_agvs
/api/algorithm/agv/{agv_id}/position GET 获取AGV位置 agv_id
/api/algorithm/agv/{agv_id}/position PUT 更新AGV位置 agv_id, position

3.2 前端组件与算法模块对接

3.2.1 FactoryMap组件
  • 功能:展示工厂地图和AGV路径
  • 对接方式:
    • 使用WebSocket订阅agv_path事件获取实时路径
    • 通过/api/collector/data/path_planning接口获取历史路径
    • 使用Canvas渲染路径和设备位置
3.2.2 AGVMonitor组件
  • 功能:监控AGV状态和路径跟踪
  • 对接方式:
    • 使用WebSocket订阅agv_status事件获取AGV状态
    • 通过/api/algorithm/path/plan接口请求路径规划
    • 使用requestAnimationFrame实现路径动画

4. 部署架构

复制代码
+----------------------------------+
|           用户浏览器             |
+----------------------------------+
               ^
               |
               v
+----------------------------------+
|          Nginx Web服务器         |
+----------------------------------+
           /        \
          /          \
         v            v
+------------+    +------------+
| 前端服务   |    | 中端API服务 |
| (React)    |    | (FastAPI)  |
+------------+    +------------+
                       |
                       v
                  +------------+
                  | MongoDB    |
                  | 数据库     |
                  +------------+
                       ^
                       |
                       v
                  +------------+
                  | 后端服务   |
                  | (Python)   |
                  +------------+
                       ^
                       |
                       v
                  +------------+
                  | 数据模拟器 |
                  +------------+

5. 安全与性能考虑

5.1 安全措施

  • 接口授权:API接口采用token认证机制
  • 数据验证:所有输入数据进行参数验证
  • 日志记录:系统操作和异常情况进行日志记录

5.2 性能优化

  • 数据库索引:对频繁查询的字段建立索引
  • 异步处理:使用asyncio实现异步IO操作
  • 批量处理:对数据进行批量处理减少网络开销
  • 缓存策略:对算法结果进行适当缓存

6. 扩展性设计

系统设计考虑了未来的扩展需求:

  1. 新算法模块可以轻松集成到algorithm目录下
  2. 新设备类型可通过扩展数据库集合支持
  3. 前端组件采用模块化设计,便于增加新功能
  4. API接口版本化设计,支持向后兼容
相关推荐
old_power5 小时前
【Python】PDF文件处理(PyPDF2、borb、fitz)
python·pdf
测试开发Kevin6 小时前
从投入产出、效率、上手难易度等角度综合对比 pytest 和 unittest 框架
python·pytest
强化学习与机器人控制仿真6 小时前
Newton GPU 机器人仿真器入门教程(零)— NVIDIA、DeepMind、Disney 联合推出
开发语言·人工智能·python·stm32·深度学习·机器人·自动驾驶
Tiny番茄6 小时前
No module named ‘xxx’报错原因及解决方式
开发语言·python
老朋友此林8 小时前
MiniMind:3块钱成本 + 2小时!训练自己的0.02B的大模型。minimind源码解读、MOE架构
人工智能·python·nlp
宸汐Fish_Heart9 小时前
Python打卡训练营Day22
开发语言·python
伊织code9 小时前
PyTorch API 9 - masked, nested, 稀疏, 存储
pytorch·python·ai·api·-·9·masked
wxl78122710 小时前
基于flask+pandas+csv的报表实现
python·flask·pandas
鸡鸭扣11 小时前
DRF/Django+Vue项目线上部署:腾讯云+Centos7.6(github的SSH认证)
前端·vue.js·python·django·腾讯云·drf