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

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

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接口版本化设计,支持向后兼容
相关推荐
步行cgn5 分钟前
Spring 注入 Map 集合详解
数据库·python·spring
今儿敲了吗9 分钟前
03停用词过滤
笔记·python
李可以量化1 小时前
Tornado 部署公域网络安全与防护(上)
python
风跟我说过她1 小时前
SQL 一键转经典 Chen 风格 ER 图:开源 CLI + 在线工具 + Agent Skill
数据库·python·sql·开源·开源软件
Ulyanov1 小时前
AudioVision Pro:基于 PySide6 + sounddevice 的实时音频可视化播放器设计
python·算法·音视频
ID34610744201 小时前
【课程设计】基于Spring Boot+Vue的校园共享无人机服务系统设计与实现-计算机毕设 附源码44219
javascript·vue.js·spring boot·python·node.js·php·课程设计
星空1 小时前
pycharm复习
ide·python·pycharm
Maiko Star1 小时前
Python 包与项目管理工具——uv
python·uv
weixin199701080162 小时前
[特殊字符]《京东POP二手品类对接:B2C订单模型 vs 二手C2C属性的字段转换难题》(附Python源码)
前端·python·算法
承渊政道2 小时前
Python IDLE鸿蒙PC适配全记录:从Tkinter桌面程序到ArkUI原生开发闭环
开发语言·python·harmonyos·鸿蒙系统·桌面程序