搜索
您的当前位置:首页正文

基于WITNESS的生产系统仿真实验 精品

来源:二三娱乐
实验项目名称 实验学时 指导教师 实验地点 实验对象 可选人数 基于WITNESS的生产系统仿真实验 24 张帅 航空楼B101 工业工程本科生 10 “基于WITNESS的生产系统仿真实

验”实验教学大纲

实验名称:基于WITNESS的生产系统仿真实验 实验学时:24

适用专业:工业工程专业 开课学院:机电学院 开课学期:第6学期

一、 实验课程简介

流水线生产是现代工业企业很重要的一种生产方式,它是指生产对象按照一定的工艺路线顺序的通过各个工作地,并按照统一的生产速度完成工艺作业的生产过程。流水生产线能够满足合理组织生产过程的要求,使企业生产的许多技术经济指标得到改善。本实验通过Witness仿真软件建立一个流水生产线系统来模拟流水生产的过程,以找出影响流水生产效率的因素。

二、 实验课前思考题

1、 简述一下仿真技术的产生和发展。 2、 计算机仿真技术的优点是什么?

3、 现有的仿真软件都有哪些?都有哪些优缺点? 4、 系统仿真的三要素是什么? 5、 系统的三要素是什么? 6、 系统模型是什么? 7、 什么是仿真?

8、 什么是离散事件系统仿真? 9、 什么是系统仿真中的事件? 10、 什么是仿真鈡?

三、 实验目的

1、学习、掌握Witness仿真软件的使用与主要功能; 2、熟悉流水生产线的特点;

3、了解影响流水线生产效率的因素和基本的改善方法。

基于WITNESS的生产系统仿真实验

一、实验介绍

下面描述如何通过WITNESS 系统提供的Designer Elements 模板,快速的建立WITNESS 模型。这个过程仅仅展示了采用WITNESS 建模的思想,它并不代表真正的工业系统。

通过本节的学习,要能够掌握:

part、machine、conveyor、labor 实体元素、variable 逻辑元素的使用; 掌握可视化输入、输出关系的建立;

掌握report 工具栏的使用和分析,并根据分析,进行系统优化设计。 WITNESS提供了如下14种标准随机分布函数: (1)BETA β分布; (2) NORMAL 正态分布; (3)BINOMIAL 二项分布; (4)POISSON 泊松分布; (5)ERLANG 爱尔朗分布; (6)RANDOM 0-1均匀分布; (7)GAMMA γ分布; (8)TNORMAL 截断正态分布; (9)IUNIFORM 整数均匀分布; (10)TRIANGLE 三角分布; (11)LOGNORML 对数正态分布; (12)UNIFORM 均匀分布; (13)NEGEXP 负指数分布; (14)WEIBULL 威伯分布 1)LOGNORML(对数正态分布)

该函数提供服从对数正态分布的样本值,返回值为实数。如果某一变量的样本数据的对数服从正态分布,那么该变量就是服从对数正态分布。

语法结构:

LOGNORMAL(Mean,SD,prns)

参数: Mean: 分布均值,实数; SD:标准差,实数; Prns:为随机数流,整数。

函数调用示例:当mean=1.65, SD=2.16时,R = LOGNORML(1.65,2.16,1) 适用情况: 完成一项服务所需的时间,例如:完成一名顾客的服务时间或修理好一台机器的时间。

注: 该函数不会产生负值,其均值也不可能等于零 2)NEGEXP(负指数分布)

该函数提供服从负指数分布的样本值,返回值为实数。可以认为它是泊松分布的补集。

语法结构: NEGEXP(mean,prns)

参数: mean:均值,实数; Prns:为随机数流,整数。 函数调用示例: R = NEGEXP(1.0,1)

适用情况: 相邻事件发生的时间间隔,例如:顾客到达时间间隔,及其故障时间间隔。

二、实验目的

1、学习、掌握Witness仿真软件的使用与主要功能; 2、熟悉流水生产线的特点;

3、了解影响流水线生产效率的因素和基本的改善方法。

三、实验内容

流水线生产是现代工业企业很重要的一种生产方式,它是指生产对象按照一定的工艺路线顺序的通过各个工作地,并按照统一的生产速度完成工艺作业的生产过程。流水生产线能够满足合理组织生产过程的要求,使企业生产的许多技术经济指标得到改善。本实验通过Witness仿真软件建立一个流水生产线系统来模拟流水生产的过程,以找出影响流水生产效率的因素。

四、实验步骤

1、启动Witness软件系统

2、定义模型元素,建立一个包含机器和传送装置的简单模型:在模型中可

设为某零件(Widget)要经过称重(Weigh)、冲洗(Wash)、加工(Produce)和检测(Inspect)四个工序的操作。 3、可视化模型元素 4、详细定义模型元素 5、运行模型与统计分析

模型的建立采用一种循序渐进的方法,这种建模方法可以在确保本阶段正确

无误的基础上继续进行下一阶段的建模,而且能够清楚地看到在做任何改变产生的效果。 第一阶段:

建立Widgets的零部件、一台称重机器(Weigh)运行时间为5分钟和一条输送链(C1),输送带长度为10倍于零部件尺寸,链速为0.5,即每分钟输送带移动0.5个零部件长度。 第二阶段:

