文内的图示需要科学上网才能流畅查看,图床直接用了 GitHub。
文内的图示需要科学上网才能流畅查看,图床直接用了 GitHub

一、出库链路耗时在哪里?

如果想优化出库正向链路,那么首先要知道耗时在哪些地方,这样才能对症下药。
先回顾一下出库链路图:

类似操作系统中磁盘 IO花费时间一般由 3 个部分组成:

  1. 寻道时间
  2. 旋转延迟
  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 预出库

那什么是预出库呢?我先聊一下问题背景,其实前文也聊了场景:
料箱场景下的出库分为两段搬运:

  1. C56 机器人: 将料箱搬运至缓存位
  2. 青鸾机器人: 将缓存位的料箱搬运至工作站
    为了提高拣选效率,我们探讨了能否将第一段搬运(C56 搬运至缓存位)提前完成,即实现“预出库”。

在料箱出库场景中,物料搬运分为两步:

  1. C56 机器人: 将料箱搬运至缓存位

  2. 青鸾机器人: 将缓存位的料箱搬运至工作站

为了提高拣选效率,我们探讨了能否将第一段搬运(C56 搬运至缓存位)提前完成,即实现“预出库”。

我们提出了两种预出库方案:静态预出库动态预出库

1. 静态预出库 (Static Pre-Outbound)

适用场景 客户在一天中某个特定时刻集中下发大部分订单。
方案描述 系统根据已下发订单所需的库存,提前将料箱搬运至缓存位。
优点 简单易实施: 一天只需计算一次。
缺点 *需要严格控制订单的出库上墙顺序。 * 对缓存位占用较大

2. 动态预出库 (Dynamic Pre-Outbound)

适用场景 提升实时拣选效率,优化缓存资源占用。
方案描述 工作站虚拟出部分槽位用于分配“预出库订单”。 这些预出库订单仅执行第一段搬运(搬至缓存位)。 当实际订单完成后,对应的预出库订单才会转移到实际分播墙槽位上。
优点 缓存位占用少,资源利用灵活。 对实际拣选效率提升显著
缺点 需要实时计算和持续监控。 对系统资源消耗较大