发帖
 找回密码
 立即注册
搜索
5 0 0

2019年第四期远程培训之库内倒箱

技术交流 158 5 2019-5-10 17:46:41
[align=left]在自动化立体库的仿真项目中,如果要出库的货物外侧有货物阻挡,则需要堆垛机先把阻挡的货物移到别的巷道再进行出库作业。模型布局如图所示:[/align][align=left][/align][align=left] [/align][align=left]建模步骤如下:[/align][align=left]1.     创建一个货架,勾选Floor Storage(平置货架)。该货架作为整个立库的第一层。[/align][align=left]注意:本demo只示意立库为一层时的做法,如果实际应用中涉及到多层可复制该货架修改z轴坐标并在逻辑中加入立库层——即第几个货架的判断。[/align][align=left]2.     由于布局中货架位于堆垛机右侧,而货架默认列从左开始为第一列,故旋转货架Z轴180度,使货物入库从右侧开始放置。[/align][align=left]3.     使用PF产生初始库存,50个item。[/align][align=left]4.     出库item为随机选择[/align][align=left]5.     在PF的出库逻辑线中,如果经过判断要出库的item外侧有其他item阻挡,则堆垛机先去装载需要挪出的物料,load之后逻辑判断该物料需要放置到哪一层(即哪一个巷道),判断逻辑为从第一层开始循环并在爆仓时进行弹窗提醒,若找到能存放的level则把level存在item的level标签上进行记录,如下图:[/align][align=left][/align][align=left]6.     有了上面第五点对于level的判断,我们在货架的放置到列触发器中写如下代码:[/align][align=left]int cellcap = 1;[/align][align=left]int nrofbays = rackgetnrofbays(current);[/align][align=left]if(!objectexists(item.labels["level"]))[/align][align=left]{[/align][align=left]   for (int index= 1; index  <= nrofbays; index ++) {[/align][align=left]           if(rackgetbaycontent(current, index ) < cellcap * rackgetnroflevels(current,index ))[/align][align=left]                    returnindex ;[/align][align=left]   }[/align][align=left]}[/align][align=left]else//倒库[/align][align=left]{[/align][align=left]   int ii =1;[/align][align=left]   while(rackgetcellcontent(current,ii,item.level)>0)[/align][align=left]   {[/align][align=left]           ii++;[/align][align=left]   }[/align][align=left]   return ii;[/align][align=left]}[/align][align=left] [/align][align=left]return 1;[/align][align=left]在货架的放置到层触发器中写如下代码:[/align][align=left]int cellcap = 1;[/align][align=left]int nroflevels = rackgetnroflevels(current,baynumber);[/align][align=left]if(!objectexists(item.labels["level"]))[/align][align=left]{[/align][align=left]   for (int index= 1; index  <= nroflevels ; index ++){[/align][align=left]           if(rackgetcellcontent(current, baynumber, index ) < cellcap)[/align][align=left]                    returnindex ;[/align][align=left]   }[/align][align=left]}[/align][align=left]else//倒库[/align][align=left]{[/align][align=left]   returnitem.level;[/align][align=left]}[/align][align=left] [/align][align=left]return 1;[/align][align=left]注意:货架的这两个触发器的触发顺序是先触发放置到列,再触发放置到层。所以我先把放置到的层的编号在PF中unload之前确定下来,以便在放置到列中可以调用到。[/align]
──── 0人觉得很赞 ────

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
2019-5-10 19:14:51
谢谢徐老师
2019-5-13 09:04:27
谢谢分享
2019-5-23 16:37:30
谢谢徐春琦老师!
2019-5-29 13:49:25
謝謝老師分享
2025-4-21 16:02:09
感谢,太有用了
您需要登录后才可以回帖 立即登录
高级模式
返回
技术交流
热门问答
查看更多
1
厂区生产线布局优化案例!新做的!
厂区生产线布局优化案例!新做的!
2678
224
2
FlexSim2016 中国象棋
FlexSim2016 中国象棋
1708
44
3
Flexsim二次开发之塔吊
Flexsim二次开发之塔吊
1587
45
4
关于Processs Flow 使用的两个案例(AGV Elevator案例/子母穿梭
关于Processs Flow 使用的两个案例(AGV Elevator案例/子母穿梭
1481
34
5
快递分拨中心案例~新手可参考
快递分拨中心案例~新手可参考
1190
62
博主榜
+ 45331
+ 10630
+ 7753
4
+ 6759
5
+ 6323
6
+ 6321
7
+ 5341
8
+ 4710
9
+ 3722
10
+ 3628