APP下载

多设备集成的智能化仓库管理系统的设计与应用

2015-09-13唐安杰张仰森

制造业自动化 2015年22期
关键词:货位码垛堆垛

唐安杰,张仰森,柴 菁,张 涛

(北京信息科技大学 智能信息处理研究所,北京 100192)

0 引言

近年来,随着现代工业的不断发展,自动化立体仓库的应用越来越广泛。随着市场的不断扩大,各个行业对仓储便捷性、统一性的要求也越来越高。与此同时,在生产物料、包材配送以及成品发货的全自动化已然成为整个物流行业的大趋势下,使得各类自动化设备得到了大量的应用与集成。因此,在多设备集成的情况下如何进行高效地调度管理是整个仓库管理系统(WMS,Warehouse Management System)的核心问题[1]。随着互联网与计算机技术的不断发展,浏览器/服务器(B/S,Browser/Server)结构以成本低、维护便捷、浏览方便的优点得到了越来越广泛的应用。越来越多的仓库管理系统选择B/S结构进行开发,大大降低了开发难度与成本[2]。

1 仓库结构及设备布局

本文以深圳某医药企业研发基地的仓库管理系统为例进行介绍。本仓库由堆垛机、箱式输送线、托盘输送线、升降机、拆码垛机器人、AGV(Automated Guided Vehicle)[3]、箱式缓存线以及物流贴标机综合设计而成,而且在高架库中包含7个堆垛机,其中3个属于双伸位式堆垛机,4个单伸位堆垛机,54列12层,拥有12960个货位。因此,此自动化立体仓库是现代化仓库的一个典型代表性,具有较高的复杂度。整个研发基地包含生产车间以及仓库两栋楼,中间由一层连廊连接,并由箱式输送线将车间生产的成品送至仓库进行存储管理,整体布局如图1所示。

图1 建筑布局图

生产车间共有三层,分别由箱式输送线进行上下层连接,并在二层进行汇总后统一由二层的产品输出流水线输送至仓库区。

仓库区的整体结构分为三个区域:第一个区域是高架库区,占整个仓库区的四层楼高度;第二个区域是成品发货区,位于仓库区的一层;第三个区域为仓库库存管理区,位于仓库区的二层。整体结构如图2所示。

图2 仓库结构简易示意图

从图中可以看到托盘输送线在箱式输送线的下层,箱式输送线是悬空而立的。其中,每个拆/码垛机器人可同时对两个托盘进行拆垛或者码垛,由于机器人状态只有一个,所以不会出现一边是拆垛一边是码垛的情况。

甲方的产品在包装上,对不同的产品采用不同的箱型规格,按照医药行业领域存储要求,为了防止药品之间的相互污染,不同品种的产品应放于不同的托盘之上。因此,为了这一存储目标,本项目在自动化入库流程中,引入了箱式输送线的缓存道技术,通过缓存道实现同品种、同批次的产品归类存放,保证在一个托盘上仅有一个品种、一个批次的产品[4]。

2 系统分析

2.1 仓库基本条件及存储原则

不同行业在仓储上都有不同的要求,比如温度、湿度、重量分布等等。在医药食品行业中对仓储的要求尤为严格,本系统仓库包含高架库、平面库以及零星库。如果按照物理空间上具有环境属性或者是物料存放规定来划分,则可包括常温库、冷库、包材库、麻药库等。

按照第2节中所述的仓库存储要求,同一品种、同一批次药品只能放于同一个托盘之上。但在高架库中,由于双伸货位的存在,可能会导致内侧货位托盘和外侧货位托盘出入库时的冲突(这里规定距堆垛机近的为外侧货位,远的为内侧货位)。为了取货方便,且避免双伸位出入库时发生冲突,我们提出双伸货位出入库存储原则:

1)令双伸位的两个货位存放同一品种规格且为同一批号的物料产品;

2)入库时,先入内侧货位,后入外侧货位;

3)出库时,先出外侧货位,后出内侧货位。

采用以上规则,就是将双伸货位出入库模拟成了单伸货位的出入库模式,容量为实际单伸货位的两倍,整体出入库形式得到简化,提高了出入库效率[5]。

2.2 基本需求