添加机器为清洗(Wash)、加工(Produce)、检测(Inspect)添加的输送带为C2、C3,同时添加一个逻辑变量output,用于动态显示模型中加工完成的小零件数量。其中清洗(Wash)的加工时间为4分钟,C2的链速为0.5,加工(Produce)的加工时间为3分钟,C3的链速为0.5,检测(Inspect)的加工时间为3分钟。变量output用来计算从Inspect中输出的Widgets的量,将计数结果显示在屏幕上。Output=output+1。模型运行时间为100分钟。

第一阶段(stage1.mod)和第二阶段(stage2.mod),可以建立一个包含机器和传送装置的简单模型,可以从这一模型计算出此模型系统的输出和性能。 第三阶段:

为了使上述模型更有现实意义需要对其赋予更多的特性和功能。在本阶段中,将假设Produce机器每加工完五个零部件就需要进行一次刀具的调整,调整时需要人员来参与,调整时间为12分钟。

构建本阶段模型需要在stage2的基础上,向模型中添加Labor元素,设置Produce机器的调整属性。观察在相同运行时间下完成加工的数量,机器的使用率及输送链的使用情况。 第四阶段:

在本阶段中,考虑将随机分布函数应用到机器的故障发生时间间隔和劳动者维修机器的故障所需要的维修时间中。假设Produce机器在工作一定的时间后,可能会发生意外的抛锚,通过以往机器两次抛锚时间间隔的统计发现,其时间间隔服从均值为60分钟的负指数分布;每当机器抛锚时,都需要人员对它进行维修,维修过程所持续的时间受到故障诊断时间、故障排除的难易程序、维修人员的生理和心理状态的影响,呈现随机波动性,统计数据表明维修时间服从均值为10

分钟、标准差为2分钟的对数正态分布。

构建本阶段模型需要在stage3的基础上,设置Produce机器的故障breakdown属性。通过双击机器图标,得到机器的详细设计对话框,选择breakdown页框。

运行500mins,这样才能够很清楚地看出在模型运行的整个过程中操作者和建模元素之间的相互影响。

第三阶段(stage3.mod)和第四阶段(stage4.mod),可以加入更多的功能元素(例如机器故障、劳动者、设备调整等)使模型更符合实际。即使对模型增加一点点复杂性,人工计算生产量和设备利用率也将变的很困难,而使用WITNESS 的仿真技术可以很轻松的解决这一问题。 第五阶段:

通过比较分析可以看出机器produce是生产线的“瓶颈”,严重制约了系统的产出率,大大增加了widget的系统通过时间,为了改进这种状态,考虑添加一台produce机器和一条C2输送带,这样生产线上将有两台Produce 机器和两条C2输送链同时工作,应该能够提高系统的产量。

在添加元素之前,建议重新布局屏幕中建模元素,目的是给将要添加的第二台Produce和C2留出足够的空间,以免显得拥挤,为了节约空间以及符合实际情况,可以选择将新元素拖到原来建模元素的下方。

经过以上设定,模型系统中将有两条输送链C2(1)和C2(2),它们的名称、类型等明细是相同的,只是下标不同,分别为1和2;以及两台机器Produce(1)和Produce(2)。系统的输入输出关系设定为Produce(1)仅仅向C2(1)“拉”零件来加工,Produce(2)仅仅向C2(2)“拉”零件来加工。给每台Produce 机器与相对应的输送链C2设定输入输出规则,需要使用到系统变量N。

系统变量N :保存当前元素下标的整型变量。例如,如果模型系统中有一个数量为3的机器MACH,当MACH(1)恰好完成了一个加工周期(或即将开始一个加工周期时),则N被赋值为1;如果是MACH(2),则N被赋值为2;如果是MACH(3),则N被赋值为3。 为了实现Produce(1)仅仅向C2(1)“拉”零件来加工,Produce(2)仅仅向C2(2)“拉”零件来加工,需要进行下面的步骤:

Produce 机器图标显示general detail对话框; 输入规则“PULL from C2(N) at Front”;同时WASH机器上零件清洗完毕之后,将输出到C2两条链上队列较短

的输送链上,规则设计操作如下:“LEAST PARTS C2(1) at Rear,C2(2) at Rear”。

运行500时间单位(运行前要复位),观察改进后的产量,比较为增加产量的所需的花费是否值得?生产零件的个数?工作人员的工作效率? 第六阶段:

通过stage5,添加瓶颈设备,可以有效地提高系统的产量,但是widget的在制品库存与平均通过时间仍然比stage2要高很多,我们试图在stage6中加以改善。

下面尝试增加produce机器抛锚的维修时间Repair time,观察模型维修时间值的改变对产量的的敏感性。

将Repair time的均值由原来的10增加到20,即:LOGNORML(20,2,2) 。运行500时间单位(运行前要复位),观察改进后的产量,生产零件的个数?工作人员的工作效率?

将Repair time的均值由原来的20增加到30,即:LOGNORML(30,2,2) 。运行500时间单位(运行前要复位),观察改进后的产量,生产零件的个数?工作人员的工作效率?

从结果中观察Produce机器的repair time在多少时间以内变化时,产量相应变化不敏感?当超过多少时间时,repair time的变化将引起产量的较大变动?所以repair time范围应该尽量控制在多少分钟以下?

第五阶段(stage5.mod)和第六阶段(stage6.mod)为了增加产量和更有效的利用资源可以调整模型的运行方式和参数。

五、实验报告要求

1、写出实验目的 2、写出简要实验步骤

