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

数字化工厂中央控制室驾驶舱系统 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. 错误代码

状态码错误类型描述
400Bad Request请求参数错误
401Unauthorized未授权访问
403Forbidden权限不足
404Not Found资源不存在
500Internal 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
http://www.xdnf.cn/news/390367.html

相关文章:

  • go 通过汇编学习atomic原子操作原理
  • iVX 图形化编程平台:结合 AI 原生开发的革新与实践
  • 07.three官方示例+编辑器+AI快速学习webgl_buffergeometry_attributes_integer
  • Python-UV多环境管理
  • 5G-A来了!5G信号多个A带来哪些改变?
  • 经典音乐播放器——完美歌词 Poweramp Music Player 3 build
  • MyBatis进阶:掌握动态SQL,实现灵活的数据库查询
  • 实战项目5(08)
  • 【网络安全】——大端序(Big-Endian)​​和​​小端序(Little-Endian)
  • 【Linux系列】bash_profile 与 zshrc 的编辑与加载
  • 大语言模型通过MCP控制STM32-支持Ollama、DeepSeek、openai等
  • 大模型在肾肿瘤诊疗全流程预测及方案制定中的应用研究
  • 【英语笔记(三)】介绍谓语动词的分类,初步讲解四种基本状态:一般、进行、完成、完成进行
  • C#游戏开发中的注意事项
  • 淘宝19块钱激光雷达SDK转ROS2架构
  • 低代码开发:开启软件开发的新篇章
  • RAID磁盘阵列的概念(自用留档)
  • Redis BigKey 问题是什么
  • 卷积神经网络-从零开始构建一个卷积神经网络
  • PDF2zh插件在zotero中安装并使用
  • FramePack AI图片生成视频 v1.1 整合包
  • c++STL-string的使用
  • Java面试常见技术问题解析
  • 软考冲刺——案例分析题Super VLAN
  • BGP基础配置实验
  • OceanBase性能关键参数配置最佳实践
  • 5.1.1 WPF中Command使用介绍
  • 菜鸟之路day31一一MySQL之多表设计
  • windows怎么修改DNS
  • Bash 字符串语法糖详解