登录发现更多内容
首页
资讯
分类
目录
索引
酷站
发帖
用户名
Email
自动登录
找回密码
密码
登录
立即注册
立即登录
立即注册
其他登录
QQ
微信
门户
Portal
论坛
BBS
问AI
提问
搜索
搜索
热搜:
活动
交友
discuz
本版
文章
帖子
用户
帖子
设置
我的收藏
退出
3
0
0
首页
历史版块_18
›
案例十一 传送带分拣至第一个可以下游
返回列表
案例十一 传送带分拣至第一个可以下游
[ 复制链接 ]
Yumaotuo
历史版块_18
3
3
2018-5-17 09:43:19
[i=s] 本帖最后由 Yumaotuo 于 2018-5-17 09:44 编辑 [/i]
[align=left][font=微软雅黑][size=4][color=#ff0000]1、模型描述:[/color][/size][/font][/align][align=left][font=微软雅黑][size=15pt]
[/size][/font][/align][align=left][font=微软雅黑]传送带左右两侧各有两台设备,产品通过传送带分拣至第一个缺货的设备,设备前有一个容量为1的暂存区作待加工品的缓存。若无可用下游,产品在传送带指定决策点的位置等待,直到出现第一个可用的下游。[/font][/align][align=left][font=微软雅黑][size=4][color=#ff0000]
[/color][/size][/font][/align][align=left][font=微软雅黑][size=4][color=#ff0000]2、模型布局:[/color][/size][/font][/align][align=left][color=#ff0000]
[/color][/align][align=left][font=微软雅黑]依下图进行布局,发生器产生产品进入传送带,传送带依次与四个暂存区A连接,形成4个离开衔接点,决策点依次与4个离开衔接点A连接。暂存区与各自的处理器A连接,加工完的产品进入吸收器。[/font][/align][align=left][font=微软雅黑]
[/font][/align][align=left][/align][align=left][size=4][color=#ff0000]
[/color][/size][/align][align=left][font=微软雅黑][size=4][color=#ff0000]3、建模逻辑:[/color][/size][/font][/align][align=left][font=微软雅黑][size=5]
[/size][/font][/align][align=left][font=宋体]我们在暂存区中创建表示暂存区当前容量的标签[/font]Content[font=宋体],产品到达决策点时停止,持续判断暂存区的[/font][font=Calibri]Content[/font][font=宋体]标签值是否有为[/font][font=Calibri]0[/font][font=宋体]的,若有就发送产品。[/font][/align][align=left][font=宋体]
[/font][/align][align=left][font=微软雅黑]决策点到达触发:[/font][/align][align=left][font=微软雅黑]/**停止临时实体并做第一轮的判断发送至下游*/[/font][/align][align=left][font=微软雅黑]Conveyor.DecisionPoint current = param(1);[/font][/align][align=left][font=微软雅黑]Object item = param(2);[/font][/align][align=left][font=微软雅黑]Conveyor conveyor = param(3);[/font][/align][align=left][font=微软雅黑]Conveyor.Item conveyorItem = conveyor.itemData[item];[/font][/align][align=left][font=微软雅黑] //************* PickOption Start *************\\[/font][/align][align=left][font=微软雅黑]conveyorstopitem(item);//停止临时实体[/font][/align][align=left][font=微软雅黑]for(int i=1;i<=current.outObjects.length;i++)//[color=#006400][backcolor=white]对下游端口循环判断[/backcolor][/color][/font][/align][align=left][font=微软雅黑] {[/font][/align][align=left][font=微软雅黑] if(current.outObjects.outObjects[1].Content == 0)//[color=#006400]Content标签等于0即为空载[/color][/font][/align][align=left][font=微软雅黑] {[/font][/align][align=left][font=微软雅黑] conveyorresumeitem(item);//[color=#006400]恢复临时实体[/color][/font][/align][align=left][font=微软雅黑] conveyorsenditem(item, current.outObjects);//[color=#006400]发送临时实体到可用下游[/color][/font][/align][align=left][font=微软雅黑] current.outObjects.outObjects[1].Content=1;//[color=#006400]Content标签值置为1,表示该下游不可用[/color][/font][/align][align=left][font=微软雅黑] item.color = Color.byNumber(i);//[color=#006400]更改相应的颜色[/color][/font][/align][align=left][font=微软雅黑] break;//[color=#006400]跳出循环[/color][/font][/align][align=left][font=微软雅黑] }[/font][/align][align=left][font=微软雅黑] if(i==4)//[color=#006400]如果未发现可有下游[/color][/font][/align][align=left][font=微软雅黑] {[/font][/align][align=left][font=微软雅黑] senddelayedmessage(current,0,item,1);//[color=#006400]发送1号消息至当前实体[/color][/font][/align][align=left][font=微软雅黑] } [/font][/align][align=left][font=微软雅黑] }[/font][/align][align=left][font=微软雅黑]
[/font][/align][align=left][font=微软雅黑]决策点消息触发:[/font][/align][align=left][font=微软雅黑]**下游有空时接收消息,并0.1秒刷新一次*/[/font][/align][align=left][font=微软雅黑]Conveyor.DecisionPoint current = param(9);[/font][/align][align=left][font=微软雅黑]Conveyor conveyor = param(10);[/font][/align][align=left][font=微软雅黑]if(msgparam(1)==1)//[color=#006400]接收消息[/color][/font][/align][align=left][font=微软雅黑]{[/font][/align][align=left][font=微软雅黑] Object item = msgsendingobject();//[color=#006400]声明item[/color][/font][/align][align=left][font=微软雅黑] for(int i=1;i<=current.outObjects.length;i++)//[color=#006400]对下游端口循环判断[/color][/font][/align][align=left][font=微软雅黑] {[/font][/align][align=left][font=微软雅黑] if(current.outObjects.outObjects[1].Content == 0)//[color=#006400]Content标签等于0即为空载[/color][/font][/align][align=left][font=微软雅黑] {[/font][/align][align=left][font=微软雅黑] conveyorresumeitem(item);//[color=#006400]恢复临时实体[/color][/font][/align][align=left][font=微软雅黑] conveyorsenditem(item, current.outObjects);//[color=#006400]发送临时实体到可用下游[/color][/font][/align][align=left][font=微软雅黑] current.outObjects.outObjects[1].Content=1;//[color=#006400]Content标签值置为1,表示该下游不可用[/color][/font][/align][align=left][font=微软雅黑] item.color = Color.byNumber(i);//[color=#006400]更改相应的颜色[/color][/font][/align][align=left][font=微软雅黑] break;//[color=#006400]跳出循环[/color][/font][/align][align=left][font=微软雅黑] }[/font][/align][align=left][font=微软雅黑] if(i==4)//[color=#006400]如果未发现可有下游[/color][/font][/align][align=left][font=微软雅黑] {[/font][/align][align=left][font=微软雅黑] senddelayedmessage(current,0.1,item,1);//[color=#006400]0.1秒后再次判断是否有可用下游[/color][/font][/align][align=left][font=微软雅黑] }[/font][/align][align=left][font=微软雅黑] } [/font][/align][align=left][font=微软雅黑]}[/font][/align][align=left][font=微软雅黑]
[/font][/align][align=left][font=微软雅黑]产品发送到暂存区需要一段时间,若根据暂存区容量来判断是否可用,那么第一个产品未到达之前该暂存区一直可用,这段时间内到达决策点的产品都会被发送至该暂存区,所以这里用标签来表示暂存区的容量,接收到发送指令后即设置标签值为1表示该暂存区已经被补货。模型中用到的标签和消息触发,在建模中使用都比较广泛。[/font][/align][i][/i]
点赞
0
收藏
0
────
0
人觉得很赞
────
本帖子中包含更多资源
您需要
登录
才可以下载或查看,没有账号?
立即注册
x
回复
举报
3 回复
肖恩
回复
举报
2018-7-3 20:35:05
感谢分享
回复
评论
举报
王婉珍
回复
举报
2019-6-10 13:20:51
很好,记下来
回复
评论
举报
susan
回复
举报
2019-7-10 18:05:34
谢谢分享
回复
评论
举报
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
立即登录
点评
高级模式
本版积分规则
回帖后跳转到最后一页
返回
浏览过的版块
🔍 flexsim,极客,仿真
历史版块_9
历史版块_17
历史版块_49
历史版块_6
历史版块_22
历史版块_34
历史版块_4
历史版块_18
提问题
写回答
写文章
草稿箱
登录开启您的创作之旅
快速登录,立即开启您的创作之旅~
登录
热门问答
查看更多
1
流水作业线的仿真
流水作业线的仿真
33
83
2
Flexsim初级建模工程师水平标准
Flexsim初级建模工程师水平标准
30
234
3
厂区生产线布局优化案例!新做的!
厂区生产线布局优化案例!新做的!
29
224
4
图形用户界面(GUI)教学视频
图形用户界面(GUI)教学视频
26
75
5
flexsim中文教程,pdf文档已整理-重新整理
flexsim中文教程,pdf文档已整理-重新整理
25
114
博主榜
admin
+ 5
首页
分类
目录
索引
我的