3、将模型的不同参数运行得出的结果进行对比,找出影响流水生产线效率的因素。

4、比较分析原系统和改善后的系统运行结果。

六、思考题

1、流水生产线的主要特点是什么? 2、流水线是否有缺点,为什么?

综合实验基本知识介绍

1.WITNESS 用户界面

当正常启动WITNESS系统后,首先进入的是WITNESS系统的主屏幕界面。如图1所示。

图1 WITNESS系统主屏幕界面

从图上可以看出,WITNESS系统的界面,是由标题栏、菜单栏、工具栏、元素选择窗口、状态栏、用户元素窗口和系统布局区组成的。下面对每一部分的功能加以介绍。

1.1、标题栏

标题栏位于屏幕界面的第一行,它包括系统程序图标、主屏幕标题、最小化按钮、最大化按钮和关闭按钮5个对象。

(1)系统程序图标 单击WITNESS系统程序图标,可以打开窗口控制菜单,在窗口控制菜单下,可以移动屏幕并改变屏幕的大小。双击系统程序图标,可以关闭WITNESS系统。

(2)主屏幕标题 主屏幕标题由两部分组成,前一部分是系统的名称,也既

是“WITNESS”,后一部分是当前打开的模型的标题,可以根据不同的模型进行修改设置。设置方法是打开“Model”菜单,选择“Title”选项,在弹出的标题设置对话框中进行设置。标题对话框如图2所示。

在模型标题设置对话框的“General”页框下,设置模型的名称(name)、标题(Title)、作者(Author)等信息。模型名称和标题将显示在主屏幕标题栏上。

(3)最小化按钮 单击“最小化”按钮,可将系统的屏幕缩小成图标,并存放在Windows桌面的底部的任务栏中。

(4)最大化按钮 单击“最大化”按钮,可将系统的屏幕定义为最大窗口。 (5)关闭按钮 单击“关闭”按钮,可将关闭WITNESS 系统。

图2 模型标题设置对话框

1.2、 菜单栏

菜单栏位于屏幕的第二行,它包含:File(文件)、Edit(编辑)、View(显示)、Model(模型)、Elements(元素)、Reports(报表)、Run(运行)、Window(窗口)、Help(帮助)九个菜单选项。当单击其中一个菜单选项时,就可以打开一个对应的“下拉式” 菜单,在该“下拉式” 菜单下,通常还有若干个子菜单选项,当选择其中一个子菜单选项时,就可以执行一个操作。

1.3、 工具栏

Witness 系统提供了不同环境下的八种常用的工具栏,它们是:Standard、Model、Element、Views、Run、Reporting、Assistant、Display Edit。激活其中一个工具栏,即在屏幕上显示出一行相应的工具栏,用鼠标将它拖放到合适的位置,就可以使用这个工具栏提供的相应的工具进行某些操作。

激活工具栏使用菜单View/Toolbars,然后选中相应的菜单即可。

1.4、 元素选择窗口

在元素选择窗口中,有五项内容:Simulation、Designer、System、Type、System Function。其中Simulation中将显示当前建立的模型中的所有元素列表;Designer中显示当前Designer Elements中的所有元素列表;System中显示系统默认的特殊地点;Type中显示Witness系统中可以定义的所有元素类型;System Function中显示Witness系统中可以定义的所有函数类型。

该窗口的显示和隐藏可以使用菜单View/Element Selector,或者使用element工具栏中的图标按钮。

1.5、 状态栏

状态栏位于屏幕的最底部,用于显示某一时刻的工作状态或者鼠标光标位置的工具栏按钮的作用。

1.6、 用户元素窗口(Designer Elements)

系统提供的默认用户元素窗口中提供了各种元素的可视化效果的定义,不过在建模过程中,当这些缺省设置并不能很好的表示实际系统,用户可以在该窗口定义自己的相关元素的名称、可视效果等,保存以便日后的使用。定义方法可以鼠标右击页框标题,将出现弹出式菜单,其中具有菜单项“Add New Designer Group”、“Rename Designer Group”、“Delete Designer Group”、“Load Designer Group”,可以进行添加新页框、重命名本页框、删除本页框、加载原有设计元素组。向页框中添加自定义元素的步骤一般也分为Define、Display、Detail三步。页框的背景色设置同系统布局窗口背景色的设置。自定义元素设定完毕之后,需要保存成*.des文件,通过菜单File/Save As,然后选定文件类型为Designer Element Files(*.des),输入文件名即可。

1.7、 系统布局区

系统布局区也叫系统布局窗口,在布局窗口中,设置实际系统构成元素的可视化效果以及它们的二维相对位置,可以清楚的显示实际系统的平面布局图。Witness一共提供了八个窗口,可以通过这些窗口,使得仿真项目以不同的角度显示其可视化效果。

图3 窗口控制对话框

对系统布局窗口的设置主要有三项内容:添加元素、设置窗口名称以及窗口背景色。如何添加元素将在后面本章最后一部分内容;设置窗口名称以及窗口背景色可以通过选择菜单项Window/Control„,将弹出如图3所示的窗口。

在Name下的文本框中输入窗口的名称;点击Background Color下的颜色按钮,在弹出的调色板中选定背景颜色;选择Zoom中的比例可以放大或缩小布局窗口中元素的尺寸。

2.WITNESS建模元素