WMS系统主要功能包括物料入库管理、出库管理、搬库管理、移库管理、盘点管理等库存业务模式。仓库的执行命令全部由企业上位ERP发起,并且ERP中的库存信息需要从WMS系统获得反馈消息来更新系统数据,因此形成一个有效的业务环路。WMS系统中需要对仓库成品、半成品、原辅料及包材等所有信息进行统一管理,同时需要对ERP发起的订单命令做及时的处理和跟踪。并对仓库出入库数据进行维护和记录,可以做到将每个货物是何时入库、何时出库、何时又进行转移的各种信息记录下来。同时,根据监控系统的反馈,WMS系统可实时向仓库管理员报告仓库设备故障,及时采取应对措施,避免出入库业务的停滞,降低公司损失。

同时,WMS系统需要包括一整套查询功能,并具有报表系统可以根据用户的各种需求看到仓库各个货物的在各个时间段的出入库情况,能及时、方便且又灵活地进行查询、打印、比对信息;仓库管理系统需要具备对库存信息的修正以及对数据库的备份及恢复等基本功能,系统功能需求结构如图3所示。

图3 功能结构图

整个系统的功能包括业务处理、信息维护、设备调度以及数据传输四个部分。本系统由于属于医药行业,其上位系统不仅仅包括企业ERP,同时还具有一套生产药监码系统,管理整个生产车间的运作。因此,WMS管理系统需要同时和ERP系统以及药监码系统进行数据交换。

2.3 系统结构分析

为了实现基于Web形式下的信息化管理,实现B/S结构的管理模式,整个WMS系统以以太网通讯为基础,作为一个节点连接到企业网络之中,利用接口服务从企业上位ERP以及车间生产系统进行数据交互,大大降低了整个系统中子系统之间的耦合度,使得其可维护性得到提高。整个系统的网络拓扑图如图4所示。

图4 系统网络拓扑图

系统的各个主要部分通过以太网进行通讯,仓库管理系统(WMS)的调度子系统负责对整个仓库的设备进行管理与控制,通过OPC服务器与设备PLC实现柔性连接,通讯示意图如图5所示,调度系统可直接向OPC服务器发送指令,PLC从中获取指令后驱动设备做相应的动作,同时,PLC也可将反馈消息通过OPC服务器反馈给调度系统做进一步记录和处理。

图5 设备通讯示意图

WMS系统软件采用ASP.NET技术进行开发,网站部署的基本要求如下:

Web部署平台:Windows Server 2012;

数据库管理系统:Oracle 11g;

部署环境:Microsoft.Net Framework SDK v4.0。

3 系统设计

3.1 业务逻辑分析及功能模块设计

整个系统分为两个子系统:业务管理子系统以及调度管理子系统。本节主要介绍业务管理子系统,主要包括以下八大模块:登录注销、仓库基础数据管理、业务管理、用户信息管理、作业任务管理、数据维护、查询报表管理以及信息报警模块。在业务管理子系统中具有一个手持管理端的附属系统,其业务功能与PC端Web功能基本一致,主要帮助叉车司机以及仓库管理人员方便进入现场进行业务操作。WMS业务管理子系统的功能流程图如图6所示。

图6 WMS系统功能流程图

整个系统的用户权限分为超级管理员、仓库管理人员、叉车司机用户、查询用户四个权限。在这些模块划分中仓库基础数据管理、数据维护以及用户信息管理这三个模块仅仅可由超级管理员权限的用户进行使用,仓库管理人员则可使用其余的所有功能,叉车司机用户仅仅可在手持管理端的附属系统中进行登录进行相应的业务操作,查询用户仅仅可使用查询报表模块查询相应数据。

仓库基础数据管理包括仓库货位信息、物料信息、供应商、计量单位、物料类别等基础数据的管理,一些基本信息比如物料信息、计量单位等基础数据需要和企业上位ERP系统进行映射,保证数据的一致性,其他的一些基础数据字典表则直接进行维护即可,涉及到仓库本身的信息比如货位信息等则可向超级管理权限人员开放修改权限进行管理。

业务管理模块中按物料种类分的话主要包括两个方面,分别是成品和原辅料包材;如果按照业务类型来分,则包括入库业务、出库业务、移库搬库业务、盘库业务。其中最主要的业务是入库和出库。由于成品具有药监码对每件进行唯一标识,为了与成品进行统一,而且原辅料包材的采购是从不同的供应商进行采购,其批号可能产生重复,从而在进库时候会由仓库管理人员根据采购的货物通过一个条码生成系统为同一品种批号的原辅料及包材生成唯一的进库标签码,并按日期的先后设定进库批号,进行登记入库。

用户信息管理模块则是由超级管理员进行所有用户信息的注册及修改的,如有密码遗忘,可由超级管理员对相应用户进行密码重置。

