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

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

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接口版本化设计,支持向后兼容
相关推荐
外收内放10 分钟前
Python基础语法练习题(拓展2)
python·pygame
“AI国潮设计-小江”15 分钟前
《Python+SDXL实战:用ControlNet批量生成“英歌舞草莓蛋糕”IP,附自动化脚本与商用思路》
开发语言·人工智能·python·prompt·aigc
为啥全要学19 分钟前
大模型流式输出过滤敏感词
开发语言·python
2601_9628857228 分钟前
如何用 Python 统计 A 股连续涨停(几连板)?
java·linux·python
Carl_奕然38 分钟前
【智能体】Loop 的四种设计模式之:Event-Driven Loop(2026 最新版)
人工智能·驱动开发·python·设计模式
Carl_奕然1 小时前
【智能体】Loop 的四种设计模式之:Hill Climbing Loop(2026 最新版)
人工智能·python·设计模式
专业程序开发源1 小时前
springboot全民健身和饮食健康管理系统29158-计算机课程设计、毕业设计
java·spring boot·后端·python·django·php·课程设计
在世修行1 小时前
干货:业务标识 vs 自动判据
python
zwd20051 小时前
Manim move_to 和 shift 用法详解:相对位移、绝对落点与 aligned_edge(0.21.0 实测)
python·动画·可视化·shift·manim·数学动画·move_to
“AI国潮设计-小江”2 小时前
《Python+SDXL实战:用ControlNet精准控制“英歌舞戚风蛋糕”质感,附批量生成脚本》
开发语言·人工智能·python·prompt·aigc