物品运输方法和运输系统
技术领域
本发明涉及仓库管理的技术领域,具体涉及一种物品运输方法和运输系统。
背景技术
随着电商的快速发展,人们对物流行业有了更高的要求,包括对货物的运输速度和对仓库空间的利用率,此种情况下立体库货到人系统应运而生。立体库存储拥有存储密度大、空间利用率高、运行自动化、出库效率高等特点。
立体库货到人系统由立体库本体、运行在立体库内各层的穿梭车及提升机、立体库外部的输送线及人工拣选站共同组成。其中,立体库本体有多层,每层都由穿梭车将出库货箱从储位运送到出库位,再由提升机将货箱取走并送至传输线。提升机一次可以运输两个货箱,每层出库位只有一个货箱,提升机每次去哪两层取货箱及取货箱的顺序,决定了提升机的出库效率。目前有两种物品运输方法确定提升机的取货:
一种是,程序根据货箱到达出库位的先后顺序建立层号数组,提升机按组内的排序到对应层去取货箱。例如,一个立体库有15层,出库输送线位置在第十层,有多个货箱到达不同层出库位并发出信号申请提升机取货,而且,程序扫描第一个到达出库位的货箱位于15层,第二个位于1层,那么,提升机(在10层待机)先运行到15层,再运行到1层,最后运行到10层。该方案中,提升机的总行程为(15-10)+(15-1)+(10-1)=28,即,提升机一次出库两个货箱的总行走距离为28层。
另一种是,程序根据货箱到达出库位的先后顺序建立层号数组,然后,提升机先取数组中第一位层号对应的货箱;根据第一位层号和第二位层号计算出提升机运行距离;在数组中依次检索并比较,是否检索到其他层号替换数组中第二位层号可以小于之前的运行距离,若检索到则将提升机取的第二个货箱层号进行替换。同上例结果,程序在计算出取数组前两层号对应货箱的总行程28后,再取数组中后序(第三个开始)的层号与第一个层号进行计算,一旦计算出的数值小于28,则用对应的层号替换原处于第二顺位的层号,计算结束,进行取箱操作。
提升机的上述第一种物品运输方法没有优化取箱顺序,提升机的出库效率完全由提升机的运行速度和加速度决定;第二种物品运输方法虽然进行了提升机取箱顺序的优化计算,但优化程度小。例如,数组层号顺序为[15,1,2,11,……],该方法计算得出的层号选择为15和2,并不是更优的15和11。因而,该种方法对货箱的运输效率仍然较低。
针对传统物品运输方法中物品运输效率较低的技术问题,现有技术中缺乏有效的解决方案。
发明内容
有鉴于此,本发明实施例提供了一种物品运输方法和运输系统,以解决现有技术中物品运输效率较低的技术问题。
根据本发明的第一方面,提供一种物品运输方法,包括:
获取层号数组和待机层,其中,所述层号数组为根据物品到达存储层的先后顺序,对层号建立的数组;
将所述层号数组中的第一位层号确定为第一目标层,以便从所述第一目标层提取第一个物品;
在所述层号数组中,将最先落入目标范围的一个层号确定为第二目标层,以便从所述第二目标层提取第二个物品,其中,所述目标范围为所述待机层到所述第一目标层所表示的范围。
可选地,在所述层号数组中,将最先落入目标范围的一个层号确定为第二目标层,包括:
通过所述待机层和所述第一目标层,确定所述目标范围;
基于所述层号数组的数组次序,依次判断所述层号数组的层号是否落入所述目标范围;
在判断的当前层号落入所述目标范围的情况下,将所述当前层号确定为所述第二目标层。
可选地,在所述层号数组中没有一个层号落入所述目标范围的情况下,所述物品运输方法还包括:
获取扩展层数;
将所述目标范围从所述第一目标层一侧或所述待机层一侧扩展所述扩展层数,得到扩展后的所述目标范围;
基于所述层号数组的数组次序,依次判断所述层号数组的层号是否落入扩展后的所述目标范围;
在判断的当前层号落入扩展后的所述目标范围的情况下,将所述当前层号确定为所述第二目标层。
可选地,所述扩展层数为不大于目标数值一半的最大整数,且所述目标数值为所述第一目标层层号和所述待机层层号之间差的绝对值。
可选地,在所述层号数组中没有一个层号落入扩展后的所述目标范围的情况下,所述物品运输方法还包括:将所述层号数组中的第二位层号确定为所述第二目标层。
可选地,所述物品运输方法,还包括:
将所述第一目标层和所述第二目标层的层号从所述层号数组中剔除,得到具有堆栈空缺的所述层号数组;
通过顺次向前移动数组元素,将所述层号数组的堆栈空缺补全。
根据本发明的第二方面,提供一种物品运输系统,包括:
获取模块,用于获取层号数组和待机层,其中,所述层号数组为根据物品到达存储层的先后顺序,对层号建立的数组;
第一确定模块,用于将所述层号数组中的第一位层号确定为第一目标层,以便从所述第一目标层提取第一个物品;
第二确定模块,用于在所述层号数组中,将最先落入目标范围的一个层号确定为第二目标层,以便从所述第二目标层提取第二个物品,其中,所述目标范围为所述待机层到所述第一目标层所表示的范围。
可选地,所述第二确定模块用于:
通过所述待机层和所述第一目标层,确定所述目标范围;
基于所述层号数组的数组次序,依次判断所述层号数组的层号是否落入所述目标范围;
在判断的当前层号落入所述目标范围的情况下,将所述当前层号确定为所述第二目标层。
可选地,所述第二确定模块还用于:
在所述层号数组中没有一个层号落入所述目标范围的情况下,获取扩展层数;
将所述目标范围从所述第一目标层一侧或所述待机层一侧扩展所述扩展层数,得到扩展后的所述目标范围;
基于所述层号数组的数组次序,依次判断所述层号数组的层号是否落入扩展后的所述目标范围;
在判断的当前层号落入扩展后的所述目标范围的情况下,将所述当前层号确定为所述第二目标层。
可选地,所述扩展层数为不大于目标数值一半的最大整数,且所述目标数值为所述第一目标层层号和所述待机层层号之间差的绝对值。
可选地,所述第二确定模块还用于:
在所述层号数组中没有一个层号落入扩展后的所述目标范围的情况下,将所述层号数组中的第二位层号确定为所述第二目标层。
可选地,所述取货运输系统还包括:
剔除模块,用于将所述第一目标层和所述第二目标层的层号从所述层号数组中剔除,得到具有堆栈空缺的所述层号数组;
补缺模块,用于通过顺次向前移动数组元素,将所述层号数组的堆栈空缺补全。
根据本发明的第三方面,提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,所述计算机指令被执行时实现如第一方面任一实施方式所述的物品运输方法。
根据本发明的第四方面,提供一种物品运输装置,包括:
存储器,用于存储计算机指令;
处理器,耦合到所述存储器,所述处理器被配置为基于所述存储器存储的计算机指令执行实现如第一方面任一实施方式所述的物品运输方法。
本发明的实施例具有以下优点或有益效果:
本发明实施例在层号数组中,将最先落入目标范围的一个层号确定为第二目标层,其中,目标范围为待机层到第一目标层所表示的范围,因而,提取第一个物品后,在向待机层返回的途中即可提取第二个物品,无需为了提取第二个物品增加行程路线,从而大大缩减了一次运输两个物品的总行程,提高了物品运输效率,即,本发明通过对第二个货箱的来源层进行决策,解决了现有技术中物品运输效率较低的技术问题。
附图说明
通过参照以下附图对本发明实施例的描述,本发明的上述以及其它目的、特征和优点将更为清楚,在附图中:
图1是根据本发明实施例的物品运输方法的流程图;
图2是根据本发明实施例的一种第二目标层的确定方法流程图;
图3是根据本发明实施例的另一种第二目标层的确定方法流程图;
图4是根据本发明实施例的物品运输系统的结构框图;
图5是根据本发明实施例的物品运输装置的结构框图。
具体实施方式
以下基于实施例对本发明进行描述,但是本发明并不仅仅限于这些实施例。在下文对本发明的细节描述中,详尽描述了一些特定的细节部分。对本领域技术人员来说没有这些细节部分的描述也可以完全理解本发明。为了避免混淆本发明的实质,公知的方法、过程、流程没有详细叙述。另外附图不一定是按比例绘制的。
下面对本发明实施例提供的物品运输方法和运输系统进行详细介绍。为了更加容易理解,必要的情况下以立体库中货箱出库涉及到的货箱运输为例,进行更加形象的说明。但需要强调的是,本发明的物品运输方法和运输系统的应用场景并不限于立体库中货箱的出库运输。
图1所示是本发明实施例的物品运输方法的流程图。参照图1,物品运输方法包括:
步骤S101,获取层号数组和待机层,其中,层号数组为根据物品到达存储层的先后顺序,对层号建立的数组。
需要说明的是,待机层是升降运输机构等待物品运输任务以及物品运输任务结束后所处层,升降运输机构可以是被动的升降运输机构(例如升降机),也可以是自身具有攀升能力的自动导引运输车(Automated Guided Vehicle,简称AGV),此处对升降运输机构不作限定。存储层,即为存储物品的层,例如仓库中的立体库各层。
上述层号数组的建立,可以采用如下方法:首先,建立一个出库货箱所在层号的堆栈,将多个层号以先到先出的原则进行排序;采用可编程逻辑控制器(Programmable LogicController,简称PLC)的数组功能建立一个以立体库最大层号为长度的数组F,将层号按到达顺序依次填入数组。例如下表所示的数组F:
数组 |
F[0] |
F[1] |
F[2] |
F[3] |
F[4] |
F[5] |
F[6] |
F[7] |
F[8] |
F[9] |
F[10] |
F[11] |
F[12] |
F[13] |
F[14] |
层号 |
15 |
1 |
2 |
11 |
3 |
9 |
6 |
4 |
5 |
10 |
7 |
14 |
12 |
13 |
8 |
其中,F[N]为第(N+1)个抵达出库位的货箱所在的层号。
步骤S102,将层号数组中的第一位层号确定为第一目标层,以便从第一目标层提取第一个货箱。
例如,上表数组F中的第一位层号为15,因而,第15层为第一目标层。
步骤S103,在层号数组中,将最先落入目标范围的一个层号确定为第二目标层,以便从第二目标层提取第二个货箱,其中,目标范围为待机层到第一目标层所表示的范围。
需要说明的是,本发明实施例中对“A到B所表示的范围”采用数学领域的标准定义,即,包括A但不包括B,采用数学符号则表示为[A,B),因而,上述目标范围包括待机层但不包括第一目标层。
在层号数组中,将最先落入目标范围的一个层号确定为第二目标层,即,按照层号数组次序,将层号数组的最先落入目标范围的数组元素确定第二目标层。
例如,假设待机层为10,上表数组F中的目标范围则为[10,15),因而,数组F中最先落入[10,15)的一个层号为F[3]中的11。
本发明实施例,在层号数组中,将最先落入目标范围的一个层号确定为第二目标层,其中,目标范围为待机层到第一目标层所表示的范围,因而,升降运输机构提取第一个物品后,在向待机层返回的途中即可提取第二个物品,无需为了提取第二个物品增加行程路线,从而大大缩减了升降运输机构一次运输两个物品的总行程,提高了物品运输效率。即,本发明实施例通过步骤S103对第二个物品的来源层进行了决策,解决了现有技术中物品运输效率较低的技术问题。
在可选的实施例中,如图2所示,步骤S103,在层号数组中,将最先落入目标范围的一个层号确定为第二目标层,包括:
步骤S201,通过待机层和第一目标层,确定目标范围。
该步骤是基于步骤S101中获取的待机层和步骤S102中确定的第一目标层进行,对于目标范围的确定,可以通过PLC中结构式文件编程语言(Structured Text,简称ST)的IF语句实现,具体地,通过IF语句确定使用如下两个公式中的哪一个公式:
其中,f0表示待机层层号,F[0]表示第一目标层层号,A1表示目标范围内的任一层号。即通过IF语句确定:若F[0]>f0,则目标范围为[f0,F[0]);若F[0]<f0,则目标范围为(F[0],f0]。
步骤S202,基于层号数组的数组次序,依次从层号数组中提取出当前层号。
该步骤可以采用PLC中ST语言的FOR语句依次从层号数组中提取出当前层号。基于目标范围不包括层号数组的第一位元素,因而,为了判断当前层号是否落入目标范围,可以从层号数组的第二位元素开始提取当前层号。例如,数组F中则从F[1]开始提取当前层号。
步骤S203,判断步骤S202提取出的当前层号是否落入目标范围,即将当前层号F[N]替换上述公式中的A1进行判断,确定不等式是否成立。
其中,不等式成立的情况下,即,当前层号落入目标范围,跳出FOR语句的循环,执行步骤S204;在不等式不成立的情况下,即,当前层号没有落入目标范围,执行步骤S202,使用FOR语句再从层号数组中提取一个层号,直到确定出一个当前层号落入目标范围为止,或者,直到对层号数组的所有数组元素进行了步骤S203的判断为止。
步骤S204,将当前层号确定为第二目标层。
由于请求升降运输机构取货时,立体库不一定所有层都有货箱存在,因而,步骤S103中,可能对层号数组的所有数组元素进行了步骤S203的判断,但也没有一个层号落入目标范围,即,执行步骤S202,直到对层号数组的所有数组元素进行了步骤S203的判断,也没有判断出一个层号落入目标范围。针对此情况,参照图3,物品运输方法可以还包括:
步骤S301,获取扩展层数。
步骤S302,将目标范围从第一目标层一侧或待机层一侧扩展扩展层数,得到扩展后的目标范围。
需要说明的,扩展后的目标范围是对目标范围扩展扩展层数得到的,在目标范围不包括第一目标层层号的情况下,扩展后的目标范围也不包括第一目标层层号。
对于上述扩展后的目标范围,可以参照下面公式:
若F[0]<f0,则F[0]<A2≤f0+G;或者,F[0]-G<A2≤f0,A2≠F[0]。
若F[0]>f0,则f0-G≤A2<F[0];或者,f0≤A2<F[0]+G,A2≠F[0]。
其中,f0表示待机层层号,F[0]表示第一目标层层号,G表示扩展层数,A2表示扩展后的目标范围内任一层号。
步骤S303,基于层号数组的数组次序,依次从层号数组中提取出当前层号。
步骤S304,判断步骤S303提取出的当前层号是否落入扩展后的目标范围,其中,在当前层号落入扩展后的目标范围的情况下,执行步骤S305;在当前层号没有落入扩展后的目标范围的情况下,返回执行步骤S303,直到确定出一个当前层号落入扩展后的目标范围为止,或者,直到对层号数组的所有数组元素进行了步骤S304的判断为止。
步骤S305,将当前层号确定为第二目标层。
本发明实施例通过扩展层数将目标范围进行了扩展,使得升降运输机构从待机层附近层或第一目标层附近层提取第二货箱,从而,在目标范围无法确定出第二目标层的情况下,较大程度地缩减升降运输机构的总行程,有利于提高升降运输机构的出库效率。
上述扩展层数G可以设置为不大于目标数值一半的最大整数,且目标数值为第一目标层层号和待机层层号之间差的绝对值,这样对目标范围扩展后,相对于第一目标层和待机层之间的行程,允许的升降运输机构总行程是增加了一倍,即,在目标范围没有确定第二目标层的情况下,将升降运输机构的总行程增加一倍来确定第二目标层。
由于请求升降运输机构取货时,立体库各层货箱分布情况多样,一些情况下,上述两个可选实施例仍然无法确定出第二目标层,即,上述步骤S303直到对层号数组的所有数组元素进行了步骤S304的判断为止。此情况下,物品运输方法还可以包括:将层号数组中的第二位层号确定为第二目标层,作为第二目标层的一种无条件确定方案,保证第二目标层被确定一个层号。
上述物品运输方法优化了升降运输机构提取货箱时的选层功能,使得升降运输机构行走最短的距离输送货箱,并且在提升出库时间效率的同时,通过在层号数组中依次提取层号保证了出库货箱的先到先出。在第二目标层被确定后,则升降运输机构将一次所取的两个货箱依次从第一目标层和第二目标层取上,并送至传输线。
在第一目标层和第二目标层的货箱被升降运输机构取走后,层号数组中则不再包括这两层的层号,基于此,在可选的实施例中,物品运输方法,还包括:
将第一目标层和第二目标层的层号从层号数组中剔除,得到具有堆栈空缺的层号数组;
通过顺次向前移动数组元素,将层号数组的堆栈空缺补全。
以上述层号数组F为例,在提取出第一目标层F[0]和第二目标层F[3]后,形式如下:
数组 |
F[0] |
F[1] |
F[2] |
F[3] |
F[4] |
F[5] |
F[6] |
F[7] |
F[8] |
F[9] |
F[10] |
F[11] |
F[12] |
F[13] |
F[14] |
层号 |
|
1 |
2 |
|
3 |
9 |
6 |
4 |
5 |
10 |
7 |
14 |
12 |
13 |
8 |
根据本发明实施例提供的方法,将层号数组的堆栈空缺F[0]和F[3]补全后,则有如下形式:
数组 |
F[0] |
F[1] |
F[2] |
F[3] |
F[4] |
F[5] |
F[6] |
F[7] |
F[8] |
F[9] |
F[10] |
F[11] |
F[12] |
F[13] |
F[14] |
层号 |
1 |
2 |
3 |
9 |
6 |
4 |
5 |
10 |
7 |
14 |
12 |
13 |
8 |
|
|
鉴于每层出库位只有一个货箱,若有货箱填补,则先填补这两层的空位,在层号数组中体现为层号11和层号15排在数组的最后两位,层号11和层号15具体排列方法,由货箱到达11层和15层出库位的先后顺序决定,其中,如果11层出库位先到达货箱,则数组F的第14个元素F[13]为11,数组F的第15个元素F[14]为15;反之数组F的第14个元素和第15个元素替换。
上述对数组F顺次向前移动数组元素,可以分两次移动完成,包括:
第一步,先在第一目标层F[0]的层号15剔除后,将后序层号向前移动。以数组F为例,该步后得到数组F',如下:
数组 |
F[0] |
F[1] |
F[2] |
F[3] |
F[4] |
F[5] |
F[6] |
F[7] |
F[8] |
F[9] |
F[10] |
F[11] |
F[12] |
F[13] |
F[14] |
层号 |
1 |
2 |
11 |
3 |
9 |
6 |
4 |
5 |
10 |
7 |
14 |
12 |
13 |
8 |
|
第二步,再在第二目标层F[3]的层号11剔除后,将后序层号向前移动。以数组F'为例,该步后得到数组即为:
数组 |
F[0] |
F[1] |
F[2] |
F[3] |
F[4] |
F[5] |
F[6] |
F[7] |
F[8] |
F[9] |
F[10] |
F[11] |
F[12] |
F[13] |
F[14] |
层号 |
1 |
2 |
3 |
9 |
6 |
4 |
5 |
10 |
7 |
14 |
12 |
13 |
8 |
|
|
本发明实施例,将层号数组的堆栈空缺补全,利于层号数组再次使用时的快速建立,简化建立步骤,提高处理速率。
图4所示是本发明实施例的物品运输系统的结构框图。参照图4,物品运输系统包括:
获取模块100,用于获取层号数组和待机层,其中,层号数组为根据物品到达出库位的先后顺序,对层号建立的数组;
第一确定模块200,用于将层号数组中的第一位层号确定为第一目标层,以便从第一目标层提取第一个物品;
第二确定模块300,用于在层号数组中,将最先落入目标范围的一个层号确定为第二目标层,以便从第二目标层提取第二个物品,其中,目标范围为待机层到第一目标层所表示的范围。
本发明实施例提供的物品运输系统,第二确定模块300将最先落入目标范围的一个层号确定为第二目标层,其中,目标范围为待机层到第一目标层所表示的范围,因而,升降运输机构提取第一个货箱后,在向待机层返回的途中即可提取第二个物品,无需为了提取第二个物品增加行程路线,从而大大缩减了升降运输机构一次运输两个物品的总行程,提高了升降运输机构出库效率,即,本发明通过对升降运输机构所取第二个物品的来源层进行决策,解决了现有技术中物品运输效率较低的技术问题。
在可选的实施例中,第二确定模块用于:
通过待机层和第一目标层,确定目标范围;
基于层号数组的数组次序,依次判断层号数组的层号是否落入目标范围;
在判断的当前层号落入目标范围的情况下,将当前层号确定为第二目标层。
在可选的实施例中,第二确定模块还用于:
在层号数组中没有一个层号落入目标范围的情况下,获取扩展层数;
将目标范围从第一目标层一侧或待机层一侧扩展扩展层数,得到扩展后的目标范围;
基于层号数组的数组次序,依次判断层号数组的层号是否落入扩展后的目标范围;
在判断的当前层号落入扩展后的目标范围的情况下,将当前层号确定为第二目标层。
在可选的实施例中,扩展层数为不大于目标数值一半的最大整数,且目标数值为第一目标层层号和待机层层号之间差的绝对值。
在可选的实施例中,第二确定模块还用于:
在层号数组中没有一个层号落入扩展后的目标范围的情况下,将层号数组中的第二位层号确定为第二目标层。
在可选的实施例中,物品运输系统还包括:
剔除模块,用于将第一目标层和第二目标层的层号从层号数组中剔除,得到具有堆栈空缺的层号数组;
补缺模块,用于通过顺次向前移动数组元素,将层号数组的堆栈空缺补全。
本发明一实施例的物品运输装置,包括:
存储器,用于存储计算机指令;
处理器,耦合到存储器,处理器被配置为基于存储器存储的计算机指令执行上述的物品运输方法。
图5示出的设备仅仅是物品运输装置的一个示例,不应对本发明实施例的功能和使用范围构成任何限制。参考图5,该物品运输装置包括通过总线连接的处理器501、存储器502和输入输出设备503。存储器502包括只读存储器(ROM)和随机访问存储器(RAM),存储器502内存储有执行系统功能所需的各种计算机指令和数据,处理器501从存储器502中读取各种计算机指令以执行各种适当的动作和处理。输入输出设备503包括键盘、鼠标等的输入部分;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分;包括硬盘等的存储部分;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分。存储器502还存储有以下的计算机指令以完成本发明实施例的物品运输方法规定的操作:获取层号数组和待机层,其中,层号数组为根据物品到达存储层的先后顺序,对层号建立的数组;将层号数组中的第一位层号确定为第一目标层,以便从第一目标层提取第一个物品;在层号数组中,将最先落入目标范围的一个层号确定为第二目标层,以便从第二目标层提取第二个物品,其中,目标范围为待机层到第一目标层所表示的范围。
相应地,本发明实施例提供一种计算机可读存储介质,该计算机可读存储介质存储有计算机指令,所述计算机指令被执行时实现上述物品运输方法所规定的操作。
附图中的流程图、框图图示了本发明实施例的系统、方法、装置的可能的体系框架、功能和操作,流程图和框图上的方框可以代表一个模块、程序段或仅仅是一段代码,所述模块、程序段和代码都是用来实现规定逻辑功能的可执行指令。也应当注意,所述实现规定逻辑功能的可执行指令可以重新组合,从而生成新的模块和程序段。因此附图的方框以及方框顺序只是用来更好的图示实施例的过程和步骤,而不应以此作为对发明本身的限制。
系统的各个模块或单元可以通过硬件、固件或软件实现。软件例如包括采用JAVA、C/C++/C#、SQL等各种编程语言形成的编码程序。虽然在方法以及方法图例中给出本发明实施例的步骤以及步骤的顺序,但是所述步骤实现规定的逻辑功能的可执行指令可以重新组合,从而生成新的步骤。所述步骤的顺序也不应该仅仅局限于所述方法以及方法图例中的步骤顺序,可以根据功能的需要随时进行调整。例如将其中的某些步骤并行或按照相反顺序执行。
根据本发明的系统和方法可以部署在单个或多个服务器上。例如,可以将不同的模块分别部署在不同的服务器上,形成专用服务器。或者,可以在多个服务器上分布式部署相同的功能单元、模块或系统,以减轻负载压力。所述服务器包括但不限于在同一个局域网以及通过Internet连接的多个PC机、PC服务器、刀片机、超级计算机等。
以上所述仅为本发明的优选实施例,并不用于限制本发明,对于本领域技术人员而言,本发明可以有各种改动和变化。凡在本发明的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。