随着企业生产过程自动化程度的不断提高,自动化立体仓库被越来越广泛的应用到自动化生产线中。为了使自动化立体仓库中的堆垛机、输送机、条码扫描识别系统及各种检测传感器等设备在系统中高效、安全的运行,从而完成一系列任务,一个高可靠性、高效率的监控管理系统必不可少。自动化立体仓库监控管理系统主要负责从ERP接收和反馈出入库任务,自动控制作业指令的下发,实时监控下位物流设备堆垛机及输送机的工作状态和报警信息,以及对库房内部资源的合理管理利用。要实现上述功能,最主要的是实现上位监控管理系统与下位物流设备之间的数据通信。上位服务器与下位机之间常用的通信方式有串行通信、现场总线通信、工业以太网通信等[1]。然而到目前为止,由于硬件的驱动器和与其连接的应用程序之间的接口并没有统一的标准,一般来说要根据已选择通信方式所对应的通信协议在立体仓库监控管理系统软件中编写专门的通讯接口和设备驱动程序[2],这就会造成系统通用性差和可移植性差的弊病。而采用OPC技术将很好地解决这些问题。
本文以某公司自动化立体仓库监控管理系统开发为背景,详细分析立体仓库的组成结构,设计监控管理系统上下位之间的数据通信网络。介绍采用OPC通信技术,在监控管理系统中配置多个OPC服务器,组成多OPC服务器/客户端的网络结构,实现与下位PLC的实时通信,顺利完成各项库操作指令。
该自动化立体仓库只有一个库区分为4 个巷道,每个巷道由2 排横梁组合式双货位货架组成,巷道长度在100 米左右且均是直道。立体仓库平面图如图1 所示。
立体仓库位于车间中部,两边都与自动化生产线相连,要求从库房两端都可以进行出入库操作。因此库房两端都规划一片出入库区域,每块出入库区域对应一个控制室,里面均配备一台工控计算机和一台条码打印机。在每条巷道中有一台堆垛机,用来取送托盘。由于要求立体仓库两端都可以进行出入库操作,则在巷道两端各配备一台输送机。在出入库区域靠近每台输送机旁安装一台触屏计算机终端,每台触屏终端上安装一部条码扫描枪,用来出入库时扫描物料条形码。
库管人员通过控制室中的工控计算机可以向立体仓库中所有巷道下发出入库任务,而通过触屏终端只能向对应的输送机和堆垛机下发库操作指令。为了库房的统一管理,只有主控制室里的工控计算机才有权限从集团ERP接收出入库任务并向其反馈任务完成状态。
传统自动化立体仓库监控管理系统通常在上位只配置一台监控管理服务器,通过这台服务器就可以完成立体仓库的监控管理任务。然而如前所述,在本立体仓库的两端都设置了一个控制室,这样就避免了只有一个监控管理服务器而造成入库/领料工人以及库管员在服务器和出入库区域之间来回奔波的问题。因此将主控制室和副控制室中的工控计算机都设置成监控管理服务器,在系统中组成多服务器结构。
OPC ((OLE) for Process Control) 是微软公司以OLE/COM/DCOM技术为基础,采用客户/服务器模式,为连接数据提供源(OPC,服务器) 和数据使用者(OPC,客户应用程序) 之间提供的一种软件接口标准。OPC接口既适用于通过网络把最下层控制设备的原始数据提供给作为数据使用者的上位应用程序,也适用于应用程序和物理设备的直接连接。随着控制系统的不同,OPC服务器既可以是和OPC应用程序在同一台计算机上运行的本地OPC服务器,也可以是在另外的计算机上运行的远程OPC服务器[2]。
OPC服务器与OPC客户端之间的交互包括两个方面:客户端程序从服务器读取数据和客户端程序向服务器写入数据。两者之间的数据访问方法主要有同步访问和异步访问两种[2]。
由于同步访问适用于OPC客户程序较少和数据量较小的场合,这里采用效率更高的异步访问方式。异步访问方式如图2 所示。OPC客户程序对OPC服务器进行请求后立刻返回,不用等待OPC服务器的响应,可以进行其他操作。当OPC服务器完成数据访问时,触发OPC客户程序的异步访问完成事件,将数据访问结果传送给OPC客户程序[2,3]。
系统上位中,在主控制室中的工控计算机上安装SIMATIC NET通信软件及MYSQL数据库,使其同时作为OPC服务器和数据库服务器。副控制室中工控计算机安装SIMATIC NET通信软件和MYSQL的odbc链接驱动,使其作为OPC服务器和数据库客户端。而下面各巷道的触屏计算机终端上则安装OPC客户端软件和MYSQL的odbc链接驱动,作为OPC客户端和数据库客户端。
系统下位由五台S7-300PLC组成,一台固定的主控PLC,四台可移动的堆垛机PLC。主控PLC负责控制输送机,扩展CP343-1 以太网接口模块,实现与上位机之间的数据通信,扩展通讯模块CP342-5 通过Profibus DP现场总线和红外光通信方式实现与四台堆垛机PLC的数据通信。整个监控管理系统的网络结构如图3 所示。
结合本立体仓库的实际使用要求,在自动化立体仓库监控管理系统中,将主控制室和副控制室的工控计算机都配置成OPC服务器,各巷道触屏终端配置成OPC客户端,这样组成双OPC服务器/客户端结构。与传统单OPC服务器/客户端结构相比,有如下优点:
集团ERP下传到立体仓库的任务会储存在立体仓库内部数据库中等待分配。立体仓库位于车间生产线中,可以根据生产实际需求和操作的方便,选择从立体仓库的任意一端进行出入库操作。操作人员选择同侧控制室中的服务器来接收要执行的任务,根据库房出入库准则选择合适的货位,并将生成的任务指令排队到任务列中。在具体巷道的触屏操作端上,选择任务列中的任务下发给下位设备。采用双OPC服务器/客户端,可以直接在立体仓库的一侧完成任务的操作,减少单OPC服务器/客户端带来的控制室与触屏操作端不在同一侧带来操作上的麻烦,给任务指令下发带来便利性。
从任务操作流程可知,需要从控制室中的服务器上分配ERP下传的任务。采用双OPC服务器/客户端结构,可以从立体仓库两端的控制室同时分配任务,并能够通过触屏操作端操作全部巷道同时执行库操作指令,这样既可以提高下位设备的利用率,也提高出入库任务的执行效率。
由于采用双OPC服务器/客户端结构,两个控制室中的服务器都可以向所有巷道分配ERP下传任务。当一侧控制室出现通信故障影响任务分配时,可通过另一控制室的服务器向要执行任务的巷道下发指令,这样可以提高系统的稳定性,在某一服务器出现通信故障时仍能顺利完成库操作。
采用双OPC服务器/客户端结构,可将立体仓库的库管人员分配在库房两端的控制室中。库管人员各司其职,根据系统权限管理好各自负责的巷道货区。这样可以合理安排库管人员,强化责任意识,便于库房人员管理。
立体仓库监控管理系统只与主控PLC通信,主控PLC再通过红外通信模块与各巷道堆垛机PLC通信。因此监控管理系统中上下位之间的数据通信即控制室中服务器和主控PLC之间的数据交互。监控管理服务器向主控PLC下发库操作作业指令并同时读取主控PLC采集的监控状态信息。
下发给主控PLC的作业指令包括输送机编号,堆垛机编号,作业类型以及货位编号;从主控PLC中采集的状态信息包括巷道堆垛机工作状态、巷道堆垛机故障报警信息、输送机工作状态以及输送机故障报警信息。
作为立体仓库监控管理系统需要实时了解立体仓库的ERP任务状态、货位状态、库存信息和下位设备的状态,将这些信息按照巷道的不同添加到不同的数据组,定时刷新采集这些数据组中变量信息;而只有在作业指令下发时系统才向主控PLC执行数据写的操作。
选择采用OPC异步读写的方式来实现OPC客户程序与OPC服务器之间的数据交互。OPC异步数据访问的实现步骤如下:
通过上述函数创建一个OPCServer实例,调用函数Add Group()添加四个组,每个组对应立体仓库中的一个巷道,函数Add Items()为每个组中要读写的数据添加对应的项。
当OPC服务器完成数据读写操作后通过回调类p COPCData Callback接口指针通知OPC客户程序。数据读完成回调函数是On Read Complete(),数据写完成回调函数是On Write Complete()[3,4]。
本文以某公司自动化立体仓库监控管理系统开发为例,根据立体仓库的实际功能需求,分析了监控管理系统上下位之间数据通讯,设计了双OPC服务器/多客户端的OPC通信网络结构。并采用异步数据访问的方式完成OPC服务器与OPC客户程序之间的数据交互。
多OPC服务器在自动化立体仓库中的应用,使数据传输性能较传统通信方式大大提高,增强了监控管理系统的稳定性,使任务指令下发更加便利,提高立体仓库的任务指令执行效率和管理水平。
标签:
上一篇: 基于物联网技术的无人值守智能仓库的建立
下一篇: 仓库库存管理系统设计及实现分析