1 常用的系统数字属性码
分类 | 属性码 | 含义 |
---|---|---|
模拟钟 | AC1 | 模拟钟的绝对时钟值,返回一个实数 |
C1 | 模拟钟的相对时钟值,返回一个实数 | |
活动实体 | Pj | 返回活动实体所携带的j号参数的值 |
PR | 返回活动实体的优先级 | |
队列 | Qj | 返回指定队列的当前长度 |
QCj | 返回指定队列的总排队人数 | |
QTj | 返回指定队列中活动实体的平均等待时间 | |
设施 | Fj | 返回设施的状态,若在使用中则返回1,否则返回0 |
存储器 | Sj | 返回指定存储器的当前含量 |
Rj | 返回指定存储器的剩余容量 | |
SEj | 返回指定存储器的状态,若为空则返回1,否则返回0 | |
SFj | 返回指定存储器的状态,若已满则返回1,否则返回0 | |
SRj | 返回指定存储器的利用率 | |
逻辑开关 | LSj | 若逻辑开关的状态为SET则返回1,否则返回0 |
保存值 | Xj | 返回指定保存值中的数值 |
变量 | Vj | 返回指定自定义变量的值 |
函数 | FNj | 返回指定函数的值 |
模块 | Nj | 返回进入指定模块的活动实体的总数 |
Wj | 返回指定模块中当前进入的活动实体数 |
2 表达式
>= GE
<= LE
3 定义语句
进行事先说明或初始化,应放在整个程序的前面,也就是GENERATE前面
3.1 EQU语句
NAME EQU X(不能用SNA码)
Q_1 EQU 1+2 ; Q_1代表数值3
ABC EQU RN1 ;ABC代表的数值将在一开始仿真时调用RN1确定
3.2 VARIABLE变量定义语句
提前将表达式定义为变量
NAME VARIABLE X(合法表达式)
V_1 VARIABLE 10+RN1@11 ;服从10—20之间离散均匀分布的一个随机整数
3.3 FUNCTION 函数定义语句
NAME FUNCTION A,B
X1,Y1 / X2,Y2 /...
(1)离散值型函数(D)
FN_BAR FUNCTION RN1,D5
0.15,3/0.4,4/0.7,5/0.9,6/1,7
(2)连续值型函数(C)
FN_BAR FUNCTION RN1,C6
0,0 /0.15,3 /0.4,4/ 0.7,5 /0.9,6 /1,7
(3)属性值型函数(E)
(4)列表值型函数(L)
(5)属性列表值型函数(M)
内置函数
(1)Exponential——指数分布函数
GENTERATE ( Exponential(1,0,10)) ;到达时间间隔服从均值为10的指数分布
ADVANCE (Exponential(2,0,20)) ;服务时间服从均值为20的指数分布
(2)Normal——正态分布函数
ADVANCE Normal(1,500,15) ;以500个时间单位为均值,225个时间单位为方差的正态分布的服务时间
(3)Poisson——泊松分布函数
3.4 RMULT设定随机数种子
RMULT A,B,C,D,E,F,G
RMULT ,,234,,456 ;将系统中3号随机数发生器的种子改为234,5号的改为456
4 中级模块语言及其相关的INITIAL初始化语句
4.1 LOGIC逻辑开关
LOGIC O A
O:辅助码:R(关闭)S(打开)I(置为相反)
无条件进入
LOGIC S L_BAR ;将名字为L_BAR的逻辑开关的状态设为打开
4.2 SAVEVALUE保存值模块
SAVEVALUE 1,2 ;将数值2保存入1号保存值中
SAVEVALUE 1+,P2 ;将活动实体2号参数的值加入1号保存值中
4.3 INITIAL初始化语句
INITIAL A,B
A:若为初始化开关,必须为LSj或LS$Name,表示逻辑开关的状态置为1
若是初始化保存值,则必须为Xj或X$Name
INITIAL LS1 ;将1号逻辑开关的初始值设置为1
INITIAL LS$BAR ;将BAR的逻辑开关的初值置为1
INITIAL X$BAR,10 ;将BAR的保存值的初值置为10
4.4 TEST比较测试模块
通过测试比较两个数据的大小,并按照比较的结果来控制活动实体的运行
TEST O A,B,C
O:E(相等)NE(不等于)L(小于)LE(小于等于)G(大于)GE(大于等于)
若比较结果为真则通过此模块,进入下一模块;若为假,则去C域的地址;若C缺省,则停留在上一模块等候
TEST E Q2,3,ADD_BAR
测试2号队列队长与3是否相等,若是则通过此模块进入下一模块,若不等就去ADD_BAR
4.5 GATE测试模块
TEST E LS1,1 ;用逻辑开关控制大门,需要不停地测试大门的状态
不停地去测试,效率较低
GATE用来测试系统中各类实体的当前状态,包括设施、存储器、逻辑开关等,只有在测试的实体发生变化时才会去测试
GATE O A,B
实体状态代码和含义:
实体分类 | 状态代码 | 代码含义 |
---|---|---|
设施 | NU | 制定设施现处于非使用状态 |
U | 制定设施现处于使用状态 | |
存储器 | SE | 指定存储器处于空状态 |
SF | 满状态 | |
SNE | 不空状态 | |
SNF | 不满状态 | |
逻辑开关 | LS | 指定逻辑开关处于打开状态(1) |
LR | 关闭(0) |
GATE模块的功能是测试A操作数所指定的实体状态是否和辅助码所示的状态吻合,是则通过;否则去B域的地址码;B省略,则等待
4.6 SELECT测试模块
SELECT O A,B,C,D,E,F
(1)关系模式
B:要扫描的那类固定实体的最小编号
C:要扫描的那类固定实体的最大编号
D:进行比较的数值
E:需要考察的系统数字属性的族名
F:程序块地址
SELECT LE 1,4,7,10,S,ADD
依次检查4-7号实体中是否有小于等于10的,有就将此存储器的编号记录到活动实体的1号参数中,进入下一模块;如果没有,则活动实体1号参数不做任何改动,活动实体转去ADD模块
(2)极值模式
O 为MAX或MIN
SELECT MAX SMAX,2,4,,S
依次检查2-4号存储器的含量选出最大值,并将其号码存入活动实体SMAX的参数中
(3)逻辑模式
O为FNV FV I LS LR NI NU SE SF SNE SNF SNV SV U
SELECT SF 4,3,7,,,ADD_1
依次检查3-7号存储器是否有满的,有就将满足条件的最小的存储器号码保存到活动实体的4号参数中