WES 重构系列(五):出库调度正向链路效率优化
文内的图示需要科学上网才能流畅查看,图床直接用了 GitHub。
一、出库链路耗时在哪里?
如果想优化出库正向链路,那么首先要知道耗时在哪些地方,这样才能对症下药。
先回顾一下出库链路图:

类似操作系统中磁盘 IO花费时间一般由 3 个部分组成:
- 寻道时间
- 旋转延迟
- 数据传输时间
这三者的时间都蛮长的,尤其是两者。为什么呢?因为涉及到物理移动。
在出库链路中,耗时最长的也是如此,所以我们主要从这个方面入手。
优化主要从两个方面来讨论,业务上优化以及技术上的优化。
二、出库调度正向链路业务优化
2.1 热度移位
在 WES(仓储执行系统)中, 热度移位功能是一项智能的库存动态调整策略。其核心目标是让高频次出入库的商品(热销品)尽可能地靠近仓库的拣选工作站或出库区域,从而显著减少拣货员或自动化导引车(AGV)的行走或移动距离,最终提升整体仓储运营效率。
看一下热度移位前后对比图,应该比较清晰一些:

我们从图中可以看到,热度移位后,高频商品(红色部分)都移动到拣选工作站附近了。
热度移位的目的本质是为了减少搬运时间,从而大幅提高出库效率。
2.2 超 A 不返库
智能仓的存储区是一个三维空间,热度移位更侧重水平坐标的优化,超 A 不返库则更侧重垂直坐标的优化。
说的有点抽象,我简单解释一下。仓储区域是一个个的货架,货架分为多层,每一层又分为多个库位,最下层是缓存层,料箱容器如果放在货架上层,则需要从上层搬到下层,再从下层搬运到拣选工作站。
超 A 不返库指的是高频超 A 商品放到货架最下面一层,也就是缓存层,减掉料箱从货架上层搬运到货架下层的流程。
文字可能不太好理解,我们看张图示意图吧:

2.3 FlowPick 单品单件
我们组负责的一些日本海外仓,比如 Eqseek,单据类型比较特殊,单品单件订单占比近80%,为提高拣选效率,可以一次入站完成更多件数,提出flowpick产品化方案。
当然国内直播电商也有类似场景,比如直播间大主播,观众下单,大多是单品单件订单。
WES对可聚合订单做标记,交由算法组,让算法把一批订单聚合分配到同一个 flowpick 槽位中。
这样能大幅减少WES 调度和下游搬运次数。

2.4 进站提前上报
小车搬运容器即将进入工作站时,会减速,达到指定码点后,会上报到站消息。
WES 拿到搬运系统上报的到站消息后,会推送实操任务给 STATION。
我们做了提前上报功能,小车在即将进站前,到达指定码点时,就提前上报到站消息,让 WES 处理并推送实操任务,这样相当于做了并行处理:
- 小车从指定码点到真正进站
- WES 接收到站消息并推送实操任务
这样也减少了出库链路时间。
如下图所示:

2.5 提前离站
原先的流程是拣选、封箱、点击全部分播完成后车才走,但其实拣选完之后,车就可以走了。
提前离站我们做了开关,在拣选到最大值后,车提前离站,下一个车可以直接进站。
这样我们又减少了一部分链路耗时。
这里我也画了一张流程图,如下所示:

2.6 预出库
那什么是预出库呢?我先聊一下问题背景,其实前文也聊了场景:
料箱场景下的出库分为两段搬运:
- C56 机器人: 将料箱搬运至缓存位。
- 青鸾机器人: 将缓存位的料箱搬运至工作站。
为了提高拣选效率,我们探讨了能否将第一段搬运(C56 搬运至缓存位)提前完成,即实现“预出库”。
在料箱出库场景中,物料搬运分为两步:
-
C56 机器人: 将料箱搬运至缓存位。
-
青鸾机器人: 将缓存位的料箱搬运至工作站。
为了提高拣选效率,我们探讨了能否将第一段搬运(C56 搬运至缓存位)提前完成,即实现“预出库”。
我们提出了两种预出库方案:静态预出库和动态预出库。
1. 静态预出库 (Static Pre-Outbound)
| 适用场景 | 客户在一天中某个特定时刻集中下发大部分订单。 |
|---|---|
| 方案描述 | 系统根据已下发订单所需的库存,提前将料箱搬运至缓存位。 |
| 优点 | 简单易实施: 一天只需计算一次。 |
| 缺点 | *需要严格控制订单的出库上墙顺序。 * 对缓存位占用较大。 |
2. 动态预出库 (Dynamic Pre-Outbound)
| 适用场景 | 提升实时拣选效率,优化缓存资源占用。 |
|---|---|
| 方案描述 | 工作站虚拟出部分槽位用于分配“预出库订单”。 这些预出库订单仅执行第一段搬运(搬至缓存位)。 当实际订单完成后,对应的预出库订单才会转移到实际分播墙槽位上。 |
| 优点 | 缓存位占用少,资源利用灵活。 对实际拣选效率提升显著。 |
| 缺点 | 需要实时计算和持续监控。 对系统资源消耗较大。 |