现实的商务或事物系统总是有一系列相互关联的部分组成的,比如制造系统中的原材料、机器设备、仓库、运输工具、人员、加工路线或运输路线等,服务系统中的顾客、服务台、服务路线等。Witness软件使用与现实系统相同的事物组成相应的模型,通过运行一定的时间来模拟系统的绩效。模型中的每个部件被称之为“元素(Element)”。该仿真软件主要通过如下五类元素来构建现实系统

的仿真模型:离散型元素、连续型元素、运输逻辑型元素、逻辑型元素、图形元素。

2.1 离散型元素

表示所要研究的现实系统中可以看得见的、可以计量个数的物体,一般用来构建制造系统和服务系统等。主要包括:

零部件或实体(Part or Entitie);机器(Machine);输送链(Conveyor);缓冲区或仓库(Buffer);车辆(Vehicle);轨道(Track);劳动者(Labor);路径(Path);模块(Module)

2.2 连续型元素

同离散型元素相对应,这种类型的元素用来表示加工或服务对象是流体的系统,比如化工、饮料等。主要包括:

流体(Fluid);管道(Pipe);处理器(Processor);容器(Tank)

2.3 运输逻辑型元素

用于构建物料运输系统。主要包括:

运输网络(Network);单件运输小车(Carriers);路线集(Section);车辆站点(Station)

2.4 逻辑元素

用来处理数据、定制报表、建立复杂逻辑结构的元素,通过这些元素可以提高模型的质量和实现对具有复杂结构的系统的建模。主要包括:

属性(Attribute);变量(Variable);分布(Distribution);函数(Function);文件(File);零部件文件(Part file);班次(Shift);

2.5 图形元素

图形元素可以将模型的运行绩效指标在仿真窗口形象的表现出来。主要包括:

时间序列图(Timeseries);饼状图(Pie chart);直方图(Histogram)。

3 离散型元素

离散型元素是为了表示所要研究的现实系统中可以看得见的、可以计量个数的物体,一般用来构建制造系统和服务系统等。主要包括:零部件(Part)、机器(Machine)、输送链(Conveyor)、缓冲区(Buffer)、车辆(Vehicle)、轨道(Track)、劳动者(Labor)、路径(Path)、模块(Module)。

3.1 零部件(Part)

零部件是一种最基本的离散型元素,它可以代表在其他离散型元素间移动的任何事物。如产品、大公司全程处理的项目、电话交流中一个的请求、微型电子元件、超市中川流不息的人、医院中的病人、机场上的行李等等。

在模型中,零部件的使用方法有很多种。我们可以单独使用零部件,可以将多个零部件组装成一个零部件,也可以将一个零部件分成许多零部件。零部件可以被同批处理,可在同一时间被批量或单个创建,在模型的处理过程中还可以转变为另一些零部件。

零部件进入模型主要有两种方式。第一种方式是被动式的,只要有需要,零部件可以无限量进入模型。如在生产性企业中,一些零部件堆放在仓库中,当生产需要时,可以随时把它取出来供应生产。第二种方式是主动式的,零部件可以间隔固定的一段时间(例如,每隔10分钟)进入模型;可以按照一定的随机分布进入模型,如顾客到达商店的时间间隔服从均匀分布;也可以以不规则的独特的时间间隔(例如,10分钟,20分钟,30分钟)到达模型中;还可以以重复的不规则的方式进入模型,例如,一个餐馆,有50位“顾客”(零部件)在上午8点到达那里,10位顾客在上午8:01至11:59到达那里,50位在中午12点到达,50位在12点半到达等等,每星期都如此。在该方式中,我们可以对零部件达到模型的时间、时间间隔、到达最大数量等选项进行设置。

3.2 机器(Machine)

机器是获取、处理零部件并将其送往目的地的离散元素。不同的机器代表不同类型的处理过程。一台机器可建立不同的模型,它可以代表有装载、旋转、卸载、空闲和保养这五个状态的一台车床,也可以代表有空闲、工作、关闭三个状态的一个机场登记服务台(将旅客与他们的行李分开,并发放登机卡),还可以

代表有焊接,空闲和保养三个状态的一个机器人焊接工等等。

Witness提供了七类机器来建立不同类型处理过程的模型:(1)单处理机(single)。单处理机只能一次处理一个部件,单输入单输出。(2)批处理机(batch)。批处理机一次能处理多个部件,n个部件输入n个部件输出。(3)装配机(assembly)。装配机可将输入的多个零部件组装成一个组件输出,n个部件输入1个部件输出。(4)生产机(production)。一个原部件输入到生产机中能输出许多部件。1个部件输入n个部件输出。如单片钢板的切割,会得到一些成品和边角料。我们要注意的是,生产机不仅输出原部件,而且输出带有规定生产数目的部件,就如相片的加洗,在复制的最后,我们得到了需要数目的复制品再加上原件。(5)通用机(general)。在通用机器中输入一批部件,输出的是相同数目或不同数目的一批部件,这个处理过程可能存在单个循环或多重循环。(6)多周期处理机(multiple cycle)。多周期处理机是一台特殊的通用机器,它模拟机器实行的是经过许多独立的处理周期来完成一次操作。可以为每个周期指定不同的输入、加工时间、输出数量。(7)多工作站机(multiple station)。一台多工作站机工作起来就像许多台联结在一起的机器。它有多个不同的部件加工位置,每个部件将依次通过每一个工作站,完成一系列的工序。

3.3 输送链(Conveyor)

