数字化工厂中央控制室驾驶舱系统架构文档
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. 扩展性设计
系统设计考虑了未来的扩展需求:
- 新算法模块可以轻松集成到algorithm目录下
- 新设备类型可通过扩展数据库集合支持
- 前端组件采用模块化设计,便于增加新功能
- API接口版本化设计,支持向后兼容