全球FlexSim系统仿真中文论坛
标题:
flexsim入门:上传实训时的小题目和模型(7)
[打印本页]
作者:
adysunshine
时间:
2012-8-9 08:37
标题:
flexsim入门:上传实训时的小题目和模型(7)
1 模型描述
发生器产生四种临时实体,服从整数均匀分布,类型值分别为1、2、3、4,颜色分别为绿色、蓝色、白色、黄色,进入暂存区1;
然后随机进入处理器进行加工,可以使用的处理器有四个,不同类型的临时实体在处理器上的加工时间不同,详情如下表:
表7.1:不同处理器处理不同产品的加工时间
加工时间 处理器1 处理器2 处理器3 处理器4
产品1 4 6 2 5
产品2 5 3 3 5
产品3 2 4 2 2
产品4 4 6 3 6
加工结束后,进入暂存区2存放。
同时,在各个处理器附近用可视化工具显示该处理器的实时加工时间。
2模型布局
[attach]699[/attach]
3[attach]699[/attach]
作者:
pymj4
时间:
2012-8-29 13:01
谢谢阿
作者:
耿勇
时间:
2012-9-3 15:33
作者:
adysunshine
时间:
2012-9-20 16:43
(1)连接
发生器与暂存区1——“A”连接;
暂存区分别与处理器1、2、3、4——“A”连接;
处理器1、2、3、4分别与暂存区——“A”连接;
处理器1、2、3、4分别与可视化工具1、2、3、4——“S”连接。
(2)参数设定
a:临时实体类型和颜色的设定
双击打开“发生器”的属性窗口
打开“触发器”选项卡
在“创建触发”下添加
——设置临时实体类型:
临时实体item
临时实体类型:duniform(1,4)
——根据临时实体类型值设置颜色
值:getitemtype(item)
Cases:
case 1: colorgreen(item);break;
case 2: colorblue(item);break;
case 3: colorwhite(item);break;
case 4: coloryellow(item);break;
default: colorarray(item, value);break;
单击“确定”关闭窗口
b:临时实体流向的设定
双击打开“暂存区1”属性窗口
打开 “临时实体流”选项卡
在“输出发送至端口”下选择
——随机端口
其余实体流向均选择默认流向,即发送至“第一个可用端口”
单击“确定”关闭窗口
c:处理器加工时间的实现
在Flexsim软件菜单栏>“工具”下拉菜单中添加如下一个全局表:
表名设为:jiagongshijian;
行数、列数都为4。如下图7.1:
[attach]769[/attach]
图7.1:在全局表中添加加工处理时间
双击打开“处理器1”属性窗口
在“加工时间”下拉菜单中选择“按照全局表查询”,如下图7.2:
[attach]770[/attach]
图7.2:处理器加工时间的设定(全局表的调用)
“确定”关闭窗口
同理:对处理器2、3、4做同样的设置,区别在于表格列的查询分别为2、3、4。
d:可视化显示的实现
双击打开“可视化工具1”
选择“可视化显示”为文本(text)
文本显示内容为
——显示文本状态
文本:“P1 jiagongshijian:”
实体:centerobject(current,1)
状态:CurrentProcessTime
如下图7.3:
[attach]771[/attach]
图7.3:可视化工具显示加工时间的设置
同理:对可视化工具2、3、4做同样的设置
“确定”——“重置”——“保存”
作者:
ceshi20070701
时间:
2012-10-2 19:41
其他几个可视化工具怎么设置?
作者:
adysunshine
时间:
2012-10-3 08:59
5#
ceshi20070701
同样的道理 只是文本显示不一样
作者:
zt130025
时间:
2012-10-24 16:20
不错
作者:
woaixiaoguai
时间:
2012-11-6 12:51
给力
作者:
zorsite
时间:
2012-12-6 21:58
这个题目难度不大,考察的是全局表和可视化工具的应用,在flexsim5.0中做起来还是比较简单的。
在flexsim6.0中没有“显示文本状态”,可以选择“显示实体统计”,原理是一样的。
进阶思考:
如何让可视化工具显示当前实体类型和处理器处理时间?
提示:可参考小题目和模型(2)。
下面给出一段不成熟的代码,抛砖引玉。
/**Custom Code*/
treenode current = ownerobject(c);
treenode textnode = parnode(1);
treenode involved = centerobject(current, 1);
int CurrentProcessTime;
int stat = CurrentProcessTime;
string statstr = "";
if(stat == CurrentProcessTime)
{
if(isclasstype(involved, CLASSTYPE_PROCESSOR))
{
if(content(involved) > 0)
{
treenode item = first(involved);
if(stat == CurrentProcessTime)
{
if(getstatenum(involved) == STATE_PROCESSING || getitemstate(item) != FRSTATE_INQUEUE)
statstr = numtostring(getitemvar(item, ITEMVAR_PROCESSTIME), 0, 2);
else statstr = "Not Set";
}
else statstr = numtostring(getitemvar(item, ITEMVAR_SETUPTIME), 0, 2);
}
else statstr = "No Item";
}
else statstr = "Error, non-processor object";
}
string labelname = "leixing";
setnodestr(textnode, concat("chanpinleixing:", numtostring(getlabelnum(involved, labelname), 0, 1), "jiagongshijian:", statstr));
复制代码
这段代码有一个问题:即使处理器上临时实体已经离开,但临时实体类型仍然显示。
作者:
yangkaichong
时间:
2013-1-13 21:29
谢谢楼主的分享!
作者:
hongtianwei
时间:
2013-1-28 08:50
继续学习,加油
作者:
adysunshine
时间:
2013-1-28 10:56
11#
hongtianwei
呵呵 加油
作者:
adysunshine
时间:
2013-1-28 10:56
11#
hongtianwei
呵呵 加油
作者:
hdliuhaobo
时间:
2013-2-26 17:03
谢谢楼主。。
作者:
kaituoze
时间:
2013-2-26 20:08
楼主辛苦!
欢迎光临 全球FlexSim系统仿真中文论坛 (http://www.flexsimasia.com/)
Powered by Discuz! X3.3