输送链是一种可以实现带传送和滚轴传送的离散性元素。如机场里运送行李的传送带,将卡车车体沿生产线移动的传送装置,将空纸盒送往包装操作的滚轴传送装置等等都可以称为输送链。

Witness提供了两种输送链:(1)固定式(Fixed)。这是一种保持部件间距不变的输送链。假如该输送链停了,它上面的部件间的距离仍保持不变。(2)队列式(Queuing)。这种输送链允许部件的累积。假如该输送链上的部件被阻塞,部件仍不断的滑向一起,直到这个输送链被塞满。

输送链通常把部件从一个固定点移到另一个固定点。部件从输送链后段进入,并向前移动。我们能确定部件在输送链上的特定位置,并可以将部件装载或卸载到特定的位置。不管是固定式输送链还是队列式输送链都可能发生故障,需要工人来修理。在设计输送链时,我们可以对它的长度、最大容量、部件移动每单位长度所需的时间等项进行设定。

3.4 缓冲区(Buffer)

缓冲区是存放部件的离散元素。例如存放即将循环焊接的电路板,即将用于旅行的真空包装食品的储藏区,位于加工区的盛放产品部件的漏斗形容器等等物体都称为缓冲区。

缓冲区是一种被动型元素,既不能像机器元素一样主动获取部件,也不能主动将自身存放的部件运送给其他元素;它的部件存取依靠系统中其他元素主动的推或拉。我们可利用缓冲区规则,使用另一个元素把部件送进缓冲区或者从缓冲区中取出来。部件在缓冲区内还按一定的顺序整齐排列(例如,先进先出,后进先出)。

我们可以将缓冲直接与机器相结合,在一台机器中,设置一个输入缓冲和一个输出缓冲,这种缓冲区我们把它称之为专用缓冲区。专用缓冲区不是一种独立的元素,我们可以在设置机器元素的输入和输出规则时,设置它的输入缓冲和输出缓冲。

3.5 车辆(Vehicle)

车辆是一种离散元素,我们用它来建立的装置模型可以将一个或多个部件从一个地点运载到另一个地点。(例如,卡车,起重机,铲车)。

车辆沿着轨道(track)运动。虽然车辆实际上自身在移动,但却是轨道定义了物理布置图,并包含了使系统运行所需的逻辑理论。

在Witness里建立运输系统应按照如下两个步骤:

(1) 设计轨道布置图和运载路线。这需要创建所需的轨道和车辆,并且详细说明车辆在轨道之间移动所需的细节。在这一步不要考虑部件怎样装上车辆或怎样从上面卸载下来。只有将第一步设计好了,我们才可以进入下一步的工作。

(2) 详细说明我们所定义的车辆怎样来满足运输的需要。它有两种方式,可能是被动式的,也可能是主动式的。

3.6 轨道(Track)

轨道是一种代表车辆运输部件时所遵循的路径的离散元素。它们也定义了车辆装载,卸载或停靠的地点。

车辆所走的路径是由一系列轨道组成的。每条轨道都是单向的;假如你需要

一条双向的轨道,只需定义两条沿相同线路但方向相反的轨道就可以了。车辆在“尾部”(rear)进入轨道并向“前部”(front)运动。一旦到达前部,该车辆可以进行装载,卸载或其它的操作。然后它将移动到下一条路线的尾部并开始向那条路线的前面运动。

根据一个车辆的类型来规定它的路径是可行的,所用方法与根据部件类型来规定它们在元素间的路径一样。在仿真运行的开始,所有的车辆沿一条特定轨道进入;这与部件的初次进入类似。

3.7 劳动者(Labor)

劳动者是代表资源(例如,工具或操作工人)的离散元素,它一般负责对其它元素进行处理、装配、修理或清洁。如从事精密工作的机器人、一台选矿机或一个固定装置都是劳动者。

我们通过对特定的劳动者的属性设置来建立同一劳动单位在不同技术水平下的模型。我们可以对各种类型的劳动者设置不同的班次,可以在模型中加入班次的构成,并且用不同的工作方式,休息和加班时期来进行试验。假如另外一个元素要完成更重要的任务,我们可以从元素中撤离劳动者到该元素中去。这就是劳动者使用的优先权。

3.8 路径(Path)

路径是设定部件和劳动者(或者其它资源)从一个元素到达另一个元素的移动路程的离散元素。我们在模型中可以用它来代表现实系统中行程的长度和实际路线。

不论何时,当运动时间对于两项操作非常重要时,路径对于提高模型的精确性是特别有用的。在一个制造单元的模型里,一个操作者要控制数台机器的操作,在各台机器之间的走动时间是完成整个任务总时间的重要组成部分。此时,路径就起到了作用。路径还有许多其它的用途,例如,选定仓库贮存的应用模型,详细的零售规划的模型,机场或医院的规划等等。

只有在必要时我们才使用路径。假如模型中的元素有很长的周期时间而且它们间的行程很短,那就不必去增加模型的复杂性了。路径的使用应基于建模对象(例如,在某些情况下用轨道或车辆代替可能会更合适)。

3.9 模块(Module)

模块是表示其他一些元素集合的离散元素。有了模块,在模型内部,我们就可以建立具有自处理功能的模型。例如,一家工厂的油漆店可能由许多Witness的元素构成。我们可以定义一个包括所有这些元素的“PSHOP”模块。然后对这家油漆店以外的其它元素定义一些规则,比如说推入“PSHOP”。

