先看一下已经在生产中使用的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. 《几何与代数导引》习题1.35.4
  2. 后台取得客户端控件的值(ListBox)
  3. Java HttpSession 详解
  4. SharedPreferences的使用
  5. Java AffineTransform入门
  6. 杭电1254java实现(双bfs 优先队列)
  7. java 计算小费_java-以某些形状显示数字
  8. 关于本人在多个技术平台发布文章的声明
  9. HTML5文件拖拽上传记录
  10. 接口怎么获取数组底下的数组_3分钟短文 | PHP数组获取最后一个元素,10个方式中哪个有错?...
  11. Bugtags 实时跟踪插件 - BugtagsInsta
  12. RJ45墙上网线插座的线序与接法
  13. 控制网平差(C++实现)
  14. 有关气象数据资料下载网址
  15. FlashFXP 5.0.0官方中文破解版,附文件下载地址和破解码
  16. 【NOIP2017提高A组集训10.25】凤凰院凶真(dp)
  17. Amazing!在线浏览 Stata Journal 单篇论文 (2001-2019)
  18. 清华大学计算机系成立量子软件研究中心,应明生受聘为主任
  19. 程序员可以收藏的几个导航网站
  20. mysql 存储数据类型的选择

热门文章

  1. k8s 配置 Secret 集成Harbor
  2. Java学习-ATM系统
  3. 矩阵连乘 动态规划_如何构建移动营销时代的“动态矩阵”?
  4. 内网渗透:八、CVE-2020-1472 NetLogon 域内提权漏洞(域控密码置空)
  5. wpsppt页面卷曲在哪里_2013版ppt怎么制作页面卷曲动画效果_博客
  6. 信号满格怎么显示无法连接服务器,Win7 32系统网络信号满格却无法连接上网怎么处理...
  7. brew | brew cask | yum | apt-get
  8. linux下修改网卡MAC地址
  9. 【iOS】录音和音频合成
  10. mysql数据库完整实例-“汽车维修”