12 KiB
12 KiB
调度系统与盘点系统开发文档
1. 项目概述
1.1 项目背景
调度系统是用于实现仓库自动化作业的核心系统,通过与WCS(仓库控制系统)和AGV(自动导引车)系统的协作,实现货物的自动化入库、出库、移库等操作。
盘点系统是用于实现仓库库存自动盘点的系统,通过RFID设备自动采集货品信息,并与系统库存数据进行比对,以实现库存的精确管理。
1.2 项目目标
- 实现调度系统与WCS、AGV系统间的无缝对接
- 实现盘点系统与RFID设备的高效协作
- 提供标准化接口,确保各系统间稳定运行
- 实现出入库、盘点等核心业务流程
2. 调度系统
2.1 系统架构
调度系统作为中间层,负责协调WMS、WCS、AGV三个系统间的任务流转和状态同步。
2.2 业务流程描述
2.2.1 入库/上架流程
- 任务创建:WMS系统创建入库任务
- 任务分发:调度系统将任务分发给WCS系统
- 设备执行:WCS系统控制立体库设备执行上架操作
- 状态反馈:WCS系统实时反馈任务执行状态
- 完成确认:任务完成后更新状态
2.2.2 出库/下架流程
- 任务创建:WMS系统创建出库任务
- 任务分发:调度系统将任务分发给WCS系统
- 设备执行:WCS系统控制立体库设备执行下架操作
- AGV配合:根据需要调度AGV进行货物搬运
- 状态反馈:WCS/AGV系统实时反馈任务执行状态
- 完成确认:任务完成后更新状态
2.2.3 移库流程
- 任务创建:WMS系统创建移库任务
- AGV调度:调度系统先调度AGV搬运货物
- WCS配合:根据需要调度WCS进行货物存放
- 状态监控:实时监控任务执行状态
- 完成确认:任务完成后更新状态
2.3 核心功能
2.3.1 入库/上架功能
- 接收WMS系统的入库任务
- 控制立体库设备执行上架操作
- 实时反馈任务执行状态给WMS系统
2.3.2 出库/下架功能
- 接收WMS系统的出库任务
- 控制立体库设备执行下架操作
- 实时反馈任务执行状态给WMS系统
2.3.3 任务调度功能
- 任务队列管理
- 任务优先级调度
- 设备资源分配
2.4 业务流程图
graph TD
A[WMS创建任务] --> B{判断任务类型}
B -->|入库/上架| C[WMS调用WCS /API/Ruku接口]
B -->|出库/下架| D[WMS调用WCS /API/Chuku接口]
C --> E[WCS接收任务请求]
D --> E
E --> F[WCS验证任务参数]
F --> G{参数验证结果}
G -->|验证失败| H[WCS返回错误信息给WMS]
G -->|验证成功| I[WCS创建内部任务]
I --> J[WCS控制立体库设备执行任务]
J --> K[设备执行中...]
K --> L{任务执行结果}
L -->|执行成功| M[WCS更新任务状态]
L -->|执行失败| N[WCS记录异常并重试]
M --> O[WCS回调WMS状态更新]
N --> P{重试次数达到上限}
P -->|是| Q[WCS回调WMS失败状态]
P -->|否| J
O --> R[WMS接收状态更新]
Q --> R
H --> R
R --> S{是否需要AGV配合}
S -->|是| T[WMS调度AGV]
S -->|否| U[任务完成]
T --> U
2.5 接口规范
2.5.1 入库接口(/API/Ruku)
- 功能说明:WMS系统调用此接口创建入库/上架任务
- 请求方式:POST
- 我方服务地址:http://[IP_ADDR]:[PORT]/API/Ruku
- 第三方调用:WCS系统需实现此接口并接受调用
2.5.2 出库接口(/API/Chuku)
- 功能说明:WMS系统调用此接口创建出库/下架任务
- 请求方式:POST
- 我方服务地址:http://[IP_ADDR]:[PORT]/API/Chuku
- 第三方调用:WCS系统需实现此接口并接受调用
2.5.3 任务状态回调接口
- 功能说明:WCS/AGV系统回调任务执行状态
- 请求方式:POST
- 我方服务地址:http://[IP_ADDR]:[PORT]/wisdom/wcs/callback
- 第三方调用:WCS/AGV系统需调用此接口反馈状态
2.6 对接流程
2.6.1 WCS系统对接流程
- 接口实现:WCS系统需实现入库/出库接口
- 数据格式:按约定格式接收任务数据
- 状态反馈:通过回调接口实时反馈任务状态
- 异常处理:处理任务执行中的异常情况
2.6.2 AGV系统对接流程
- 接口实现:AGV系统需实现搬运任务接口
- 数据格式:按约定格式接收任务数据
- 状态反馈:实时反馈任务执行状态
- 任务协调:与WCS系统任务进行协调执行
2.7 配置信息
2.7.1 WCS系统配置
wcs:
job:
create-url: http://[WCS_IP_ADDR]:[WCS_PORT]/API/Ruku # WCS上架任务接口
chuku-url: http://[WCS_IP_ADDR]:[WCS_PORT]/API/Chuku # WCS出库任务接口
2.7.2 AGV系统配置
agv:
job:
create-url: http://[AGV_IP_ADDR]:[AGV_PORT]/api/job/create
3. 盘点系统
3.1 系统架构
盘点系统通过RFID设备采集数据,与库存数据进行比对,生成盘点报告。
3.2 业务流程描述
3.2.1 盘点任务创建流程
-
任务规划阶段:
- 确定盘点范围(指定仓库、库区、货位等)
- 确定盘点类型
- 确定盘点时间安排
- 分配盘点人员
-
基础数据准备:
- 获取指定范围内的库存数据作为基准
- 验证库存数据完整性
- 生成任务清单
-
任务创建阶段:
- 在系统中创建盘点任务记录
- 设置任务基本信息(名称、仓库、时间等)
- 绑定盘点设备
- 分配执行人员
-
任务下发阶段:
- 将任务信息同步到相关设备或人员
- 准备盘点所需的辅助数据
- 启动任务状态监控
3.2.2 盘点执行流程
- 设备连接:RFID设备连接到系统
- 任务获取:设备获取盘点任务信息
- 标签扫描:RFID设备在指定区域扫描标签
- 数据传输:将扫描数据实时传输回系统
- 状态监控:监控设备工作状态和任务进度
3.2.3 数据处理流程
- 数据收集:收集从RFID设备传回的标签数据
- 数据验证:验证数据完整性和准确性
- 数据比对:将采集数据与库存数据进行比对
- 差异分析:分析盘点差异
- 结果生成:生成盘点结果报告
3.3 核心功能
3.3.1 盘点任务管理
- 创建盘点任务(设置任务名称、仓库ID、场景ID、执行人、完成时间等)
- 任务类型:手持盘点(0)和自动盘点(1)
- 任务状态:待执行(0)、已完成(1)、已超时(2)
3.3.2 自动盘点功能
- 设备连接管理:通过RFID设备IP和端口建立TCP连接
- 标签扫描:启动RFID设备进行标签扫描
- 数据传输:通过WebSocket将扫描到的EPC标签数据发送给前端
- 扫描控制:支持开始、停止、断开连接等操作
3.3.3 数据匹配功能
- 将扫描数据与系统库存数据进行匹配
- 生成匹配结果(正常、未扫到、误扫)
- 统计盘点结果并生成图表
3.3.4 报告管理功能
- 生成盘点统计图表
- 导出盘点报告
- 提供历史盘点记录查询
3.4 业务流程图
graph TD
A[创建盘点任务] --> B[RFID设备连接]
B --> C[下发盘点任务到设备]
C --> D[设备开始标签扫描]
D --> E[实时收集标签数据]
E --> F{是否完成扫描?}
F -->|是| G[停止扫描]
F -->|否| D
G --> H[数据比对分析]
H --> I[生成盘点结果]
I --> J[输出盘点报告]
J --> K[任务完成]
3.5 接口规范
3.5.1 设备连接接口(/AutoInventory/connect)
- 功能说明:建立RFID设备连接
- 请求方式:POST
- 我方服务地址:http://[IP_ADDR]:[PORT]/AutoInventory/connect
- 第三方调用:RFID设备需调用此接口建立连接
3.5.2 开始盘点接口(/AutoInventory/scan)
- 功能说明:启动RFID设备进行标签扫描
- 请求方式:GET
- 我方服务地址:http://[IP_ADDR]:[PORT]/AutoInventory/scan
- 第三方调用:RFID设备需调用此接口开始扫描
3.5.3 停止盘点接口(/AutoInventory/stop)
- 功能说明:停止RFID设备扫描
- 请求方式:GET
- 我方服务地址:http://[IP_ADDR]:[PORT]/AutoInventory/stop
- 第三方调用:RFID设备需调用此接口停止扫描
3.5.4 断开连接接口(/AutoInventory/disconnect)
- 功能说明:断开RFID设备连接
- 请求方式:GET
- 我方服务地址:http://[IP_ADDR]:[PORT]/AutoInventory/disconnect
- 第三方调用:RFID设备需调用此接口断开连接
3.5.5 设备状态查询接口(/AutoInventory/status)
- 功能说明:查询RFID设备连接状态
- 请求方式:GET
- 我方服务地址:http://[IP_ADDR]:[PORT]/AutoInventory/status
- 第三方调用:RFID设备需调用此接口查询状态
3.5.6 开始匹配接口(/AutoInventory/match)
- 功能说明:将扫描数据与系统库存数据进行匹配
- 请求方式:POST
- 我方服务地址:http://[IP_ADDR]:[PORT]/AutoInventory/match
- 第三方调用:系统内部调用
3.5.7 盘点任务管理接口(/Inventory/task)
- 功能说明:管理盘点任务的增删改查
- 请求方式:POST/GET/PUT/DELETE
- 我方服务地址:http://[IP_ADDR]:[PORT]/Inventory/task
- 第三方调用:系统内部调用
3.6 对接流程
3.6.1 RFID设备对接流程
- 连接建立:设备通过TCP/IP连接到我方系统
- 设备注册:设备向我方系统注册,获取设备ID
- 任务获取:设备从我方系统获取当前盘点任务
- 数据采集:设备开始扫描,实时传输标签数据
- 状态同步:设备定期同步工作状态
- 任务完成:设备完成任务后报告完成状态
3.6.2 WebSocket通信
- 连接地址:ws://[IP_ADDR]:[PORT]/websocket
- 数据格式:JSON格式的标签数据
- 心跳机制:定期发送心跳包保持连接
3.7 配置信息
3.7.1 RFID设备配置
rfid:
device:
conn-id: [RFID_IP_ADDR]:[RFID_PORT]
4. 部署说明
4.1 环境要求
- Java 8 或更高版本
- Maven 3.6.0 或更高版本
- MySQL 5.7 或更高版本
- Redis 5.0 或更高版本
4.2 部署步骤
- 配置数据库连接信息
- 配置第三方系统接口地址
- 启动应用服务
- 验证接口连通性
4.3 配置文件
- application.yml:主配置文件
- application-druid.yml:数据库配置文件
5. 我方开发工作汇总
5.1 调度系统开发工作
5.1.1 接口开发
- 入库/上架接口开发:实现与WCS系统的入库任务下发,预计16小时
- 出库/下架接口开发:实现与WCS系统的出库任务下发,预计16小时
- 任务状态回调接口开发:实现任务状态反馈机制,预计24小时
5.1.2 业务逻辑开发
- 货物上架逻辑实现:实现完整的货物上架业务流程,预计32小时
- 货物下架逻辑实现:实现完整的货物下架业务流程,预计32小时
- 任务调度与排队机制:实现多任务排队调度算法,预计24小时
5.1.3 系统集成开发
- 与WMS系统接口对接:确保调度系统与WMS系统稳定通信,预计20小时
- 与AGV系统协调机制:实现调度系统与AGV系统的任务协调,预计16小时
调度系统总计:180小时
5.2 盘点系统开发工作
5.2.1 设备接口开发
- RFID设备连接接口开发:开发RFID设备连接、断开、状态查询接口,预计24小时
- 盘点控制接口开发:开发开始盘点、停止盘点等控制接口,预计16小时
5.2.2 数据处理开发
- 扫描数据处理开发:处理RFID设备扫描的标签数据,预计28小时
- 数据匹配算法开发:开发扫描数据与库存数据的匹配算法,预计32小时
5.2.3 任务管理开发
- 盘点任务管理开发:开发盘点任务的增删改查功能,预计24小时
- 报告生成开发:开发盘点报告生成和统计功能,预计20小时
5.2.4 系统集成开发
- WebSocket通信开发:实现实时数据传输功能,预计20小时
盘点系统总计:164小时
5.3 项目总计
- 调度系统开发:180小时
- 盘点系统开发:164小时
- 项目总计:344小时