流水线生产系统WITNESS建模与仿真
(二)
3.2.4 输入/输出规则设计
输入/输出规则设计是元素细节设计的一部分,主要是设定零部件在系统各个地点(机器、输送链、缓冲区等)之间的移动规则
。在本模型中,需要设计的输入输出规则主要有加工设备怎样获得被加工的零部件、加工完毕如何将零部件送出该设备,以及output变量怎样累积加工完毕零件的数量。
(l) 机器输入/输出规则设计
称重机器Weigh的输入规则设计:模型中假设Widget数量足够多,从来没有出现过缺货,就表示称重机器空闲时都可以获取到零件,像这种情况,一般总是假设零件为被动式的(在Widget的细节设计中,保留了其进入模型的类型为缺省的Passive),由主动的机器在空闲时区提取它,即本案例中称重机器的输入规则为提取被动式的零部件。操作步骤为:(1)选中Weigh机器;(2)鼠标单击Element工具栏中的Visual
Input Rule设计图标, 出现Input
Rule for
Weigh对话框,规则文本框的缺省值为Pull ;(3)在规则文本框中输入“PULL Widget out of
WORLD”,该规则定义了机器Weigh在空闲时,将从本系统模型的外部(WORLD)拉进一个Widget进行加工;(4)单击OK键确认
,完成Weigh设备的输入规则设计。该设计过程在界面上的操作步骤和效果参看下图。
称重机器Weigh的输出规则设计:称重机器将零件加工完毕后要送到其后面的输送链C1上,然后由C1将零件送给后续的清洗工序加工。称重工序输出规则为输送到输送链C1,具体设计步骤为:(1)选中Weigh机器;(2)鼠标单击Visual Output Rule图标,将弹出Output Rule for Weigh的设计对话框,此时该对话框中的规则框内仅有缺省输出规则:PUSH ;(3)鼠标单击输送链C1的可视化图标,则在输出设计对话框中形成PUSH C1(1)的输出规则,即称重机器加工完零件后,将零件推到输送链C1(1)的末端;(4)点击 输出规则对话框中的OK按钮,完成称重设备的输出规则设计。该设计过程在界面上的操作步骤和效果参看下图。
清洗机器Wash输入/输出规则设计:Wash机器的输入规则为从输送链C1的前端获取零件Widget,输出规则为加工完毕后送入输送链C2的尾端。其输入规则的屏幕操作过程为:(1)选中Wash机器;(2)鼠标单击Element工具栏中的Visual
Input Rule设计图标, 出现Input
Rule for
Wash对话框;(3)鼠标单击输送链C1的可视化图标,则在输入设计对话框中形成PULL
C1(1)的输入规则,即清洗机器空闲时,总是搜索输送链C1(1)最前端的零件放置位,如果该位置有零件,则取过来进行加工;如果该位置没有零件,则该机器将保持等待,直至该位置有零件;(4)点击OK按钮,完成清洗机器输入规则的设定。该设计过程在界面上的操作步骤和效果参看下图。
清洗机器输出规则设计过程为:(1)选中Wash机器;(2)鼠标单击Visual Output Rule图标,将弹出Output Rule for Wash的设计对话框,此时该对话框中的规则框内仅有缺省输出规则:PUSH ;(3)鼠标单击输送链C2的可视化图标,则在输出设计对话框中形成PUSH C2(1)的输出规则,即清洗机器加工完零件后,将零件推到输送链C2(1)的末端;(4)点击 输出规则对话框中的OK按钮,完成清洗设备的输出规则设计。该设计过程在界面上的操作步骤和效果参看称重机器输出规则设计的图示。
加工机器Produce输入/输出规则设计:Produce机器的输入规则为从输送链C2的前端获取零件Widget,输出规则为加工完毕后送入输送链C3的尾端。其输入规则的屏幕操作过程为:(1)选中Produce机器;(2)鼠标单击Element工具栏中的Visual
Input Rule设计图标,
出现Input Rule for Produce对话框;(3)鼠标单击输送链C2的可视化图标,则在输入设计对话框中形成PULL
C2(1)的输入规则,即加工机器空闲时,总是搜索输送链C2(1)最前端的零件放置位,如果该位置有零件,则取过来进行加工;如果该位置没有零件,则该机器将保持等待,直至该位置有零件;(4)点击OK按钮,完成加工机器输入规则的设定。该设计过程在界面上的操作步骤和效果参看清洗机器输入规则设计的图示。
加工机器输出规则设计过程为:(1)选中Produce机器;(2)鼠标单击Visual Output Rule图标,将弹出Output Rule for Produce的设计对话框,此时该对话框中的规则框内仅有缺省输出规则:PUSH ;(3)鼠标单击输送链C3的可视化图标,则在输出设计对话框中形成PUSH C3(1)的输出规则,即加工机器加工完零件后,将零件推到输送链C3(1)的末端;(4)点击 输出规则对话框中的OK按钮,完成Produce设备的输出规则设计。该设计过程在界面上的操作步骤和效果参看称重机器输出规则设计的图示。
检测机器Inspect输入/输出规则设计:Inspect机器的输入规则为从输送链C3的前端获取零件Widget,输出规则为加工完毕后送出系统。其输入规则的屏幕操作过程为:(1)选中Inspect机器;(2)鼠标单击Element工具栏中的Visual Input Rule设计图标, 出现Input Rule for Inspect对话框;(3)鼠标单击输送链C3的可视化图标,则在输入设计对话框中形成PULL C3(1)的输入规则,即检测机器空闲时,总是搜索输送链C3(1)最前端的零件放置位,如果该位置有零件,则取过来进行加工;如果该位置没有零件,则该机器将保持等待,直至该位置有零件;(4)点击OK按钮,完成检测机器输入规则的设定。该设计过程在界面上的操作步骤和效果参看清洗机器输入规则设计的图示。
检测机器输出规则设计过程为:(1)选中Inspect机器;(2)鼠标单击Visual Output Rule图标,将弹出Output Rule for Inspect的设计对话框,此时该对话框中的规则框内仅有缺省输出规则:PUSH ;(3)鼠标单击输出规则对话框上的Ship按钮,则在输出设计对话框中形成PUSH SHIP的输出规则,即检测机器检测完零件后,将零件发运出去,即零件退出系统;(4)点击输出规则对话框中的OK按钮,完成Inspect设备的输出规则设计。该设计过程在界面上的操作步骤和效果参看下图。
3.3.5 机器颜色标识设计
在模型运行过程中,模型元素会经历多种不同的状态,WITNESS软件为多种元素设计了标准化的颜色标识键,例如黄色通常表示空闲、等待,绿色表示正常工作,红色表示故障、维护维修等。在本模型中,每个机器设备可视化图标的右下角有个正方形图标,该图标的颜色将在仿真运行过程中随着机器状态的变化而呈现不同颜色。为了便于理解不同颜色表示的机器状态,这里先设置机器设备的颜色标识。
设计步骤为:(1)通过WITNESS软件菜单View->Keys->Machine,打开机器标志键设计对话框;(2)在对话框中点击Draw按钮,当光标变成十字尖头的形状,将光标移动到布局区中合适的位置,然后点击鼠标左键,完成标志键的设计。设计过程和设计后的效果如下图。
从上图的机器标识键中可以看出,机器状态显示图标与机器状态之间的关系如下:
白色---机器处于不当班时间;
黄色---等待零件的状态,即机器处于空闲状态;
绿色---机器处于忙的状态,即正常作业状态;
粉红色---机器处于阻塞状态,即机器完成了当前的操作,但是因为其后续输出对象在这个时间不能接受零件的输入,则该机器上面的零件就不能送到其后续工序,机器处于阻塞状态,也就不能进行下一个作业的加工;
兰色---机器处于换模状态,或者等待换模操作工的状态;
红色---机器处于故障维修状态,或者等待故障维修工的状态;
蓝色---机器处于等待操作员工状态,即机器正常作业过程需要员工辅助作业,但是该类员工人数不足,不能准时到达该机器,则该机器的作业处于暂停状态。
4. 运行模型
4.1
仿真运行工具栏
首先介绍运行工具栏以及工具栏中各个按钮的作用。如
下图所示,
:按钮reset进行仿真的复位操作,点击该按钮,系统仿真时钟和逻辑型元素(变量、属性、函数)的值将置零;
:停止仿真运行的按钮;
:step按钮控制模型以步进的方式运行,同时在interact box窗口中显示仿真时刻所发生的事件,便于理解和调试模型;
:run按钮控制模型的连续运行,如果没有设定运行时间,模型将一直运行下去,直到按stop按钮,如果设定了运行时间,模型连续运行到终止时刻;
:stop run at包括一个按钮和一个输入框,用来设定仿真运行时间,按钮决定仿真是否受到输入框中的输入时间点控制,输入框输入时间点;
:walk on/off包括一个按钮和一个滑动条,用来设定仿真连续运行时,仿真运行的速度。
4.2. 结果分析
本例中,在运行工具栏run toolbar中按下stop run at按钮,在输入框中输入模型运行终止时间480,然后点击run按钮开始运行模型,直至仿真模型运行至480时刻点自动停止运行。
WITNESS软件 设计了各种类型建模元素的标准统计项目,仿真运行过程中系统将自动收集 这些统计数据,在仿真模型停止后,可以通过打开各种(类)元素的统计报告窗口进行查看,分析系统的运行瓶颈和可能改善点。
4.2.1
打开元素统计报告窗口的方法:
(1)左键选中所要查询的元素,
点击鼠标右键,在弹出快捷菜单中选择“Statistics...”菜单项,即可弹出该元素的统计报告窗口。
(2)左键选中所要查询的元素,单击Reports菜单栏
,在弹出的下拉菜单中选择“Statistics...”菜单项,即可弹出该元素的统计报告窗口。
(3)左键选中所要查询的元素,点击Reports工具栏中的第一个按钮,如图中红色区域,,将鼠标放置在该按钮上,会显示“Staticstics Report”文字提示,即可弹出该元素的统计报告窗口。注:如果WITNESS软件界面没有改工具栏,请通过菜单:View->Toolbars->Reporting打开该工具栏。
4.2.2 模型元素统计分析
下面分别打开本模型中四类(Part、 Machine、 Conveyor、 Variable)元素的统计报告窗口,查看各元素的统计指标,并进行相关分析和说明。
(1)零部件Widget的统计指标
使用第一种方法打开Widget元素统计报告窗口如下所示:
上图为Part类型零件的标准统计报表,如果统计表格不是上图的竖列,而是横向的,使用图上红色方框区域进行横、竖向转换。Part统计项目含义如下表
统计项 | 含义 |
No. Entered | 该零件进入系统的数量 |
No. Shipped | 该零件被Ship掉的数量,即出系统的数量 |
No. Scrapped | 该零件作为废料抛起的数量 |
No. Assembled | 该零件被组装掉的数量 |
No. Rejected | 该零件被拒绝的数量 |
W.I.P. | 当前该零件的库存量 |
Avg W.I.P. | 在整个仿真时间段内,该零件的平均库存量 |
Avg Time | 所有零件在模型中平均滞留时间 |
Sigma Rating | 废品在总体中所占的比率,以Sigma方式表示出来 |
Widget元素统计报表说明:
零件Widget在480分钟这个时刻点由第一道工序Weigh提取进入模型的总数量为97个(No. Entered),通过最后一道工序Inspect检测完成并排出系统的Widget为91个(No. Shipped)。
因为在模型中,零件在各道加工工序上只是做简单的加工处理,没有设置报废和组装作业,所以零件Widget最后的统计中没有作为废料处置的(No. Scrapped),也没有被组装的(No. Assembled)。
因为零件Widget为被动型零件,由机器设备Weigh在空闲时提取进入模型,所以也就没有被拒绝的(No. Rejected)的零件。
在时刻点480,模型中零件的库存量为6,包括在机器上正处于加工的零件和在输送连上处于运输或排队状态的零件。
在整个仿真时间段内,模型中零件的平均库存量Avg W.I.P为平均库存量5.84;总的进入模型的97个零件在模型中平均等待时间Avg Time为28.92分钟。
因为模型中没有设置报废和次品的处理逻辑,所以零件的次品率为0%,折合为6西格玛率也是0。
(2)机器元素统计报告
统计4台机器设备的相关数据,如图13所示。从中我们可以看出,weigh机器是最繁忙的,其繁忙率为100%,这跟其主动获取零件有关 ,而其它三台设备的忙率均不是太高。
图13 机器统计结果
(3)输送链统计报告
统计3条输送线的相关数据,如图14所示。从中我们可以看出,三条输送线上平均零件数量均较低,它们的Avg
Size分别为0.99、0.97、0.95,即三条输送线上基本没有零件等待的情况发生。
图14输送链统计报表
备注:
在进行输入/输出规则设计过程中,使用了输入/输出规则:PULL和PUSH,以及特殊的地点变量WORLD和SHIP,下面对其解释如下:
输入规则Pull将从其它元素中拉动Part进入使用该规则的元素。如果Pull规则指定了几种输入的part,该规则将一次获取这些Part,直至条件满足。
注:如果使用Pull规则从输送链上获取Part元素,还可以指定从输送链的第几个位置获取Part元素。
语法:
PULL
其中,每个location的详细格式如下:
part_name:名型,为模型中part的名称
location_name:名型,可以是元素的名称,也可以是模块Module的名称,part将从该元素被拉出。
index_exp:整型,当输出Part的Location元素的对象数量多于1时,可以指定Pull规则具体的从该Location的第几个对象中提取Part,例如:如果Location的名称为Buffer001,那么Buffer001(2)表示Buffer001中的第二个对象。如果不指定Index_exp,Pull规则将从该Location元素的所有对象中提取适当的Part,顺序为Location(1),Location(2),......,Location(n).
position_exp:整型,当输出Part的Location为输送链时,可以指定Part从输送链的具体位置上被取出,如果不指定该数值,则Part将从输送链的尾部Rear被取出。
with labor_name:名型,指定输入规则是否需要Labor元素协助。
#labor_qty:整型,需要Labor元素协助时,需要的Labor元素的数量。
using PATH:名型,指定从一个Location中提取Part进入本元素,是否需要使用特定的路径,让part沿着该路径搬运至本元素。
示例:
PULL WIDGET FROM WORLD
在这个例子中,输入规则Pull从World(模型之外)拉动一个Part元素WIDGET进入模型。
PULL FROM ASSEMBLY, STORE(1), STORE(2)
在这个例子中,PULL规则将从ASSEMBLY, STORE(1), STORE(2)中提取Part,如果ASSEMBLY元素中没有Part了,则从STORE(1)中提取,如果STORE(1)中也没有Part了,则从STORE(2)中提取Part,如果这三个Location中都没有part了,则等待。
PULL FROM ASSEMBLY WITH ENGINEER#1 USING PATH
在这个例子中,Pull规则需要一个名为ENGINEER的labor从ASSEMBLY元素中提取Part,然后使用合适的路径运送回该规则的作用元素。
PULL WIDGET FROM ASSEMBLY(3) WITH ENGINEER#2 USING PATH, WIDGET FROM ASSEMBLY(5)
在这个例子中,Pull规则将使用两个工程师ENGINEER从第三个ASSEMBLY中提取Part,然后通过合适的路径运送到规则的作用元素,如果不能从ASSEMBLY(3)中提取part,将直接从第五个ASSEMBLY中提取名为WIDGET的Part。