3. 仓储控制基础
WCS(Warehouse Control System,仓储控制系统)位于 WMS 与底层自动化设备之间,是仓储自动化系统的“神经中枢”。WMS 负责“做什么”的业务决策,ERP/MES 负责计划与执行协同,而 WCS 负责“怎么做”的设备级调度与实时控制。理解 WCS 的核心概念、设备调度机制以及 PLC、AGV、输送线、堆垛机的控制逻辑与实时通信要求,是集成工程落地的关键基础。
一、WCS 的核心定位与核心概念
WCS 的核心职责可以概括为四件事:任务分解、设备调度、路径规划、状态回传。WMS 下发的是“把 A 托盘从入库口送到 3 巷道 12 排 4 层”这样的业务任务,WCS 需要把它拆解为输送线分段动作、堆垛机取放动作、AGV 搬运动作等设备可执行的指令序列。
- 设备抽象:把不同厂商的 PLC、AGV、堆垛机统一抽象为可调度的“设备对象”,屏蔽底层协议差异。
- 任务队列:每个设备维护独立的任务队列,支持优先级、抢占与超时重试。
- 资源锁:对巷道、提升机、站台等共享资源加锁,避免多设备冲突。
- 实时状态:设备状态、任务状态、报警状态需毫秒级刷新并回传 WMS。
二、设备调度机制与典型控制逻辑
设备调度的本质是“任务—设备—资源”的匹配问题。常见调度策略包括先到先服务(FIFO)、最短路径优先、优先级抢占、负载均衡等。下面以四类典型设备的控制逻辑展开。
| 设备 | 核心控制逻辑 | 关键参数 | 实时性要求 |
|---|---|---|---|
| PLC | 扫描输入→执行逻辑→刷新输出,控制输送线启停、道岔、光电 | 扫描周期 1~10ms | 毫秒级 |
| AGV | 任务分配→路径规划→交通管制→到站对接 | 定位精度 ±10mm | 100ms 级 |
| 输送线 | 分段占位检测→启停联动→合流分流控制 | 段速 0.3~1.5m/s | 10~50ms |
| 堆垛机 | 行走/升降/货叉三轴联动→定位→取放货 | 定位 ±5mm,速度 120m/min | 10ms 级 |
以堆垛机为例,其控制逻辑通常是一个状态机:Idle → Moving → Positioning → Forking → Done。WCS 下发目标货位后,堆垛机 PLC 完成三轴运动,WCS 通过轮询或事件回调获取状态,只有收到“取货完成”信号后才推进下一任务。
任务下发示例(WCS → 堆垛机 PLC):
{
"taskId": "T20240512001",
"deviceId": "SRM-03",
"action": "PICK",
"from": {"row": 12, "bay": 4, "level": 3},
"to": {"station": "OUT-01"},
"timeout": 60000
}
三、实时通信要求与协议选型
WCS 与设备之间的通信是集成工程中最容易出问题的环节。不同设备的通信协议、周期、可靠性要求差异很大,必须分层设计。
- PLC 层:常用 S7、Modbus TCP、OPC UA,周期 10~50ms,要求确定性。
- AGV 层:常用 TCP/HTTP、MQTT、厂商私有协议,周期 100~500ms。
- WCS 与 WMS 层:常用 REST、消息队列(Kafka/RabbitMQ),周期秒级,允许最终一致。
通信设计需关注三点:心跳与超时(设备掉线快速感知)、幂等与重试(任务重复下发不产生重复动作)、状态同步(设备状态变化主动上报而非仅轮询)。
四、典型场景与复盘要点
某电商仓集成项目中,WCS 同时调度 6 台堆垛机、12 台 AGV 和 200 米输送线。上线初期出现“堆垛机等待 AGV、AGV 等待站台释放”的死锁。复盘发现根因是资源锁粒度太粗:站台被一个任务长期占用,而该任务又在等待 AGV,形成循环等待。
解决方法是引入资源预约与超时释放机制:站台锁带 TTL,超时自动释放并触发重试;同时把“站台占用”与“AGV 到位”拆成两个独立状态,避免交叉等待。调整后死锁消失,任务平均完成时间下降约 18%。
综上,WCS 的核心价值在于把业务任务转化为设备可执行的实时指令,并在多设备、多资源之间维持一致性与安全性。掌握设备调度、状态机、资源锁与分层通信设计,才能让 WMS、WCS、ERP、MES 的集成真正稳定落地。