本发明涉及产品码垛技术领域,特别是多种产品混合码垛的方法及系统。
背景技术:
机器人自动化系统广泛应用于3c(计算机类、通信类和消费类电子产品三者的统称)和物流行业的抓取、分拣、码垛等作业中,但当前大多数企业将多种产品码放在一个或多个托盘上时,往往是依靠人工进行码垛,产品码放的好坏完全取决于工人的经验和素质,而少数企业用上了机器人实现自动码垛,但是不能将相同的产品码放在一起且码放次序比较乱,不便于后期的拆垛。
技术实现要素:
针对上述缺陷,本发明的目的在于提出多种产品混合码垛的方法及系统,以解决现有多种产品混合码垛所存在的技术问题。
为达此目的,本发明采用以下技术方案:多种产品混合码垛的方法,包括如下步骤:
步骤a:设定托盘信息和码垛约束;
步骤b:设定各种产品的尺寸信息和码垛数量,并对同种产品归类为一个订单;
步骤c:从未码垛计算的订单中挑选出一个订单进行码垛计算,将订单中的产品有序组合地放置在码垛方案中各托盘的可码垛空间;
步骤d:判断所有的订单是否有未码垛计算的订单;若是,则保存当前订单的码垛方案,重复步骤c;若否,则生成最终的码垛方案。
进一步,所述步骤c中,码垛计算包括以下步骤:
步骤c1:将订单中所有的产品在长度和宽度进行组合生成多个产品组合,判断各个产品组合的尺寸是否不超出托盘的尺寸且满足码垛约束;若是,则将该产品组合存放至产品组合集合中;若否,则舍弃该产品组合;
步骤c2:根据托盘的长度、宽度和限高生成初始的码垛空间,并将初始的码垛空间存放至空间集合中;
步骤c3:判断当前空间集合中所有的空间单元能否继续码垛该订单的剩余产品;
若能,则进行下一步码垛计算;
若否,则完成当前订单在当前托盘的码垛计算,将当前托盘的剁形加入到码垛方案集合中,则递归到步骤c2;
步骤c4:从当前空间集合中的所有空间单元选出一个空间单元,在产品组合集中找出最合适的产品组合放置在选出的空间单元中;
步骤c5:在选出的空间单元分割出剩余的空间单元,将剩余的空间单元存放至空间集合中,并在空间集合中删除选出的空间单元;
步骤c6:判断当前订单是否有未码垛的剩余产品,若是,则在当前订单中移除已码垛完成的产品,并从产品组合集合中删除不满足数量要求的产品组合,递归到步骤c3;若否,则完成当前订单的码垛计算。
进一步,所述步骤c1中,产品组合包括以下步骤:
步骤c11:确定托盘的长度l和宽度w;确定产品的码垛数量n以及单个产品的长度l和宽度w;
步骤c12:计算产品在长度方向可以放下的最大数量lmax,计算产品在宽度方向可以放下的最大数量wmax,并根据lmax获取集合{1,2,…,lmax},根据wmax获取集合{1,2,…,wmax};
步骤c13:从集合{1,2,…,lmax}和集合{1,2,…,wmax}中分别取一个数出来,判断取出的两个数相乘是否大于码垛数量n,若是,则不生成产品组合;若否,则生成产品组合;遍历集合{1,2,…,lmax}和集合{1,2,…,wmax}中的所有数,生成当前订单所有的产品组合,并将所有的产品组合存放至产品组合集合中;
步骤c14:判断产品的长度和宽度是否不相等且未互换过,若是,则将产品的长度和宽度互换,重复步骤c;若否,则结束产品组合。
进一步,所述步骤c4包括以下步骤:
步骤c41:对空间集合中的所有空间单元进行排序,若y轴不相同,则按照y轴升序排序,若y轴相同,则按照x轴升序排序,若y轴和x轴相同,则按照z轴升序排序;其中,x轴、y轴、z轴分别为初始空间的o-xyz空间直角坐标系的数轴,y轴表征高度,x轴表征宽度,z轴表征长度;
步骤c42:判断选出的空间单元是否为初始空间,若是,则从产品组合集合中挑选出面积最大的产品组合作为最合适的产品组合,并放置在选出的空间单元,结束步骤c4;
若否,则判断是否能在产品组合集合中选出能放置到选出的空间单元且对应面积最大的产品组合作为最合适的产品组合,若是,则挑选出最合适的产品组合放置在选出的空间单元,结束步骤c4;若否,则将当前的空间单元标记为当前订单产品的废弃空间,并进行下一步计算;步骤c43:从空间集合中选出下一个空间单元,重复步骤c42。
进一步,所述步骤c5中,在选出的空间单元分割出剩余的空间单元包括以下步骤:
步骤c51:提取产品组合顶部的剩余空间,得到一个剩余的空间单元;
步骤c52:分割产品组合四周的剩余空间,得到一个或多个剩余的空间单元。
进一步,所述步骤c52中,分割产品组合四周的剩余空间的方法是:判断产品组合的长度是否小于产品组合的宽度,若是,则以平行于坐标面yoz的平面进行分割,若否,则以平行于坐标面yox的平面进行分割。
进一步,所述步骤c3中,判断当前空间集合中所有的空间单元能否继续码垛该订单的剩余产品的方法:遍历当前空间集合中所有的空间单元,判断所有的空间单元是否全都不能放置当前订单中单个产品,若是,则判定不可继续码垛,若否,则判定可继续码垛。
优选地,还包括步骤e:根据码垛方案生成码垛操作步骤和/或机器码垛指令。
本发明还公开了多种产品混合码垛的系统,包括数据输入模块、计算模块和存储模块;所述数据输入模块用于设定托盘信息、码垛约束以及用于设定各种产品的尺寸信息和码垛数量;所述计算模块用于进行码垛计算;所述存储模块用于存储码垛计算得到的所有码垛方案。
优选地,还包括方案输出模块,所述方案输出模块用于根据最后计算得到的码垛方案生成码垛操作步骤或生成机器码垛指令。
在本发明申请中,通过依次对各订单中的产品进行码垛计算,将订单中的产品有序组合地放置在码垛方案中各托盘的可码垛空间,得出不同产品在一个或多个托盘上的码垛方案,且码垛方案中各个托盘上相同产品码堆码在一起,解决企业要将多种产品码放在多个托盘上且相同的产品必须码放在一起的难题,提高码垛效率,方便各个托盘进行拆垛,且高效利用托盘上的码垛空间,可广泛应用于食品、饮料、家电、电商等行业。
附图说明
图1是本发明的一个实施例的流程示意图;
图2是本发明的一个实施例中码垛计算的流程示意图;
图3是本发明的另一个实施例的流程示意图。
具体实施方式
下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能理解为对本发明的限制。
参照图1-3所示,本发明公开了多种产品混合码垛的方法,包括如下步骤:
步骤a:设定托盘信息和码垛约束;其中,托盘信息包括托盘的长度、宽度、高度、重量、允许超出的长度、允许超出的宽度;码垛约束包括托盘限重、托盘限高、下层承重比、产品间距、顶层靠边支撑比例。
步骤b:设定各种产品的尺寸信息和码垛数量,并对同种产品归类为一个订单;其中,产品的尺寸信息包括产品的长度、宽度和发高度。
步骤c:从未码垛计算的订单中挑选出一个订单进行码垛计算,将订单中的产品有序组合地放置在码垛方案中各托盘的可码垛空间。
步骤d:判断所有的订单是否有未码垛计算的订单;若是,则保存当前订单的码垛方案,重复步骤c;若否,则生成最终的码垛方案。
在本发明申请中,通过依次对各订单中的产品进行码垛计算,将订单中的产品有序组合地放置在码垛方案中各托盘的可码垛空间,得出不同产品在一个或多个托盘上的码垛方案,且码垛方案中各个托盘上相同产品码堆码在一起,解决企业要将多种产品码放在多个托盘上且相同的产品必须码放在一起的难题,提高码垛效率,方便各个托盘进行拆垛,且高效利用托盘上的码垛空间,可广泛应用于食品、饮料、家电、电商等行业。
值得说明的是,所述步骤c中,码垛计算包括以下步骤:
步骤c1:将订单中所有的产品在长度和宽度进行组合生成多个产品组合,判断各个产品组合的尺寸是否不超出托盘的尺寸且满足码垛约束;若是,则将该产品组合存放至产品组合集合中;若否,则舍弃该产品组合;
步骤c2:根据托盘的长度、宽度和限高生成初始的码垛空间,并将初始的码垛空间存放至空间集合中;
步骤c3:判断当前空间集合中所有的空间单元能否继续码垛该订单的剩余产品;
若能,则进行下一步码垛计算;
若否,则完成当前订单在当前托盘的码垛计算,将当前托盘的剁形加入到码垛方案集合中,则递归到步骤c2;
步骤c4:从当前空间集合中的所有空间单元选出一个空间单元,在产品组合集中找出最合适的产品组合放置在选出的空间单元中;
步骤c5:在选出的空间单元分割出剩余的空间单元,将剩余的空间单元存放至空间集合中,并在空间集合中删除选出的空间单元;
步骤c6:判断当前订单是否有未码垛的剩余产品,若是,则在当前订单中移除已码垛完成的产品,并从产品组合集合中删除不满足数量要求的产品组合,递归到步骤c3;若否,则完成当前订单的码垛计算。
在本实施例中,通过对订单中的产品进行组合,且对空间集合的空间单元进行迭代分割收集,使当前订单产品中的部分产品能组合堆码到当前码垛方案中各个托盘的剩余空间,实现充分利用托盘上的剩余空间,进一步提高码垛效率。
进一步,所述步骤c1中,产品组合包括以下步骤:
步骤c11:确定托盘的长度l和宽度w;确定产品的码垛数量n以及单个产品的长度l和宽度w;
步骤c12:计算产品在长度方向可以放下的最大数量lmax,计算产品在宽度方向可以放下的最大数量wmax,并根据lmax获取集合{1,2,…,lmax},根据wmax获取集合{1,2,…,wmax};具体地,产品在长度方向可以放下的最大数量lmax=min(n,l/l),产品在宽度方向可以放下的最大数量wmax=min(n,w/w)。
步骤c13:从集合{1,2,…,lmax}和集合{1,2,…,wmax}中分别取一个数出来,判断取出的两个数相乘是否大于码垛数量n,若是,则不生成产品组合;若否,则生成产品组合;遍历集合{1,2,…,lmax}和集合{1,2,…,wmax}中的所有数,生成当前订单所有的产品组合,并将所有的产品组合存放至产品组合集合中;
步骤c14:判断产品的长度和宽度是否不相等且未互换过,若是,则将产品的长度和宽度互换,重复步骤c;若否,则结束产品组合。
在产品组合过程中,对产品的长度和宽度进行互换后再一次进行组合,使产品能实现相对于托盘横向或纵向地放置在空间单元,丰富产品组合集合,利于不同大小的空间单元能找到适配的产品组合。
进一步,所述步骤c4包括以下步骤:
步骤c41:对空间集合中的所有空间单元进行排序,若y轴不相同,则按照y轴升序排序,若y轴相同,则按照x轴升序排序,若y轴和x轴相同,则按照z轴升序排序;其中,x轴、y轴、z轴分别为初始空间的o-xyz空间直角坐标系的数轴,y轴表征高度,x轴表征宽度,z轴表征长度;具体地,坐标面xoz为初始空间的底面,o-xyz空间直角坐标系中的原点o落在托盘的一个边角,x轴与托盘的一侧宽边相平行,z轴与托盘的长边相平行。
步骤c42:判断选出的空间单元是否为初始空间,若是,则从产品组合集合中挑选出面积最大的产品组合作为最合适的产品组合,并放置在选出的空间单元,结束步骤c4;
若否,则判断是否能在产品组合集合中选出能放置到选出的空间单元且对应面积最大的产品组合作为最合适的产品组合,若是,则挑选出最合适的产品组合放置在选出的空间单元,结束步骤c4;若否,则将当前的空间单元标记为当前订单产品的废弃空间,并进行下一步计算;具体地,若当前的空间被标记为当前订单产品的废弃空间,当前订单在后续的空间挑选中,不再挑选该空间单元。
步骤c43:从空间集合中选出下一个空间单元,重复步骤c42。
通过遍历空间集合中的所有空间单元,挑选出于其对应的最合适的产品组合,实现从当前空间集合中的所有空间单元选出一个空间单元,在产品组合集中找出最合适的产品组合放置在选出的空间单元中。值得说明的是,以当前空间能放置的且面积最大的产品组合作为最合适的产品组合,避免选出的空间单元放置挑选出的产品组合后,仍能分割出能放置当前订单产品的空间单元,有效减少码垛计算的计算量。
进一步,所述步骤c5中,在选出的空间单元分割出剩余的空间单元包括以下步骤:
步骤c51:提取产品组合顶部的剩余空间,得到一个剩余的空间单元;
步骤c52:分割产品组合四周的剩余空间,得到一个或多个剩余的空间单元。
具体地,通过产品组合的顶部和四周进行分割,实现在选出的空间单元得到产品组合顶部的剩余的空间单元,产品组合四周的剩余的空间单元。
其中,所述步骤c52中,分割产品组合四周的剩余空间的方法是:判断产品组合的长度是否小于产品组合的宽度,若是,则以平行于坐标面yoz的平面进行分割,若否,则以平行于坐标面yox的平面进行分割。具体地,通过判断产品组合的长度是否小于产品组合的宽度,若是,则以平行于坐标面yoz的平面进行分割,若否,则以平行于坐标面yox的平面进行分割。使产品组合周边剩余空间之间的大小差异最小化,即实现减少分割出的空间单元之间的大小差异,提高较小的空间单元能在其它订单中找出最合适的产品组合的概率,以减少空间的浪费。
进一步,所述步骤c3中,判断当前空间集合中所有的空间单元能否继续码垛该订单的剩余产品的方法:遍历当前空间集合中所有的空间单元,判断所有的空间单元是否全都不能放置当前订单中单个产品,若是,则判定不可继续码垛,若否,则判定可继续码垛。具体地,通过判断当前空间集合中的所有空间单元是否全都不能放置当前订单中单个产品,来实现判断当前空间集合中的所有空间单元能否继续码垛,若当前空间集合中的所有空间单元全都不能放置当前订单中单个产品,则判定不可继续码垛,即当前托盘不能再码垛当前订单的产品。若否,则判定可继续码垛,即当前托盘能继续码垛当前订单的产品。
优选地,还包括步骤e:根据码垛方案生成码垛操作步骤和/或机器码垛指令。所有的订单完成码垛计算后得到最后的码垛方案后,根据最后得到的码垛方案生成码垛操作步骤,通过码垛操作步骤实现指导人工进行码垛,同时也可以可以生成机器码垛指令发送给机器人实现机器人自动码垛。
本发明还提供多种产品混合码垛的系统,包括数据输入模块、计算模块和存储模块;所述数据输入模块用于设定托盘信息、码垛约束以及用于设定各种产品的尺寸信息和码垛数量;所述计算模块用于进行码垛计算;所述存储模块用于存储码垛计算得到的所有码垛方案。
在本发明提供的多种产品混合码垛的系统,通过数据输入模块设定托盘信息、码垛约束以及用于设定各种产品的尺寸信息和码垛数量,通过计算模块依次对各订单中的产品进行码垛计算,将订单中的产品有序组合地放置在码垛方案中各托盘的可码垛空间,通过存储模块存储码垛计算得到的所有码垛方案,实现得出不同产品在一个或多个托盘上的码垛方案,且码垛方案中各个托盘上相同产品码堆码在一起,解决企业要将多种产品码放在多个托盘上且相同的产品必须码放在一起的难题,提高码垛效率,方便各个托盘进行拆垛,且高效利用托盘上的码垛空间,可广泛应用于食品、饮料、家电、电商等行业。
优选地,还包括方案输出模块,所述方案输出模块用于根据最后计算得到的码垛方案生成码垛操作步骤或生成机器码垛指令。通过方案输出模块根据所有的订单完成码垛计算后得到最后的码垛方案生成码垛操作步骤,通过码垛操作步骤实现指导人工进行码垛,同时也可以可以生成机器码垛指令发送给机器人实现机器人自动码垛。
以上结合具体实施例描述了本发明的技术原理。这些描述只是为了解释本发明的原理,而不能以任何方式解释为对本发明保护范围的限制。基于此处的解释,本领域的技术人员不需要付出创造性的劳动即可联想到本发明的其它具体实施方式,这些方式都将落入本发明的保护范围之内。
1.多种产品混合码垛的方法,其特征在于,包括如下步骤:
步骤a:设定托盘信息和码垛约束;
步骤b:设定各种产品的尺寸信息和码垛数量,并对同种产品归类为一个订单;
步骤c:从未码垛计算的订单中挑选出一个订单进行码垛计算,将订单中的产品有序组合地放置在码垛方案中各托盘的可码垛空间;
步骤d:判断所有的订单是否有未码垛计算的订单;若是,则保存当前订单的码垛方案,重复步骤c;若否,则生成最终的码垛方案。
2.根据权利要求1所述的多种产品混合码垛的方法,其特征在于,所述步骤c中,码垛计算包括以下步骤:
步骤c1:将订单中所有的产品在长度和宽度进行组合生成多个产品组合,判断各个产品组合的尺寸是否不超出托盘的尺寸且满足码垛约束;若是,则将该产品组合存放至产品组合集合中;若否,则舍弃该产品组合;
步骤c2:根据托盘的长度、宽度和限高生成初始的码垛空间,并将初始的码垛空间存放至空间集合中;
步骤c3:判断当前空间集合中所有的空间单元能否继续码垛该订单的剩余产品;
若能,则进行下一步码垛计算;
若否,则完成当前订单在当前托盘的码垛计算,将当前托盘的剁形加入到码垛方案集合中,则递归到步骤c2;
步骤c4:从当前空间集合中的所有空间单元选出一个空间单元,在产品组合集中找出最合适的产品组合放置在选出的空间单元中;
步骤c5:在选出的空间单元分割出剩余的空间单元,将剩余的空间单元存放至空间集合中,并在空间集合中删除选出的空间单元;
步骤c6:判断当前订单是否有未码垛的剩余产品,若是,则在当前订单中移除已码垛完成的产品,并从产品组合集合中删除不满足数量要求的产品组合,递归到步骤c3;若否,则完成当前订单的码垛计算。
3.根据权利要求2所述的多种产品混合码垛的方法,其特征在于,所述步骤c1中,产品组合包括以下步骤:
步骤c11:确定托盘的长度l和宽度w;确定产品的码垛数量n以及单个产品的长度l和宽度w;
步骤c12:计算产品在长度方向可以放下的最大数量lmax,计算产品在宽度方向可以放下的最大数量wmax,并根据lmax获取集合{1,2,…,lmax},根据wmax获取集合{1,2,…,wmax};
步骤c13:从集合{1,2,…,lmax}和集合{1,2,…,wmax}中分别取一个数出来,判断取出的两个数相乘是否大于码垛数量n,若是,则不生成产品组合;若否,则生成产品组合;遍历集合{1,2,…,lmax}和集合{1,2,…,wmax}中的所有数,生成当前订单所有的产品组合,并将所有的产品组合存放至产品组合集合中;
步骤c14:判断产品的长度和宽度是否不相等且未互换过,若是,则将产品的长度和宽度互换,重复步骤c;若否,则结束产品组合。
4.根据权利要求2所述的多种产品混合码垛的方法,其特征在于,所述步骤c4包括以下步骤:
步骤c41:对空间集合中的所有空间单元进行排序,若y轴不相同,则按照y轴升序排序,若y轴相同,则按照x轴升序排序,若y轴和x轴相同,则按照z轴升序排序;其中,x轴、y轴、z轴分别为初始空间的o-xyz空间直角坐标系的数轴,y轴表征高度,x轴表征宽度,z轴表征长度;
步骤c42:判断选出的空间单元是否为初始空间,若是,则从产品组合集合中挑选出面积最大的产品组合作为最合适的产品组合,并放置在选出的空间单元,结束步骤c4;
若否,则判断是否能在产品组合集合中选出能放置到选出的空间单元且对应面积最大的产品组合作为最合适的产品组合,若是,则挑选出最合适的产品组合放置在选出的空间单元,结束步骤c4;若否,则将当前的空间单元标记为当前订单产品的废弃空间,并进行下一步计算;步骤c43:从空间集合中选出下一个空间单元,重复步骤c42。
5.根据权利要求4所述的多种产品混合码垛的方法,其特征在于,所述步骤c5中,在选出的空间单元分割出剩余的空间单元包括以下步骤:
步骤c51:提取产品组合顶部的剩余空间,得到一个剩余的空间单元;
步骤c52:分割产品组合四周的剩余空间,得到一个或多个剩余的空间单元。
6.根据权利要求5所述的多种产品混合码垛的方法,其特征在于,所述步骤c52中,分割产品组合四周的剩余空间的方法是:判断产品组合的长度是否小于产品组合的宽度,若是,则以平行于坐标面yoz的平面进行分割,若否,则以平行于坐标面yox的平面进行分割。
7.根据权利要求2所述的多种产品混合码垛的方法,其特征在于,所述步骤c3中,判断当前空间集合中所有的空间单元能否继续码垛该订单的剩余产品的方法:遍历当前空间集合中所有的空间单元,判断所有的空间单元是否全都不能放置当前订单中单个产品,若是,则判定不可继续码垛,若否,则判定可继续码垛。
8.根据权利要求1所述的多种产品混合码垛的方法,其特征在于,还包括步骤e:根据码垛方案生成码垛操作步骤和/或机器码垛指令。
9.多种产品混合码垛的系统,应用在权利要求1-8任一项多种产品混合码垛的方法,其特征在于,包括数据输入模块、计算模块和存储模块;
所述数据输入模块用于设定托盘信息、码垛约束以及用于设定各种产品的尺寸信息和码垛数量;
所述计算模块用于进行码垛计算;
所述存储模块用于存储码垛计算得到的所有码垛方案。
10.根据权利要求9所述的多种产品混合码垛的系统,其特征在于,还包括方案输出模块,所述方案输出模块用于根据最后计算得到的码垛方案生成码垛操作步骤或生成机器码垛指令。
技术总结