¨ 点击To…按钮,输入“push to store”表示,零件进入系统后存放于缓冲区中。
¨ 点击actions on create按钮,输入
ICON = 24 !表示零部件的动态图标为第24号图标,即红色图标。
x = IUNIFORM (1,3,678) !通过整数均匀分布给变量x随机赋1、2、3三个值中的一个,为后面确定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栏中输入“cycletime(1)”,表示机器加工零件的时间是由变量cycletime(1)来决定的;
¨ 点击from…按钮,输入“pull from store”;
¨ 点击to…按钮,输入“push to machine2”;
¨ 点击actions on input,输入
temporaryvalue = partsize
cellvalue = 6 + N
XLWriteArray ("\\XLLinks.xls","Output","$C$" + cellvalue,temporaryvalue)
本段程序通过中间变量TemporaryValue和CellValue,在EXCEL工作表Output的特定区域中写入工作刚刚进入machine1的机器的下标以及对应工作的属性PartSize的值。
¨ 点击actions on output按钮,输入
TemporaryValue = ""
CellValue = 6 + N
XLWriteArray("\\XLLinks.xls","Output","$C$"+CellValue,TemporaryValue)
本段程序通过中间变量TemporaryValue和CellValue,在EXCEL工作表Output的特定区域中实现如果machine1中特定的机器完成的工作,转入空闲状态,就擦除工作表中的对应数据。
(b) machine2元素详细设计
双击machine2元素图标,对machine1元素进行详细设计,如图7所示。
图7 machine2详细设计
¨ 在type栏中选择single项;
¨ 在quantity栏中输入3,表示该工序需要3台设备;
¨ 在cycletime栏中输入“cycletime(2)”,表示机器加工零件的时间是由变量cycletime(2)来决定的;
¨ 点击to…按钮,输入“push to machine3”;
¨ 点击actions on input,输入
temporaryvalue = partsize
cellvalue = 6 + N
XLWriteArray ("\\XLLinks.xls","Output","$D$" + cellvalue,temporaryvalue)
本段程序通过中间变量TemporaryValue和CellValue,在EXCEL工作表Output的特定区域中写入工作刚刚进入machine1的机器的下标以及对应工作的属性PartSize的值。
¨ 点击actions on output按钮,输入
TemporaryValue = ""
CellValue = 6 + N
XLWriteArray("\\XLLinks.xls","Output","$D$"+CellValue,TemporaryValue)
本段程序通过中间变量TemporaryValue和CellValue,在EXCEL工作表Output的特定区域中实现如果machine1中特定的机器完成的工作,转入空闲状态,就擦除工作表中的对应数据。
(c) machine3元素详细设计
双击machine3元素图标,对machine1元素进行详细设计,如图8所示。
图8 machine3详细设计
¨ 在type栏中选择single项;
¨ 在quantity栏中输入1,表示该工序需要1台设备;
¨ 在cycletime栏中输入“cycletime(3)”,表示机器加工零件的时间是由变量cycletime(3)来决定的;
¨ 点击to…按钮,输入“push to ship”;
¨ 点击actions on input,输入
temporaryvalue = partsize
cellvalue = 6 + N
XLWriteArray ("\\XLLinks.xls","Output","$E$" + cellvalue,temporaryvalue)
本段程序通过中间变量TemporaryValue和CellValue,在EXCEL工作表Output的特定区域中写入工作刚刚进入machine1的机器的下标以及对应工作的属性PartSize的值。
¨ 点击actions on output按钮,输入
TemporaryValue = ""
CellValue = 6 + N
XLWriteArray("\\XLLinks.xls","Output","$E$"+CellValue,TemporaryValue)
本段程序通过中间变量TemporaryValue和CellValue,在EXCEL工作表Output的特定区域中实现如果machine1中特定的机器完成的工作,转入空闲状态,就擦除工作表中的对应数据。
(5) 元素逻辑规则设计
元素逻辑规则已经在元素详细设计中的to…按钮中和from…按钮中设定了,所以在此不作介绍。
运行模型100个时间单位,完成之后,点击零件part1元素,选择statistics,出现如图9所示统计数据,在该数据图中我们可以知道,在100个时间单位里,系统共产生31个产成品。
图9 part1统计数据
打开excel表的output页,我们可以看到相应的每一个零件在系统中停留的时间被记录下来,机器此时的状态也被记录下来了。如图10所示。
图10 模型运行后excel表结果显示