Witness属性元素应用建模

(一)


1. 系统描述
    一生产企业中需要两类部件分别加工两种不同的产品,一类是标准型(standard),一类是豪华型(deluxe)。这两种部件都是主动进入系统的,两类部件到达间隔都服从均值为10的负指数分布,进入系统后存放在缓冲区store中。有 一台机器(machine1)从缓冲区中获取零件,根据获取零件种类的不同,需要的加工时间也不相同:如果获取到的是标准型零件,加工时间为9分钟,如果获取的是豪华型零件,加工时间为11分钟 。如何实现这一模型,我们需要使用到属性这一元素。具体建成的模型如图1所示,模型下载
 


图1 模型最终画面


2. 系统分析


2.1 元素说明
    该模型的加工所需的零部件分别用standard和deluxe表示,加工机器用machine1表示,缓冲区用store表示,另外还需要有一个属性attribute元素,用process_time表示,用来对两种不同类型的零件的加工时间进行区分 ,具体元素如表1。


表1 元素说明

元素名称

元素类型

元素数量

元素作用

Standard Part

1

模拟标准件
Deluxe Part

1

模拟豪华件
Process_time Attribute

1

规定零部件加工时间
Machine1 Machine

1

模拟加工机器
store buffer

1

模拟 缓冲库存


2.2 运行时间
    仿真运行1000个时间单位,统计机器利用率以及零部件等待加工时间。


3. 模型建立


3.1 定义元素
单击工具栏中的图标,将弹出元素定义窗口,通过元素定义窗口定义下列元素:


3.2 元素可视化设计
3.2.1 Part元素可视化设计
    在元素最左边的Element Selector中的Simulation列表下,鼠标右击standard、deluxe,选择display菜单项对这两个元素进行设计。
    右击standard,点击display进入standard元素的可视化设计对话框,选择可视化对话框中的draw模式,选择属性对话框中的name项,点击图标更改字体颜色和字号,在这里我们选用默认值,单击draw按钮,在设计窗口中合适位置单击鼠标完成name属性的绘制。窗口此时出现了standard元素的名称。

    选择属性对话框中的icon选项,点击图标,选择icon图案,在这里我们选择红色的圆圈(在picture gallery中第24号图标),点击draw按钮,在设计窗口合适位置单击鼠标完成standard元素图标的绘制。
    Deluxe元素的可视化设计与standard的相同,只是在选择icon图案上选择绿色圆圈(在picture gallery中第25号图标)即可。如图2所示。

 



图2 deluxe元素icon属性设计


3.2.2 buffer元素的可视化设计
    在该模型中我们需要设定buffer元素store的name、icon、rectangle、text以及expression属性的设定。Name和icon元素的设定与part元素相同,在此不做详细介绍。

(1)rectangle矩形框可视化设计
    右击store,点击display菜单项进入可视化设计对话框,选择draw模式,再选择rectangle属性,出现图3所示对话框,选择图标下的模式绘制空心矩形框,选择图标修改矩形框的颜色,点击draw按钮在绘图区绘制矩形框。

 

图3 缓冲区store的rectangle可视化设计

(2)expression动态表达式可视化设计
    根据模型要求,无论是标准件还是豪华件都放在同一个缓冲区里,即都放在store中,但是在模型中需要动态显示缓冲区中究竟存有多少标准件和多少豪华件,这就需要用expression来 实现该功能。在此我们需要实时显示标准件和豪华件的存储数量,所以需要为store元素建立两个expression可视化项目。

   首先我们先建立第一个expression, 用于动态显示store中的标准件数量。右击store,点击display菜单项进入可视化设计对话框,选择draw模式,再选择expression属性项目,点击图标进入属性可视化设计对话框,出现图4所示对话框。




图4 缓冲区store的expression可视化设计

  在图4界面的label栏中输入该属性的名称standard,在expression栏中输入“nparts2(store,standard,0)”,其中nparts2为Witness系统函数,返回store中存有的standard部件的数量,该函数详解看页面尾部的附录说明。
    在type栏中选择integer,表示返回数为整数,update栏中选择1,表示数据每隔1个时间单位就更新一次。
    然后点击draw按钮,在设计窗口中单击鼠标,出现“0”字样。


    接着再建立一个名称为deluxe的expression可视化属性,用于动态显示store中deluxe零件的数量,其设计过程和standard的expression过程相同,只是在label栏中输入“deluxe”,在expression栏中输入”nparts2(store,deluxe,0)”。单击draw按钮在设计窗口绘制,出现又一个“0“字样。


    Expression属性设置完成后,设计窗口中出现了2个“0”字样,表示在设计时刻store中两类零件standard和deluxe存量均为0。但是仅仅有两个数字列在store附近,其所指的零件存量含义并不明显,初看模型界面上这两个数值时,不能确切知道他们分别代表的含义,因此需要在每个数字前写上文本进行标识,即需要设计store元素的text可视化项目。

(3)text文本标识可视化设计

    可视化设计窗口中,选择text属性,点击图标进入text可视化设计对话框,出现如图5所示对话框。



图5 text属性设计


    在label栏中输入“standard text”,在text栏中输入“number of standard items”,点击draw按钮,在刚刚已经建立的standard的expression的“0”字样前单击鼠标,则“number of standard items”字样显示在界面中,提示后面的数字为standard零件在store中的存量。


    同样,重新建立一个text属性,在text栏中输入“number of deluxe items”,点击draw按钮,在刚刚已经建立的deluxe的expression的“0”字样前单击鼠标,则“number of deluxe items”字样显示在界面中,提示后面的数字为deluxe零件在store中的存量。

 

3.2.3 Machine元素的可视化设计
    Machine元素需要对name、icon以及part queue属性进行设置。Name、icon设置方法与part元素相同,只需要选择合适的机器图案即可。Part queue属性中,将默认的count改为queue,并且选择down的零件排列方向,如图6所示。

 


图6 机器元素Machine1的part queue可视化设计




注:

机器的Part Queue可视化属性项:

    机器的Part Queue属性页中Queue Type(排队类型)有两种,含义分别介绍如下:

   (1)Count计数型,如果设定了机器的排队类型为Count,则机器上加工处理的零件按照数字的方式显示;

   (2)Queue队列型,如果设定了机器的排队类型为Queue,则机器上加工处理的零件按照零件的可视化图标显示出来;

 

NPARTS2(element_name, part_name, mode):

   该函数返回一个整数,这个整数是在指定的元素element_name中包含的特定的零部件part_name的数量,mode表示包含该元素的范围:

    其中输入、输出专有缓冲区仅可能出现在Machine类型的元素中,而在使用Nparts2函数返回Buffer类型元素中指定零部件数量时,mode取值一般均为0。

 

示例:

NUMBER_OF_PARTS = NPARTS2(PACK, ALL, 0)
    在该表达式中,NPARTS2函数返回机器PACK上所有类型零件的数量,包括机器专有输入、输出缓冲区以及机器正在作业的零件数量,然后将结果赋给变量NUMBER_OF_PARTS。

NUMBER_OF_PARTS = NPARTS2(PACK, BOX, 2)
在该表达式中,NPARTS2函数返回机器PACK的专有输入缓冲区中的零件数量,然后将结果赋给变量NUMBER_OF_PARTS。