4、物料搬运系统(AMHS):OHT与AGV、Stocker管理、物料追踪与调度算法
大家好,我是老张。在晶圆厂干了十几年,今天咱们聊聊AMHS——物料搬运系统。
很多人觉得AMHS不就是个搬东西的系统吗?其实不然。你想想看,一座12英寸晶圆厂,每天有几万片晶圆在设备间流转。光靠人工搬运?那效率低不说,还容易出岔子。AMHS就是晶圆厂的“物流大动脉”。
我个人习惯把AMHS分成三块:搬运设备(OHT和AGV)、仓储系统(Stocker)、调度算法。咱们一个一个说。
4.1 OHT与AGV:空中与地面的配合
OHT(Overhead Hoist Transport),说白了就是空中走行式搬运车。它挂在厂房屋顶的轨道上跑,一次能吊一个FOUP(晶圆盒)。
OHT的优势很明显:不占地面空间,路径固定,速度快。我在项目中遇到过一个问题——OHT的轨道布局如果设计不好,很容易造成拥堵。尤其是交叉路口,车一多就堵死了。
AGV(Automated Guided Vehicle)是地面跑的自动导引车。它灵活,路径可以随时改。但缺点也明显——速度慢,还容易跟人抢道。
我建议这样搭配:
- 长距离、高频率的搬运:用OHT。比如从光刻区到刻蚀区,距离远,车次多。
- 短距离、灵活调度:用AGV。比如同一区域内,设备间的短驳。
- 特殊场景:有些工厂用AGV搬运光罩盒(RSP),因为光罩盒小,OHT反而不方便。
嗯,这里要注意:OHT和AGV的调度系统最好统一。我见过有的厂OHT用一套系统,AGV用另一套,结果两套系统互相打架,物料在交接点等半天。
4.2 Stocker:晶圆厂的“临时仓库”
Stocker就是仓储系统。晶圆在设备间流转时,不可能到了就立刻加工,总得有个地方暂存。Stocker就是干这个的。
Stocker分两种:
| 类型 | 位置 | 容量 | 用途 |
|---|---|---|---|
| Bay Stocker | 每个生产区域(Bay)内 | 几百个FOUP | 暂存本区域的晶圆 |
| Interbay Stocker | 区域之间 | 上千个FOUP | 跨区域转运的中转站 |
Stocker的管理,说白了就是“先进先出”和“就近存放”。但实际没那么简单。
我曾经踩过一个坑:Stocker的货位分配算法没写好,结果热门产品都堆在同一个货架上,OHT取货时全堵在那一个口。后来我改了算法,把热门产品分散到不同货架,拥堵问题才解决。
4.3 物料追踪:每一片晶圆的“身份证”
物料追踪,就是知道每一片晶圆在哪儿、在干什么。晶圆厂里每片晶圆都有一个唯一的ID,从进厂到出厂,全程记录。
追踪系统一般用RFID标签或条形码。我个人更推荐RFID,因为可以批量读取,不用一片一片扫。
物料追踪的核心数据包括:
- 位置信息:在哪个Stocker、哪台设备、哪个工位。
- 状态信息:等待加工、正在加工、已完成、待检验。
- 历史记录:去过哪些设备、停留了多久、有没有异常。
这里有个细节:物料追踪系统要和MES(制造执行系统)实时同步。我见过一个案例,MES显示晶圆在A设备,但实际已经被OHT搬走了。结果操作员找了半天,发现晶圆早就在B设备上加工完了。这种“数据滞后”很要命。
4.4 调度算法:让系统“聪明”起来
调度算法是AMHS的大脑。没有好的算法,OHT和AGV就是一群无头苍蝇。
常用的调度算法有几种:
- 最短路径优先:谁离得近谁先搬。简单,但容易造成局部拥堵。
- 最早截止时间优先:哪个任务最急先搬哪个。适合有交期要求的产品。
- 动态优先级调度:根据设备负载、物料紧急程度动态调整优先级。这个最实用。
我给大家看一段伪代码,是我以前项目里用过的调度逻辑:
// 动态优先级调度算法(简化版)
function scheduleTask(taskList) {
// 1. 计算每个任务的紧急度
for (task in taskList) {
task.urgency = task.deadline - currentTime;
task.priority = task.urgency * 0.6 + task.waitTime * 0.4;
}
// 2. 按优先级排序
taskList.sort(byPriority);
// 3. 分配车辆
for (task in taskList) {
vehicle = findNearestIdleVehicle(task.startPoint);
if (vehicle != null) {
assignTask(vehicle, task);
} else {
// 没有空闲车辆,加入等待队列
waitQueue.add(task);
}
}
}
这段代码看着简单,实际跑起来要考虑很多因素。比如车辆电量、路径拥堵情况、设备是否空闲等等。
4.5 我的总结
AMHS这东西,说白了就是三个字:搬、存、管。
- 搬:OHT和AGV配合好,别打架。
- 存:Stocker的货位分配要合理,别堵死。
- 管:物料追踪要实时,调度算法要实用。
最后说一句:AMHS的瓶颈往往不在设备本身,而在软件。硬件坏了可以换,软件逻辑错了,整个系统都得瘫痪。所以,写代码的时候多想想边界情况,别光顾着跑通。
好了,这一章就到这儿。AMHS是个大话题,后面讲到具体设备时咱们再细聊。