3. WMS 任务生成机制
WMS 的核心职责不是“记录库存”,而是把业务意图翻译成可被 WCS 和 AMR 执行的任务。业务单据(出库单、入库单、移库申请、盘点计划、补货建议)本身不能直接驱动设备,必须经过任务生成机制:确定任务类型、绑定库存与库位、计算优先级、决定是否合入波次、分配执行资源,最终输出带明确起点、终点、物料、数量的任务指令。本节围绕这条转化链展开。
一、五类业务到任务的映射关系
不同业务生成的任务在“起点—终点—库存影响”上有本质差异,这是后续优先级和分配逻辑的基础:
- 出库:起点为存储/拣选库位,终点为出库站台或集货位,库存减少。任务粒度通常是“SKU + 数量 + 目标站台”。
- 入库:起点为收货月台/暂存位,终点为目标存储库位,库存增加。需先做上架推荐(库位分配),再生成搬运任务。
- 移库:起点与终点均为库内库位,库存总量不变,仅位置变化。常见于库位整理、ABC 调整、通道拥堵疏解。
- 盘点:起点为被盘库位,终点为盘点站或原地核验,产生“账面—实盘”差异记录,不直接改变库存,差异确认后才触发调整任务。
- 补货:起点为存储区/补货源库位,终点为拣选面库位,库存总量不变,但改变了“可拣库存”的分布。
可以看到,出库/入库改变库存数量,移库/补货/盘点只改变库存位置或状态。任务生成时必须携带库存事务类型,否则 WCS 无法判断任务完成后是否需要回写库存。
二、库存分配逻辑:先锁库存,再生成任务
任务生成的第一步是库存分配。WMS 不会直接拿“账面库存”去生成任务,而是基于可用库存 = 账面库存 − 已分配量 − 冻结量进行判断。以出库为例,假设某 SKU 在 A-01-03 库位有 120 件,其中 30 件已被其他订单分配,则可用量为 90 件。若当前订单需要 100 件,系统会:
- 先分配 A-01-03 的 90 件,生成一条任务;
- 剩余 10 件继续查找其他库位,若找到则生成第二条任务;
- 若全仓可用量不足,则订单进入“缺货挂起”状态,不生成任务。
分配策略通常按先进先出(FIFO)、先到期先出(FEFO)或就近拣选排序。例如冷链场景优先 FEFO,电商大促优先就近拣选以缩短 AMR 行走距离。分配完成后,库存被“预占”,此时任务已生成但尚未下发,直到波次释放或优先级触发才进入 WCS。
三、优先级计算:让紧急任务先走
优先级不是单一字段,而是多因子加权结果。一个可落地的计算方式是:
优先级得分 = 业务权重 × 0.4
+ 时效紧迫度 × 0.3
+ 任务等待时长 × 0.2
+ 设备匹配度 × 0.1
其中业务权重可设为:出库 80、补货 70、入库 60、移库 40、盘点 30;时效紧迫度按“距截止时间”分档,越近得分越高;等待时长用于防止低优先级任务饿死;设备匹配度考虑 AMR 载具类型是否与任务容器匹配。得分越高,WCS 调度时越优先派车。实际项目中,优先级通常映射为 1~9 级,1 级最高,由 WMS 在任务生成时写入任务头。
四、波次策略:把零散任务聚合成高效批次
波次的核心目的是减少 AMR 空驶和重复行走。常见波次策略包括:
- 定时波次:每 15 分钟释放一批,适合出库节奏稳定的场景。
- 订单量波次:累计到 50 行或 30 单释放一次,适合电商大促。
- 区域波次:按库区或巷道聚合,同一波次任务集中在相邻区域,缩短 AMR 行程。
- 优先级波次:高优先级任务单独成波,立即释放,不等待凑量。
波次释放时,WMS 将波次内任务按“拣选路径最短”排序,再批量下发给 WCS。注意:波次只影响释放时机和顺序,不改变任务本身的起点、终点和库存分配结果。
五、任务拆分与合并的边界
一个业务单据可能生成多条任务,也可能多条单据合并为一条任务。判断依据是:
- 拆分:当单库位库存不足、或容器容量限制、或需要跨区搬运时,必须拆成多条任务。
- 合并:当多个出库行指向同一库位、同一容器、同一目标站台时,可合并为一条“多行任务”,减少 AMR 往返次数。
合并的前提是不破坏库存分配的独立性——每条明细仍需保留自己的分配记录,以便后续回写和差异追溯。
六、任务状态与异常处理
任务生成后进入状态机:待分配 → 已分配 → 执行中 → 已完成,异常时进入挂起或取消。常见异常包括:库存被冻结、目标库位被占用、AMR 故障导致任务超时。WMS 需要提供“任务重分配”能力:将挂起任务重新走一遍库存分配和库位推荐,而不是简单重发原任务。判断任务是否真正完成的依据是 WCS 回传的到位确认 + 库存事务回写成功,两者缺一不可。
综上,WMS 任务生成机制的本质是:用库存分配锁定资源,用优先级决定顺序,用波次聚合效率,用状态机保证闭环。只有这四者协同,出库、入库、移库、盘点、补货才能从业务单据稳定转化为 AMR 可执行的任务流。