立库输送线仿真
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验七立库输送线仿真
一、对象系统
某企业现要建立一座自动化立体仓库。
设计目标是达到每小时60货物进入立库,60货物出立库的速度。
根据已有设备选型,有关参数如下:
(1)输送机速度:16m/min;
(2)货物尺寸:2.5m×1.6m;
(3)立库通道从右往左依次编号为1-6号,货物依次按照6、5、4、3、2、1的顺序循环进入各个巷道。
每个巷道内左进右出。
(4)货物到达速度:1.8min/个×2个入口,即0.9min/个进入系统;
(5)立库通道内堆垛机进出一次各30秒,即一个周期1min;
设计图纸如图所示,其他有关参数可以从图中获取。
图1 系统CAD图纸
图2 某企业自动化立体仓库
图2中显示,该企业共有12条纵向输送线,1条横向输送线。
入库时是沿着纵向运输轨道进入的,而进入立体仓库过程中要选择特定的巷道,所以要转移到横向的运输轨道,这里就涉及到如何变向的问题。
针对以上问题,现在需要通过仿真分析方案能不能够满足设计要求。
在纵向运输轨道和横向运输轨道之间均安装了移载机,其工作原理是当车桥沿纵向运输轨道移动到连接点时,升降机将车桥整体提升一定高度,然后旋转90度,下降到横向运输轨道,完成车桥的变轨。
之后升降机重复上述过程回到原来位置。
每个节点都需要安装一台移载机,以便正常入库。
此方案简单可行,但由于车桥自身长度影响,相邻的两台移载机就会产生干涉,不能同时进行操作,这势必会增加控制难度,降低入库的效率。
移载机具体工作效率为:升起10秒,旋转10秒,下降10秒,每个动作等待3秒,即一次共39秒;极限变化范围:动作5-10秒,等待2-3秒,按最快进行分析:
1.相邻两处的移载机无法同时操作,需要等待。
2.由于货物尺寸2.5×1.6m,因此,旋转半径约1.48m,模型中按1.5m计算。
3.堆垛机空闲时停靠在巷道口。
假设堆垛机完成一次横向伸臂,缩回,即从传送带取一次
货物或放一次货物的时间为4秒。
4.移载机按最快计算,完成一个周期的升降需要5×3+2×3=21秒。
二、建立模型
2.1搭建初步样式
(1)根据CAD设计图纸(图1),使用Transfernode和Conveyor搭建立库的出入整体样式,可以得到如图3所示的simio模型图。
图3 立库出入库路线simio模型图
(2)在使用Conveyor时,应注意方向应根据方案要求的货物出入库实际走向确定。
(3)在横向输送线上,每通道增设两个Transfernode节点,作为通道上的移载示意。
(4)所有模型应注意命名,便于后期操作,避免出错。
(5)在视图右下角,使用Source模拟货物入库,并将其命名为命名为Source A。
在视图左下角,使用Sink模拟货物出库,命名为Sink A。
2.2立库区模型框架布置
(6)根据CAD设计图纸(图1),使用Transfernode和Timepath搭建立库的出内部样式,可以得到如图4所示的simio模型图。
创造一种新的出库实体ModelEntityExit,模拟出库开始。
添加Vehicle控件,以模拟堆垛机。
图4 立库内部路线simio模型图
(7)在使用Timepath时,应注意方向应根据方案要求的货物出入库实际走向确定,由于路线主要是模拟了堆垛机的行走路线,所以应该是双向的。
(8)所有模型应注意命名,便于后期操作,避免出错。
(9)在每个巷道上方,使用Source模拟从货架上出库,并将其从右到左命名为命名为Source 1到Sourse6。
同时,使用Sink模拟货物入库上架,从右到左分别命名为Sink 1到Sink6。
2.3完成模型框架
可以获得整个模型的外部框架,整体结构如图5所示。
图5 立库simio整体框架图
三、模型中所做的的各种假设以及各个参数设置
3.1货物实际行走路线数据设置
根据CAD设计图纸以及系统方案要求的实际数据,输送线具体长度及输送线速度设置Travel Logic,如图6。
Conveyor_TN1E_TN1A的长度(Logical Length)为1.5m,输送线速度为16m/min,输送线输送能力(Traveler Capacity)为1。
在节点属性中依次设置所有的内容。
图6 Conveyor Travel Logic设置
在模型中还有其他的路线要进行这一属性设置,在此仅以Conveyor_TN1E_TN1A为例。
参照这一路线,完成其他路线的属性具体数据设置。
3.2移载机的设置
(1)移栽机的干涉设置
在之前的方案说明中可知,两台临近移载机之间相距仅仅为1.85m。
当移载机载货时,由于货物的自身尺寸以及移载长度,移载半径为1.5m,两台临近移载机之间将发生干涉。
为简化问题,在每台移载机附近1.5m处增设一个Transfernode,即在横向输送线上,每通道增设两个Transfernode节点。
以设置Resource3为例,考虑如图7所示的第2通道和第3通道间的6个Transfernode,其中TN3A和TN2D为两台移载机。
假设当实体从TN2C或TN3E 进入这6个Transfernode组成的范围时,Resouce3的资源即被抓取,当且仅当实体从TN3B 或TN2F离开时才释放Resource3的资源。
通过这种方式,可以保证同一时段内,在该范围仅有一个实体被输送,从而解决TN3A和TN2D之间的干涉。
图7 两台移载机位置示意图
具体参数设置过程:在Conveyor_TN2C_TN2D和Conveyor_TN3I_TN3E添加Reached End 的过程,使用Seize抓取Resource3的资源。
在TN2B和TN3F中添加Exited的过程,使用Release释放Resource3的资源。
在Processes中的设置如图8所示.
图8 资源设置
添加6个通道的Resource,根据六个通道具体状态设置、添加过程,解决移载机的干涉问题。
需要重点考虑各个通道的初始状态,若出现移载回复状态(旋转到可用位置)的情况,将会出现delay装态。
(2)移栽机的控制策略
移载机每工作一个周期最快需21s,可在Definations-Properties中将其设置成一个常量RotateCycleTime,将其设置成Time类型,缺省值为21s,方便之后的模型修改。
由于第1通道与第2通道处的移载机分析最为复杂,移载机TN1A默认方向为竖向,因此当竖向输送线Conveyor_TN1E_TN1A和Conveyor_TN1G_TN1A运送实体进入移载机TN1A时,TN1A需要转向为横向;当实体离开Resource1的控制范围时,TN1A复位成纵向后才允许释放Resource1的资源。
控制过程为:
TN1A_Entered:Delay RotateCycleTime;
TN1B_Exited:Delay RotateCycleTime—Release Resource1。
TN1D的移载机在Model-Definations-States中定义TN1DDirection的布尔型参数,假设其值为真时TN1D移载机的方向为水平方向,设置TN1DDirection的初始值为T。
在TN1C点的Entered过程中的逻辑语句,见图9:
图9 移载延迟的判断和设置
其中Delay的时间为RotateCycleTime,即移载机工作一周期的21s。
同理,在TN1H点也应加以相应的判断,以确保移载机工作时间正确。
在TN1F点,当实体离开资源范围时,移载机的方向应为纵,因此在其释放资源前应先将移载机复位为横向,仍应添加一个Delay语句,时间为RotateCycleTime。
TN2A和TN2D两台移载机之间涉及到的Transfernode有7个,需要逐一添加Seize和Release过程。
默认移载机TN2A方向为横向,观察到从输送线Conveyor_TN1D_TN2A输送的实体无需转向即可沿TN1D—TN2A—TN2B的路线离开Resource2的资源控制范围,而从输送线Conveyor_TN2E_TN2A输送的实体需自到达TN2E节点时就抓取Resource2的资源,并控制移载机TN2A转向成竖向,当到达Conveyor_TN2E_TN2A末端时再次控制移载机TN2A转向成横向。
控制过程为:
Conveyor_TN2I_TN2E_ReachedEnd:Seize Resource2—Delay RotateCycleTime;
Conveyor_TN2E_TN2A_ReachedEnd:Delay RotateCycleTime。
默认移载机TN2D方向为横向,从输送线Conveyor_TN2C_TN2D输送的实体自到达TN2D时需判断是否满足入库条件,当实体需要入库时才需控制移载机TN2D转向成竖向,当实体离开TN2F节点时需将移载机TN2D复位成横向并释放Resource3的资源。
控制过程为:
TN2D_Entered:Decide ModelEntity.EntityType==2(若为真则延迟,若为假则不)。
TN2F_Exited:Delay RotateCycleTime—Release Resource3。
同理,第3、4、5通道也一样。
移载机TN6A方向为横向。
从输送线Conveyor_TN5D_TN6A输送的实体包括ModelEntity.EntityType=6的实体和出库的实体ModelEntityExit,其中实体类型为6的实体需沿TN6A—TN6B的路线离开Resource6的资源控制范围,出库实体可选择沿TN6A—TN6B
的路线输送,也可沿TN6A—ExitTN6G的路线输送。
因此需在实体进入移载机TN6A时判断实体类型,若实体类型为6,则移载机TN6A方向不变,否则按照50%的概率控制移载机转向(如图10所示)。
控制过程为:
TN6A_Entered:Decide ModelEntity.EntityType==6
图10 移载判断和设置
从输送线Conveyor_TN6E_TN6A输送的实体即出库实体ModelEntityExit,可选择沿TN6A—TN6B的路线输送,也可沿TN6A—ExitTN6G的路线输送。
移载机TN6D默认方向为竖向,当实体到达TN6C节点时,需控制移载机TN6D转向为横向,当实体进入移载机TN6D后,需再次控制移载机TN6D转向为竖向。
控制过程为:
Conveyor_TN6B_TN6C_ReachedEnd:Seize Resource7—Delay RotateCycleTime;
TN6D_Entered :Delay RotateCycleTime。
3.3堆垛机出入库的模拟
堆垛机在立库通道内每出入一次的时间为1min,即单次出库或单次入库耗时30s。
因此,在3.2的基础上利用Transfernode和Timepath搭建出入库部分,如上面的图4所示。
根据设计方案,将Source1与出库实体ModelEntityExit相关联,并设置实体创造时间间隔为随机分布,设置如图11所示。
图11 出库Source参数设置
同时,分别将5条Timepath Travel Logic中的Type设置成Bidirectional,其中纵向一段时间即堆垛机单次出库或单次入库耗时设置为30s,如图12。
图12 Timepath(堆垛机行走路线)参数设置
Source中的Output@Source1点,遵循“左进右出”的通道出入库原则,因此设置Entity Destination Type为TN1I点,同理,将TN1J点的Entity Destination Type设置为Input@Sink1点。
出入库的两段路线均需由Vehicle运载,将Ride On Transporter设置为True,选择相应的Vehicle。
具体的参数设置参考图13。
图13 出库节点参数设置
依次设置第1至6通道的出入库模拟,参考上例设置相关参数。
3.4实体分通道出入库的设置
视图右下角有Source A控件,创造入库实体ModelEntityEnter,模拟入库开始。
视图左下角有Sink A控件,模拟出库结束。
1、入库实体ModelEntityEnter的创建
首先添加一个实体ModelEntityEnter,为其添加5个Additional Symbol,并将这6个Active Symbol设置成不同颜色,颜色可由ModelEntity.Picture属性来控制的,如图14所示。
图14 入库实体创建及颜色设置
设置Source A的Entity Type为ModelEntityEnter。
方案中货物到达速度为0.9s/个,因此将Source A的Interarrival Time设置为0.9s。
在Model中定义整型数据EntityCounter,
设置其初始值为6,如图14所示。
图15 SourseA属性设置
在ModelEntity中定义整型数据EntityType,设置其初始值为大于6的数值(如7),以此方便将出库实体ModelEntityExit与入库实体ModelEntityEnter区分开来。
在Source A 的Created Entity过程中的逻辑语句,见图16:
图16 SourseA属性设置(Created Entity)
Assign:ModelEntity.EntityType=ModelEntity.EntityCounter;
ModelEntity.Pciture=ModelEntity.EntityType-1;
Decide:ModelEntity.EntityCounter==1;
若为T,Assign:EntityCounter=6;
若为F,Assign:EntityCounter= EntityCounter-1。
由EntityCounter初始值为6可知,当Source A每创建一个入库实体ModelEntityEnter 时,EntityCounter的值依次从6变至1,依次循环。
EntityType的值与EntityCounter的值相等,也随实体的创建由6至1循环;Picture属性为EntityType-1,由5至0循环变化,从而与ModelEntityEnter实体的6种颜色相关联。
2、入库实体分通道入库
根据方案要求,货物需依次按照6、5、4、3、2、1的顺序循环进入各个巷道,在模型中即直观表现为同一颜色的实体进入同一通道。
在此,以第1通道为例,TN1D为第1通道入库处的移载机,将其Outbound Link Rule设置为By Link Weight,见图17。
图17 入库处移栽机属性设置
设置与TN1D连接的入库输送线Conveyor_EntranceTN1D_TN1F的Selection Weight为ModelEntity.EntityType==1,该语句表示判断类型为1的实体通过该输送线入库,见图18。
同理,设置Conveyor_TN1D_TN2A的Selection Weight为ModelEntity.EntityType==1,该语句表示判断类型不为1的实体通过该输送线。
图18 入库输送线属性设置
同理依次设置其他通道的权重,即可实现实体分类入库。
3.5输送线堵塞的问题
可以发现在运行模型时间较长时,将会出现自第1通道开始输送线发生资源死锁问题。
以第1通道为例,在该通道处增设资源Resource8。
假设在第1通道出库处的Source1创建实体后即抓取Resource8的资源,直至实体离开Conveyor_TN1I_TN1E后才释放。
具体操作步骤为:在Source1的Created Entity中写入Seize过程,以抓取Resource8的资源;在Conveyor_TN1I_TN1E的Exited中写入Release过程,以释放Resource8的资源。
方式和解决移载干涉问题相似。
同理在其他的通道中增设Resource资源,写入相关过程。
Resource有两种状态:被抓取和被释放。
可增加一个Additional Symbol,将2个Active Symbol设置成不同的颜色以区别两种状态,具体方式和实体的颜色设置相似。
3.6实体来源的区别
图19 入库输送线
如图19所示,立库入口处有两个入口通道,可在ModelEntity中定义整型参数EntityEntranceAB,设置值为1时表示实体从右侧入口进入立库,值为2时表示实体从左侧入口进入立库,值为3时表示该实体可以出库。
设置EntityEntranceAB初始值为3。
在Source A的Created Entity过程中写入Assign语句,将EntityEntranceAB赋新值为1;在TNEnteranceB的Entered过程中写入Assign语句,将EntityEntranceAB赋新值为2。
这里的数据与移载是否要回复位置相关。
四、实验结果与分析
1、设置实验运行时间为1小时,点击运行,点击Simio模型中的Results页,可看到实验的结果如图20所示。
图20 实验运行1小时的结果
观察ModelEntity项,ModelEntityEnter的NumberDestroyed的数量为22,说明1小时内入库22个单位货物;ModelEntityExit的NumberDestroyed的数量为51,说明1小时内出库51个单位货物。
本实验的验证目标是是否立库能达到每小时60单位货物入库,60单位货物出库的能力要求。
由实验结果可知,该入库设计方案的出入库能力都没有达到要求,但出库能力可稍带加强之后就可达到要求,入库能力还差的较多。
2、设置实验运行时间为24小时,点击运行,点击Simio模型中的Results页,可看到实验的结果如图21所示。
图21 实验运行24小时的结果
从实验结果可知,平均之后的结果和运行1小时的结果差不多。
所以,此运输系统的能力还不能达到要求,需要改进方案。