跨楼层调度,是 RCS 项目里最容易翻车的地方。单层跑得好好的车队,一加上跨楼层,堵梯、超时、任务卡死全来了。问题从来不在车——AMR 爬不了楼,只能靠电梯;而电梯是整栋楼共享的资源,RCS 管得了车,管不了电梯的脾气。
先把"一趟电梯"拆开看
一次跨楼搬运,其实是五个阶段:叫梯、等梯、进厢、乘梯、出厢。每个阶段都可能卡:叫了梯没人理(协议没对上),梯来了门不开(状态信号丢了),进了厢门关不上(有遮挡),到了楼层出不来(定位漂移)。
关键认知只有一条:机器人不能"猜"电梯状态。电梯控制器是唯一的真相源,RCS 必须靠控制器回传的状态机驱动一切——轿厢位置、门状态、载重、运行方向,四个信号缺一不可。靠"估计"或者"超时就当它到了",都是在埋雷。
这套握手行业里早有现成框架,协议层别自己从零造轮子。ROS2 生态的 RMF(机器人中间件框架)定义了完整的电梯交互消息集——车队调度器和电梯控制器之间走标准化的状态握手,机器人只管执行。新加坡 IMDA 的商用楼宇 AMR 技术指南里,也把"机器人-电梯-自动门"的数据交换写进了规范。设备侧,德国 Lödige Industries 的货梯自动化模块就是干这个的:让 AGV/AMR 直接和 Olympus、Sherpa 这类货梯对接,公开资料提到举重可达 20 吨级。动手之前,先查你的电梯厂商和中间件支不支持标准对接。
我见过最典型的一次翻车,是在一家三层的电商仓:RCS 和电梯控制器来自两家厂商,联调时只调通了"叫梯",没调"门状态回传"。上线第一周,车在梯口干等,门其实早就开了,只是 RCS 不知道。最后只能派个人站在梯口,看到门开就手动在系统里点"确认进厢"——自动化搞成了人工值守,笑话闹大了。所以我说,四个状态信号少一个都别上线,联调验收要逐项打勾。
呼叫这件事,谁说了算
实战里第一个分叉口:叫梯指令谁发?两种做法。
车辆直连电梯控制器:车到了梯口自己发叫梯请求。简单,但只适合一两台车的演示。多车一上,N 台车同时叫梯,电梯被叫得团团转,互相抢厢,谁也走不了。
RCS 集中叫梯:所有跨楼需求先汇总到 RCS,由 RCS 统一向电梯发指令,再把"哪台车、进哪部梯、去哪层"的排程下发。这是正道,但 RCS 得替电梯做排队。我坚持三条排队规则。
同向拼车:同一方向、顺路的车尽量拼一厢。电梯一次往返的成本是固定的,多拉一台车就是赚。
优先级加防饥饿:跨楼急单可以插队,但要设上限——普通任务最多等 N 轮,N 轮后强制放行。别让低优先级任务在梯口等到天荒地老。
超时熔断:一台车占梯超过时间预算(比如进厢动作几分钟还没完成),RCS 自动把它踢出当前梯次,回队列重排。电梯是稀缺资源,不许任何一台车"霸梯"。
我的判断:跨楼任务的调度权必须收归 RCS,车辆只保留状态上报——"我到了、我进了、我出了"。权责分开,出问题才查得清。
电梯罢工了,系统不能跟着瘫
电梯是机械设备,会坏;更常见的是"半坏":一扇门故障、某层按钮失灵、轿厢偶发急停。降级方案要分三级,提前写进预案。
一级,单梯故障:RCS 自动把任务改派到可用梯,排队策略不变。这要求现场至少有两部可供机器人使用的梯——单梯加跨楼业务等于单点故障,立项时就要拦下来。
二级,全部电梯停运:跨楼任务全部挂起,RCS 切"单层模式",本层任务照常跑;跨楼的货转人工转运(叉车或人工推车走货运通道)。系统降速,但不停摆。
三级,通信中断:RCS 收不到电梯控制器的心跳,车辆全部停在指定等待点,不许"盲进"轿厢。这是安全红线——你永远不知道门后那部梯在不在。
这笔取舍要说清楚:降级方案的本质是拿效率换安全,写进 SLA,提前和客户对齐"电梯全停时我们保证什么"。最怕的是平时不谈,真停了互相甩锅。
跨楼任务的优先级,怎么定才合理
跨楼任务天然比同层任务"贵":一次跨楼等于占用电梯一个往返加两端等待。优先级设计我给三条。
按订单时效:卡截单时间的出库任务,跨楼权重上浮。
按电梯占用成本:把"一次电梯往返"折算成任务成本,RCS 排程时优先拼满,少跑空梯。
单独权重池:跨楼任务和普通任务不要混在一个优先级池里排,单独一层权重,避免跨楼任务被海量的同层任务淹没。
一句话:电梯是全楼最贵的共享资源,调度策略的核心就是少跑空梯、别让车干等。

最后是几条值得贴在墙上的避坑点:多车场景下,别让车自己叫梯,这是混乱的开始。核对载重:车加货的总重不能超过电梯额定载荷,超一点都不行——这是安全项,不是效率项。消防联动必须接:火警时电梯停用,RCS 要第一时间收到信号并冻结所有跨楼任务。先做协议联调,再谈车队规模:电梯控制器对接通了、状态机跑顺了,再加车。顺序反了,加一台车多一个雷。条件允许的话,留一部"机器人专用梯"是最省心的方案;实在没有,至少保证高峰时段有调度权。
还有一条容易被忽略的:电梯的"模式切换"。很多货梯有检修模式、消防迫降模式,一切模式,之前的叫梯指令全部作废。RCS 要能识别模式切换事件,指令作废后自动重发,而不是傻等。这条写进联调测试用例,验收时逐项打勾——别等到消防演习那天才发现跨楼任务全卡死了。