仓库管理人员对业务单据进行操作下发作业任务后,可通过系统的作业任务管理管理当前的作业池,可对未执行及正在执行的作业进行调度管理,主要包括对未执行作业的撤销、故障作业的强制完成记账以及出库作业任务的优先级调整。这一部分功能在系统中保证了作业任务的可控性,避免了设备故障导致的系统数据错乱。

信息报警模块在WMS系统中是必不可少的,因为WMS系统不仅仅是一个业务管理系统,同时它还关联着大量的仓库自动化设备,设备故障以及库存错误的提醒都需要进行采集和反馈,让仓库管理人员及时进行处理,尽量减小损失。

3.2 软件实现

软件的两大子系统以数据库为中心进行数据交互,如图7所示,由此,系统管理与调度从根本上进行分离实现,降低系统耦合度,提高可维护性。

图7 系统结构

3.2.1 调度子系统

调度子系统的实现形式是Windows应用程序,启动后即可进行设备调度工作,主要采用多线程技术,根据设备分布以及业务需要进行分线程管理,并设定一定的时间片进行不断的轮询监控。

调度子系统根据设备集成形式分为堆垛机调度、输送机调度以及升降机AGV调度三大模块。其中,堆垛机以及升降机AGV调度的即时性要求较低、采用默认的轮询监控任务即可,而在输送机的箱线调度响应中的即时性要求非常高,响应时间不得超过0.5秒,因此在箱线的即时响应中采用Socket监听形式,在得到请求后可以无延时的进行数据处理并发送相应数据。具体调度逻辑在4.3节介绍。

3.2.2 管理子系统

WMS管理系统应用Asp.Net技术,采用DAL+BLL+UI的三层MVC架构进行实现,主要体系包括表示层(UI)、业务逻辑层(BLL)以及数据访问层(DAL),如图8所示。

图8 WMS软件结构

表示层(UI):本项目主要以Web形式作为表示层向用户进行展示,并且接收用户请求并返回响应数据。

业务逻辑层(BLL):主要根据业务需求对数据层获得的数据进行重新整理和组合,获得业务相关的数据形式。

数据访问层(DAL):直接对数据库进行访问,包括数据库实体(Model),直接获取相应数据,主要完成对数据库的增删改查任务,但并不包括任何业务逻辑成分。

3.3 设备调度逻辑设计

根据上节描述,调度管理子系统则包括以下三大模块:堆垛机调度、输送机调度、升降机AGV调度,本节主要根据仓库的业务需求对设备调度的逻辑进行整体性设计,将三个部分的调度逻辑有机结合起来。并且结合了智能化策略,根据需求定义,实现了高效率的仓库自动化运转。

3.3.1 原辅料包材领料退料

原辅料包材的领料退料是仓库为企业生产提供的基本业务,本项目为了减少人工对药品生产原料的接触以及仓库与车间人员的隔离,我们采用了智能化的升降机及AGV设备进行领料和退料。

整个业务由企业生产部工作人员在ERP发起生产领料,WMS接收之后,仓库管理人员需要根据领料单据的相应指令进行任务分配核对,下发仓库领料指令后,仓库的叉车司机或者库管人员进行取货,最后将领取的物料进行汇总,绑定送货托盘后放到提升机上。之后由调度系统调度提升机和AGV实现货物发送,调度算法如下:

算法1. 提升机与AGV联合调度算法

Step1.AGV初始状态为空闲,工作时为忙碌;

Step2.提升机读托盘条码向调度系统请求送货楼层,转至Step3;

Step3.调度系统根据系统数据进行查询,并将查询的托盘送货楼层信息进行反馈,转至Step4;否则,反馈错误信息,提升机进行报警提示,转至Step7;

Step4.提升机根据楼层信息将托盘货物送到指定楼层,到位后将请求AGV取货指令以及当前托盘号反馈给调度系统,转至Step5;

Step5.调度系统得到请求AGV取货请求后,检测当前楼层AGV中是否有空闲AGV,若有则呼叫AGV进行取货,并将货物的送货地址同时发送给AGV,此时AGV状态切换为忙碌状态,进行送货操作,转至Step6;否则,等待轮询时间,转至Step5;

Step6.AGV送货完成后回到原位,状态切换至空闲,转至Step7;

Step7.结束。

在车间生产结束后,工作人员在ERP中发起生产退料业务,WMS通过接口进行接收.然后,车间通过生产工位的控制按钮呼叫AGV取货,AGV取货后放到提升机送到一楼仓库,这一部分与调度系统没有交互内容,仅仅将托盘送到仓库即可。