使用模块有几种方式:(1)详述模块里的一个处理过程并且重点检查在这个特殊处理过程中的各个元素;(2)详述模块里的一个处理过程但随后将这个模块拆毁以便于能着重于顶层模型的设计。元素从模型到达模块的一个输入点(或元素),经过模块内适当的元素,然后经由这个模块的一个输出点(或元素)返回模型。(3)为模块输入一个近似的周期时间以便能运行整个模型,并在随后填充模块里的元素。假如模块使用一个周期时间,我们也能生成这个模块的报告(4)详述模块中的一个处理过程,将它保存到一个模块文件中(*.mdl),这个文件包含所有关于这个模块的信息,元素和图标等等。然后把这个文件载入另一个Witness模型中。(5)在一个模块中可以创建另一个模块。这就是阶层模型。(6)可以利用一个特殊的模块结构存储对话框所需元素的数据来建立自己的对话框。(7)我们还可以用密码来保护模块。

4 连续型元素

同离散型元素相对应,连续型元素用来表示加工或服务对象是流体的系统,比如化工、饮料等。主要包括:流体(Fluid);管道(Pipe);处理器(Processor);容器(Tank)。

5 运输逻辑型元素

运输逻辑型元素用于建立物料运输系统。主要包括:运输网络(Network);单件运输小车(Carriers);路线集(Section);车辆站点(Station)

6 逻辑元素

逻辑元素是用来处理数据、定制报表、建立复杂逻辑结构的元素,通过这些元素可以提高模型的质量和实现对具有复杂结构的系统的建模。主要包括:属性(Attribute);变量(Variable);分布(Distribution);函数(Function);文件(File);零部件文件(Part file);班次(Shift);

6.1 属性(Attribute)

属性是反映单个部件,劳动者,机器或单件运输小车特性的元素。例如,我们可以用属性来形容颜色,大小,技能,成本,密度,电压或数列等。

我们可以在仿真的过程中改变属性的值。例如,一个部件的“颜色”属性的值开始是“灰”,在部件通过了一台“着色”机器之后变成了红色。可以用活动“action”来设置、检查或改变任何属性的值。Witness提供了许多能用于部件,劳动者,车辆,机器或者单件运输小车的系统属性,另外我们也可以自己定义用于部件,劳动者,车辆,机器或单件运输小车的属性。

Witness本身已经包含了一些能使用的属性,这些属性就叫做系统属性。每个部件,单件运输小车,车辆,机器和劳动者都带有“PEN,ICON,DESC and TYPE”属性;“CONTENTS and FLUID”属性用于盛放液体的部件;“STAGE,NSTAGE,R_SETUP and R_CYCLE”属性则是用于部件走的路线。

当创建部件属性时,可以将它分配给十一个组(0组--10组)中的任何一组,然后在部件详细的属性设置页上,将该组分配给该部件。部件的属性值可以是变量或者是常数。

当创建劳动者,单件运输小车,机器或车辆的属性时,必须把这些属性分配给0组。劳动者,单件运输小车,机器和车辆的属性永远是变量。

6.2 变量(Variable)

变量包含了一个值(或一系列的值,假如这个变量的数量大于1)。当定义一个变量时,我们必须还要选定它的数据类型,这个数据类型说明了变量所含有的数据类型(整型,实数型,名型和字符型)。

Witness共有三种类型的变量:

(1)系统变量。这些变量是系统已经创建好了(I, M, N, TIME, VTYPE和ELEMENT)的,并且具有特殊意义的变量,它们存储仿真中常用的数据,例如,TIME表示现在的仿真时钟。

(2)全局变量。全局变量是我们自己利用“Define, Display和Detail”过程创建的作为Witness元素的变量。

与局部变量比较起来,用全局变量的好处在于:

 柔性。我们可以从模型的任何地方检查或更新一个全局变量的值。例如,

变量“TOTAL_SHIPPED”能被模型中用于将部件送出模型的所有的元素更新。同样,任何函数,行为规则等等都可以读取“TOTAL_SHIPPED”变量中包含的值。

 我们能生成全局变量的报告,但不能生成局部变量的。  我们能在模型中显示全局变量和它们的值。

 全局变量可以被设定为数组。我们能通过给一个全局变量1以上的下标来

创建数组(行,列和数据表格),我们最多能创建15维的数组。  我们能创建一个整型或实数型的变量作为动态变量,这意味着它能容纳

多个值。例如,一个动态变量能包含每个部件离开模型的仿真时间。在仿真的开始这个变量里没有值,然后当第一个部件离开时有了1个值,当第二个部件离开时有2个值,以此类推。

(3)局部变量。局部变量是一个我们能自己在使用它的活动或函数中创建的变量。局部变量只能是一个数,而不能是带有下标的数组。

局部变量的定义方式如下: DIM 变量名 {AS 数据类型} {!注释}

如果省略了数据类型的定义,系统赋予变量默认的数据类型为整型integer。 用局部变量而不用全局变量的好处在于:a. 安全。局部变量只有在一个行为(action)或函数执行的时候才存在,所以不可能在另一个行为(action)或函数中使用或修改它。例如,变量“TOTAL_SHIPPED”已在一个机器的“action”中被定义了,直到结束它都只能被那一系列行为更新或读取,而不能被这台机器的其它行为或模型中的其它元素更新或读取。b. 快速。当行为和函数使用局部变量而不是全局变量时,它们能被更快地执行。c. 方便。局部变量在使用它们的行为中被定义,不必像全局变量那样先定义它们。

