无人仓储监控管理系统设计探究

2021-12-01 10:43| 发布者: www.daoteng56.com| 查看:

摘要: 基于汽车电子、消费电子行业的仓储系统,利用OPC UA、Socket、WebSocket、H5等技术开发自动无人仓储的监控系统。服务端使用OPC UA、Socket协议采集底层设备控制系统的运行参数,将需要保存的参数存储到MySQL数据库中,并生成JSON格式数据使用WebSocket协议发送给前端,前端使用H5建模,前端在运行中接收、分析数据并展示各 ...

0 引言

自动无人仓是计算机技术结合自动化行业的复杂系统,其有传统仓储系统无可比拟的优点,多层货架密集存储节约了数倍空间,从货物入库到出库由计算机自动调配合理分配空间,堆垛机、穿梭车在密集空间搬运货物灵活自如。在如此大型的系统中,监控系统是不可或缺的一部分,其可以全面监控整个系统的运行情况、设备出现异常时能快速上报、促使管理人员在最短的时间内处理异常,使系统恢复正常运转,可以简单快捷地查看库区任何货位的库存情况,收集到的数据全面、精细,对重要数据进行永久存储,查询系统的相关工作报表,基于Web的访问方式使其使用非常便捷。

1 工程概况

由于无人仓储系统内都是由各种自动化设备在相应任务指令下自动工作的,因此该系统具备面积大、货物存储密集、设备多、各个供应商的设备数据结构不统一、汽车电子和消费电子生产周期快、要求处理异常时间短等特点。这就需要开发一套完善的系统兼容不同供应商的设备,实时监控整个系统的运行状况。设备控制器数据能全面反应现场设备的运行状态,计算机和网络系统数据传输快,从底层设备到前端显示只需秒级甚至毫秒级时间,这样在出现故障时能快速上报故障设备、故障地点、故障原因,并能记录系统运行参数,查看一段时间内的运行情况,分析故障参数并改善系统运行工况,预防后期出现相同故障或减少频发的次数。

2 系统整体架构

无人仓储监控系统主要分为底层设备层、数据采集服务层、前端展示层,系统结构图如图1所示。底层设备层主要由PLC和定制控制器控制各自动化设备,设备运行过程中,所有参数都保存在PLC存储区,定制控制器控制的设备运行参数保存在控制器Socket服务端。数据采集服务层使用OPC UA和Socket协议[1],OPC UA协议分2种形式获取PLC存取区数据,一种形式是采用按一定时间间隔读取数据,另一种形式采用订阅的方式获取其数据,该方式主要针对那些时间敏感度较高的数据,当PLC存取区数据改变时,PLC程序会主动上报数据给上位数据采集系统,通过这2种方式对不同时间敏感度的数据进行分层次采集,既能够及时获取时间敏感度较高的数据,又避免PLC运行负担过大,影响性能。
数据采集服务层采集到的设备层数据,一方面将其组合成JSON格式,通过WebSocket协议发送给前端展示层,另一方面将需要永久保存的数据存储到数据库中,方便后期查询和作为生成报表的数据源。前端接收到服务层发送上来的数据,解析该JSON格式字串,分发到不同展示区及设备模型进行状态展示,使监控人员对现场运行状况一目了然。

3 仓储监控系统设计

3.1 系统模式

自动无人仓储监控系统的工作模式为中控室集中监控、人工参与处理异常的模式,在中控室运行该系统的前端监控界面,服务端将各设备参数采集上来并发送到前端,当设备有异常时会提示详细报警信息,管理人员会根据具体报警信息选择处理方案。管理人员还可以在办公室查看各种运行报表,以此来优化系统或提前预知系统可能出现的故障。

3.2 硬件配置

2台服务器,一台作为主运行服务器,另一台作为主机热备服务器。每台服务器需4核以上处理器,具备多线程处理能力,一台交换机,一个大屏显示器或其他需要访问的电脑、手机设备作为客户端运行硬件环境。底层数据源来自数十台西门子PLC和RCS系统的控制器。

3.3 软件配置

该系统部署在Windows Server 2016系统上,数据采集服务端基于.NET开发的Windows Service和Asp.NET Api系统,服务器上安装.NET4.6或以上版本,开启Asp.NET4.6或以上版本功能,服务器安装MySQL8.0版本数据库,客户端基于Web开发运行在浏览器上。

