给物流仓库做了套自动化立体仓库,堆垛机调试让我瘦了十斤

项目怎么来的

去年接了个物流仓库的自动化立体库项目,客户是做电商仓储的,原来的平库堆得乱七八糟,找货全靠人工翻。老板看了一圈展会后拍板:上自动化立体仓库。

这个项目我负责电气控制部分,主要包括:双立柱堆垛机2台、入出库输送线12段、RGV穿梭车1台,还有跟WMS系统的对接。控制系统用的是西门子S7-1500做主站,分布式IO通过PROFINET组网。

先说堆垛机

堆垛机是整个系统的核心,水平行走用SEW的伺服电机加编码器闭环控制,升降用变频器加旋转编码器测距。货叉用的是三相异步电机加机械限位加编码器。

说起来简单,调起来真要命。第一个坑就是水平定位精度。要求±3mm的目标,刚开始死活跑不到。

关键参数:堆垛机水平行程62米,最大速度180m/min,加减速时间设为3秒。SEW伺服驱动器用的速度模式,通过PLC发脉冲+方向控制。编码器分辨率是2500线×4倍频,等于10000脉冲/转。行走轮直径200mm,减速比25:1,算下来每毫米约397个脉冲。

第一版程序写完,上电一跑——定位偏差15mm。查了一天才发现,加减速的S曲线没处理好,减速点设得太迟了。S7-1500的工艺对象里有个MC_TorqueAdd指令可以用,但之前没用过,就走了弯路。

后来用了西门子的TO(Technology Object)定位功能,设置好加减速斜坡和Jerk限制,定位精度直接到了±1mm以内。

输送线的积放逻辑

12段输送线分成了三个区:入库区、缓存区、出库区。难点在积放控制——不能让货物追尾,也不能让输送线空跑。

我用了链式输送机,每段配一个0.75kW的SEW减速电机,变频器控制启停。每个工位装两个光电传感器:一个检测货物到位,一个检测货物通过。

控制逻辑是这样的:当本段传感器检测到货物到位,同时下一段空载且准备好接收,本段启动把货物送过去。如果下一段满了,本段就停。看起来简单,但实际调试中发现了两个问题。

第一个是货物过长时,两个传感器同时被遮挡,判断逻辑乱了。后来改成了货物长度的计算:传感器1信号上升沿开始计时,传感器2信号上升沿停止计时,结合输送线速度算出货物长度,再决定积放策略。

第二个问题是多段同时启停时的电流冲击。6台变频器同时启动瞬间总电流飙到了180A,配电柜的断路器直接跳了。后来改了交错启动逻辑,每段延时0.5秒依次启动,问题解决。

跟WMS的通讯

WMS系统跑在服务器上,PLC通过以太网跟WMS通讯。用的是WebService接口,PLC发送HTTP请求带JSON数据。

S7-1500本身不支持HTTP POST,我在1517-3 PN上用了个TCONNECT+TAG_SEND的方式,但调试太麻烦。后来加了个边缘网关,PLC通过PROFINET把数据发给网关,网关再转成HTTP请求发给WMS。

接口协议:

入库请求PLC→WMS:{“cmd”:”store”,”barcode”:”20240516001″,”location”:”A-01-02-03″}

出库请求WMS→PLC:{“cmd”:”retrieve”,”location”:”B-03-01-05″,”dest”:”OUT-02″}

返回ACK:{“status”:”ok”,”msg”:”task assigned”}

这个格式是跟客户IT来回扯了三天才定下来的。

RGV穿梭车

RGV是连接各条巷道的关键,在轨道上跑来跑去把货物送到指定输送口。用的是滑触线供电加通讯。

RGV的定位用的方式是RFID标签加条码读头。在轨道旁每隔1米贴一个RFID标签,RGV上的读头经过时读取标签ID,结合编码器进行精准定位。

调试时有个问题——RGV到站停车后,货叉伸出取货的高度总差了20mm。查了三天发现是RGV上的载货台在长期使用后有轻微变形,导致货叉零点跑偏。最后在程序里加了位置偏移补偿表,根据站台号自动修正货叉高度。

项目成果

整个项目从设计到调试完成花了4个月,正式上线后:

仓库库容从原来的2000个托盘位增加到了8000个,入出库效率从原来人工的30托/小时提升到了120托/小时。客户老板非常满意,说一年省了15个搬运工的人工费。

最后说两句

自动化立体仓库这个项目类型在工控圈不算新,但技术细节非常多。堆垛机定位、输送线积放、WMS对接、RGV调度,每一步都有坑。遇到问题别慌,一个一个拆解总能解决。

你们做过立体库项目吗?遇到过哪些坑?评论区交流交流。

上一篇 配电柜母排发热烧到变色,一个搭接面让我修了一整天