|
本帖最后由 zorsite 于 2015-8-15 22:51 编辑
4# 大摸鱼 这个贴子只做了返工,并没有设置返工件优先加工。
更早的一个贴子设置了返工件优先加工,但是在逻辑上有一些错误。
贴子在此:http://www.flexsim.asia/viewthread.php?tid=161&;highlight=%B7%B5%B9%A4
今天有空,我也试了一下这个模型,核心思路如下:
1·两次加工时间不同,可以通过给临时实体增加“是否返工”标签来解决。
if (获取临时实体标签值==返工)then 加工时间=uniform(120,130)
else 加工时间=uniform(100,120)- if (getlabelnum(item, "是否返工")==1)
- return uniform(120,130);
- else
- return uniform(100,120);
复制代码 2·检测台发送端口按百分比设置,设置好之后添加一小段代码:- colorarray(item,15); //设置返工产品为白色以便观察
- setlabelnum(item,"是否返工",1); //设置返工产品标签值为1
复制代码 3·给第一暂存区也增加一个标签,用于记录暂存区当前一共有几个返工产品。
暂存区的进入触发加入以下代码:
if 进入的临时实体是返工产品 then
{标签值+1
设置当前临时实体的序号为暂存区的返工产品数量}- if(getlabelnum(item,"是否返工")==1)
- {
- treenode thenode = label(current, "返工产品数量");
- double value = 1;
- inc(thenode,value);
- setrank(item,getlabelnum(current,"返工产品数量"));
- }
复制代码 暂存区的离开促发也需要写入代码,主要是返工产品离开后要把标签值-1,从而正确计算暂存区当前有几个返工产品- if(getlabelnum(item,"是否返工")==1)
- setlabelnum(current,"返工产品数量",getlabelnum(current,"返工产品数量")-1);
- }
复制代码 布局:
1.自己设置发生器的到达时间、创建触发中设置临时实体的类型、颜色。
2.第一暂存区
>自己设置发送端口
>进入触发
>离开触发
>为第一暂存区增加标签,并勾选“自动重置标签”
3.前4台处理器的加工时间
4.设置检测台的输出端口,按百分比输出。设置完成之后进入代码编辑窗口,手工输入两行代码,改变返工产品的颜色和标签值。
5.模型如下:
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
|