具体实施方式
为了实现本发明的目的、技术方案和优点,下面结合附图和具体实施例对本发明进行详细描述。
本发明将物流配送中心物流系统根据功能等因素进行分解,形成细化的作业流程,然后根据各个流程的目的、功能以及它们之间相互的关系,将相似功能的模块进行合并,所形成的各分流程就成为了具有特定功能的子模块,在运作上具有相对独立性,通过标准化运作规则进行无缝整合以构建整体物流流程。
参见图2所示,图2为本发明物流配送中心分拣线的仿真方法示意图。本发明基于物流仿真系统中基本功能要素控件,将为分拣线上常用的、在分拣线设计上需求差异较小的开箱补货设备、分拣机、以及包装装箱设备中的任意一设备分别建立模型;作为较佳的一种实施方式,可为开箱补货设备、分拣机、以及包装装箱设备都分别建立模型;
针对所建立的模型,将其分别封装为模块化对象,并存储于物流仿真系统中,以方便在建立分拣线整体的模型时直接调用;考虑到同种类型设备之间的差异,在进行模块化封装时预留有可进行参数设置的接口,各设备接口参数与其设备功能属性相匹配;
基于物流仿真系统中仿真要素控件,分别为模块化对象创建与其功能属性相匹配的仿真程序,使得所述模块化对象的仿真程序运行时模拟输出该模块化对象的工作状况;
根据待仿真分拣线的设计需求,调用上述存储于物流仿真系统中所需的模块化对象,将所调用模块化对象结合输送线建立整体模型,并基于物流仿真系统中仿真要素控件,按照分拣顺序为该整体模型建立整体模型仿真程序,其中,所述整体模型仿真程序将所述模块化对象的仿真程序作为模块化对象调用。
运行仿真程序;当仿真的结果不正确时,则可通过修改各模块化对象的接口参数、或者调整除模块化对象以外的模型,修正仿真程序。
下面以面向烟草物流配送中心分拣线的仿真为例来进行说明。
通过对大量烟草配送中心的实际作业流程进行分析,对配送中心分拣线模型的模块化划分如下图3所示,其包括了:开箱补货模块、通道式分拣机、卧式分拣机、立式分拣机、包装装箱模块,其中,通道式分拣机、卧式分拣机、立式分拣机可根据分拣线的设计要求进行选择、组合。所述模块以及分拣机的模型可基于物流仿真系统所提供的基本功能要素进行创建,然后对创建后的模型进行封装,并预留标准化接口。例如,开箱补货模块预留的标准化接口包括:补货时间、每箱件烟包含条烟数量;分拣机预留的标准化接口包括:打烟速度、烟仓数量、烟仓容量;包装装箱模块预留的标准化接口包括:包装时间、每包最大条烟数量。
在完成模型的搭建后,可基于物流仿真系统所提供的仿真要素设计仿真程序,使得运行上述模型模块对应的仿真程序时上述模块和分拣机完成相应的仿真功能。当需要对配送中心进行仿真分析时,使用这些具有标准化接口的模块进行模型拼接,进而高效完成整体分拣线模型的搭建。
以卧式分拣机为例,说明其基于物流仿真系统所提供的基本功能要素进行创建过程。如图4所示,基于物流仿真系统所提供的基本功能要素:缓存(buffer)、分流对象(flowcontrol)以及烟仓,按照图4中所示的模型进行搭建,将搭建后的模型封装为卧式分拣机对象,并以图例的方式显示(如图5中左侧的图例),以方便使用。在该模块化对象中,将打烟速度、分拣机所包含的烟仓数量、各烟仓容量、名称预留为标准化接口,以方便进行修改和定义。例如,如图5所示,提供一用户对象框供用户设置各烟仓名称。由于将基本功能要素所形成的模型封装为对象,通过对该对象的应用、操作能够实现对象属性的继承、复制,相对于现有的直接逐一地使用物流仿真系统中提供的基本功能要素控件进行模型的搭建,大大提高了建模的效率,减少了工作量。
同时,基于物流仿真系统所提供的仿真要素控件:程序方法(method)、烟仓对照表,进行仿真程序的设计,使得卧式分拣机在运行仿真程序时完成如下功能:将来自目的烟仓的条烟移动到输送线对应的虚拟托盘中。所述仿真程序的流程图如图6所示,说明如下:
当条烟到达时,读取条烟上的品规属性,根据烟仓对照表中品规与目的烟仓的对应关系,查询得到条烟所对应的目的烟仓,将条烟送往目的烟仓对应的入口处:
条烟进入目的烟仓;
当目的烟仓到达出烟时刻时,目的烟仓中最下面一条烟移动到输送线的虚拟托盘中,目的烟仓中其他条烟依次向下移动一个位置,从而仿真实现了分拣功能。
尽管以上仅给出了卧式分拣机的模型创建方法以及其仿真程序设计,对于通道式分拣机以及立式分拣机创建的方法相同,不同之处仅在于具体参数及控制程序的出烟策略。例如,卧式分拣机烟仓容量为75,立式分拣机烟仓容量为30,通道机烟仓容量为200;卧式分拣机和立式分拣机的出烟策略都是一次出1条烟,通道式分拣机的出烟策略是一次出1~5条烟。
类似于卧式分拣机对象的创建,分拣线上开箱补货模块、包装装箱模块的创建也是如此。以下对封装后的开箱补货模块、包装装箱模块仿真程序的功能分别进行描述。
如图7所示为开箱补货模块仿真程序的流程图。当初始件烟到达时,生成若干个(通常,1件烟中有50条条烟)新的件烟,并赋予与初始件烟相同的属性,例如,品规、目的烟仓等,以实现仿真开箱“1件变若干条”的功能;将上述件烟的类型属性修改为条烟,以使得后续以条烟为单位进行分拣;接着,根据读取的条烟属性,判断条烟所对应的目的烟仓,将条烟送往其目的烟仓的入口处。通过为开箱补货模块仿真程序,使得开箱补货模块在运行仿真程序时完成如下功能:将输入的件烟开箱变为条烟后,输送到对应的目的烟仓中,从而实现了补货的功能。
如图8所示为包装装箱模块仿真程序的流程图。当对应某一订单的条烟到达时,从订单信息表中获得该订单最终待包装的条烟数量,根据这个条烟数量计算该订单最后应被包装的数量,同时开始计数,以25条/包为例,将计数不能被25整除的条烟对应的属性删除,将计数能被25整除的条烟移入包装机,经过一定包装时间后将能被25整除的条烟对应的属性由条烟改为包烟,包烟离开包装机,直到包装最后一个包开始,将不能被25整除的剩余条烟对应的属性删除,将最后一条条烟对应的属性由条烟改为包烟后,移入包装机,进过一定时间后完成最后一包烟的包装,包烟离开包装机,实现该执行订单的包装功能。上述订单信息表中记录了分拣线上的每个订单,包括订单号、订单中的条烟品规及数量。通过包装装箱模块仿真程序,使得包装装箱模块在运行仿真程序时完成如下功能:将对应订单的条烟按照预定数量包装为包烟,从而模拟自动裹膜机或者装箱机等条烟包装设备。
根据实际烟草配送中心,分拣线通常还包括基于输送线上的分拣、压单、合单、分流环节。针对上述环节,本发明分别设计了相应的仿真程序,这些仿真程序在搭建好配送中心模型后能够被调用、运行,以直观地仿真分拣线的工作状况。以下分别对分拣、压单、合单、分流仿真程序进行说明。
如图9所示,图9中示出了基于输送线上的分拣仿真流程图。通过该流程,在运行仿真程序时完成如下功能:按照虚拟托盘上的订单信息将分拣机中的条烟移动到输送线的虚拟托盘上。具体流程说明如下:
与实际分拣不同,输送线的分拣入口处生成虚拟托盘,并根据订单信息标记虚拟托盘应装载条烟的目的烟仓名称,每个虚拟托盘大小与实际系统相同,即,虚拟托盘的长度为350mm,宽度为输送线的宽度,例如,当输送线为皮带时,则宽度为皮带的宽度;
每个输送线对应的烟仓出烟口处都设有传感器,当虚拟托盘经过输送线上的传感器时,则判断虚拟托盘上标记的目的烟仓名称是否为该传感器对应的烟仓;
如果是对应烟仓,则将该烟仓中的一条烟移动到这个虚拟托盘上;如果此时对应烟仓中没有条烟,则停止输送线,直到开箱补货模块为该烟仓补货后,将对应条烟移动到虚拟托盘上后,再启动输送线;
如果不是对应烟仓,虚拟托盘继续移动,直到触发与目的烟仓名称相应的烟仓传感器为止。
如图10所示,图10中示出了基于输送线上的压单仿真流程图。通过该流程,在运行仿真程序时完成如下功能:将输送线上分离的多条条烟压缩在一起,把属于同一订单的条烟之间的空隙压缩掉。为更好地说明压单的工作原理,以下结合图11中所示的压单控制过程的示意图说明。
在实际的应用中,压单是按照时间来控制压单处停放器的开启,在仿真模型中压单的实现也是通过时间来控制压单处停放器的开启。如图中11所示,当订单中的最后一条条烟(图中主线皮带上有阴影小矩形块)从分拣机的烟仓出口处中打出的t1时刻,启动计时,经历时间ΔT后到t3时刻,如果此时输送线输送方向的前方空闲,即表明前方输送线上无条烟,则开启在输送线右侧端头的停放器(图11中未示出),如果此时输送线输送方向的前方仍然被上一个订单占用,则会等到所述上一个订单离开输送线后再开启停放器。当该订单的最后一条条烟经过停放器时,则关闭停放器,(前面打开了停放器,何时关闭?)这样系统就实现压单功能。其中ΔT的计算公式如下:
ΔT=t3-t1=(L1-L3)/v
其中:
L1:订单中最后一条烟出烟仓时到停放器的距离;
L3:压单后最后一条烟到停放器的距离;
L3=0.9n (n为订单中条烟数量)
v:为输送线速度;
在实际系统中,由于各订单最后一条烟随着烟仓的不同而使得其的出烟位置不固定,从而造成L1的大小不固定。为简化计算,本发明在输送线输送方向上最前端的烟仓的出烟位置处,如图11中所示添加一触发器。当订单中的最后一条卷烟到达触发器位置的t2时刻,启动计时,经历时间ΔT′后到t3时刻,如果此时输送线输送方向的前方空闲,即表明前方输送线上无条烟,则开启在输送线右侧端头的停放器(图11中未示出),如果此时输送线输送方向的前方仍然被上一个订单占用,则会等到所述上一个订单离开输送线后再开启停放器。其中ΔT′的计算公式如下:
ΔT′=t3-t2=(L2-L3)/v
其中:
L2:订单中最后一条烟到达触发器时到停放器的距离;
这样,在同一输送线上,L2为一个固定长度,简化了计算和控制难度的同时,实现了压单功能。
具体流程说明如下:
当订单中的最后一条卷烟到达触发器位置,记录当前的时刻t2;
经历ΔT′时间后,判断输送线输送方向的前方缓存段是否为空,如果是,则打开停放器,否则暂停输送线,并等待,直至输送线输送方向的前方缓存段为空;
当该订单的最后一条条烟经过停放器时,则关闭停放器,完成压单。
如图12所示,图12中示出了基于输送线上的合单仿真流程图。通过该流程,在运行仿真程序时完成如下功能:将分散在不同输送子线上、属于同一订单的条烟合并在一起。下面以合单两条输送子线上的订单为例进行说明,具体流程说明如下:
当订单条烟到达合单位置时,使用两个全局变量分别记录要进行合单操作的两条输送子线上的订单号;
比较这两个全局变量,即,比较这两个订单号,对于较小的订单号的子线条烟首先放行,即,打开较小的订单号条烟所在的输送子线前端的停放器;
当两条输送子线上订单号相同时,则进一步对比两条输送子线上订单条烟哪个先到达缓存段出口,就优先放行哪条输送子线上的订单条烟,先放行的输送子线上的订单条烟走完后立刻放行另一条输送子线上的订单条烟,从而实现合单功能。
由于配送中心分拣线包装机效率的限制,通常会配置多个包装机;并且,条烟按照订单合单后,需要进入打码段,经由打码段后再进入包装机,由于打码段不允许条烟停留,从而条烟进入打码段之前要先判断打码后去往的目的包装机,以及包装机前的缓存区是否有足够的空位存放该订单的所有条烟,如图13所示,图13中示出了基于输送线上的分流仿真流程图。通过该流程,在运行仿真程序时完成如下功能:将条烟以订单为单位基本均匀地分配到多个包装机上。以两台包装机为例,具体流程说明如下:
订单条烟进入打码段前,首先计算两台包装机前缓存区上的空位能够存放的条烟数目,然后与当前订单信息中的条烟数目进行比较;
如果第一包装机前的缓存区空位可以存放下当前订单,则放行当前订单条烟,并标记该订单条烟经过打码后的目的包装机为第一包装机;如果第二包装机前的缓存区空位可以存放下当前订单,则放行当前订单条烟,并标记该订单条烟经过打码后的目的包装机为第二包装机;
如果两台包装机前的缓存区空位都可以存放下当前订单条烟,则放行当前订单条烟,并标记该订单条烟经过打码后的目的包装机为默认包装机;
如果两台包装机前的缓存区空位都无法存放下当前订单条烟,则不放行当前订单条烟,进行等待,直到任一台包装机前的缓存区空位能够存放下当前订单条烟后,再放行当前订单条烟,并标记该订单条烟经过打码后的目的包装机为所述包装机,从而实现打码段前的分流功能。
以下以一基本的分拣线为例,说明应用本发明后仿真分拣线的工作过程。如图14所示,烟草配送中心分拣线包括了开箱补货模块、卧式分拣机、立式分拣机、包装装箱模块(图中未显示),以及由三条子线构成的输送线。其中,输送线为皮带传送,在皮带的右侧端头都有停放器(图中未显示),皮带上的线条表示传感器;开箱补货模块、卧式分拣机、立式分拣机、包装装箱模块均以封装后的标准模块直接创建;由于不同分拣线的输送线差异较大,通常不对输送线进行模块化的设计。在搭建好整体的分拣线后,当分拣线对应的仿真程序运行时,便可直观地反映出香烟从供货到按照订单进行包装的分拣过程:来自外部的件烟经过开箱补货设备后,变为分立的条烟,按照品规送到目的烟仓中;卧式分拣机和立式分拣机将来自目的烟仓的条烟按照虚拟托盘上的信息移动到相应的虚拟托盘中;通过子线皮带的传送,虚拟托盘中条烟按照皮带的输送方向移动;当到达压单位置时,根据订单信息将同一订单条烟之间的空隙压缩掉;当到达合单位置时,根据订单信息将分散在3个子线上同一订单的条烟合并在一起;当条烟达到打码段位置时,将以订单条烟为单位进行分流;最后,包装机将订单中的所有条烟包装后输出。
本申请通过对现有的仿真系统进行二次开发,将分拣线中常用的开箱补货、各类分拣机、包装装箱进行模块化设计,使得计算机在处理上述模块化的对象时,将其以整体模块为基本处理对象,相对于现有的仿真系统,从计算机底层看,在运行时更易于调用,所占用计算机内存更少,节省了计算机运行时所耗费的硬件资源,并且,使得分拣线的建模能够有效的减少重复劳动,加快建模速度,提高建模效率,从而进一步地规避物流配送中心系统规划设计过程中存在的风险,规避系统实施过程中出现问题,避免由此影响工程进度和工程质量、增加施工成本、降低工程施工效率。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。