数字化工厂中央控制室驾驶舱系统 API接口文档
数字化工厂中央控制室驾驶舱系统 API接口文档
本文档详细描述了数字化工厂中央控制室驾驶舱系统的API接口规范,包括中端服务提供的数据接口和算法接口。
1. 通用规范
1.1 基础URL
- 后端服务:
http://localhost:8000
- 中端服务数据API:
http://localhost:8001
- 中端服务算法API:
http://localhost:8002
1.2 响应格式
所有API返回标准JSON格式,包含以下字段:
成功响应:
{"status": "success","data": { ... } // 响应数据,根据接口不同而不同
}
错误响应:
{"status": "error","message": "错误信息描述"
}
1.3 认证方式
API使用Bearer Token认证:
Authorization: Bearer {token}
2. 中端数据API接口
2.1 获取指定类型的最新数据
获取特定类型数据的最新记录。
- URL:
/api/collector/data/{data_type}
- 方法:
GET
- URL参数:
data_type
: 数据类型 (machine_data, agv_data, stamping_data等)
- 查询参数:
limit
: 返回记录数量,默认10
请求示例:
GET /api/collector/data/machine_data?limit=5
成功响应:
[{"_id": "634f2a1b3e01a5c33e8b4567","device_id": "CNC-001","device_type": "cnc","status": "running","temperature": 65.2,"timestamp": "2025-05-07T14:30:25.123Z"},...
]
2.2 获取历史数据
获取指定时间范围内的历史数据。
- URL:
/api/collector/data/{data_type}/history
- 方法:
GET
- URL参数:
data_type
: 数据类型
- 查询参数:
start_time
: 开始时间 (ISO格式)end_time
: 结束时间 (ISO格式)limit
: 返回记录数量,默认100
请求示例:
GET /api/collector/data/agv_data/history?start_time=2025-05-01T00:00:00&end_time=2025-05-07T23:59:59
成功响应:
[{"_id": "634f2a1b3e01a5c33e8b4568","device_id": "AGV-001","device_type": "agv","status": "busy","position": {"x": 120.5,"y": 85.3},"battery_level": 78.5,"timestamp": "2025-05-07T10:15:33.456Z"},...
]
2.3 获取指定设备数据
获取特定设备的数据。
- URL:
/api/collector/device/{device_type}/{device_id}
- 方法:
GET
- URL参数:
device_type
: 设备类型device_id
: 设备ID
- 查询参数:
limit
: 返回记录数量,默认10
请求示例:
GET /api/collector/device/agv/AGV-001
成功响应:
[{"_id": "634f2a1b3e01a5c33e8b4568","device_id": "AGV-001","device_type": "agv","status": "busy","position": {"x": 120.5,"y": 85.3},"battery_level": 78.5,"timestamp": "2025-05-07T10:15:33.456Z"},...
]
2.4 获取所有AGV位置
获取所有AGV的最新位置数据。
- URL:
/api/collector/agv/positions
- 方法:
GET
请求示例:
GET /api/collector/agv/positions
成功响应:
[{"_id": "634f2a1b3e01a5c33e8b4568","device_id": "AGV-001","device_type": "agv","position": {"x": 120.5,"y": 85.3},"timestamp": "2025-05-07T15:30:10.123Z"},...
]
3. 中端算法API接口
3.1 路径规划
为AGV规划从起点到终点的路径。
- URL:
/api/algorithm/path/plan
- 方法:
POST
- 请求体:
{"agv_id": "AGV-001","start_point": {"x": 100,"y": 100},"end_point": {"x": 500,"y": 400},"obstacles": [{"x": 300,"y": 300},{"x": 350,"y": 300}],"priority": 2
}
成功响应:
{"agv_id": "AGV-001","path": [{"x": 100,"y": 100},{"x": 150,"y": 150},...{"x": 500,"y": 400}],"distance": 565.68,"estimated_time": 565.68
}
3.2 任务调度
为多个AGV分配多个任务。
- URL:
/api/algorithm/task/schedule
- 方法:
POST
- 请求体:
{"tasks": [{"id": "TASK-001","start": {"x": 100,"y": 100},"end": {"x": 500,"y": 400},"priority": 3},{"id": "TASK-002","start": {"x": 200,"y": 200},"end": {"x": 600,"y": 500},"priority": 1}],"available_agvs": ["AGV-001", "AGV-002", "AGV-003"]
}
成功响应:
{"status": "success","assignments": [{"agv_id": "AGV-001","task_id": "TASK-001","path": [{"x": 100,"y": 100},...{"x": 500,"y": 400}],"estimated_time": 565.68,"start_time": "2025-05-07T16:45:20.123Z"},{"agv_id": "AGV-002","task_id": "TASK-002","path": [{"x": 200,"y": 200},...{"x": 600,"y": 500}],"estimated_time": 509.9,"start_time": "2025-05-07T16:45:20.123Z"}],"total_assigned": 2,"total_pending": 0
}
3.3 获取AGV位置
获取特定AGV的当前位置。
- URL:
/api/algorithm/agv/{agv_id}/position
- 方法:
GET
- URL参数:
agv_id
: AGV ID
请求示例:
GET /api/algorithm/agv/AGV-001/position
成功响应:
{"x": 120.5,"y": 85.3
}
3.4 更新AGV位置
更新特定AGV的位置。
- URL:
/api/algorithm/agv/{agv_id}/position
- 方法:
PUT
- URL参数:
agv_id
: AGV ID
- 请求体:
{"x": 150.0,"y": 90.5
}
成功响应:
{"status": "success","message": "AGV AGV-001 位置已更新"
}
4. WebSocket事件
系统使用WebSocket提供实时数据更新。
4.1 WebSocket连接
- URL:
ws://localhost:8000/ws
4.2 事件类型
4.2.1 设备状态更新
{"event": "device_status","data": {"device_id": "CNC-001","device_type": "cnc","status": "running","temperature": 67.8,"timestamp": "2025-05-07T17:05:12.345Z"}
}
4.2.2 AGV位置更新
{"event": "agv_status","data": {"device_id": "AGV-001","device_type": "agv","status": "busy","position": {"x": 125.8,"y": 87.2},"battery_level": 77.8,"timestamp": "2025-05-07T17:05:15.678Z"}
}
4.2.3 AGV路径更新
{"event": "agv_path","data": {"agv_id": "AGV-001","path": [{"x": 125.8,"y": 87.2},...{"x": 500,"y": 400}],"timestamp": "2025-05-07T17:05:20.123Z"}
}
5. 错误代码
状态码 | 错误类型 | 描述 |
---|---|---|
400 | Bad Request | 请求参数错误 |
401 | Unauthorized | 未授权访问 |
403 | Forbidden | 权限不足 |
404 | Not Found | 资源不存在 |
500 | Internal Server Error | 服务器内部错误 |
6. 数据模型
6.1 设备数据模型
{"device_id": "设备ID","device_type": "设备类型","status": "设备状态","timestamp": "时间戳",// 其他属性根据设备类型不同而不同
}
6.2 AGV数据模型
{"device_id": "AGV ID","device_type": "agv","status": "AGV状态","position": {"x": "X坐标","y": "Y坐标"},"orientation": "方向角度","battery_level": "电量百分比","current_task": "当前任务ID","timestamp": "时间戳"
}
6.3 路径数据模型
{"agv_id": "AGV ID","start_point": {"x": "起点X坐标","y": "起点Y坐标"},"end_point": {"x": "终点X坐标","y": "终点Y坐标"},"path": [{"x": "点X坐标","y": "点Y坐标"},// 更多路径点],"distance": "路径长度","estimated_time": "预计时间","timestamp": "时间戳"
}
6.4 任务数据模型
{"id": "任务ID","start_point": {"x": "起点X坐标","y": "起点Y坐标"},"end_point": {"x": "终点X坐标","y": "终点Y坐标"},"priority": "优先级","assigned_agv": "分配的AGV ID","status": "任务状态","created_at": "创建时间","assigned_at": "分配时间","completed_at": "完成时间"
}
数字化工厂中央控制室驾驶舱系统
项目概述
本项目是一个数字化工厂中央控制室驾驶舱系统,提供实时、全面的工厂运行状态可视化监控。系统集成了生产线数据采集、设备状态监控、生产效率分析、质量控制、能耗监测和预测性维护功能,为工厂管理者提供决策支持。
系统特点
- 全面的数据采集:实时采集生产线、设备和环境数据
- 多维度可视化:大屏展示工厂运行状态、KPI指标和异常警报
- 实时监控预警:设备异常、质量波动和生产偏差实时告警
- 生产趋势分析:产能、质量、能耗等多维度数据分析
- 决策辅助功能:基于历史数据的生产优化建议
- 智能AGV调度:基于优化算法的AGV路径规划和任务分配
系统架构
DigitalFactoryDashboard/
├── backend/ # 后端服务
│ ├── api/ # API接口
│ ├── data_acquisition/ # 数据采集模块
│ ├── data_processing/ # 数据处理与分析
│ └── database/ # 数据存储管理
├── middleware/ # 中端服务
│ ├── collector/ # 数据采集中间件
│ ├── database/ # 数据分类存储
│ ├── algorithm/ # 算法模块
│ │ ├── path_planning/ # 路径规划算法
│ │ └── scheduling/ # 调度算法
│ └── api/ # 中端API接口
├── frontend/ # 前端大屏显示
│ ├── src/ # 源代码
│ │ ├── components/ # 组件
│ │ ├── pages/ # 页面
│ │ └── utils/ # 工具函数
│ └── public/ # 静态资源
└── config/ # 配置文件
主要功能
生产监控大屏
- 工厂总体运行状况和KPI指标
- 生产线实时状态和产能监控
- 设备运行状态和健康度
- 质量指标监控和异常点显示
- 能耗监控和优化建议
设备管理面板
- 设备实时状态和参数展示
- 历史运行数据查询和图表分析
- 设备异常原因追踪
- 预测性维护预警
- 设备效率分析
生产计划与执行
- 生产计划完成率监控
- 实时生产进度追踪
- 订单完成状态展示
- 生产瓶颈分析
- 产能优化建议
质量控制大屏
- 产品质量实时监控
- 质量问题分布可视化
- 质量趋势分析
- 异常原因快速定位
- SPC控制图表展示
能源管理面板
- 工厂能源消耗监控
- 不同工序能耗对比
- 能耗异常检测与分析
- 节能优化建议
- 能耗成本统计
AGV智能调度系统
- AGV实时状态监控
- 智能路径规划与可视化
- 任务自动分配与优化
- 多AGV协同调度
- 动态避障与路径重规划
技术栈
- 后端:Python, FastAPI, SQLite, Pandas, NumPy, Scikit-learn
- 中端:Python, MongoDB, Networkx, OSRM, PyTorch
- 前端:React, ECharts, Ant Design, WebSocket, Three.js
- 通信:RESTful API, WebSocket, MQTT
接口规范
1. 数据采集接口
数据采集中间件提供以下接口:
GET /api/collector/data/{data_type}
返回指定类型的最新采集数据GET /api/collector/data/{data_type}/history
返回指定类型的历史数据参数:
- data_type: 数据类型 (production, device, energy, agv等)
- start_time: 开始时间
- end_time: 结束时间
2. 算法接口
路径规划算法提供以下接口:
POST /api/algorithm/path/plan
输入参数:
{"agv_id": "AGV-001","start_point": {"x": 10, "y": 20},"end_point": {"x": 90, "y": 80},"obstacles": [{...}],"priority": 1
}返回:
{"path": [{"x": 10, "y": 20},{"x": 30, "y": 20},...],"distance": 120,"estimated_time": 60
}
任务调度算法接口:
POST /api/algorithm/task/schedule
输入参数:
{"tasks": [{"id": "TASK-001", "start": {"x":10, "y":20}, "end": {"x":90, "y":80}, "priority": 1},...],"available_agvs": ["AGV-001", "AGV-002"]
}返回:
{"assignments": [{"agv_id": "AGV-001", "task_id": "TASK-001", "path": [...], "start_time": "..."},...]
}
使用说明
详细的安装和使用说明将在项目开发完成后提供。
开发日志
2025-05-11 中端系统与算法模块集成
会话目的:为数字化工厂中央控制室驾驶舱系统添加中端数据采集系统和智能AGV路径规划算法模块
完成任务:
- 新增中端系统架构,包括数据采集中间件、MongoDB数据存储和算法模块
- 实现A*路径规划算法和基于成本函数的任务调度算法
- 创建中端API接口,提供路径规划和任务调度服务
- 修改前端FactoryMap组件,支持AGV路径可视化显示
- 修改AGVMonitor组件,实现AGV路径跟随功能
关键决策和解决方案:
- 采用三层架构设计:前端、中端、后端分离,中端专注于数据处理和算法支持
- A*算法实现路径平滑处理,减少不必要的拐点
- 任务调度算法基于多维度成本函数,综合考虑距离、电量和优先级
- MongoDB用于存储分类数据,提供灵活的数据查询能力
- WebSocket用于实时更新路径和AGV位置信息
使用的技术栈:
- 中端:Python、FastAPI、MongoDB、asyncio
- 算法:A*路径规划、基于成本函数的多任务调度
- 前端可视化:Canvas绘图、动画效果
修改的文件:
- 新增middleware目录及其子目录结构
- middleware/database/db_config.py:MongoDB数据库配置
- middleware/collector/data_collector.py:数据采集器
- middleware/algorithm/path_planning/a_star.py:A*路径规划算法
- middleware/algorithm/scheduling/task_scheduler.py:任务调度算法
- middleware/api/data_api.py、algorithm_api.py:中端API接口
- middleware/run.py:中端系统启动脚本
- middleware/requirements.txt:中端系统依赖
- frontend/src/pages/FactoryMap.js:修改支持路径显示
- frontend/src/pages/AGVMonitor.js:修改支持路径跟随
- README.md:更新系统架构和开发日志
2025-05-07 添加数据采集监控终端
会话目的:在系统中添加一个实时数据采集监控终端,用于可视化展示数据采集过程
完成任务:
- 添加数据采集监控终端功能,实时显示采集到的数据
- 实现同设备类型的彩色显示效果
- 每10条数据显示一次详细信息
关键决策和解决方案:
- 采用异步协程方式实现数据监控,不影响现有系统功能
- 利用回调机制将数据管理器采集的数据传递给监控终端
- 为不同设备类型设置不同颜色,提高数据可读性
使用的技术栈:
- Python、asyncio
- 终端彩色输出
修改的文件:
- backend/run.py(添加了数据监控终端功能)
- README.md(更新开发日志)
2025-05-10 系统浏览与熟悉
目的:数字化工厂中央控制室驾驶舱系统的整体架构和功能
完成:
- 浏览项目的基本结构与组织方式
- 查看系统的技术栈和主要功能模块
- 了解系统更新日志和新增的冲压车间监控功能
发现:
- 系统采用前后端分离架构,前端基于React,后端基于FastAPI
- 系统具有全面的工厂监控功能,最新版本新增冲压车间监控模块
- 系统包含丰富的数据可视化组件和实时监控能力
使用的技术栈:
- 前端:React, ECharts, Ant Design, WebSocket, Three.js
- 后端:Python, FastAPI, SQLite, Pandas, NumPy, Scikit-learn