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

FlexSim案例一 合成器根据托盘信息打包不合格返工、两次不合格废除

技术交流2 3 0 2018-4-24 15:44:28
[i=s] 本帖最后由 WangQinqin 于 2018-4-24 15:50 编辑 [/i]

[align=center][size=4][color=#ff0000]FlexSim案例一 [font=微软雅黑]合成器根据托盘信息打包不合格返工、两次不合格废除[/font][/color][/size][/align]

[align=left][size=4][color=#ff0000]1、模型描述[/color][/size][/align]
[align=left][font=微软雅黑]合成器根据托盘带的[/font]Type信息来决定打包数量,通过处理器加工检测,如果合格则发送到合格区,如果不合格那么返回重新加工检测,并且优先加工检测不合格产品,如果第二次仍然不合格则作废。[/align]
[align=left][size=4][color=#ff0000]2、模型布局[/color][/size][/align]

[size=4][color=#ff0000]
[/color][/size][align=left][size=4][color=#ff0000]3、代码编写[/color][/size][/align]
[align=left][font=微软雅黑]发生器1为合成器第一个进入端口连接物体所以应产生托盘,并在创建触发中写入其附带的信息及被检查次数。[/font][/align][align=left][font=微软雅黑]int type = duniform(3,6);[/font][/align][align=left][font=微软雅黑]item.Type = type;[color=#9acd32]//根据此信息决定打包多少boxs[/color][/font][/align][align=left][font=微软雅黑]item.color = Color.byNumber(item.Type);[color=#9acd32]//对不同托盘赋颜色[/color][/font][/align][align=left][font=微软雅黑]item.jiance = 0;[/font][color=#9acd32]//判断检测次数[/color][/align][align=left][font=微软雅黑]
[/font][/align][align=left][font=微软雅黑]合成器的合成列表由两个节点控制,通过改变其节点数值来改变打包数量[/font][/align][align=left][align=left][font=微软雅黑]if(port == 1)[color=#9acd32]//只有当托盘进来时才对打包量进行改变,boxes进来无影响[/color][/font][/align][align=left][font=微软雅黑]{[/font][/align][align=left][font=微软雅黑]        int type = item.Type;[/font][/align][align=left][font=微软雅黑]        treenode list1 = getvarnode(current, "componentlist").as(Table).cell(1, 1);[color=#9acd32]//获取合成列表及总合成数量节点[/color][/font][/align][align=left][font=微软雅黑]        treenode list2 = getvarnode(current, "targetcomponentsum");[/font][/align][align=left][font=微软雅黑]        [/font][/align][align=left][font=微软雅黑]        setnodenum(list1,type);[color=#9acd32]//对两相关节点赋值[/color][/font][/align][align=left][font=微软雅黑]        setnodenum(list2,type);[/font][/align][align=left][font=微软雅黑]}[/font][/align][align=left][font=微软雅黑]
[/font][/align][align=left][font=微软雅黑]处理器中当物体进入时使jiance数加1,发送至端口根据不同情况发送到不同不同区域[/font][/align][align=left][font=微软雅黑]进入触发[/font][/align][align=left][font=微软雅黑]item.jiance++;[/font][/align][align=left][font=微软雅黑]
[/font][/align][align=left][font=微软雅黑]发送至端口[/font][/align][align=left][font=微软雅黑]double num = uniform(0,100);[color=#9acd32]//随机产生0到100的随机数[/color][/font][/align][align=left][font=微软雅黑]
[/font][/align][align=left][font=微软雅黑]if(num <= 80)[color=#9acd32]//设置80%的合格率[/color][/font][/align][align=left][font=微软雅黑]{[/font][/align][align=left][font=微软雅黑]        for(int i = 1;i <= item.subnodes.length;i++)[/font][/align][align=left][font=微软雅黑]        {[/font][/align][align=left][font=微软雅黑]                Object boxi = item.subnodes;/[color=#9acd32]/获取托盘上boxes的引用[/color][/font][/align][align=left][font=微软雅黑]                boxi.color = Color.green;[color=#9acd32]//如果合格那么boxs变绿[/color][/font][/align][align=left][font=微软雅黑]        }        [/font][/align][align=left][font=微软雅黑]        return 1;[color=#9acd32]//合格送至1端口[/color][/font][/align][align=left][font=微软雅黑]}[/font][/align][align=left][font=微软雅黑]else[/font][/align][align=left][font=微软雅黑]{[/font][/align][align=left][font=微软雅黑]        for(int i = 1;i <= item.subnodes.length;i++)[/font][/align][align=left][font=微软雅黑]        {[/font][/align][align=left][font=微软雅黑]                Object boxi = item.subnodes; [color=#9acd32]//获取托盘上boxes的引用[/color][/font][/align][align=left][font=微软雅黑]                boxi.color = Color.random();[color=#9acd32]//不合格随机赋颜色[/color][/font][/align][align=left][font=微软雅黑]        }[/font][/align][align=left][font=微软雅黑]        if(item.jiance == 2)[/font][/align][align=left][font=微软雅黑]        {[/font][/align][align=left][font=微软雅黑]                return 3;[color=#9acd32]//如果两个不合格作废[/color][/font][/align][align=left][font=微软雅黑]        }[/font][/align][align=left][font=微软雅黑]        else[/font][/align][align=left][font=微软雅黑]        {[/font][/align][align=left][font=微软雅黑]                return 2;[/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优先将不合格产品发送出去,在暂存区1进入触发中[/font][/align][align=left][font=微软雅黑]if(port == 2)[color=#9acd32]//如果进入物体来自端口2,说明是不合格产品那么对其节点位置重新排序到1号使其被优先发送[/color][/font][/align][align=left][font=微软雅黑]{[/font][/align][align=left][font=微软雅黑]        item.rank = 1;[/font][/align][align=left][font=微软雅黑]}[/font][/align][/align]
──── 0人觉得很赞 ────

本帖子中包含更多资源

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

x
您需要登录后才可以回帖 立即登录
高级模式
返回
技术交流2
热门问答
查看更多
1
Flexsim初级建模工程师水平标准
Flexsim初级建模工程师水平标准
60
234
2
厂区生产线布局优化案例!新做的!
厂区生产线布局优化案例!新做的!
39
224
3
流水作业线的仿真
流水作业线的仿真
36
83
4
无意中找到的资料,非常适合于初学者
无意中找到的资料,非常适合于初学者
33
229
5
flexsim中文教程,pdf文档已整理-重新整理
flexsim中文教程,pdf文档已整理-重新整理
30
114
博主榜
+ 5