4 仓储监控系统功能设计

4.1 仓储管理流程及监控过程

无人仓储工作流程主要分为自动入库和自动出库2个部分,该仓储监控系统主要对该过程进行监控跟踪[2]

4.1.1 入库工作流程

货物上输送线→扫描仪扫描条形码信息→信息提交至WMS/WCS→WMS/WCS获取物料具体信息(上位ERP系统)→生成入库任务,基于入库规则分配库位→任务指令和任务号下发至下位输送线控制器和堆垛机控制器→控制器接收入库任务指令和任务号→货物运输。
图1 系统架构图图1 系统架构图  下载原图
 
在运输过程中货物要经过外形检测、外形检测异常将直接被输送到异常口并报告给WMS/WCS系统,外形检测正常,输送线系统将货物运送到环形小车或输送线入库口并上报给WMS/WCS,WMS/WCS下发指令给堆垛机控制器,堆垛机按任务在巷道内将货物输送到指定的货架排,最后由货叉或穿梭板将货物运送到指定货位,堆垛机控制器上报任务完成信号给WMS/WCS。

4.1.2 出库工作流程

WMS/WCS系统接收出库任务并计算出库货位生成任务号下发给堆垛机系统,堆垛机按照指定行走路径到达预定库位,提取货物,将货物输送到环穿小车或输送线并上报给WMS/WCS,输送线接收到WMS/WCS指令,将货物运送到相应出库口并上报给WMS/WCS。

4.1.3 监控跟踪功能

在入库过程中,监控系统从输送线控制器和堆垛机控制器中获取任务号,跟踪显示货物在输送线上的运动轨迹,直到货叉或穿梭车放下货物入库成功,或排放到异常口,取下货物。
在出库过程中监控系统从堆垛机控制器获取任务号,一直跟踪显示货物随堆垛机一起运动到输送线,然后从输送线控制器获取任务号,跟踪货物在输送线上运动的轨迹,直到货物到达出库口并被取走。
在整个监控过程中可以点击货物或承载货物的设备查看当前任务ID,通过ID可以查看货物的具体信息。当底层设备工作模式或工作状态发生改变或出现异常时,上报当前工作模式、工作状态和报警,并记录到数据库中永久保存。

4.2 功能模块设计

4.2.1 数据采集

数据采集功能块设计中,每个设备类拥有一些共同的属性和功能,如ID、IP地址、数据节点、连接功能、读取数据功能等,其中数据节点又包含节点名属性和节点当前值属性等,属性名对应OPC UA访问的节点标签,包括名字空间、标签层级关系、标签名。以此基本类为基类,对所有设备类型和设备参数节点进行继承。系统配置与运行分为3步。1)将各设备的属性配置成XLM文档,当服务初始化时,读取配置文档初始化各设备的相关属性。2)运行过程中,实时采集PLC或其他控制器中的设备运行参数。3)在采集时,上位程序将该节点标签名发送到OPC UA控制器,OPC UA控制器返回对应的节点值给上位程序。在数据采集方式设计过程中,选取了2种方式,分别为读取与订阅。
读取:采用轮询方法,间隔设定的时间将每个节点标签名组成数组发送给OPC UA控制器,OPC UA控制器按照标签对应关系返回相应的值,也可以发送一组节点的父节点标签给OPC UA控制器,OPC UA控制器将该父节点下的所有子节点数据,按照字节数组的形式返回给客户端,客户端按照顺序解析该字节数组,读取父节点字节数组的方式比下发每个节点标签的速度快数倍甚至数十倍。
订阅:将需要采集的节点标签加入订阅列表中下发给OPC UA控制器,该方法是OPC UA控制器按照设定的扫描间隔(一般是200 ms)扫描节点值,当节点值发生改变时,主动上报给上位程序,该方法采集的数据实时性更高,通信消耗更小。
如果因外界因素造成采集模块与设备控制器信号中断,当网络连接恢复后能够自动重连,以此来最大程度地降低因网络通信中断等外界原因造成数据丢失的影响。

4.2.2 数据适配分发功能模块

