2. 仓储库位基础

库位是仓储作业的最小物理单元。无论采用随机存储还是定位存储,库位编码、类型划分和容量约束都是上架策略落地的底层数据基础。本节从三个维度拆解库位基础,为后续的分配测试提供可量化的模型输入。

2.1 库位编码规则

库位编码(Location Code)是仓库的“门牌号”,必须满足唯一性、可解析性和扩展性。常见的编码结构采用“区域-通道-货架-层-列”五段式或“库区-排-列-层”四段式。

编码段 示例 说明
库区 A 存储区 / 拣选区 / 暂存区
通道 03 通道编号,通常两位数字
货架 12 通道内的货架序号
层 B 字母表示层高(A=底层)
列 04 货架内的列位置

编码示例:A-03-12-B-04 表示 A 库区、03 通道、12 号货架、B 层、第 04 列。

编码设计原则:避免使用易混淆字符(如 O/0、I/1);保留预留段用于未来自动化设备对接;编码长度建议控制在 10~15 个字符以内,便于 PDA 扫描和语音播报。
库位编码五段式结构解析 库区 通道 货架 层 列 完整编码示例:A-03-12-B-04 解析:A库区 → 03通道 → 12号货架 → B层(第二层) → 04列

2.2 库位类型

根据作业功能,库位分为三种核心类型。不同类型的库位在 WMS 中拥有独立的属性标签,直接影响上架策略的库位筛选逻辑。

  • 存储位(Storage Location):用于中长期存放整托盘或整箱库存,通常位于货架高层或纵深位置,追求空间利用率,不追求拣选效率。
  • 拣选位(Picking Location):位于货架底层或黄金层(人机工程学最佳高度),用于存放高频出库 SKU,追求拣选路径最短、补货频次可控。
  • 暂存位(Staging / Buffer Location):用于收货后临时存放、越库中转或退货待处理,周转时间短,通常不参与长期库存分配。
类型 典型位置 周转速度 上架优先级 容量特征
存储位 高层 / 纵深 慢 低(补货触发) 大容量、多托盘
拣选位 底层 / 黄金层 快 高(直接上架) 小容量、单托盘或箱
暂存位 收发货区附近 极快 中(临时分配) 可变、按波次清空
上架策略关联:随机存储通常优先将库存放入空闲存储位,而定位存储则根据 SKU 的 ABC 分类强制绑定拣选位或存储位。库位类型标签是策略引擎的第一道过滤器。
库位类型与作业流关系 存储位 拣选位 暂存位 典型作业流向 收货 → 暂存位(质检/理货) → 存储位(长期存放) → 补货至拣选位 → 拣选出库 越库场景:收货 → 暂存位 → 直接出库(跳过存储位和拣选位)

2.3 库位容量与约束

库位容量不是简单的“能放多少箱”,而是由物理尺寸、承重、存储单元类型和作业规则共同定义的约束集合。上架策略必须实时校验这些约束,否则会导致库位超载或作业冲突。

2.3.1 容量维度

  • 体积容量:库位长 × 宽 × 高(单位:m³),限制存储单元的最大外形尺寸。
  • 重量容量:货架层板或托盘位的最大承重(单位:kg),通常区分静载和动载。
  • 单元容量:最多可存放的托盘数或箱数(单位:pallet / case)。
  • 混合约束:是否允许混 SKU、混批次、混生产日期。
约束类型 典型值 上架校验逻辑
最大托盘数 1 pallet 当前占用 + 1 ≤ 最大托盘数
最大重量 800 kg 当前重量 + 入库重量 ≤ 最大重量
最大高度 1.8 m 货物高度 ≤ 库位净高
混放规则 仅同SKU 库位内已有 SKU 必须与入库 SKU 一致
FIFO 约束 强制先进先出 上架时记录入库时间戳,出库按时间排序
常见配置陷阱:只配置体积容量而忽略重量容量,会导致高层货架结构风险;混放规则不明确会导致拣选时批次混乱。在随机存储策略中,建议至少校验“单元容量 + 混放规则”两个维度,定位存储策略中额外校验“FIFO 约束”。

2.3.2 约束在策略中的使用

上架策略引擎在分配库位时,会按以下顺序过滤可用库位:

  1. 库位状态过滤:排除冻结、锁定、已满库位。
  2. 物理容量校验:体积、重量、单元数是否满足。
  3. 规则约束校验:混放规则、FIFO 规则、批次规则。
  4. 策略偏好排序:随机存储按空闲率排序,定位存储按 SKU 绑定优先级排序。
# 库位容量校验伪代码示例
def is_location_available(location, incoming_sku, incoming_qty):
    # 1. 状态检查
    if location.status != 'ACTIVE':
        return False
    # 2. 单元容量检查
    if location.current_units + incoming_qty > location.max_units:
        return False
    # 3. 混放规则检查
    if location.mix_sku_flag == 'SINGLE' and location.current_sku != incoming_sku:
        return False
    # 4. 重量检查
    if location.current_weight + incoming_sku.weight * incoming_qty > location.max_weight:
        return False
    return True
容量数据维护建议:库位容量数据应在 WMS 初始化时一次性导入,后续每季度复核一次。对于高位货架,建议在系统内保留“净高”字段而非“总高”,因为横梁和消防喷淋会占用部分垂直空间。