先看一下已经在生产中使用的WCS界面


1:WCS功能介绍
WCS:即Warehouse Control System,仓库控制系统;对应的还有WMS:即Warehouse Management System,仓储管理系统;
WCS主要完成接收WMS系统产生的出入库等任务,分配给对应的执行机构,即PLC控制系统,并监控PLC执行过程和PLC系统状态,反馈任务结果给WMS系统。因为各个用户使用场景的差异,WCS具体到对应设备上时,功能也有增有减。后边以本次设备所在场景为例,描述WCS设计过程。

2:设备组成
该设备有6排货架,每个货架20列42层,总共5040个库位;
有3个巷道堆垛机,每个堆垛机可以操作左右两排货架;
堆垛机货叉上有左右两个货位,左货位只能存取左货架物料、右货位只能存取右货架物料;货叉同一时间只能操作一个货位的物料。
在6排货架的出口端有一个机械手,机械手负责把货叉上的物料放到出入口,或者从出入口放物料到货叉上。
出入口总共有两个。
设备总体用一个西门子1200的PLC控制。


3:业务流程
库位中存放的是物料盒,每个物料盒都有唯一编码;物料盒中的物料信息不需要管理。
用户要求的入库流程有两种:
入库流程1:
步骤1:用户扫描入库单号(入库单由MES系统生成)到仓储系统中;
步骤2:仓储系统通过单号到MES系统查询对应的需要入库的料盒号;
步骤3:用户确认执行入库;
步骤4:用户方物料盒到入库口;
步骤5:仓储系统扫码入库(扫码后料盒信息在待入库列表种,异常走异常流程),入库完毕后,反馈入库结果到MES系统
步骤6:料盒如果未入完,循环从步骤4执行;如果入完,点击确认完成。
入库流程2:
步骤1:用户方料盒到入库口;
步骤2:仓储系统扫码入库(扫码后料盒信息在待入库列表种,异常走异常流程),入库完毕后,反馈入库结果到MES系统。
用户要求出库流程:
步骤1:用户扫描出库单号(入库单由MES系统生成)到仓储系统中;
步骤2:仓储系统通过单号到MES系统查询对应的需要出库的料盒号;
步骤3:用户确认执行出库;
步骤4:仓储系统执行出库操作,反馈操作结果到MES系统
步骤5:如果所有料盒出库完成,执行步骤6,如果没有循环执行步骤4;
步骤6:用户确认出口的完成。

4:业务分析
考虑到用户操作方便和操作实时性,把出入库单据相关操作放在WCS中实现;在WMS中可查看、修改对应的单据信息。
设置一张任务表,每一个料盒的一次出、入库操作就生成一条记录,并记录执行过程中的详细信息。
例如:如果用户按入库流程1要入一个入库单,该单据中由10个物料盒子;用户扫码后,WCS在用单号MES系统查询对应的物料和信息,然后展示给用户,用户确认后生成10条入库任务;这10条入库任务单号一致;料盒入库时,更新任务表中对应料盒记录的状态。
设置一张库存表,记录当前库存。
设置库位表,记得当前库位可用状态、使用信息。

5:WCS和PLC通信协议
结合设备运行逻辑,为了提高设备运行效率,极限情况下,可用并行6个任务做出入库。

5.1 PLC状态区
WCS要给PLC分配任务,首先需要知道PLC当前状态;因此定义一个PLC状态区
PLC状态区由PLC写入,WCS读取,WCS不得写入。
DB块地址:520
字段功能定义如下
地址偏移 变量名 类型 功能描述
DBW0 Mode UINT 设备运行模式
0:初始化4:单机5:联机
DBW2 Fault UInt 0:正常,1:有故障
DBW4 Bar1 uint 入口 0:无触发,1:启动扫描
DBW6 Bar2 uint 出口 0:无触发,1:启动扫描
DBW8 Status1 uint 堆垛机1状态:1正常,2异常,0启动中
DBW10 Status2 uint 堆垛机2状态:1正常,2异常,0启动中
DBW12 Status3 uint 堆垛机3状态:1正常,2异常,0启动中
DBW14 Status4 uint 机械手状态:1正常,2异常,0启动中
DBW16 Alarm1 uint 告警详情
DBW18 Alarm2 uint 告警详情
DBW20 Alarm3 uint 告警详情

