¨         点击To…按钮,输入“push to store”表示,零件进入系统后存放于缓冲区中。

¨         点击actions on create按钮,输入

ICON = 24            !表示零部件的动态图标为第24号图标,即红色图标。

x = IUNIFORM (1,3,678)  !通过整数均匀分布给变量x随机赋123三个值中的一个,为后面确定part1的属性partsize作准备;

IF x = 1

partsize = "Small"

ELSEIF x = 2

partsize = "Medium"

ELSE

partsize = "Large"

ENDIF                 if语句完成对不同零件的尺寸大小属性的赋值。

arrivaltime = TIME       !表示零件到达系统的时间赋值给arrivaltime变量。

¨         点击actions on finish按钮,输入

ProcessTime = TIME – ArrivalTime   !计算零件在系统中停留的时间

XLWriteArray ("\\XLLinks.xls","Output","$H$" + RowNumber,ProcessTime)

         !将零件在系统中停留的时间输出到excel表中output表的processtime栏中。

RowNumber = RowNumber + 1  !将行数下移一位,准备第二个零件数据的输出。

l  Machine元素的详细设计

(a)       machine1元素详细设计

双击machine1元素图标,对machine1元素进行详细设计,如图6所示。

6 machine1详细设计

¨         type栏中选择single项;

¨         quantity栏中输入2,表示该工序需要2台设备;

¨         cycletime栏中输入“cycletime1)”,表示机器加工零件的时间是由变量cycletime1)来决定的;

¨         点击from…按钮,输入“pull from store”;

¨         点击to…按钮,输入“push to machine2”;

¨         点击actions on input,输入

temporaryvalue = partsize

cellvalue = 6 + N

XLWriteArray ("\\XLLinks.xls","Output","$C$" + cellvalue,temporaryvalue)

本段程序通过中间变量TemporaryValueCellValue,在EXCEL工作表Output的特定区域中写入工作刚刚进入machine1的机器的下标以及对应工作的属性PartSize的值。

¨         点击actions on output按钮,输入

TemporaryValue = ""

CellValue = 6 + N

XLWriteArray("\\XLLinks.xls","Output","$C$"+CellValue,TemporaryValue)

本段程序通过中间变量TemporaryValueCellValue,在EXCEL工作表Output的特定区域中实现如果machine1中特定的机器完成的工作,转入空闲状态,就擦除工作表中的对应数据。

(b)       machine2元素详细设计

双击machine2元素图标,对machine1元素进行详细设计,如图7所示。

7 machine2详细设计

¨         type栏中选择single项;

¨         quantity栏中输入3,表示该工序需要3台设备;

¨         cycletime栏中输入“cycletime2)”,表示机器加工零件的时间是由变量cycletime2)来决定的;

¨         点击to…按钮,输入“push to machine3”;

¨         点击actions on input,输入

temporaryvalue = partsize

cellvalue = 6 + N

XLWriteArray ("\\XLLinks.xls","Output","$D$" + cellvalue,temporaryvalue)

本段程序通过中间变量TemporaryValueCellValue,在EXCEL工作表Output的特定区域中写入工作刚刚进入machine1的机器的下标以及对应工作的属性PartSize的值。

¨         点击actions on output按钮,输入

TemporaryValue = ""

CellValue = 6 + N

XLWriteArray("\\XLLinks.xls","Output","$D$"+CellValue,TemporaryValue)

本段程序通过中间变量TemporaryValueCellValue,在EXCEL工作表Output的特定区域中实现如果machine1中特定的机器完成的工作,转入空闲状态,就擦除工作表中的对应数据。

(c)       machine3元素详细设计

双击machine3元素图标,对machine1元素进行详细设计,如图8所示。

8 machine3详细设计

¨         type栏中选择single项;

¨         quantity栏中输入1,表示该工序需要1台设备;

¨         cycletime栏中输入“cycletime3)”,表示机器加工零件的时间是由变量cycletime3)来决定的;

¨         点击to…按钮,输入“push to ship”;

¨         点击actions on input,输入

temporaryvalue = partsize

cellvalue = 6 + N

XLWriteArray ("\\XLLinks.xls","Output","$E$" + cellvalue,temporaryvalue)

本段程序通过中间变量TemporaryValueCellValue,在EXCEL工作表Output的特定区域中写入工作刚刚进入machine1的机器的下标以及对应工作的属性PartSize的值。

¨         点击actions on output按钮,输入

TemporaryValue = ""

CellValue = 6 + N

XLWriteArray("\\XLLinks.xls","Output","$E$"+CellValue,TemporaryValue)

本段程序通过中间变量TemporaryValueCellValue,在EXCEL工作表Output的特定区域中实现如果machine1中特定的机器完成的工作,转入空闲状态,就擦除工作表中的对应数据。

5 元素逻辑规则设计

元素逻辑规则已经在元素详细设计中的to…按钮中和from…按钮中设定了,所以在此不作介绍。

1.  运行模型

运行模型100个时间单位,完成之后,点击零件part1元素,选择statistics,出现如图9所示统计数据,在该数据图中我们可以知道,在100个时间单位里,系统共产生31个产成品。

9 part1统计数据

打开excel表的output页,我们可以看到相应的每一个零件在系统中停留的时间被记录下来,机器此时的状态也被记录下来了。如图10所示。

10 模型运行后excel表结果显示