仓储库位基础:库位编码规则、库位类型与容量约束
库位是仓储作业的最小物理单元。无论采用随机存储还是定位存储,库位编码、类型划分和容量约束都是上架策略落地的底层数据基础。本节从三个维度拆解库位基础,为后续的分配测试提供可量化的模型输入。
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 扫描和语音播报。
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 约束在策略中的使用
上架策略引擎在分配库位时,会按以下顺序过滤可用库位:
- 库位状态过滤:排除冻结、锁定、已满库位。
- 物理容量校验:体积、重量、单元数是否满足。
- 规则约束校验:混放规则、FIFO 规则、批次规则。
- 策略偏好排序:随机存储按空闲率排序,定位存储按 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 初始化时一次性导入,后续每季度复核一次。对于高位货架,建议在系统内保留“净高”字段而非“总高”,因为横梁和消防喷淋会占用部分垂直空间。