5.2 PLC任务反馈区
PLC任务反馈区由PLC写入,WCS读取,WCS不得写入。
任务反馈区的内容格式都一样,区别时DB块地址不一样。
任务1反馈区的DB块地址:500
任务2反馈区的DB块地址:521
任务3反馈区的DB块地址:530
任务4反馈区的DB块地址:540
任务5反馈区的DB块地址:560
任务6反馈区的DB块地址:570
字段功能定义如下
地址偏移 变量名 类型 功能描述
DBW0 TaskID DInt 任务号
DBW4 Status UInt 0:初始化,1:空闲,2:任务进行中,3:任务完成
DBW6 result UInt 执行结果
1完成
2请求重复发送之前命令,该请求PLC保障之前有执行中的命令
3满入
4空取
5未知错误
6系统取消
7手动强制完成
DBW8 Site UInt 托盘位置,因为是多任务,需要根据这个判断是否下发任务
10:在出入口
15:在机械手和出入口交互中
20:机械手上
25:在机械手和货叉交互中
30:在货叉上
35:在货叉和库位交互中
40:在库位中
DBW10 Fault UInt 0:正常,1:有故障
DBW12 Alarm1 uint 告警详情
DBW14 Alarm2 uint 告警详情
DBW16 Alarm3 uint 告警详情

5.3:WCS状态区
WCS状态区由WCS写入,PLC读取,PLC不得写入该区域
DB块地址:525
字段功能定义如下
地址偏移 变量名 类型 功能描述
DBW0 Mode UINT
DBW2 Fault UInt 0:正常,1:有故障
DBW4 Bar1 uint 入口 0:正常,2:扫码失败;1:扫描成功
DBW6 Bar2 uint 出口 0:正常,2:扫码识别;1:扫描成功

5.4:WCS任务区
WCS任务区由WCS写入,PLC读取,PLC不得写入该区域
该应用中最多有6个任务,因此创建6个任务区各个任务区的内容都一致,区别时各个任务区的DB块地址不一样。
任务1的DB块地址:501
任务2的DB块地址:522
任务3的DB块地址:531
任务4的DB块地址:541
任务5的DB块地址:561
任务6的DB块地址:571
字段功能定义如下
地址偏移 变量名 类型 功能描述
DBD0 TaskID DInt 任务号
DBW4 Act UInt 0:无动作,1:入库;2:出库;3:重入库;5:任务取消
DBW6 Flag1 UInt
DBW8 Flag2 UInt
DBW10 Source_Row UInt 源排数(1:1排,2:2排)(源是从哪取出)
DBW12 Source_Column UInt 源列数
DBW14 Source_Layer UInt 源层数
DBW16 Goal_Row UInt 目标排数(1:1排,2:2排)(目标是放在哪里)
DBW18 Goal_Column UInt 目标列数
DBW20 Goal_Layer UInt 目标层数

6:编程实现
开发语言选用C#,WCS前台界面用wpf
考虑到网络部署和开发成本,本次直接用西门子S7协议。

7:设备调试界面
为了节约成本,PLC调试触摸屏在WCS中专门做界面


