当前位置: 首页 > backend >正文

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

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

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_dataAGV数据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}/historyGET获取历史数据data_type, start_time, end_time
/api/collector/device/{device_type}/{device_id}GET获取设备数据device_type, device_id
/api/collector/agv/positionsGET获取所有AGV位置
3.1.2 算法API接口
接口路径方法功能说明参数
/api/algorithm/path/planPOST规划路径agv_id, start_point, end_point, obstacles
/api/algorithm/task/schedulePOST调度任务tasks, available_agvs
/api/algorithm/agv/{agv_id}/positionGET获取AGV位置agv_id
/api/algorithm/agv/{agv_id}/positionPUT更新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接口版本化设计,支持向后兼容
http://www.xdnf.cn/news/5523.html

相关文章:

  • Transformer LLM
  • Linux数据库篇、第零章_MySQL30周年庆典活动
  • 关于chatshare.xyz激活码使用说明和渠道指南!
  • 3D虚拟工厂vue3+three.js
  • Babel 深度解析:现代 JavaScript 开发的桥梁
  • @RequestParam @RequestHeader @RequestBody 三者详解
  • 【英语笔记(四)】诠释所有16种英语时态,介绍每种时态下的动词变形!!含有所有时态的的动词变形汇总表格
  • C语言学习记录——深入理解指针(4)
  • 单片机-STM32部分:13、PWM
  • MongoDB
  • wget、curl 命令使用场景与命令实践
  • 数据并行基础概念知识
  • openai接口参数max_tokens改名max-completion-tokens?
  • 17前端项目----支付弹框
  • 10.二叉搜索树中第k小的元素(medium)
  • 用pymysql操作数据库
  • POST请求 、响应、requests库高级用法
  • 甜蜜聊天话术库
  • Go语言标识符
  • 嵌入式STM32学习——433M无线遥控灯
  • AI-Talk开发板之驱动1.28寸圆屏
  • 深入理解 Polly:.NET Core 中的健壮错误处理策略
  • HTTP/1.1 host虚拟主机详解
  • USB学习【6】USB传输错误的处理
  • Typescript 源码核心流程
  • 【C语言练习】035. 编写结构体的函数
  • MySQL视图深度解析:从基础语法到高级应用
  • Mask-aware Pixel-Shuffle Down-Sampling (MPD) 下采样
  • vector 常见用法及模拟
  • 算法题(144):跳石头