乐于分享
好东西不私藏

WMS、WCS、RCS三套软件如何协同?

WMS、WCS、RCS三套软件如何协同?

前面一篇文章发表后,很多人在后台或者发微信问同一个问题:

WES仓库执行系统--一个不应该存在的系统

"WMS、WCS、RCS三个系统,到底该怎么分工?谁该管什么?"

问的人太多,而且这个问题确实没法用一两句话讲清楚。今天专门写一篇,把WMS、WCS、RCS三种主流的协同架构拆开说透。

先看下这个图纸:

右边区域是堆垛机+输送线构成的立体库,左边区域是机械手拆码垛。两者之间用AGV进行衔接。

入库:机械手码垛-AGV搬托盘--输送线-堆垛机入库

出库:堆垛机出库-输送线--AGV搬托盘--机械手拆垛

这里就会用到WMS、WCS、RCS三套软件


第一种:星型架构(理想型)

WMS分别直连WCS和RCS。WCS管输送线/堆垛机,RCS管AGV。两个系统各自独立运行,WMS居中调度。

具体怎么工作?

WMS先告诉WCS:把托盘送到输送线末端。WCS调度输送线完成。然后WMS告诉RCS:到输送线末端取货,送到某某工位。RCS调度AGV过去。

AGV到达输送线口之后,需要确认"输送线就绪、可以取货"。这时候RCS直接和输送线PLC交互——一般是OPC协议,RCS读PLC的状态点,确认安全后再取货。

这种架构的优点很明显:

  • WMS只管发任务,不管设备细节,层次最清晰
  • WCS和RCS各自对自己的设备负责,边界清楚
  • 交互链路最短,效率最高

缺点只有一个:对RCS团队要求高。

RCS工程师得懂OPC,或者Modbus,S7等各种协议,不同项目的输送线PLC可能用不同协议,RCS得能适配。很多RCS厂商不愿意干这个——"我是做AGV调度的,为什么要去懂PLC?"

但我的看法是:这本来就是RCS该做的事。 RCS调度AGV去取货,取货的安全确认是取货动作的一部分,RCS不确认谁确认?让WCS替RCS确认,等于让输送线厂商替AGV厂商做安全校验,边界上是说不通的。

所以这种架构虽然现实中用得最少,但从责任和效率上,它是三种里最合理的

只看WMS、WCS、RCS,其架构模型为:


第二种:网形架构(妥协型)

WMS还是分别连WCS和RCS,但WCS和RCS之间也需要通讯

AGV到了输送线口,不直接问PLC了,而是问WCS:"我可以取货吗?"WCS去问PLC,PLC回答后,WCS再回给RCS。

这种架构为什么出现?

因为RCS厂商说:"我不想和不同的PLC打交道,OPC、Modbus、三菱……太麻烦了。我要做标准化产品,只和WCS对接。",然后开始摆烂

最后WCS厂商说:"行吧,我来接。" 

结果:RCS舒服了,WCS累死了。WCS不仅要管自己的输送线/堆垛机,还要当RCS和PLC之间的"翻译官"。

好处:RCS可以标准化,一套接口走天下。 代价:多了一层转发,效率降低了一点;更重要的是,WCS的责任边界变模糊了——本来只负责输送线,现在还要替RCS管AGV的取货安全。

这种架构在工程实践中有。但如果项目团队能力够,我还是建议用第一种。

网形架构的缺点之前专门讲过,详细可以参考前文:

AGV和输送线对接:少即是多,多即是错

只看WMS、WCS、RCS,其架构模型为:


第三种:瀑布型架构(我最不推荐的)

这是第二种的进一步"退化"。

RCS嫌麻烦之后,WMS也来模仿。

WMS厂商说:"我只对接一家系统,不想同时管WCS和RCS两家。"

RCS厂商说:"我只做标准产品,不和别人对接。"

好了,所有事情都丢给WCS——WMS只连WCS,WCS再连RCS。

从软件层看,就是WMS→WCS→RCS三层单向瀑布结构,WMS只管WCS,WCS管一切。信息从上往下流,像瀑布一样——但瀑布冲下来的不是活水,是责任。

换个更直观的展现方式:

这种架构下:

  • WMS最舒服,只面对一个系统
  • RCS最舒服,只接收WCS的指令
  • WCS最惨,什么都要管

WMS下发的搬运任务,起点和终点都是WCS来解析,然后再转发给RCS。RCS只管执行,不管任务从哪儿来、为什么要去那儿。