仓储控制系统(WCS)设计相关推荐

  1. Node.js仓储管理系统的设计与实现 计算机毕设源码24296

    摘 要 本论文主要论述了如何使用Node.js语言开发一个仓储管理系统,系统采取Mysql作为后台数据的主要存储单元,运用软件工程原理和开发方法,采用node.js的koa技术构建,实现本系统的全部功 ...

  2. WCS设计框架与方法

    导语 大家好,我是智能仓储物流技术研习社的社长,你的老朋友,老K. 新书上市<智能物流系统构成与技术实践> 精准找到/物流装备专业厂商人脉/--->甲方请进 随着电商和物流行业的快速 ...

  3. matlab rltool,基于Matlab工具箱Rltool的控制系统校正设计

    山西电子技术2018 年第 4 期 软件技术 收稿日期:2018 -04 -10 作者简介: 乔永凤( 1975-) ,女,山西左云人,讲师,硕士研究生,主要研究方向: 语音信号处理,自动控制原理及其 ...

  4. 74ls90设计十进制计数器电路图_PLC控制系统的设计与调试步骤你知多少?

    作为电气工程技术人员我们在平时工作中常常要对PLC控制系统进行设计与调试,下面给各位朋友分享一下PLC控制系统的设计与调试步骤.PLC控制系统的设计与调试过程是这样的: 第一点需要我们深入了解被控制系 ...

  5. 基于arduino +机智云物联网平台的阳台生态控制系统的设计

    基于arduino +机智云物联网平台的阳台生态控制系统的设计 李军辉 北京农业职业学院 摘要 以基质培养的绿色植物所在的半封闭阳台系统为研究对象,设计基于Arduino Uno WIFI +机智云物 ...

  6. 基于单片机的智能教室控制系统的设计

     word完整版可点击如下下载>>>>>>>> 基于单片机的智能教室控制系统的设计_c++课程设计题目汇总-硬件开发文档类资源-CSDN下载内容包括详细 ...

  7. 针对移动式和无线物联网设备的低压电机控制系统的设计

    针对移动式和无线物联网设备的低压电机控制系统的设计 如何使用低压电源控制步进电机或直流电机 - 高伟 ADI-Trinamic 物联网和手持式设备依赖于执行器,尽管其能量有限--通常是电池. 出于成本 ...

  8. 幼儿园实时监测控制系统的设计

    word完整版可点击如下下载>>>>>>>> 幼儿园实时监测控制系统的设计-硬件开发文档类资源-CSDN下载内容包括详细设计文档word版,附带开题报告 ...

  9. 基于ZigBee的家居控制系统的设计与应用

    基于ZigBee的家居控制系统的设计与应用 PPT简介:http://pan.baidu.com/s/1i38PC6D 摘  要 智能家居是未来家居的发展方向,其利用先进的网络技术.计算机技术和无线通 ...

最新文章

  1. 你知道R中的赋值符号箭头和等号的区别吗?
  2. Theano 中文文档 0.9 - 7.2.5 循环
  3. easyui 常用按钮图标
  4. ARM构架之cache初探
  5. 【5】CCNA课堂第一天
  6. mac部署文件服务器,MAC 搭建本地服务器
  7. jq鼠标隐藏显示的方法
  8. 【ES6】for of用法
  9. MATLAB椎体怎么画,最适合小白的matlab教程系列,进阶,一
  10. linux网卡驱动内核文件目录,LINUX内核升级更新网卡驱动
  11. linux下录音识别成文字软件,如何将录音转换成文字?录音转文字简单方法介绍...
  12. Python 爬虫数据写入csv文件中文乱码解决以及天眼查爬虫数据写入csv
  13. Web自动化测试(Selenium自动化测试框架)
  14. mysql5.7.20 安装过程记录
  15. 分布式存储与集中式存储
  16. 【Linux杂篇】Cron是什么?利用Cron Job自动执行定时任务
  17. mac 时间机器备份到windows共享文件遇到的问题及解决记录
  18. 【课程表小程序源码】增加今日课表功能|开源代码
  19. 山东理工大学单元测试2重现
  20. 行业观点|鞋企转战个性化定制 打响新消费时尚

热门文章

  1. 怎样制作一个漂亮的艺术二维码?
  2. plotwidget横坐标日期_matlab中如何画以日期为横坐标的图?
  3. 制造业ERP怎么创新与转型(阿朱说)
  4. Java关于身份证验证的实现
  5. input输入框去除历史记录
  6. dd命令 skip 和 seek参数理解
  7. 随机位置生成小方块案例
  8. Java多线程 -- 深入理解JMM(Java内存模型) --(五)锁
  9. apmserver导入MySQL_APMServ MySQL 错误
  10. ssm框架前后端数据交互完整示例