1、第1章 GPSSWorld 语言概述,1. GPSSWorld 语言的基本格式 2. GPSSWorld 程序的基本组成 3. GPSSWorld 程序举例 4. GPSSWorld 程序框图 5. GPSSWorld 程序的运行 6. GPSSWorld 语言的基本模块 7. GPSS 控制语句 8. GPSSWorld 程序的标准输出,本章主要内容:,3-1 GPSSWorld 语言的基本格式,GPSSWorld 语言程序块的基本格式: 地址 操作码 数据场 注解,地址即语句号,最多由五个字母, 数字组成, 必须由字母打头. 从第一列开始. 必要时才用,在GPSS World中不是必须的。
2、,操作码即模块或语句名称, 可用前四个字母简写,由多个数据组成, 各数据间用逗号分开,语句注释,可有可无,3-1 GPSSWorld 语言的基本格式,语句模块举例: 例如一个延时模块应书写如下:,F5 ADVANCE 5, 2 ;服务时间,地址 操作码 数据场 注解,或可写成:,F5 ADVA 5, 2 ;服务时间 ADVA 5, 2 ;服务时间,3-2 GPSSWorld 程序的基本组成,GPSS 模拟程序 : SIMULATELINE EQU 1JOE EQU 1 GENERATE 18,6 QUEUE LINE SEIZE JOE DEPART LINE ADVANCE 16,4 REL
3、EASE JOE TERMINATE 1 START 25 END,控制语句: 控制模拟过程不是必须的,定义语句: 定义函数, 实体,变量,开关等,程序语句(模)块: GPSSWorld 语言模块,控制语句:控制模拟过程不是必须的,3-3 GPSSWorld 程序举例,下面给出的程序是某机械加工中心系统的模拟模型。该机械加工中心有 9 名技工和 4 台同样的机器, 每台机器需二位技工来操作。 当一件工作到达时, 先由一位职员进行记录工作, 然后将工作交给一位技工进行准备工具等工作, 当加工工作开始时, 第二名技工过来帮助操作机器。 在工作完成之前, 职员应完成记录及收款的工作。 车间每天八小时
4、工作, 但只在前七小时收活, 最后一小时只完成已收下的活。 其它参数及其所编程序如下:(1)职员做记录工作时间为 4 2 分钟, 收尾工作时间为 94 分钟。(2)加工工作到达间隔时间为 15 3 分钟。(3)技工准备工具时间为 10 3 分钟, 操作机械时间为 5530 分钟。(4)以上时间均为均匀分布。,控制语句,定义语句,OPER STORAGE 9MACH STORAGE 41 FUNCTION RN$2,C2 工件到达间隔时间 (12 - 18)0,720/1,10812 FUNCTION RN$3,C2 职员初步记录时间 (2 - 6)0,120/1,3613 FUNCTION R
5、N$4,C2 技工准备工具时间 (7 - 13 )0,420/1,7814 FUNCTION RN$5,C2 机器操作时间 ( 25 - 85 )0,1500/1,51015 FUNCTION RN$6,C2 职员的最后处理时间 ( 5 - 13 )0,300/1,781,程序模块,GENERATE FN$1 工件到达 QUEUE LINE 排总队列 SEIZE CLERK 占用职员 ADVANCE FN$2 登记与记录 RELEASE CLERK 释放职员 ENTER OPER, 1 占用一个技工 ADVANCE FN$3 技工准备工具 ENTER OPER, 1 占用第二个技工 ENTER
6、 MACH, 1 占用一台机器 ADVANCE FN$4 加工工件 LEAVE MACH, 1 释放机器 LEAVE OPER, 2 释放二个技工 SEIZE CLERK 占用职员 ADVANCE FN$5 最后记录 RELEASE CLERK 释放职员 DEPART LINE 离开总队列 TERMINATE GENERATE 3600 每班时间 TERMINATE 1 START 7,NP 七小时关门 GENERATE 3601 一小时收尾 START 1 END,按研究目的的要求我们利用模拟求解平均每件工作周转时间不能超过 1.5 小时的情况下, 求出机械与技工的最佳组合方案。读者可从中看
7、到 GPSSWorld 语言和程序的基本格式和组成。因为 GPSSWorld 程序是 ASCII 文件,所以可在 WORD 或 EDIT 环境下观察或编辑。,3-3 GPSSWorld 程序举例,3-4 GPSSWorld 程序框图,GPSSWorld 语言有独特的框图符号:,GENERATE,QUEUE,DEPART,ADVANCE,SEIZE,RELEASE,TERMINATE,产生活动实体,排队,离队,延时,占用设施,释放设施,离开系统,3-4 GPSSWorld 程序框图,GENERATE 18,6 QUEUE LINE SEIZE JOE DEPART LINE ADVANCE 16
8、,4 RELEASE JOE TERMINATE 1,GENERATE,QUEUE,SEIZE,DEPART,ADVANCE,RELEASE,TERMINATE,LINE,LINE,JOE,JOE,16, 4,18, 6,1,3-5 GPSS World的安装与运行,直接点击student.exe在Windows下按提示进行安装,安装完后可以直接运行。,3-6 GPSSWorld 语言的基本模块,1. 与活动(流动)实体有关的模块 5. 与逻辑开关有关的模块2. 与设施有关的模块 6. .3. 与队列有关的模块4. 与存储器有关的模块,管理系统内设备及人的分类:,1. 活动(流动)实体 系统中
9、移动的人, 设备等2. 资源实体 设施 系统中固定的人, 设备等 存储器 可存储动态实体的仓库, 物料场, 煤仓等 逻辑开关 只具有两种工作状态的开关型设备 队列 需排队等候之处3. 统计实体 表 各类统计表,基本模块的分类:,3.6.1 与活动实体有关的模块,1. GENERTATE 产生活动实体的模块,格式: GENERTATE A, B, C, D, E, F, G A 到达间隔时间均值 B 到达间隔时间方差, 缺省为零 C 第一个动态实体产生的时间 D 应产生动态实体的总数 E 被产生动态实体的优先级, 1- 127 F 实体携带参数的个数, 缺省为 12,GPSSWorld中已取消
10、G 参数类型, 缺省为半字参数 GPSSWorld中已取消,例: GENERATE 5, 3, 25 在第25 时间单位产生第一个活动实体 GENERATE 5, 2, , ,15 优先级为 15 GENE 18, 4, , 25 共产生 25 个活动实体,2. ADVANCE 活动实体延时模块 格式: ADVANCE A, B A 延迟时间均值 B 延迟时间方差 例: ADVANCE 18, 6 ADVA 25,3.6.1 与活动实体有关的模块,3.6.1 与活动实体有关的模块,3. TRANSFER 活动实体的转向模块。 TRANSFER A,B,C,D其中: A 转向方式, 有5种情况:
11、 (1) , 逗号为无条件转向B域给出的地址。 (2) BOTH 先企图进入B域地址,不成就去C域地址, 两个地址都不通,就保留在此模块中。 (3) PICK 任去B到C之间的任意模块。 (4) ALL 类似于BOTH模式,只是地址包括从B到C。 (5) 小数 表示去C域的百分比,1-A 为去B址的百分比, 通路是随机的。 B,C 为按 A 域条件应去的地址号,D为ALL模式的增量,例: 无条件转向语句: TRANSFER , L1 ;无条件转向 L1 有条件转向语句: TRANSFER 0.75, L1, L2 表示 75% 去 L2,25% 去L1。 TRANSFER BOTH, L1,
12、L2 表示先去L1, 不行就去 L2,若 L1与L2都出不去,则活动实体只能在本模块中等候。,3.6.1 与活动实体有关的模块,4. TERMINATE 活动实体消失模块 格式: TERMINATE A A 离开系统的活动实体的个数例: TERMINATE 1 TERMINATE 10 TERMINATE 活动实体离开,但不统计,3.6.1 与活动实体有关的模块,3.6.1 与活动实体有关的模块,5. ASSIGN 活动实体参数的赋值语句。,ASSIGN A, B其中: A 需要赋值或改变实体参数的参数号,A值后部可加写 +, - 号, A 域中的 +, - 号表示从原有参数中加上或减去B (
13、A可以是变量名或正整数) B 需要赋给实体参数A或从参数A中+或-的数值,下面是一个汽车装卸过程的程序示例,GENERATE 18, 6 ;产生实体 ASSIGN loadvalue,25 ;loadvalue参数为汽车载重量, 赋值 25 吨 ASSIGN isempty, 2 ;isempty参数,重车标记 1为空车, 2为重车 : (程序的其他过程) . ASSIGN loadvalue+, 10 ;汽车载重量增加10吨变为35吨 : ; (程序的其他过程) . ENTER Stock1, 35 ;卸入Stock1号矿仓 ASSIGN loadvalue, 0 ;汽车载重量变为0吨 AS
14、SIGN isempty,1 ;变成空车 : . TERMINATE,3.6.1 与活动实体有关的模块,3.6.2 与设施有关的模块,1. SEIZE 活动实体获得设施控制权的模块 格式: SEIZE A A 活动实体所要控制的设施号或名称 例: SEIZE 2 SEIZE JON,2. RELEASE 活动实体释放(离开)设施的模块 格式: RELEASE A A 被释放(离开)设施的号或名称 例: RELEASE 1 RELEAE JON RELE 5,3.6.2 与设施有关的模块,格式: QUEUE A, B A 活动实体所要排的队号或名称 B 活动实体排队后, 队长所增加的量. 缺省时
15、为 1 例: QUEUE 2 QUEUE LINE QUEUE 3, 15,1. QUEUE 活动实体排队的模块,3.6.3 与队列有关的模块,格式: DEPART A, B A 活动实体所在的队列号或名称 B 活动实体离开队列后, 队长减少的量, 缺省时为 1. 例: DEPART 2 DEPART LINE DEPART 3, 15,2. DEPART 活动实体离开队列的模块,3.6.3 与队列有关的模块,1. ENTER 活动实体进入存储器的模块 格式: ENTER A, B A 进入存储器的代码或编号 (存储器的容量应事先定义) B 进入 A 存储器后, 存储器增加的存量, 缺省时为
16、1. 例: ENTER 2 ENTER STORE, 25 ENTE S2, 2,3.6.4 与存储器有关的模块,2. LEAVE 活动实体离开某存储器的模块 格式: LEAVE A, B A 要离开的存储器代码或编号 B 离开 A 存储器后, 存储器减少的存量, 缺省时为 1. 例: LEAVE 2 LEAVE STORE, 25 LEAV S2, 2,3.6.4 与存储器有关的模块,基本模块小结,与活动实体有关的模块: 1. GENERATE 2. TERMINATE 3. ADVANCE 4. ASSIGN 5. TRANSFER,与设施有关的模块: 1. SEIZE 2. RELEAS
17、E,与队列有关的模块: 1. QUEUE 2. DEPART,与存储器有关的模块: 1. ENTER 2. LEAVE,3.7 GPSSWorld 语言的控制语句,控制语句是用来控制模拟过程的, 常用的语句如下:(在GPSSWorld中,以下语句由系统菜单产生执行) 1. SIMULATE 执行模拟 2. START A, B, C, D 控制模拟状态 A 使模拟终止的动态实体计数 B 从多少个活动实体开始打印统计报告 C 生成输出报告的计数间隔 D 输出动态实体的链状态 3. halt 终止模拟 4. RESET 清除积累统计,3.8 GPSSWorld 语言基本模块编程举例,1.模拟的终止
18、 例一: 利用 TERMINATE 和 START 控制 : : TERMINATE 1 START 25 END : : TERMINATE 2 : : TERMINATE 1 START 50 END,: : TERMINATE 1 : : TERMINATE,例二: 利用时间控制 GENERATE 18, 6 : TERMINATE GENERATE 3600 TERMINATE 1,一个程序中可有多个 GENERATE模块,3.8 GPSSWorld 语言基本模块编程举例,例三: 利用终止语句控制 GENERATE 18, 6 : : TERMINATE : TM TERMINATE
19、1000 START 1000 END程序中需要终止的地方就转向 TM 语句,GOTO,3.8 GPSSWorld 语言基本模块编程举例,例四: RESET 的使用 GENERATE 18, 6 : : TERMINATE 1 START 10 RESET START 100 END,例五: QUEUE 的使用 : : QUEUE 1 QUEUE 1 SEIZE 2 SEIZE 2 DEPART 1 ADVANCE 5 ADVANCE 5 RELEASE 2 RELEASE 2 DEPART 1 : :,设施 2,设施2,队列 1,队列 1,3.8 GPSSWorld 语言基本模块编程举例,3
20、.9 GPSS 的标准输出,GPSS 标准输出的组成: 1. 扩充程序表 2. 模拟钟及模块计数表 (BLOCK) 3. 各类统计表 1) 设施统计 (FACILITY) 2) 队列统计 (QUEUE) 3) 存储器统计 (STORAGE) 4) 开关状态统计 ( SWITCH) 5) 模块链统计 6) 用户表 7) 内存变量表,RELATIVE CLOCK 144000 ABSOLUTE CLOCK 144000 BLOCK COUNTS BLOCK CURRENT TOTAL BLOCK CURRENT TOTAL BLOCK CURRENT TOTAL 1 0 15 2 0 15 3 0
21、 15 4 0 19054 5 0 18683 6 0 263 7 0 371 8 0 188 9 0 183 10 0 446 11 0 446 12 0 446 13 0 446 14 0 188 15 0 188 16 0 188 17 0 634 18 0 634 19 0 5 20 0 5 21 0 5 22 0 634 23 0 634 24 0 634 25 0 634 26 0 634 27 0 634 28 0 634 29 15 634 30 0 619 31 0 619 32 0 619 33 0 619 34 0 619 35 0 619 36 0 619 37 0 1
22、8420 38 0 18420 39 0 0 40 1 14400 41 0 14399 42 0 10868 43 0 10711 44 0 10569 45 0 10421 46 0 465 47 0 465 48 31 465 49 0 434 50 0 434 51 0 434 52 0 434 53 0 434 54 0 14368,模拟钟及模块计数,FACILITY AVERAGE NUMBER AVERAGE SEIZING PREEMPTING UTILIZATION ENTRIES TIME/TRAN TRANS.NO. TRANS.NO. 1 0.01 188 5.19 2
23、 0.02 446 5.63,STORAGE CAPACITY AVERAGE AVERAGE ENTRIES AVERAGE CURRENT MAXIMUM CONTENT UTILIZ. TIME/TR CONTENT CONTENT 1 120 97.00 0.81 28474 494.60 109 120 2 1165 56.00 0.05 26474 306.63 42 1165 3 24000 31.00 0.00 26432 173.53 32 616 4 1937 1752.00 0.90 28365 8894.37 1891 1891 5 300 9.00 0.03 2643
24、2 50.00 0 280,设施与存储器统计,设施,储煤仓,QUEUE MAXIMUM AVERAGE TOTAL ZERO PERC. AVERAGE $AVERAGE TABLE CURRENT CONTENT CONTENT ENTRIES ENTRIES ZERO TIME/TR TIME/TR NUMBR CONTENT 1 14 0.01 188 80 42.55 7.76 13.50 0 2 10 0.02 446 204 45.74 7.20 13.26 0 3 15 10.71 634 41 6.47 2432.53 2600.72 15变量: CONTENTS OF (NO
25、NZERO) FULLWORD SAVEVALUES XF LOC VALUE LOC VALUE LOC VALUE LOC VALUE 11 26474 12 26432 13 26400 16 28474,队列与变量统计,队列:,LOGIC SWITCH - SET (ON) STATUS SWITCH NAME NAME NAME NAME NAME NAME NAME NAME NAME 1 2 7 8 9,开关状态统计,逻辑开关,实验报告的书写,1. 格式,1)留出装订位置2)上,下,左,右应留出边3)图,表要有号,四周要留空,实验报告的书写,2. 内容,一. 问题的提出二. 数据的收集三. 分布族的选择)点统计法)柱状图法)概论图法)结论四. 参数的确定,五. 拟合优度检验)直观检验)检验六. 结论,上机前准备工作,1. 准备好数据.2. 准备好程序, 在纸上写好.3. 准备好上机计划和步骤4. 准备好记录的纸和笔,绘出的图若不能打印出来, 应手工描绘出来,写入实验报告。,