WCS 是仓库控制系统(Warehouse Control System) 的缩写。WCS是介于WMS系统和PLC系统之间的一层管理控制系统。一方面,它与WMS系统进行信息交互,接受WMS系统的指令,并将其发送给PLC系统,从而驱动立库及输送设备产生相应机械动作。另一方面,它将PLC系统的状态及数据实时反映在界面上,并提供对PLC系统和输送线的手动调试接口。
本来wcs就是小众的,复杂度和WMS不是一个层面的;也可以理解成WMS的一个子模块;但是最为公司报价的策略,一般WCS都是作为单独软件来报价的
其主要功能:
1.正向:
接收wms的任务,转给设备区执行;
2.反向:
接收plc的动作报告,给wms做相应的业务处理以及得到下一步的指示;
wcs的的核心:
1. 各种设备通讯的协议定义;
糟糕的协议可能有漏洞,过于复杂的协议难掌控;
主要用于数据跟踪,事件触发,异常提醒,状态变更等;
最关键的是事件触发,常见的手段有:上升沿,下降沿。2次清零握手;1次循环递增握手等;
2.运行路径的设置(这个地方也可以理解成wms的功能,各家公司定义不一样):
这里就要有类似地图导航的功能,拥堵,或者托盘走错位置,要能重新设置路径,而且路径是一个动态控制的,通俗的说,你往往并不能事先确定整个路径的节点,而是随着设备的运作,走一步看一步,是个完全动态的过程控制;这有点类似于导弹发射,是不停的根据反馈做校正的;
3.对异常的控制
这里主要体现在两个方面:
1.异常信息的完整记录(发生时间,位置,报警内容,当时托盘在做怎样的任务;何时发生,何时恢复等);
2.异常的发生,尽量不能影响设备的运行,举个简单的例子,托盘到了堆垛机入口,因为条码没有读出来,难道就让堆垛机不去取吗?不行的,如果不去取,这个堆垛机就永远不能做入库操作了,所以要自动把它调走,比如去出库站台,如果出库站台也堵住了,让其暂时入库,等什么时候出库站台空闲了,继续剔出;
4.WCS的软件框架
这一点也是我多年来,投入精力最大的地方;
主要涉及到:
1.通讯协议的配置和事件的触发管理;
2.和WMS的任务调度这边的配置管理;
最后的效果就是有个稳定的框架应付多个类似的项目而不需要修改框架的程序;