只看WMS、WCS、RCS,其架构模型为:

最不合理的是:WCS的核心功能是管理输送线、堆垛机这些自动化设备,现在还要替WMS管RCS。WCS既要管PLC,又要管RCS,成了整个现场的总调度中心——这不是WCS该有的样子。

查问题时更痛苦。AGV出了问题,要查WMS有没有发、WCS有没有转、RCS有没有收到、网络有没有断——一圈查下来,时间都耗在"定位问题"上了。


为什么瀑布型架构查问题最麻烦?

这是我想重点说的。

用瀑布型架构,AGV取不了货,排查链是这样的:

  1. WMS有没有下发任务?
  2. WMS下发的起点/终点对不对?
  3. WCS有没有把任务转发给RCS?
  4. WCS转发时数据有没有丢?
  5. RCS有没有收到指令?
  6. RCS调度AGV有没有成功?
  7. AGV到了之后,WCS有没有正确读取PLC状态?
  8. PLC本身有没有问题?

8个环节,任何一个都可能出问题。 而WCS在中间,前面挡着WMS,后面接着RCS,问题到底出在哪个环节,要查一圈才能定位。

如果用的是星型架构,排查链是这样的:

  1. WMS任务对不对?
  2. WCS输送线调度对不对?---如果看到托盘已经到位了,这一步都可以省略
  3. RCS AGV调度对不对?
  4. RCS和PLC交互对不对?

4个环节,每个系统的责任边界清清楚楚。 出了问题,5分钟就能定位到是哪家的锅。

基本设计原则可以参见之前的一篇文章:

全链路设备调度中,任务异常了,应该在哪一层终止?


三种架构怎么选?

维度
星型(理想)
网形(妥协)
瀑布型(最差)
效率
最高
中等
最低
责任清晰度
最清晰
中等
最模糊
查问题难度
最容易
中等
最麻烦
对RCS要求
高(要懂PLC协议)
对WCS要求
高(要当翻译官)
极高(要当万能背锅侠)
推荐程度

说句得罪人的话

行业里有一种很不好的风气:谁能力强,谁承担的就多;谁能力不强,就撒泼摆烂,直接说"我干不了"。

这话不好听,但做过几个项目的人都见过。RCS厂商说"我不对接PLC",WMS厂商说"我只连一家系统",最后所有脏活累活都堆到WCS头上。WCS成了万能挡箭牌,谁都可以往WCS身上甩责任。

在工程领域,不应该是"能者多劳",而应该是"合理性优先"。 谁的设备谁负责,谁的边界谁守住。强势的一方,不应该因为自己有选择权,就获得技术上的"豁免权"。

如果一个行业里,能力强的团队反而要为能力弱的团队兜底,能躺平的厂商反而更舒服——这个行业的甲方就该警醒了:你花的是冤枉钱,买的是一个随时扯皮的系统。


一句话总结

三种架构里,**我的排序很明确:

第一种(星型)> 第二种(网形)> 第三种(瀑布型)**

第一种责任和效率都是最好的,唯一的要求是RCS团队有能力直接和PLC交互。如果团队能力够,不要犹豫,直接用第一种

第二种是现实的妥协,RCS标准化、WCS当翻译官,工程中能接受,但不是最优解。

第三种是我最反对的——WMS和RCS都舒服了,WCS成了万能背锅侠。查问题时8个环节连环排查,甲方最痛苦。如果有厂商建议你这么做,要警惕他可能在"推责任"。

选型时记住一点:不要只看各家厂商的功能清单,要看"出了问题,谁来查、谁来改"。 合同里没写清楚的,后面都是扯皮。


做WCS的同事建议收藏,下次甲方问你"为什么AGV取不了货",或者RCS想偷懒,把这篇转给他看。

对了,各位看官,看完点个赞!另外,本文开了赞赏。

原创不易,如果我持续输出的干货对你有帮助,请打赏1元。

过往精华文章:

WES仓库执行系统--一个不应该存在的系统

全链路设备调度中,任务异常了,应该在哪一层终止?

AGV和输送线对接:少即是多,多即是错

为什么 WMS和 自动化设备之间 要有一层WCS软件, WMS直接对接自动化设备可以吗

WMS专题汇总:9篇文章,一次读完

WCS深度解析(五):四篇文章看完,你该怎么选WCS?

AGV与电梯联动系列总结:希望所有的AGV都可以顺利上楼

相关学习资料