前言
作为典型的自动化物流仓储设备之一,自动化立体仓库在各行业中的应用越来越广泛,它代替了传统的平面仓库和货架,通过充分利用空间高度,增加了相同占地面积上的可用存储空间;通过堆垛机 和货叉的快速移动,实现了由物到人的便捷存取;通过配套信息管理系统,提高了库房及物料管理的工作效率和信息化程度。自动化立体仓库的主体由货架、堆垛机、输送机及操作控制系统组成,可引入AGV小车完成托盘或料箱的流转及搬运任务,提高了整个系统的自动化程度,能同时完成物料的存取及信息存储功能。这其中,操作控制系统主要由仓库控制系统(WCS)和WMS组成,在自动化立体仓库系统 中起着主导性的作用。
WCS 是仓库控制系统(Warehouse Control Sys- tem)的缩写。WCS是介于WMS系统和可编程控制器 (PLC)系统之间的一层管理控制系统。它与WMS系 统进行信息交互,接收WMS系统发来的指令,进行空间计算和任务优先级调配之后,将其发送给PLC 系统,从而驱动自动化立体仓库及输送设备触发相 应的机械动作。它可以将PLC系统的状态及数据实 时采集并反映在软件界面上,方便用户进行手动操 作及监控设备的实时状态。WCS通常由WCS服务 器、WCS控制工作站两部分组成气服务器负责与 WMS或其他系统的信息交互,同时负责维护后台数 据库。控制工作站作为自动化立体仓库的核心控制 系统,负责向相关机械设备发送执行指令及获取设 备的实时状态,并及时上报至服务端。
WCS体系架构
WCS系统的整体架构采用四层结构自上至下进行构建,分别为:应用层、服务层、功能层和数据层,如图1所示。
图1:WCS体系架构
应用层:系统应用的前端形式,可根据客户需求进行不同平台的搭建。应用层负责用户界面的呈现和数据信息的显示,以及部分控制功能的入口,不对业务逻辑或数据操作进行处理。
服务层:与设备的通讯需要搭建PLC通讯服务,完成PLC状态信息的读取和操作指令的写入;数据 库访问服务完成系统内部管理和控制信息的记录及读取;可视化效果的实现需要具备资源文件读写和 加载服务;WCS与外部上游管理系统(WMS、ERP、 SAP、ME S 等)或控制系统(PDA. RFID、PAD、LED 等) 进行信息交互和指令下达,通过外部系统接口完成 服务。
功能层:结合具体的业务逻辑,针对特定的设备任务进行操作,负责对访问服务调用的数据模型进行处理,完成数据的管理和应用功能的实现。
数据层:针对PLC状态点进行数据采集,创建持久化的数据模型,供服务访问和功能调用。针对数据库对象实体进行存储和管理,完成编程对象和数 据库表之间的映射。
通过该架构的设计,使得软件系统结构的划分 更为明确,在保证功能模块独立完整的同时降低了耦合度;有助于开发团队分工合作,促进合作开发和 资源共享,解决了协同开发过程中的冲突问题;提高了各功能模块的可复用性,使得开发成本和后期维 护成本都大大降低。
WCS功能实现
WCS的核心功能模块如图2所示。
任务调度模块:对上游系统发送的自动出入库任务及自身发起的手动出入库任务生成队列,并按照插入优先级进行排序,如设备发生报警,可对队列 进行刷新和清空等操作。
手动控制模块:包括手动岀入库任务的发起,对巷道进行封锁,控制输送机进行移动,对设备报警进 行总体恢复。
设备监控模块:包括整体布局俯视动态图,堆垛机水平移动实时位置监控,提升机实时高度显示,控制模式显示,移动设备的速度、加速度、功耗、运行时 长、电流值,存储空间分布,料箱或托盘状态,以及部分关键PLC状态点显示。
参数设置模块:包括货位初始化及禁用操作,料箱或托盘的初始化及冻结操作,PLC通讯必要参数配 置和数据库服务必要参数设置等。
系统管理模块:包括用户角色创建及账号密码管理,角色权限分配及配置,系统出入库操作日志记录及查询,设备报警记录浏览及检索,针对出入库频次、 料箱使用频次、设备报警频次等数据的统计图表.
图2:WCS功能模块
系统流程设计
WCS可根据实际需求接入扫描枪、RFID、PDA等 众多周边设备,接口对接方式众多,应囊括绝大部分市面主流的数据对接方式,例如,WEBSERVICES数 据库中间表、SOCKET报文、REST、HTTP协议等,并可根据客户实际需求完成数据及功能接口的定制开发。下面以与WMS对接为例进行说明,WCS服务检 测到数据表中记录发生变化,根据操作类型识别出入库操作类型,根据料箱号和取货口号进行设备动 作指令发送,根据任务状态进行作业条件变更。出入库流程如图3所示。
图3 WCS与WMS对接流程
项目案例
(1)项目简介:
客户为烟台某集橡胶油封、PTFE 油封、聚氨酯高压油封等产品的研发、制造于一体的专业化公司。通过为其提供双存储位的自动化立体 仓库设备,并在项目中运用本文设计的WCS,对其共 计1 500多种规格的系列产品进行管控,包括减振器 油封、发动机油封、气门油封、传动系统油封、车桥油封、转向系统油封、轴承油封、液压缸油封等的原材 料、半成品和成品。该项目WCS设计与实现,使仓库的岀入库、调拨、库存转移和库存盘点等日常业务都 能够稳定、高效地进行,并能够应对多用户协同使用 和任务交叉排序的情况,促进了客户的信息化建设和智能生产。
(2)技术路线:
首先,以本文提出的架构搭建思路作为整体设计的前提。其次,基于客户实际的业 务特点进行需求分析,对客户的实际功能需求和业 务流程进行了归纳总结,完成信息架构的搭建。然后,在WCS系统整体的设计阶段分别对架构、功能和数据结构进行设计。相对于传统WCS系统,本项目 的WCS在常规架构基础上加入了数据感知服务,通过异步方式完成PLC信息状态的获取。在通过订阅 机制获取PLC状态的基础上,结合SQL Dependency 技术实现任务的异步更新和优先级排序,从而完成 任务的拆分、调度和优化。在系统的实现阶段,采用 MVVM模式搭建系统基础框架,并基于OPC UA标准 模型进行改造和建模,提升了通讯接口的实时性和通用性。另外,为了规范整个物流系统内所有硬件 设备的通讯格式和协议标准,采用相对更容易序列 化和较为主流的JSON文件格式进行传输和交互。在任务分解的过程中,结合自身设备和现场物流环境的特点,将堆垛机、传输线、AGV的任务作为一个完整任务的三个独立单元,根据实际情况进行组合 和协调。在设备调试和用户后期使用过程中,对WCS系统功能和性能展开了测试与分析,通过用户 真实使用环境下的实际操作和编写测试用例方式相 结合进行测试,针对用户体验进行了部分优化和调 整。
(3)架构设计:
应用层:应用层主要针对UI进行设计和客户端开发,实现用户和业务流程及后端数 据的接入及交互。本项目采用WPF进行客户端开发,并利用其MVVM模式进行模块解耦。ViewModel 层为View层和Model层的中间传递层,它将前端 View层所需展示的数据从Model层中进行获取和转 化,并完成传递。同时,ViewModel层还可以针对前端用户指令和功能接口进行业务流程的封装。数据的更新、增加和删除等实际操作则交由Model层来完 成,在完成持久化操作的同时,还可感知数据绑定视 图的信息和状态变化,并在发生变化时通知View- Model层执行相应的操作。
服务层:针对PLC信息获取的服务以PLC供应 商提供的OPC UA服务作为基础,针对具体功能流程 服务进行自主开发,包括PLC通讯、路径规划、任务 生成和分解、入库单据服务、库位存储服务、电子标签服务等功能。将上述功能进行整合并形成通用功能服务,整体层次以功能流程为基本单位,针对具体业务进行开发。该过程需要使用服务的通信组件, 使每个服务将自己提供给其他服务使用。
功能层:该层主要完成核心业务功能,同时将设 备控制动作进行串联,完成设备与软件功能的交互, 针对不同的功能需求进行逻辑处理和指令响应。根据客户的需求和设备的动作流程,按照设备的每个独立结构和功能单元进行模块划分,控制输送线和堆垛 机运动的模块为内部传输模块;控制外形检测、称重 的部分为检测模块;控制AGV的模块为搬运模块。
数据层:数据层是系统数据访问与操作的接口,包括数据库存储和资源文件的存储等。根据客户要求,数据库采用SQL Server注行搭建,并利用Redis进行缓存和远程字典服务。针对两种数据库的操作进 行通用化封装,形成数据库操作组件,供各个功能模 块进行调用。
(4)功能设计:
根据系统的架构设计,将整体 WCS系统划分为五大功能模块:基础管理、库位管 理、任务调度、AGV管理、设备监控。
基础管理包括用户管理、角色管理、权限管理。用户管理对系统用户的基本信息进行增、删、改、査, 超级管理员账户可对普通操作用户进行管理,普通 操作用户可对自己的密码进行修改。角色管理可使管理员对普通用户的角色进行划分和分配,如管理员、操作员、审计员等。权限管理结合角色管理进行用户行为的限制和归类,如托盘的使用权限分配、操作功能入口的可进入限制等。
库位管理是对当前自动化立体仓库所有库位进行序列化生成和管理,对其他设备外部的平库货架、 虚拟货区进行定义和划分,釆用统一的编码规则进 行界定和标识。在推荐入库货位时,根据每个货位 的状态和位置,可以配合AGV及堆垛机完成路线优 化。结合用户权限,可针对库位进行用户分配、状态 变化,通过“禁用”和“启用”功能来规定某货位是否 能放置托盘,通过“冻结”和“解冻”功能来规定某托 盘是否能用于出入库操作。
任务管理包括任务的生成、插入、排序、删除、转 化等。根据任务操作类型的不同和涉及的硬件设备 不同,进行整体任务的串联和调度。在每一条任务 生成时,对当前时间进行序列化,并在当前数据库中 最新任务的基础上进行追加,生成流水号与当前任 务绑定,从而保证任务的唯一性。如遇到出库任务 为内侧料箱,需要将外侧料箱首先进行转储,则生成 一条转储类型的子任务,同当前父任务一同插入任 务队列,队列中所有任务根据优先级进行排序。另 外,为了防止任务意外冲突和死锁,为用户提供了人 工追加和删除任务的功能按钮。
AGV管理分为AGV调度、AGV本体检测、工作 站管理、充电站管理、通讯站管理和接驳点管理等。通过WEB API方式进行通讯,实现点位部署、AGV配 置、搬运任务生成与调度、交通管制、整体日志管理 等功能。
设备监控实现针对当前任务队列的显示、所有硬件设备实时状态的显示、用户操作轨迹的实时显示、物流设备整体运动状态的可视化。得益于本设计架构的良好兼容性,在整体可视化系统的实现方式选择时,既可采用二维也可采用三维的方式进行开发。由于本项目涉及的堆垛机较多,且堆垛机兼顾巷道较多,故采用二维俯视图的方式进行展示,用 户可观测到每个硬件设备的实时位置和移动速度。
结语
本文介绍了自动化立体仓库WCS的体系架构和核心功能,探讨了其系统流程,并以某客户项目为案例进行了设计思路验证。文中阐述的设计架构和搭建方法已经在多个实际项目中交付客户并通过验证,对同类软件系统具有一定的参考意义。然而,本文中WCS在与PLC通讯时采用的是基于OPC UA的交互方式,依赖于PLC供应商提供的OPC UA服务器构建的服务环境,订阅PLC的状态点最大数量为500个,超过上限之后会出现短时间内断线无法重连的情况。可以通过自主研发OPC服务来解决这一问题,同时应用服务器冗余守护进程机制,构建冗余状态机,对系统进行故障处理,提高了系统的可靠性。
----好的文章,值得分享----
作者:郎新星 康永新
作者单位:中国电子科技集团公司第二研究所
来源:《物流技术》
物流文视界编辑转发只为传递更多信息,并不代表本号观点。
如有侵权,请联删。