车辆清洗Witness仿真模型


一、 模型描述
    在一个汽车美容店为顾客车辆进行清洗和打蜡服务,作业流程和时间见下图1,图中文字下的数字为对用作业所需的时间,当车辆到达时,发现尚有10辆车在等待清洗,则选择离开。建立仿真模型,要求:车辆每经过一个作业后,车体颜色发生变化(Pen);使用变量动态显示各工序和输送链的当前状态;使用变量动态显示各工序和输送链的利用率,WITNESS仿真模型下载
该模型建立有以下目的:
 元素Conveyor、Variable的使用;
 了解元素的States;
 系统属性Pen;
 状态函数Istate()、Putil()




图1 车辆清洗流程图


二、 模型建立
2.1 模型最终界面
模型最终界面如图2所示:



图2 模型最终界面


2.2 元素说明
该模型的元素主要由part元素、buffer元素、conveyor元素、machine元素以及variable元素组成。具体元素详见下表:
 

表1 元素说明

 

2.3 元素可视化设计
(1)Part元素可视化设计
Part元素表示车辆,只需对其name属性和style属性进行可视化设计即可。style选择汽车图案表示。如图2所示。
(2)Buffer元素可视化设计
Buffer元素为来到本店的待清洗车辆组成的队列。需要对其name属性和part queue属性可视化设计。其中part queue属性选择queue选项中的up选项。
(3)variable元素可视化设计
variable元素有nowstate和busypercent两个元素,主要对其name属性、text属性、value属性以及lines属性进行可视化设计。设计结果如图2所示。
(4) machine元素和conveyor元素可视化设计
Machine元素和conveyor元素需要对其icon属性、path属性(part queue属性)以及icon属性(静态图标)、icon(动态图标)进行可视化设计。
2.4 元素详细设计
(1)Part元素详细设计
Part元素详细设计如图3所示:



图3 产品元素详细设计


其中,点击“To…”按钮,输入:
    IF NPARTS (Buffers001) >= 10
      PUSH to SHIP
    ELSE
      PUSH to Buffers001
    ENDIF

注:表示当有10辆或大于10辆车在等待清洗时,则选择离开。
(2)machine元素详细设计
按照模型描述所讲,车辆进入系统后先后需要经过清洗、打蜡、检测三个过程。首先对清洗wash机器进行详细设计。
Wash机器详细设计
Wash机器设置如图4所示:



图4 wash元素详细设计


其中:

     “from”中输入:pull from buffers001,表示清洗机器主动向缓冲要车辆进行清洗。
     “to”中输入:push to C1 at rear,表示被清洗完成的车辆送入输送链进行下一道工序。
     “actions on start”中输入:

IF ISTATE (Wash) = 1
   NowState (1) = "空闲"
ELSEIF ISTATE (Wash) = 2
   NowState (1) = "加工"
ELSE
   NowState (1) = "其他"
ENDIF
IF ISTATE (Wax) = 1
   NowState (2) = "空闲"
ELSEIF ISTATE (Wax) = 2
   NowState (2) = "加工"
ELSE
   NowState (2) = "其他"
ENDIF
IF ISTATE (Check) = 1
   NowState (3) = "空闲"
ELSEIF ISTATE (Check) = 2
   NowState (3) = "加工"
ELSE
   NowState (3) = "其他"
ENDIF
IF ISTATE (C1) = 1
   NowState (4) = "空闲"
ELSEIF ISTATE (C1) = 4 OR ISTATE (C1) = 2
   NowState (4) = "移动"
ELSE
   NowState (4) = "其他"
ENDIF
IF ISTATE (C2) = 1
   NowState (5) = "空闲"
ELSEIF ISTATE (C2) = 4 OR ISTATE (C1) = 2
   NowState (5) = "移动"
ELSE
   NowState (5) = "其他"
ENDIF
BusyPercent (1) = PUTIL (Wash,2)
BusyPercent (2) = PUTIL (Wax,2)
BusyPercent (3) = PUTIL (Check,2)
BusyPercent (4) = PUTIL (C1,4) + PUTIL (C1,2)
BusyPercent (5) = PUTIL (C2,4) + PUTIL (C2,2)


注: 在此对机器的状态进行判断,当机器的状态为1(表示机器处于空闲状态),则赋值“空闲”给nowstate(1),当机器的状态为2,(表示机器处于忙碌状态),则赋值“加工”给nowstate(1)。否则则赋值“其他”。Wax机器和check机器以及C1、C2依次类推。PUTIL(element_name,state)函数表示的是特殊的元素element_neme在特殊的state下的概率,返回实型值。该模型中分别对5个busypercent值进行赋值,其值为各个元素在忙碌的状态下的概率。
   点击“actions on finish”,输入:pen=4.表示当该工序完成之后,车辆的颜色变为蓝色。


Wax机器详细设计
Wax机器详细设计如图5所示:



图5 wax机器详细设计


其中:

    “from”中输入:pull from C1 at front,表示打蜡机器主动向C1要车辆进行打蜡。
    “to”中输入:push to C2 at rear,表示被打蜡完成的车辆送入输送链进行下一道工序。
    “actions on finish”中输入:“pen=5”,表示被打蜡完成的机器动态图标的颜色变成紫红色。


Check机器详细设计



图6 check机器详细设计


其中:

    “from”中输入:pull from C2 at font,表示检测台主动向输送链要车辆进行检测。
    “to”中输入:push to C3 at rear,表示被检测完成的车辆送入输送链C3上。特别注明C3输送链上的车辆被送出系统。
    “actions on finish”中输入:pen=1,表示被检测完成的机器动态图标的颜色变成红色。


三、 运行模型
系统运行200分钟,结果如图7如表2所示:



图7 模型运行结果


表2 运行结果分析



     从 上表可以看出:

         清洗的机器忙率最高,为84.3%,C2的忙率最低,为12.2%。wax机器和check机器处于空闲状态,清洗机器、以及C1、C2处于忙碌状态。
          Buffers001元素中还有5辆车处于等待状态,处于等待状态的车辆最多数量是7,满足车辆进入系统的前提条件。