6.3 分布(Distribution)

分布是一个逻辑性元素,我们从“现实世界”搜集数据,并用分布代表模型中具有规律性的变化。例如,假设观察证明某一种特定部件的打磨操作需要5至10分钟,但大部分部件通常是8.2分钟完成,我们就可以用分布把这些信息引入模型中。

Witness提供了一些标准分布。其中有一些是将一系列理论分布返回到随机样本的分布。Witness包含的理论分布曾在很长一段时间内被广泛研究并且被认为在仿真中是最有用的。还有一些是一系列整数和实数的分布。当使用一个标准分布时,必须为其输入一个伪随机数流和参数。

假如没有标准分布适用的情况,或者我们收集的现实生活中的数据是在未研究领域中的,我们可能需要在Witness中建立自己的分布并从中采样。我们能创建整型,实数型和名称型的分布,并且它们可以是离散(从分布中选择实际值)的或是连续的(从一串连续值中选择一个值)。

总的来说,假如我们有详尽的现实生活的数据,那就创建自己的分布。如果没有,那么就选择Witness提供的最适当的标准分布。

6.4 函数(Function)

函数元素是能返回有关模型状态的信息或者使得模型显得更具有真实性的一组命令集合。Witness提供了大量能直接使用的函数,同时我们也能创建自己的函数。

如下两种情况创建自己的函数是特别有用的: (1)对许多元素使用相同的操作。 (2)这些行为模块包含了很多说明。

例如,假设在计算一台机器的周期时间时要考虑多种因素,而我们在周期时间表达式中的输入又不能超过一行,在这种情况下,我们就可以自己创建一个函数,想写多少行就写多少行,然后只要把这个函数的名称输入这台机器的周期时间表达式区域就行了。

6.5 文件(File)

文件是可以使我们从仿真模型外部将数值输入模型(从一个“READ”型文件)或从模型中输出值(到 一个“WRITE”型文件)的一个元素。例如,我们能从其他软件生成的文件读入如周期时间这样的值,或者生成适当的报告。

使用文件时我们应注意以下几点:

 可以用文字处理工具或文本编辑工具(或其它能生成简单ASCII 文本文

件的程序)来创建“READ”文件。在这样的文件中以“!”符号开头的行被

略去不读。

 不要在仿真运行时对同一个文件进行读和写的操作。

 假如有两个模型在仿真运行,应该保证它们不对同一个文件进行写入操

作,但从同一个文件中读出是可行的。

 假如要在运行中检查“WRITE”文件,应该在检查前先把它关掉,这样才能

检查到一个完全更新了的文件。

6.6 零部件文件(Part file)

“READ”型零部件文件是从外部数据文件读入零部件清单到模型中去的一个逻辑元素。 “WRITE”型零部件文件是将零部件清单写入外部文件的逻辑元素。

零部件文件可用于从一个模型中生成输出,然后将其用于另一个模型中。零部件文件对于追溯零部件离开仿真的确切时间和零部件在那时的属性值也是很有用的。使用零部件文件应注意以下两点:

 不要在一个仿真运行时对同一个文件进行读和写的操作。

 假如有两个模型在仿真运行,应该保证它们不对同一个文件进行写入操

作,但是从同一个文件中读出是可行的。

6.7 班次(Shift)

班次是一个能用来创建一个班次模式或一系列班次模式的逻辑元素,它作用于一连串的工作和非工作时期。其它元素仿真班次工作时可以引用班次模式。我们可以将班次应用于下列元素:

缓冲 运输网络 传送装置 饼状图 流体 管道 劳动者 槽 机器 时间序列 零部件 车辆 零部件文件

我们可以以详细的方式输入包含有班次数据的“.sft”文本文件。注意,班次数据不能涉及到不存在的次级班次(sub shift)。

7 规则

我们一旦在模型中创建了元素,就必须说明零部件,流体,车辆和单件运输小车在它们之间是怎样流动以及劳动者是怎样分配的,这就要用到规则。

Witness有几类不同的规则:

 输入规则( 这类规则包括装载和填入规则)。 输入规则控制输入元素的

零部件或者流体的流量。

 输出规则( 这类规则包括连接,卸载,空闲,单件运输小车进入,车辆

进入和缓冲区退场管理)。 输出规则控制从元素中输出的零部件,流体,车辆或者单件运输小车的流量。

 劳动者规则。 劳动者规则可用来详细说明劳动者的类型和机器,输送链,

管道,处理器,容器,路线集或者工作站为了完成一项任务而需要的劳动者的数量。

我们可以利用可视化规则对话框输入简单的规则,并且在模型窗口中显示流动方向;或者可以通过使用规则编辑器输入更复杂的规则。

7.1 输入规则(Input Rule)

输入规则控制零部件或者流体进入在系统中的流动过程。 例如: 一台空闲机器要启动的话,会按照输入规则输入零部件直到有足够的零部件启动它;一台尾部有空间的输送链在每向前移动一个位置时,按照输入规则输入零部件。

可以通过以下几种方法输入零部件或者流体:  具有相同名称的一组元素。

 一组元素中的一种特殊的元素( 需要指定那种元素的下标)。  在模型外的一个特定的位置(WORLD)中得到零部件或流体元素。

设定输入规则的方法主要有两种:

 通过元素细节(detail)对话框中的“FROM”按钮

