朱建红,顾菊平,姚 娟
(南通大学 电气工程学院,南通 226007)
随着市场货物需求向着小批量、多品种和时效性方向发展,货物流动频率、品种和数量迅速增加[1],立体仓库在配送中心运作中的储存作业,信息管理内容不断扩展,主要是提高下位机的存取效率和上位机有效维护仓库的动态信息。高效的仓库分类信息管理,将提高企业内部运作效率,降低运作成本,提高企业对市场需求的反应速度,增强企业的竞争力[2]。本论文在文献[3]中就机械手不同库位之间快速移动路径的最短化(直线)问题研究的基础上,设计了下位机控制系统。同时基于货位优化的策略,采用SQL Server数据库技术对库位信息的动态快速查询系统进行了设计与实现,实现了立体仓库现场的远程监控,提高了生产线的自动化水平。
图1 立体仓库库位分配示意图
小型仓库的库位分配示意图如图1所示,根据待存货种类分为C1、C2、C3存储区,库位按存放货质量大小分为重、较重、较轻三个层次,重型存于下几层,较重放于中间,较轻的放于上几层。存取信息动态管理系统设计的核心主要是结合上位机对下位机系统机械手位置的动态监控信息及仓库数据信息,采用相关寻优策略对数据库进行相关操作,实现动态管理功能。
分类存取系统在对存储区域进行分类基础上,主要实现取到所需货物品种的功能,也就是在相应类别动态查询结果中随机取货,或对相应的存放区的空库位进行随机放货。
在分类存取基础上加以条件约束,即移库、入库或出库都要在该区域中选择最近库位来调库,这就实现了分类就近存取的功能,这种存取方式下,所有的物品调库都遵循最近原则,因而可以节省大量时间,获取更高效率。关键技术就是最优库位点位选择、查询和点点之间路径优化,生产实际中更需要功能兼顾效益的存取模式,系统设计采用分类存取与就近原则相结合的存取模式,即在分类查询基础上按就近距离来进行存取操作。由于系统涉及较大数目的货物信息与库位信息的复杂管理,且涉及到相关数量运算,所以引进SQL Server数据库对仓库信息进行动态管理。
系统设计主要涉及库位信息的查询与动态更新、下位机机械手位置的实时跟踪及每次存取动作总行程的计算与寻优,所包含的主要功能如下:
1)仓库总体信息的动态查询与管理:为了实施可视化的管理,系统为仓库所有库位信息建立数据库,并记录库中货物的相关信息,如ID、排、层、条码、货号、区位号、库存标志、类别和重量等;
2)关系数据表建立:在分类存取和就近存取原则基础上,结合上位机监控的动态信息及可操作存取库位,建立相关表数据库;
3)货位动态寻优设计:根据存取路径最小化对目的取货位置与目的放货进行位置动态寻优,实现堆垛机的路径最优;
4)数据库的更新:存入和取出货物后数据库中的信息实时更新,以便下次存取货查询。
立体仓库动态信息紧密结合下位机的存取操作。对货位优化来说,就近存货就是在现有货存状况已知的条件下,结合机械手的当前位置,查询机械手经过库入口点至库位总行程的最短路径,确定入货库位地址。就近取货就是结合机械手的当前位置,查询机械手经过库出口点至库位总行程的最短路径,确定出货库位地址。
在货位寻优时,可采用穷举法。比如,在放货时,机械手任意位置,找出所有的空库位,计算出它们到机械手的距离与入货点距离,对照区域号与质量进行查询,找出总距离最短的点。该方法算法简单,不过当数据很多时计算量比较大。不适合大型仓库的数据管理。
其次,采用分块法位置查询,先比较所有空库辐射区域的x方向上坐标到xi最远的距离为m,确定区间,y方向到yi最远的距离为n,确定区间,对照区域类别查看在这区间内是否有空库,若有则m和n都减1,在继续检查,直至该区间内不再有空库,找出该边界线上所有的空库,再计算它们到机械手的距离及入货点距离,选择距离最短的点。取货算法类似,该方法计算量要比上一种方法计算量要小,不过它的程序设计要复杂。
考虑到系统在信息维护方面需求的重要地位,且两种方案都离不开库位的查询,为了库位的直接跟踪与管理,必须建立一系列关系数据表。因此设计中采用库的分层管理法,对数据进行分层动态查询与计算,在一定程度上减少了计算复杂程度,本系统拟采用在库中穿插采用穷举法进行存取库位的查询与管理。同时为方便计算与管理,在计算库位间距时只计算平方和非开方。当对所需库位区域进行查询比较时,以首条记录作为基准,逐一与其他记录相比,保留距离最小对应的库位作为所要查找的位置。这种方法易于实现,容易理解。
数据库管理系统设计的核心技术为关系数据表的建立,所用字段如下:ID、层、排条码(XXXXXXX)、货号(XXXX)、分区号(C1、C2、C3)、质量权重()库存标志 (1、0)、货物类别(B1、B2、B3)和机械手至入货口距离,入货时入货口至候选库位距离,出货时机械
1)系统总表A字段:排、层、条码、质量权重、存货标志、货号、类别和区位号;
2)可存货位表A1:排、层、条码、质量权重、存货标志(0)、类别B*和区位号C*;
4)可取货位表A2:排、层、条码、质量权重、存货标志(1)、类别B*和区位号C*;
整个系统数据库系统的货位动态寻优示意图如图2所示,寻优步骤如下:
1)出货时按货号及类别关键字查询,得数据库A2;
2)入货时按分区、质量权重查询,得数据库A1;
3)调取下位机机械手当前位置,等待上位机存取命令,判断存取货命令,动态搜寻最优货位并发送命令给下位机,更新数据库;具体如下:
结合当前机械手位置,按照需出货货号及存货标志(1)两条件逻辑“与”关系对当前数据库进行查询,得数据库A2;添加字段“排层至机械手”,“距离”,生成数据库A21,对库中字段距离由小到大进行筛选,第一条记录对应的层、排即是所要求取的货位。原数据库相应货位的存货标志(1)更新为“0”。货号更新为“空”。更新机械手当前的位置。
结合当前机械手位置,按照需入货分区号及质量权重及存货标志(0)条件逻辑“与”关系对当前数据库进行查询,得数据库A1;添加字段“排层至入货点”“距离”,生成数据库A11,对库中字段距离由小到大进行筛选,选中第一条记录对应的层、排即是所要求取的货位。原数据库货位的存货标志(0)更新为“1”,货号由空更新为相应的货号,条码更新,机械手更新当前位置。
图3 监控示意图
如图3所示的组态王主监控画面设计,当按下控件“库存信息”时,系统显示当前货存的情况,比如:有无货物、货物的颜色、重量、条码、所在库位、时间及日期;当按下控件“就近存货”或“就近放货”时,系统经过询问待存取货信息,切换至“可存货信息表”或“可放货信息表”画面,点击“取货”按钮,通过寻优“目的取排”、“目的取层”显示,系统会把所要的货物信息提取出;同理,当按下 “放货”时,跟取货类似,通过寻优“目的放排”、“目的放层”显示,系统会把所取货物信息提取出。同时把所提取信息通过数据通信网络传至下位机PLC,系统根据程序设计自动启动设备运行,进行取货、放货操作。下位机系统逻辑控制的算法流图如图4所示,同时数据库同步动态更新显示当前货架上货物信息。
在数据库管理中,上位机根据存取策略获取存取货位置信息,然后根据不同取放货位置信息给出相应的变量控制信息,如:各传输方向电机拖动的运行速度、方向等,最后系统把各数据信息通过通信网络传输给下位机,系统才能按预定的目的轨迹运行[3]。
当机械手完成从取货或放货一次动作结束时,仓库总体信息数据库也要同步更新。在检测到当前下位机根据上位机发出数据信息执行完成时,数据库更新一次,原来有货的库位在取货以后标志位要由1变为0,同时清除货物的信息,即颜色、条形码、重量等。而原来无货的库位在放货以后标志位要由0变为1,同时增加相应的货物的信息,画面信息同步变化,实现动态监控。
图4 堆垛机逻辑控制算法示意图
系统设计结合实际应用,采用分类就近存取策略进行设计,把SQL Server数据库技术引入工程设计,并对动态监控进行了程序设计。在组态王监控环境下,可以很方便的查看数据库的相关信息并能实现立体仓库信息的实时更新。设计成果经现场实验平台调试,成功运行,实现了调库系统的跟踪与管理。
文中设计方案经过适当的修改可应用到实际规模较大的工业现场调库系统中。实现现场远程监控,提高企业运作的自动化水平,满足企业信息系统管理的要求。
[1] 李晓林,刘波涛.配送中心储位动态管理模型研究[J].软件导刊,2007(1).
[2] 吴和平,陈建宏.基于生产数据监控与动态管理系统的矿业集团信息化研究[J].工矿自动化,2007.
[3] 朱建红,顾菊平等.堆垛机实时控制系统优化设计[J].制造业自动化,2011(4).