3.3.2 成品自动化入库

车间对原辅料包材进行加工生产,最后得到的成品为了不积放在车间,利用箱式输送线,待所有车间流水线作业完成后,成品就可以直接输送到仓库区,由于货物入库要将同一品种同一批号的成品绑定在一个托盘一个货位之中,所以在仓库区首先需要将从车间过来的货物在缓存区进行分拣整理,整个缓存区分两层,每层九条缓存道,每条道存入一托盘箱数的货物后不再缓存,此缓存道变为可释放缓存道,若此时有空闲的码垛机器人,则下发释放缓存道指令进行码垛。码垛完成后反馈完成信息,调度系统下发入库任务进行入库。具体的调度算法如下:

算法2. 成品入库调度算法

Step2.箱子通过箱线进入缓存道之前有一个换层区域,这里通过条码扫描器验证条码,根据条码提供的产品批号信息查询缓存道的产品批号绑定信息,若存在ai缓存道绑定了此产品批号信息且未满则分配到此层,若与箱子当前层不符则下发换层指令,转到Step5;若没有缓存道绑定此产品批号信息,转到Step3;

Step4.下发剔除指令将此箱送至剔除位由人工进行后续处理,转至Step10;

Step5.箱子进入缓存道前也需要进行扫码,调度系统获得条码信息后查询当前层的产品批号绑定信息进行分道,并将分道号发送迅速发送给箱线PLC控制器,PLC控制器根据分道号将箱子进行分道缓存,转至Step6;

Step6.调度系统实时监测缓存道与机器人状态,若存在机器人空闲且缓存区存在可释放缓存道,则下发释放指令,释放缓存道箱子进入码垛箱线,同时将产品批号信息以及释放数量和箱型信息与码垛机器人信息进行绑定,转至Step7;

Step7.由于存在多缓存道同时释放,则在进入码垛箱线时也要进行分道,这里也是在进入码垛区之前有一个条码扫描器,扫描后由调度系统根据产品批号信息与码垛机器人绑定的信息进行比对分配分道号并记录扫描条码,发送至箱线PLC控制器,PLC控制箱线进行分道,转至Step8;

Step8.机器人码垛完成后,反馈码垛完成消息给调度系统,系统获得反馈消息后根据记录条码以及托盘信息下发入库作业,将入库堆垛机站台号发送给托盘线的PLC控制器,转至Step9;

Step9.托盘线根据入库站台号将托盘送至相应入库堆垛机进行入库,转至Step10;

Step10.结束。

同时,在托盘线上还设置了一个空托盘拆码垛机器,在托盘线和箱线机器人的协调运作中,托盘线还会根据线上的空托盘数量进行调整,如果少的话则会向调度系统请求空托盘出库,调度系统则根据指令查询库内空托盘库存,下发空托盘出库任务,若无空托盘则反馈错误信息进行报警;若托盘线空托盘过多,则自动将空托盘送至拆码垛机进行码垛,当够一整托盘时,会向调度系统请求空托盘入库任务。这种托盘线的空托盘的自我调节也是极大的节省了人力和物力,对企业生产力的提升有极大的帮助。

3.3.3 销售自动化分拣发货

在企业仓库管理中,如何提高发货速度是一个关键性问题。传统发货环节的一般步骤是通过订单合成大的出库波次后进行统一出库,然后由人工进行货物拣选分单。由于大量的采用人工分拣,效率不高,且由于人为失误,经常会出现分拣错误导致发错货的现象。在本系统中,利用计算机的集成性管理以及大量的自动化设备,实现了一种自动化发货流程用以替代人工分拣环节。库管人员首先通过WMS对多个销售订单进行波次合成,再对合成后的出库波次下发释放命令,WMS会根据销售单的产品数进行初步的数量分拣,但是未绑定具体的药监码信息,在波次单出库的调度过程中,通过发货区箱式输送线的条码扫描器获取的货物药监码信息,调度系统可迅速查询并绑定分拣信息,从而实现完全自动化发货。具体调度算法如下:

算法3. 销售自动化分拣发货调度算法

Step1.仓库管理人员根据销售单基本信息进行波次合成,建立单独的出库波次单,系统根据销售单的品种规格明细进行合成以便统一出库,转至Step2;

Step2.根据出库波次信息分配出库货位货物以及相应数量,系统在货位分配是按照货物自动按照先进先出原则进行选择分配,并且在释放波次时,根据货位分布,调整出库顺序,提高出库效率。WMS系统根据所有出库货物的产品信息进行销售单的初步分拣,仅仅根据数量进行分配,转至Step3;