设计适配前端展示数据格式和保存到数据库数据格式2种。
由于现场设备各种各样不同设备来自不同厂家,数据不能完全统一,针对该情况先设计一些共同的功能,如获取设备当前值功能、前端数据适配功能、数据库设备适配功能等,让所有设备适配器都继承自该基类,然后根据各自的数据特点重写该基类方法。数据库存储功能是利用Entity Framework进行数据库操作。发送到前端的功能是利用WebSocket协议与前端进行双向通信,以此可以实时更新现场设备的运行状态,如果由于外界原因造成前端和服务端网络中断,当恢复网络连接后前后端具备自动重连功能,方便监控人员使用,减少或防止漏报信息。

4.3 数据库层

数据库层包括工厂车间表、车间区域表、设备类型表、设备表,这些表预定义从工厂车间信息、该车间有多少工作区域、整个车间有多少设备类型、每个工作区域有多少工作设备。报警表、工作状态表实时存储各设备的工作状况。通过角色表、用户表、角色菜单表进行权限管理。

4.4 前端监控界面层

前端监控界面层设置编辑态、运行态2种。
编辑态是用于绘制场景布局,场景布局主要是根据现场设计的CAD图纸绘制一些静态控件和一些配置参数,静态控件布局有货架、环穿轨道、输送线、堆垛机巷道等,静态控件绘制是根据设备模型为单位进行拖拽放置,然后可以编辑这些控件的ID、名称、位置、大小、颜色、状态等。
参数配置包括服务端WebSocket地址、显示时界面和实际的缩放比例、不同语言的对照表等,通过编辑可预定义运行时的场景并保存成配置文件。运行态读取场景配置文件载入运行场景,接收后台服务数据,解析数据运行得到各个设备组件及设置设备状态。

4.5 报表

管理系统API功能块包括各种API返回各种报表参数给前端管理界面,管理系统界面访问管理API,查看以图形展现的各种报表。
下面主要以堆垛机为例进行论述:接收到的参数包括设备ID,当前位置(X、Y、Z)、是否载货、报警列表等。堆垛机运动有3个空间坐标X、Y、Z,堆垛机主体按照X参数沿巷道行走,载货平台按照Y参数由堆垛机提升结构进行升降,穿梭板按照Z参数在货架内进行穿梭运动。当有设备出现故障报警时,设备显示为红色,点击该故障设备可以查看报警信息列表,用户也可以查看各个设备的运行参数、货架库位的存储货物信息。

5 系统调试与深化设计

5.1 调试方案

系统开始运行,采集服务端将载入底层设备参数配置文件,连接底层设备各个控制器,下发订阅参数标签地址,启动WebSocket服务。开启采集、存储数据、发送到前端数据线程,启动Web Api功能。一切准备就绪,前端就可以连接服务端。在浏览器中访问前端站点,前端将加载场景布局控件,并且会显现是否与服务端WebSocket连接成功,连接成功就将接收后端发送的数据,并动态加载运动设备或输送线上运动的货物,可以点击各个设备查看设备当前的运行参数和货物情况。当有设备报警时,该设备将呈现红色,并给出报警原因列表。点击货位上的货物可查看货物信息清单,经过信息整理,形成相应报表信息。

5.2 深化设计

该系统涉及的数据量大,给前端处理带来了一定压力;因此,采用实时发送发送周期内的变化数据,没变化的数据间隔较长一段时间,按顺序依次发送,使前端运行效果更流畅,当有新的连接时,发送所有数据给新连接上来的用户,避免新连接上来的前端用户长时间等待后台没有变化的数据而显示不全。
设备数据上报时带有一定随机性(尤其运动中的设备位置信息),后方的设备有时会比前方设备的数据先上报,针对这一问题,对运动设备数据按照位置记录进行有效排序,从而防止显示界面上出现设备碰撞、穿越、重叠及混乱的现象,并将算法逻辑放置在后台服务端,以此减轻前端的运行压力。

6 结论

自动无人仓储监控系统解决了大空间多设备的全局监控问题,对不同厂家的各种设备进行联网,形成统一的处理方案,帮助监控人员对现场形成有效的集中监控,能够准确的跟踪设备的实时位置、状态,方便查阅货物的各种信息,减少了系统故障漏报少报的问题、缩短了解决系统故障的时间。该系统具有对不同时间敏感度的数据按时间分层采集处理,采集模块与底层设备控制器、前端与服务端断线都能自动重连等稳定运行的特点。采集模块和前端采用配置和编辑模式,对于不同的项目都能够快速移植。