全球FlexSim系统仿真中文论坛

搜索
查看: 6907|回复: 0
打印 上一主题 下一主题

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

[复制链接]
跳转到指定楼层
1#
WangQinqin 发表于 2018-4-24 15:44:28 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 WangQinqin 于 2018-4-24 15:50 编辑   l+ C+ x2 Y2 W- P* _8 Y$ G; ?0 j

5 j5 r% J+ {, f" i# l
FlexSim案例一 合成器根据托盘信息打包不合格返工、两次不合格废除

* `- \9 O* K6 i& Y4 B8 w2 T
  M2 U( h2 g# i2 w
1、模型描述
- F4 g$ L5 s2 \
合成器根据托盘带的Type信息来决定打包数量,通过处理器加工检测,如果合格则发送到合格区,如果不合格那么返回重新加工检测,并且优先加工检测不合格产品,如果第二次仍然不合格则作废。
3 c! K/ J- m1 @% D# y2 L
2、模型布局
5 [) I" r0 O7 t& N% d/ z
- [) c/ Z1 u' A: u) ]
1 _) x( Z" {$ H0 X1 y& @* F+ E
3、代码编写
8 H- @  F) d4 `2 }- k% l. [# Y
发生器1为合成器第一个进入端口连接物体所以应产生托盘,并在创建触发中写入其附带的信息及被检查次数。
int type = duniform(3,6);
item.Type = type;//根据此信息决定打包多少boxs
item.color = Color.byNumber(item.Type);//对不同托盘赋颜色
item.jiance = 0;//判断检测次数
5 F9 k% h/ T$ A* S9 b# u$ o
合成器的合成列表由两个节点控制,通过改变其节点数值来改变打包数量
if(port == 1)//只有当托盘进来时才对打包量进行改变,boxes进来无影响
{
        int type = item.Type;
        treenode list1 = getvarnode(current, "componentlist").as(Table).cell(1, 1);//获取合成列表及总合成数量节点
        treenode list2 = getvarnode(current, "targetcomponentsum");
        
        setnodenum(list1,type);//对两相关节点赋值
        setnodenum(list2,type);
}
, D3 u8 g5 c& z5 e+ Q
处理器中当物体进入时使jiance数加1,发送至端口根据不同情况发送到不同不同区域
进入触发
item.jiance++;
, [6 N( u& @5 n. V% r* C3 @
发送至端口
double num = uniform(0,100);//随机产生0到100的随机数

* A8 d' m5 s4 d
if(num <= 80)//设置80%的合格率
{
        for(int i = 1;i <= item.subnodes.length;i++)
        {
                Object boxi = item.subnodes;//获取托盘上boxes的引用
                boxi.color = Color.green;//如果合格那么boxs变绿
        }        
        return 1;//合格送至1端口
}
else
{
        for(int i = 1;i <= item.subnodes.length;i++)
        {
                Object boxi = item.subnodes; //获取托盘上boxes的引用
                boxi.color = Color.random();//不合格随机赋颜色
        }
        if(item.jiance == 2)
        {
                return 3;//如果两个不合格作废
        }
        else
        {
                return 2;
        }
        
}
7 K9 a( f' Z  T0 u
暂存区1优先将不合格产品发送出去,在暂存区1进入触发中
if(port == 2)//如果进入物体来自端口2,说明是不合格产品那么对其节点位置重新排序到1号使其被优先发送
{
        item.rank = 1;
}
; q  E( d5 ?+ G. Z0 @# T% D

本帖子中包含更多资源

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

x
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|手机版|Archiver|全球FlexSim系统仿真中文论坛 ( 京ICP备14043114号-2 )

GMT+8, 2025-10-25 06:35 , Processed in 0.077801 second(s), 14 queries .

Powered by Discuz! X3.3© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表