首先选中对象,然后双击鼠标左键,在弹出式detail对话框中的general页中,点击该按钮就显示出输入规则编辑器。  使用可视化输入规则按钮

图7.1 输入规则对话框

首先选中对象,然后点击Element工具栏上的“Visual Input Rules”图标,将会显示如图7.1的输入规则对话框,然后进行输入设定。

通过这两种方法设定了元素的输入规则后,都会使得元素detail对话框general页框中的“FROM”按钮下方,显示出元素当前的输入规则的名称。当创建一个元素的时候,Witness会自动的给它一个默认的规则——WAIT,表示它不能接收零部件或者流体。为了规定零部件和流体通过模型时的路线,我们必须用一个其他的规则来代替WAIT规则。

要注意的是,在设定输入规则之前要先弄清楚零部件,流体,车辆和单件运输小车的在模型中的路径。我们不能把它们弄反了,举例来说,我们不能在元素A向元素B输入零部件的同时,元素B向元素A也输入零部件。另外,还可以考虑使用零部件路线(ROUTE)来控制它们通过模型的路线。

Witness提供的可以在输入规则使用的命令有: BUFFER FLOW LEAST MATCH MOST PERCENT PULL RECIPE SELECT SEQUENCE WAIT

7.2 输出规则(Output Rules)

输出规则控制着当前元素中的零部件,流体,车辆和单件运输小车输出的目的地和数量等。例如:一台机器在完成对零部件的加工后按照一个输出规则将零部件输出到另一台机器上。要是它出了什么故障不能这样做,那将会出现堵塞向现象;当一个零部件到达一个有输出规则的输送链前方时,输送链将把零部件输出,如果输送装置由于故障不能将零部件输出的话,这里将会出现堵塞(固定输送链)或者排长队(队列式输送链);车辆到达有输出规则的轨道前方的时候,轨道把车辆输送到另外一个轨道上面,要是轨道输送失败,路线将会变的堵塞;一台有输出规则的处理器完成对流体的处理后,把流体输出;一单件运输小车到达一个有输出规则的路线集的时候,路线集输出它到下一路线集。

可以输出零部件或者流体到:(1)具有相同名称的一组元素;(2)一组元素中的一种特殊的元素(指定该元素的下标);(3)模型外的一个特定的位置(SHIP,SCRAP,ASSEMBLE,WASTE,CHANGED,ROUTE或者NONE)。

设定输出规则的方法主要有两种:

 通过元素细节(detail)对话框中的“TO”按钮

首先选中对象,然后双击鼠标左键,在弹出式detail对话框中的general页中,点击该按钮就显示出输出规则编辑器。

 使用可视化输出规则按钮

图7.2 输出规则对话框

首先选中对象,然后点击Element工具栏上的“Visual Output Rules”图标,将会显示如图7.2的输出规则对话框,然后进行输入设定。

元素detail对话框general页框中的“TO”按钮的下方,Witness会显示元素当前的输入规则的名称。当我们创建一个元素的时候,Witness会自动的给它一个默认的规则——WAIT,表示它没有传送零部件或者流体到其他元素的规则。为了规定零部件和流体通过模型时的路线,我们必须用一个其他的规则来代替WAIT规则。

输出规则的注意点跟输入规则相类似,设置输出规则时,同样应先搞清楚零部件,流体,车辆和单件运输小车的流动路线,也可考虑使用零部件路线记录来控制它们通过模型的路线。

Witness提供的可以在输出规则中使用的命令有: BUFFER CONNECT DESTINATION FLOW LEAST MOST PERCENT PUSH RECIPE SELECT SEQUENCE WAIT

7.3 劳动者规则(Labor Rules)

劳动者规则概述

机器,输送链,管道,处理器,容器,路线集和工作台都需要劳动者才能完成任务。劳动者规则可以让我们详细说明实体元素为完成任务所需要的劳动者类型和数量。我们可以通过创建劳动者规则来完成的任务有:调整机器,并为它设定时间周期或修理它;修理输送链;帮助流体通过管道,并且做好清洁、清洗和修理的工作;帮助处理器处理流体,并且做好填入、清空、清洁和修理工作;帮助流体通过管道,或做修理工作;修理各种类型的工作站,在行为站做好进入、处理、退出动作,在装载(卸载)站做好装载(卸载)工作,在停靠站做好停靠工作;修理路线集。

可以使用元素细节对话框进入劳动者规则。如果一个元素需要劳动者,点击元素细节对话中的对应按钮。一个细节对话框可能包含几种劳动者规则按钮,例如,一台机器就有装配,循环,修理几种劳动者规则。劳动者规则按钮旁边如果有打钩的标记,则表明我们已经为这项工作建立了劳动者规则;如果有打叉的标记,则表示我们没有为这个工作建立劳动者规则。点击劳动者规则按钮后,弹出规则编辑器,在这里我们可以输入劳动者规则。

可以使用“Visual Labor Rules”按钮,来输入劳动者规则,但要注意在我们使用元素的劳动者规则之前,我们必须建立Labor元素。输入劳动者规则最简单的方法是对元素的Labor规则编辑框中输入需要的劳动者元素的名称,例如,如果一台机器需要一个操作者处理零部件,只需要输入OPERATOR作为劳动者规则就可以了,当然先要定义一个Labor元素,其名称叫OPERATOR。

因篇幅问题不能全部显示,请点此查看更多更全内容

Top