Step3.在波次释放后,调度系统根据拆垛机器人列表中查询是否存在可用的拆垛位或者缓存位(设定有n个拆垛机器人,每个机器人分管左右两侧的托盘拆垛,每测又可有一个缓存的托盘队列也就是说存在2n个拆垛位以及2n个缓存位),若有,则根据作业池中的出库任务信息给堆垛机下发出库任务,堆垛机进行出库,转至Step4;

Step4.托盘出库后,调度系统获得堆垛机反馈的完成消息后,调度系统将分配的拆垛机器人位置信息发送给托盘线PLC控制器,转至Step5;

Step5.待托盘到位后,机器人位置的条码扫描器反馈条码信息,调度系统根据系统数据查询,将托盘现有数量、产品箱型以及需要出库(拆垛)的数量发送给拆垛机器人,机器人得到指令后进行拆垛,转至Step6;

Step6.拆垛完成,若托盘存在货物需要回库则请求调度系统回库任务,转至Step7;

Step7.调度系统根据托盘号等信息下发回库任务并将入库站台发送给托盘线PLC控制器进行入库;

Step8.箱子进入发货区后通过箱线条码扫描器扫描,若扫描出错(未扫描到条码),则进行剔除,由人工进行后续处理,否则调度系统根据扫描得到的药监码信息与WMS初始分配信息进行绑定获取出货口信息,并迅速将出货口信息发送给箱线PLC控制器进行分道完成发货并更新库存,转至Step9;

Step9.结束。

使用WMS进行初步分拣的主要原因是考虑到发货区的箱式输送线传输速度较快,从分拣用的条码扫描器位置到第一个发货分道口之间只有0.5秒左右的处理时间。因此,为了避免大量的分拣处理产生大量的延时,采用WMS初步分拣可事先将基本的品种数量信息分拣完成,调度系统只需要根据扫描的药监码品种规格信息进行比对即可进行绑定,并获取相应的出货口信息。根据实际的应用证明,这是一种可行的方案。

4 结束语

由于经济的快速增长以及互联网的不断发展,尤其是以阿里为首的电商在近年来发展的猛烈势头,使得全世界各个行业对生产仓储物流速度以及效益的需求日益提升。因此,为了降低人力物力,提高运转和周转速度,半自动化甚至是全自动化的模式成为今后物流发展的必然趋势。而由于大量自动化设备的集成使用,如何降低设备故障率、提高设备运行效率、保证相互之间的协同性、增强设备的智能化成为了整个系统运转的核心问题。因此,对于多设备集成下的智能化立体仓库管理系统的软件开发设计的研究与探讨,具有非常重大的意义。

本文介绍一个典型的多设备集成智能化立体库管理系统的设计案例,针对实际需求,以提高设备协同性以及软件实用性为核心进行软件设计与开发,并根据设备的具体应用以及集成关系设计具有针对性的调度算法,不仅可以提高软件与设备之间的兼容性、同时也为整个企业降低了成本,提高了货物的周转速度,带来了更大的经济效益。同时,也为多设备集成的智能化立体仓库提供了详细的、可行的设计思路。

[1] 尹新富,武凤翔,李晋,等.B/S模式下物流仓储管理系统设计与实现[J].物流技术,2014,(17):451-452.

[2] 蔡靖,王海丹.自动化仓储信息系统及应用[J].制造业自动化, 2015,12:043.

[3] 李铮.电子商务背景下配送中心货到人拣选系统中AGV的应用[J].物流技术:装备版,2014(9):78-80.

[4] 赵剑道,刘向东,任楠,等.医药物流分拣系统WMS设计[J].制造业自动化,2014,(21):149-153.

[5] 于彩敏,朱典想.双伸位堆垛机货叉结构设计及应用[J].林产工业,2014,41(2).

猜你喜欢

货位码垛堆垛
基于改进防碰撞策略的两端式双堆垛机出入库优化研究
可控机构式码垛机器人的运动学误差分析
移动式码垛机器人移动臂的优化设计
货位指派和拣货路径协同优化及算法研究
Flexsim堆垛机模块优化研究
自动化立体仓库中堆垛机分类与结构研究
GSK工业机器人码垛程序编写技巧
基于蚁群算法的智能生产物流体系构建研究∗
基于双层遗传算法的仓库拣选路径优化问题研究
堆垛机能耗的采集和分析